From 244885b51f6c85e4a3f72af83587ec2d6490df8a Mon Sep 17 00:00:00 2001 From: Piotr Zielinski Date: Sun, 16 Nov 2008 22:01:47 +0000 Subject: [PATCH] Added org-test.el that contains some unit tests. This is file is really provisional to get us started with unit tests. It tests some changes made recently by me, and exposes a bug org-make-tags-matcher. Please feel free to rewrite/reorganize it, and port it to a unit test framework when we decide which one to use. --- lisp/org-test.el | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 0 deletions(-) create mode 100644 lisp/org-test.el diff --git a/lisp/org-test.el b/lisp/org-test.el new file mode 100644 index 0000000..7178c19 --- /dev/null +++ b/lisp/org-test.el @@ -0,0 +1,60 @@ +;; org-test.el --- Unit tests for org.el +;; Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +;; This file contains some unorganized unit tests. +;; TODO: replace with proper test when we decide on a framework + +(require 'org) + +(defmacro with-current-time-as (decoded-time &rest body) + "Executes the body with current time set to decoded-time. + + This macro is not comprehensive and does only enough to make + the tests pass. TODO: replace this with something proper, eg + a mock once we decide what framework we should use." + (let ((float-time (float-time (apply 'encode-time (eval decoded-time)))) + (float-time-function (symbol-function 'float-time))) + `(flet ((decode-time () ,decoded-time) + (float-time (&optional specified-time) + (if specified-time + (funcall ,float-time-function specified-time) + ,float-time))) + ,@body))) + +(with-current-time-as '(0 7 21 16 11 2008 0 nil 0) + (assert (= 1226793600.0 (org-time-today))) + (assert (= 1226793600.0 (org-matcher-time ""))) + (assert (= 1226880000.0 (org-matcher-time ""))) + (assert (= 1226869620.0 (org-matcher-time ""))) + + (assert (equal + '("+tag1+tag2-tag3" and + (progn + (setq org-cached-props nil) + (and (not (member "tag3" tags-list)) + (member "tag2" tags-list) + (member "tag1" tags-list))) + t) + (org-make-tags-matcher "+tag1+tag2-tag3"))) + + (assert (equal + '("+SCHEDULED=\"\"" and + (progn + (setq org-cached-props nil) + (org-time= (or (org-cached-entry-get nil "SCHEDULED") "") + 1226869620.0)) + t) + (org-make-tags-matcher "+SCHEDULED=\"\""))) + + ;; FIXME: this test fails because of a bug in org-make-tags-matcher + (assert (equal + '("+SCHEDULED=\"<2008-11-16 Wed 21:07>\"" and + (progn + (setq org-cached-props nil) + (org-time= (or (org-cached-entry-get nil "SCHEDULED") "") + 1226869620.0))) + t) + (org-make-tags-matcher "+SCHEDULED=\"<2008-11-16 Wed 21:07>\""))) + + + -- 1.5.2.5