aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorMatt Armstrong2022-11-04 15:02:17 -0700
committerStefan Monnier2022-11-05 16:44:06 -0400
commit2fc6e715a2931523a52d541d5b9868ca6cb144ff (patch)
tree17709d98a577ae99b25700538ac8176d9f9233b2 /test/src
parent4e108213341c99193d73133bb9d2cfbf31e6d8c9 (diff)
downloademacs-2fc6e715a2931523a52d541d5b9868ca6cb144ff.tar.gz
emacs-2fc6e715a2931523a52d541d5b9868ca6cb144ff.zip
Tweak the overlay related `insert-before-markers' tests
* test/src/buffer-tests.el (test-overlay-insert-before-markers-empty): Move code down to the other tests related to insertion. Test all front/rear insert combinations. To make the test more clear, at least to me, hard code all character positions. (test-overlay-insert-before-markers-at-start): For both front-advance modes verify that `insert-before-markers' at and overlay's start advances it. (test-overlay-insert-before-markers-at-end): For both rear-advance modes test that `insert-before-markers' at an overlay's end advances it. (test-overlay-insert-before-markers-non-empty): Delete, replaced by the two tests above.
Diffstat (limited to 'test/src')
-rw-r--r--test/src/buffer-tests.el61
1 files changed, 39 insertions, 22 deletions
diff --git a/test/src/buffer-tests.el b/test/src/buffer-tests.el
index a39d7d51de1..0e9e84ef7a1 100644
--- a/test/src/buffer-tests.el
+++ b/test/src/buffer-tests.el
@@ -528,28 +528,6 @@ with parameters from the *Messages* buffer modification."
528(deftest-overlay-start/end-1 L (1 0) (1 1)) 528(deftest-overlay-start/end-1 L (1 0) (1 1))
529(deftest-overlay-start/end-1 M (0 0) (1 1)) 529(deftest-overlay-start/end-1 M (0 0) (1 1))
530 530
531(ert-deftest test-overlay-insert-before-markers-empty ()
532 (with-temp-buffer
533 (insert "1234")
534 (goto-char (1+ (point-min)))
535 (let ((overlay (make-overlay (point) (point))))
536 (insert-before-markers "x")
537 (should (equal (point) (overlay-end overlay)))
538 (should (equal (point) (overlay-start overlay))))))
539
540(ert-deftest test-overlay-insert-before-markers-non-empty ()
541 (with-temp-buffer
542 (insert "1234")
543 (goto-char (+ 2 (point)))
544 (let ((overlay (make-overlay (1- (point)) (point))))
545 (insert-before-markers "x")
546 (should (equal (point) (overlay-end overlay)))
547 (should (equal (- (point) 2) (overlay-start overlay)))
548 (forward-char -2)
549 (insert-before-markers "y")
550 (should (equal (+ 2 (point)) (overlay-end overlay)))
551 (should (equal (point) (overlay-start overlay))))))
552
553(ert-deftest test-overlay-start/end-2 () 531(ert-deftest test-overlay-start/end-2 ()
554 (should-not (overlay-start (with-temp-buffer (make-overlay 1 1)))) 532 (should-not (overlay-start (with-temp-buffer (make-overlay 1 1))))
555 (should-not (overlay-end (with-temp-buffer (make-overlay 1 1))))) 533 (should-not (overlay-end (with-temp-buffer (make-overlay 1 1)))))
@@ -1315,7 +1293,46 @@ Regression test for bug#58706."
1315 (delete-overlay left) 1293 (delete-overlay left)
1316 (should (= 2 (length (overlays-in 1 (point-max)))))))) 1294 (should (= 2 (length (overlays-in 1 (point-max))))))))
1317 1295
1296;; +==========================================================================+
1297;; | Moving overlays with insert-before-markers
1298;; +==========================================================================+
1318 1299
1300(ert-deftest test-overlay-insert-before-markers-at-start ()
1301 "`insert-before-markers' always advances an overlay's start.
1302Test both front-advance and non-front-advance overlays."
1303 (dolist (front-advance '(nil t))
1304 (ert-info ((format "front-advance %S" front-advance))
1305 (with-temp-buffer
1306 (insert "1234")
1307 (let ((overlay (make-overlay 2 3 nil front-advance nil)))
1308 (goto-char 2)
1309 (insert-before-markers "x")
1310 (should (equal 3 (overlay-start overlay)))
1311 (should (equal 4 (overlay-end overlay))))))))
1312
1313(ert-deftest test-overlay-insert-before-markers-at-end ()
1314 "`insert-before-markers' always advances an overlay's end.
1315Test both rear-advance and non-rear-advance overlays."
1316 (dolist (rear-advance '(nil t))
1317 (ert-info ((format "rear-advance %S" rear-advance))
1318 (with-temp-buffer
1319 (insert "1234")
1320 (let ((overlay (make-overlay 2 3 nil nil rear-advance)))
1321 (goto-char 3)
1322 (insert-before-markers "x")
1323 (should (equal 2 (overlay-start overlay)))
1324 (should (equal 4 (overlay-end overlay))))))))
1325
1326(ert-deftest test-overlay-insert-before-markers-empty ()
1327 (dolist (advance-args '((nil nil) (t nil) (nil t) (t t)))
1328 (ert-info ((format "advance args %S" advance-args))
1329 (with-temp-buffer
1330 (insert "1234")
1331 (let ((overlay (apply #'make-overlay 2 2 nil advance-args)))
1332 (goto-char 2)
1333 (insert-before-markers "x")
1334 (should (equal 3 (overlay-start overlay)))
1335 (should (equal 3 (overlay-end overlay))))))))
1319 1336
1320;; +==========================================================================+ 1337;; +==========================================================================+
1321;; | Moving by deletions 1338;; | Moving by deletions