summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2017-04-24 07:56:31 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2017-04-24 07:56:31 +0200
commite589018b48f802d69f62ab1e7e266df1c7d8cf68 (patch)
treec8d43d00816b84ec692714b3a4a7187651a83247
parentfe304efa5155cd6a5c20a0731475a0ad6d087c4c (diff)
downloademacs-e589018b48f802d69f62ab1e7e266df1c7d8cf68.tar.gz
Add image sizing tests for an image that's narrow
-rw-r--r--test/data/image/blank-100x200.pngbin0 -> 423 bytes
-rw-r--r--test/manual/image-size-tests.el62
2 files changed, 45 insertions, 17 deletions
diff --git a/test/data/image/blank-100x200.png b/test/data/image/blank-100x200.png
new file mode 100644
index 00000000000..ad26949e983
--- /dev/null
+++ b/test/data/image/blank-100x200.png
Binary files differ
diff --git a/test/manual/image-size-tests.el b/test/manual/image-size-tests.el
index 301352eddb0..577c7658791 100644
--- a/test/manual/image-size-tests.el
+++ b/test/manual/image-size-tests.el
@@ -22,15 +22,21 @@
;;; Code:
-(defmacro im-should (width height &rest props)
- `(unless (im-compare (im-image ,@props) ,width ,height)
- (error "%s didn't succeed" ',props)))
+(defmacro im-should (image width height &rest props)
+ `(let ((im (im-image ,image ,@props)))
+ (unless (im-compare im ,width ,height)
+ (error "%s didn't succeed; size is %s"
+ ',props (image-size im t)))))
-(defun im-image (&rest props)
+(defun im-image (type &rest props)
(let ((image-scaling-factor 1))
(apply
#'create-image
- (expand-file-name "test/data/image/blank-200x100.png" source-directory)
+ (expand-file-name
+ (if (eq type :w)
+ "test/data/image/blank-200x100.png"
+ "test/data/image/blank-100x200.png")
+ source-directory)
'imagemagick nil props)))
(defun im-compare (image width height)
@@ -41,24 +47,46 @@
(defun image-size-tests ()
(unless (imagemagick-types)
(error "This only makes sense if ImageMagick is installed"))
+ ;; Test the image that's wider than it is tall.
;; Default sizes.
- (im-should 200 100)
+ (im-should :w 200 100)
;; Changing one dimension changes the other.
- (im-should 100 50 :width 100)
- (im-should 100 50 :height 50)
+ (im-should :w 100 50 :width 100)
+ (im-should :w 100 50 :height 50)
;; The same with :max-width etc.
- (im-should 100 50 :max-width 100)
- (im-should 100 50 :max-height 50)
+ (im-should :w 100 50 :max-width 100)
+ (im-should :w 100 50 :max-height 50)
;; :width wins over :max-width etc
- (im-should 300 150 :width 300 :max-width 100)
- (im-should 400 200 :height 200 :max-height 100)
+ (im-should :w 300 150 :width 300 :max-width 100)
+ (im-should :w 400 200 :height 200 :max-height 100)
;; Specifying both width and height is fine.
- (im-should 300 50 :width 300 :height 50)
+ (im-should :w 300 50 :width 300 :height 50)
;; A too-large :max-width (etc) has no effect.
- (im-should 200 100 :max-width 300)
- (im-should 200 100 :max-height 300)
+ (im-should :w 200 100 :max-width 300)
+ (im-should :w 200 100 :max-height 300)
;; Both max-width/height.
- (im-should 100 50 :max-width 100 :max-height 75)
- (im-should 50 25 :max-width 100 :max-height 25))
+ (im-should :w 100 50 :max-width 100 :max-height 75)
+ (im-should :w 50 25 :max-width 100 :max-height 25)
+
+ ;; Test the image that's taller than it is wide.
+ (im-should :h 100 200)
+ ;; Changing one dimension changes the other.
+ (im-should :h 50 100 :width 50)
+ (im-should :h 50 100 :height 100)
+ ;; The same with :max-width etc.
+ (im-should :h 50 100 :max-width 50)
+ (im-should :h 50 100 :max-height 100)
+ ;; :width wins over :max-width etc
+ (im-should :h 300 600 :width 300 :max-width 100)
+ (im-should :h 150 300 :height 300 :max-height 100)
+ ;; Specifying both width and height is fine.
+ (im-should :h 300 50 :width 300 :height 50)
+ ;; A too-large :max-width (etc) has no effect.
+ (im-should :h 100 200 :max-width 300)
+ (im-should :h 100 200 :max-height 300)
+ ;; Both max-width/height.
+ (im-should :h 50 100 :max-width 75 :max-height 100)
+ (im-should :h 25 50 :max-width 25 :max-height 100)
+ )
;;; image-size-tests.el ends here