]> git.eshelyaron.com Git - emacs.git/commitdiff
Expand overlay multibyte tests
authorAndreas Politz <politza@hochschule-trier.de>
Sat, 7 Oct 2017 14:19:52 +0000 (16:19 +0200)
committerAndreas Politz <politza@hochschule-trier.de>
Sat, 7 Oct 2017 14:19:52 +0000 (16:19 +0200)
* test/src/buffer-tests.el (test-overlay-multibyte-transition-1):
  Expand test.
  (test-overlay-multibyte-transition-2): New test.

test/src/buffer-tests.el

index c2c9d0603360faee15153c908fd676bc098d6e9e..153aea3a20b116560fced67c9a0474fe47b49dde 100644 (file)
@@ -1215,10 +1215,65 @@ with parameters from the *Messages* buffer modification."
 (ert-deftest test-overlay-multibyte-transition-1 ()
   (with-temp-buffer
     (set-buffer-multibyte t)
-    (insert "Ä")
-    (let ((ov (make-overlay (point-min) (point-max))))
+    (insert "ääää")
+    ;; aeaeaeae
+    ;; 1 2 3 4 5
+    ;; 123456789
+    (let ((nonempty-bob (make-overlay 1 2))
+          (empty-bob    (make-overlay 1 1))
+          (empty        (make-overlay 2 2))
+          (nonempty     (make-overlay 2 4))
+          (nonempty-eob (make-overlay 4 5))
+          (empty-eob    (make-overlay 5 5)))
       (set-buffer-multibyte nil)
-      (should (eq (overlay-end ov) (point-max))))))
+      (cl-macrolet ((ovshould (ov begin end)
+                      `(should (equal (list (overlay-start ,ov) (overlay-end ,ov))
+                                      (list ,begin ,end)))))
+        (ovshould nonempty-bob 1 3)
+        (ovshould empty-bob    1 1)
+        (ovshould empty        3 3)
+        (ovshould nonempty     3 7)
+        (ovshould nonempty-eob 7 9)
+        (ovshould empty-eob    9 9)))))
+
+(ert-deftest test-overlay-multibyte-transition-2 ()
+  (with-temp-buffer
+    (set-buffer-multibyte t)
+    (insert "ääää")
+    (set-buffer-multibyte nil)
+    ;; aeaeaeae
+    ;; 1 2 3 4 5
+    ;; 123456789
+    (let ((nonempty-bob-end (make-overlay 1 2))
+          (nonempty-bob-beg (make-overlay 1 3))
+          (empty-bob        (make-overlay 1 1))
+          (empty-beg        (make-overlay 3 3))
+          (empty-end        (make-overlay 2 2))
+          (nonempty-beg-beg (make-overlay 3 7))
+          (nonempty-beg-end (make-overlay 3 8))
+          (nonempty-end-beg (make-overlay 4 7))
+          (nonempty-end-end (make-overlay 4 8))
+          (nonempty-eob-beg (make-overlay 5 9))
+          (nonempty-eob-end (make-overlay 6 9))
+          (empty-eob        (make-overlay 9 9)))
+      (set-buffer-multibyte t)
+      (cl-macrolet ((ovshould (ov begin end)
+                      `(should (equal (list (overlay-start ,ov) (overlay-end ,ov))
+                                      (list ,begin ,end)))))
+        (ovshould nonempty-bob-end 1 2)
+        (ovshould nonempty-bob-beg 1 2)
+        (ovshould empty-bob        1 1)
+        (ovshould empty-beg        2 2)
+        (ovshould empty-end        2 2)
+        (ovshould nonempty-beg-beg 2 4)
+        (ovshould nonempty-beg-end 2 5)
+        (ovshould nonempty-end-beg 3 4)
+        (ovshould nonempty-end-end 3 5)
+        (ovshould nonempty-eob-beg 3 5)
+        (ovshould nonempty-eob-end 4 5)
+        (ovshould empty-eob        5 5)))))
+
+
 
 \f
 ;; +===================================================================================+