diff options
author | Arun Isaac | 2017-03-01 16:02:18 +0530 |
---|---|---|
committer | Arun Isaac | 2017-03-01 16:02:18 +0530 |
commit | c6ff053f19fe052f39c59a2a3706da88fdcbdc15 (patch) | |
tree | f993fa0c89e5d29f40a790a0ff9d259f51eb95ba /tests/exiftool-tests.el | |
parent | 0f80398020b5e47ae88e7a544f8cb8f255ae2af7 (diff) | |
download | exiftool.el-c6ff053f19fe052f39c59a2a3706da88fdcbdc15.tar.gz exiftool.el-c6ff053f19fe052f39c59a2a3706da88fdcbdc15.tar.lz exiftool.el-c6ff053f19fe052f39c59a2a3706da88fdcbdc15.zip |
Rename library to exiftool.el.
Diffstat (limited to 'tests/exiftool-tests.el')
-rw-r--r-- | tests/exiftool-tests.el | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/exiftool-tests.el b/tests/exiftool-tests.el new file mode 100644 index 0000000..fa13dbf --- /dev/null +++ b/tests/exiftool-tests.el @@ -0,0 +1,74 @@ +;;; exiftool.el --- Elisp wrapper around exiftool ;; -*- lexical-binding: t -*- + +;; Elisp wrapper around exiftool +;; Copyright (C) 2017 by Arun I +;; +;; Author: Arun I <arunisaac@systemreboot.net> +;; Keywords: data +;; Homepage: https://git.systemreboot.net/exiftool.el + +;; This file is part of exiftool.el. + +;; exiftool.el is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; exiftool.el is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with exiftool.el. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: +;; +;; Unit testing for exiftool.el + +;;; Code: + +(defvar exiftool-tests--tag-value + '(("Marked" . "True") + ("Creator" . "foo") + ("Rights" . "bar"))) + +(require 'exiftool) +(require 'ert) + +(defmacro with-temp-test-file (test-file temp-file &rest body) + "Copy TEST-FILE to temporary file, put path in TEMP-FILE, evaluate BODY." + (declare (indent defun)) + `(let ((,temp-file (make-temp-file "exiftool-" + nil (concat "-" ,test-file)))) + (copy-file ,test-file ,temp-file t) + ,@body + (delete-file ,temp-file))) + +(ert-deftest read-write-test () + (with-temp-test-file "test1.png" temp-file + (apply 'exiftool-write temp-file exiftool-tests--tag-value) + (should (equal (apply 'exiftool-read temp-file (mapcar 'car exiftool-tests--tag-value)) + exiftool-tests--tag-value)))) + +(ert-deftest delete-test () + (with-temp-test-file "test1.png" temp-file + (exiftool-write temp-file (car exiftool-tests--tag-value)) + (let ((delete-pair + (cons (caar exiftool-tests--tag-value) ""))) + (exiftool-write temp-file delete-pair) + (should (equal (car (exiftool-read temp-file "Marked")) + delete-pair))))) + +(ert-deftest copy-test () + (with-temp-test-file "test1.png" temp-1 + (with-temp-test-file "test2.jpg" temp-2 + (apply 'exiftool-write temp-1 exiftool-tests--tag-value) + (exiftool-copy temp-1 temp-2) + (let ((tags (mapcar 'car exiftool-tests--tag-value))) + (should (equal (apply 'exiftool-read temp-1 tags) + (apply 'exiftool-read temp-2 tags))))))) + +(provide 'exiftool-tests) + +;;; exiftool-tests.el ends here |