aboutsummaryrefslogtreecommitdiff
path: root/tests/el-exiftool-tests.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/el-exiftool-tests.el')
-rw-r--r--tests/el-exiftool-tests.el59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/el-exiftool-tests.el b/tests/el-exiftool-tests.el
new file mode 100644
index 0000000..2ac588b
--- /dev/null
+++ b/tests/el-exiftool-tests.el
@@ -0,0 +1,59 @@
+;;; el-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/el-exiftool
+
+;; This file is part of el-exiftool.
+
+;; el-exiftool 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.
+
+;; el-exiftool 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 el-exiftool. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; Unit testing for el-exiftool
+
+;;; Code:
+
+(require 'el-exiftool)
+(require 'ert)
+
+(defmacro with-temp-test-file (test-filename temp-filename &rest body)
+ (declare (indent defun))
+ `(let ((,temp-filename (make-temp-file "el-exiftool-"
+ nil (concat "-" ,test-filename))))
+ (copy-file ,test-filename ,temp-filename t)
+ ,@body
+ (delete-file ,temp-filename)))
+
+(ert-deftest read-write-test ()
+ (with-temp-test-file "test1.png" temp-filename
+ (let ((tag-value-alist '(("Marked" . "True"))))
+ (apply 'el-exiftool-write temp-filename tag-value-alist)
+ (should (equal (el-exiftool-read temp-filename (caar tag-value-alist))
+ tag-value-alist)))))
+
+(ert-deftest delete-test ()
+ (with-temp-test-file "test1.png" temp-file
+ (el-exiftool-write temp-file '("Marked" . "True"))
+ (el-exiftool-write temp-file '("Marked" . ""))
+ (should (equal (el-exiftool-read temp-file "Marked")
+ '(("Marked" . ""))))))
+
+
+(provide 'el-exiftool-tests)
+
+;;; el-exiftool-tests.el ends here