summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2010-06-24 20:33:25 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-06-24 20:33:25 -0400
commit71ab16dd9414727b8adcb8290985c1cba19fb6a4 (patch)
treeefd532cadc7cbaab486a3abe7217b557b7d2d724 /test
parent8f3b8a5f42fe223012cfa6e84f0d079c49595f56 (diff)
downloademacs-71ab16dd9414727b8adcb8290985c1cba19fb6a4.tar.gz
Add redisplay test for image and overlay string interaction.
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog4
-rw-r--r--test/redisplay-testsuite.el69
2 files changed, 68 insertions, 5 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index d1825c0d169..c23b46a0715 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+2010-06-25 Chong Yidong <cyd@stupidchicken.com>
+
+ * redisplay-testsuite.el (test-redisplay-3): New test.
+
2010-06-11 Chong Yidong <cyd@stupidchicken.com>
* comint-testsuite.el: New file.
diff --git a/test/redisplay-testsuite.el b/test/redisplay-testsuite.el
index 889504c9fa8..c7616fea67d 100644
--- a/test/redisplay-testsuite.el
+++ b/test/redisplay-testsuite.el
@@ -110,13 +110,72 @@
(propertize "XXX\n" 'face 'highlight)
"\n Test: ")
(test-insert-overlay "XXX\n" 'mouse-face 'highlight)
- (insert "\n"))
+ (insert "\n\n"))
+
+(defun test-redisplay-3 ()
+ (insert "Test 3: Overlay with before/after strings and images:\n\n")
+ (let ((img-data "#define x_width 8
+#define x_height 8
+static unsigned char x_bits[] = {0xff, 0x81, 0xbd, 0xa5, 0xa5, 0xbd, 0x81, 0xff };"))
+ ;; Control
+ (insert " Expected: AB"
+ (propertize "X" 'display `(image :data ,img-data :type xbm))
+ "CD\n")
+
+ ;; Overlay with before, after, and image display string.
+ (insert " Result 1: ")
+ (let ((opoint (point)))
+ (insert "AXD\n")
+ (let ((ov (make-overlay (1+ opoint) (+ 2 opoint))))
+ (overlay-put ov 'before-string "B")
+ (overlay-put ov 'after-string "C")
+ (overlay-put ov 'display
+ `(image :data ,img-data :type xbm))))
+
+ ;; Overlay with before and after string, and image text prop.
+ (insert " Result 2: ")
+ (let ((opoint (point)))
+ (insert "AXD\n")
+ (let ((ov (make-overlay (1+ opoint) (+ 2 opoint))))
+ (overlay-put ov 'before-string "B")
+ (overlay-put ov 'after-string "C")
+ (put-text-property (1+ opoint) (+ 2 opoint) 'display
+ `(image :data ,img-data :type xbm))))
+
+ ;; Overlays with adjacent before and after strings, and image text
+ ;; prop.
+ (insert " Result 3: ")
+ (let ((opoint (point)))
+ (insert "AXD\n")
+ (let ((ov1 (make-overlay opoint (1+ opoint)))
+ (ov2 (make-overlay (+ 2 opoint) (+ 3 opoint))))
+ (overlay-put ov1 'after-string "B")
+ (overlay-put ov2 'before-string "C")
+ (put-text-property (1+ opoint) (+ 2 opoint) 'display
+ `(image :data ,img-data :type xbm))))
+
+ ;; Three overlays.
+ (insert " Result 4: ")
+ (let ((opoint (point)))
+ (insert "AXD\n\n")
+ (let ((ov1 (make-overlay opoint (1+ opoint)))
+ (ov2 (make-overlay (+ 2 opoint) (+ 3 opoint)))
+ (ov3 (make-overlay (1+ opoint) (+ 2 opoint))))
+ (overlay-put ov1 'after-string "B")
+ (overlay-put ov2 'before-string "C")
+ (overlay-put ov3 'display `(image :data ,img-data :type xbm))))))
+
(defun test-redisplay ()
(interactive)
- (pop-to-buffer (generate-new-buffer "*Redisplay Test*"))
- (test-redisplay-1)
- (test-redisplay-2)
- (goto-char (point-min)))
+ (let ((buf (get-buffer "*Redisplay Test*")))
+ (if buf
+ (kill-buffer buf))
+ (pop-to-buffer (get-buffer-create "*Redisplay Test*"))
+ (erase-buffer)
+ (test-redisplay-1)
+ (test-redisplay-2)
+ (test-redisplay-3)
+ (goto-char (point-min))))
;; arch-tag: fcee53c8-024f-403d-9154-61ae3ce0bfb8