emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 450aa85 236/271: Use macros to clean up tests.


From: Jackson Ray Hamilton
Subject: [elpa] master 450aa85 236/271: Use macros to clean up tests.
Date: Thu, 05 Feb 2015 18:31:33 +0000

branch: master
commit 450aa8533d1b39d6f595f5dc7072b79c9f177ef4
Author: Jackson Ray Hamilton <address@hidden>
Commit: Jackson Ray Hamilton <address@hidden>

    Use macros to clean up tests.
---
 test/context-coloring-test.el |  149 +++++++++++++++--------------------------
 1 files changed, 55 insertions(+), 94 deletions(-)

diff --git a/test/context-coloring-test.el b/test/context-coloring-test.el
index 9137437..2f7389a 100644
--- a/test/context-coloring-test.el
+++ b/test/context-coloring-test.el
@@ -1,19 +1,18 @@
 ;; -*- lexical-binding: t; -*-
 
+;;; Test running
+
 (defconst context-coloring-test-path
   (file-name-directory (or load-file-name buffer-file-name)))
 
 (defun context-coloring-test-resolve-path (path)
   (expand-file-name path context-coloring-test-path))
 
-(defun get-string-from-file (path)
+(defun context-coloring-test-read-file (path)
   (with-temp-buffer
-    (insert-file-contents path)
+    (insert-file-contents (context-coloring-test-resolve-path path))
     (buffer-string)))
 
-(defun context-coloring-test-read-file (path)
-  (get-string-from-file (context-coloring-test-resolve-path path)))
-
 (defun context-coloring-test-setup ()
   (setq context-coloring-comments-and-strings nil))
 
@@ -65,6 +64,9 @@ to run arbitrary code before the mode is invoked."
         (context-coloring-test-cleanup)
         (funcall done-with-temp-buffer))))))
 
+
+;;; Test defining
+
 (defun context-coloring-test-js-mode (fixture callback &optional setup)
   (context-coloring-test-with-fixture-async
    fixture
@@ -86,6 +88,31 @@ to run arbitrary code before the mode is invoked."
     (context-coloring-mode)
     ,@body))
 
+(defmacro context-coloring-test-deftest-js-mode (name)
+  (let ((test-name (intern (format "context-coloring-test-js-mode-%s" name)))
+        (fixture (format "./fixtures/%s.js" name))
+        (function-name (intern-soft (format "context-coloring-test-js-%s" 
name))))
+    `(ert-deftest-async ,test-name (done)
+                        (context-coloring-test-js-mode
+                         ,fixture
+                         (lambda (teardown)
+                           (unwind-protect
+                               (,function-name)
+                             (funcall teardown))
+                           (funcall done))))))
+
+(defmacro context-coloring-test-deftest-js2-mode (name)
+  (let ((test-name (intern (format "context-coloring-test-js2-mode-%s" name)))
+        (fixture (format "./fixtures/%s.js" name))
+        (function-name (intern-soft (format "context-coloring-test-js-%s" 
name))))
+    `(ert-deftest ,test-name ()
+       (context-coloring-test-js2-mode
+        ,fixture
+        (,function-name)))))
+
+
+;;; Assertion functions
+
 (defmacro context-coloring-test-assert-region (&rest body)
   `(let ((i 0)
          (length (- end start)))
@@ -151,13 +178,6 @@ to run arbitrary code before the mode is invoked."
       (let ((message (car (nthcdr (- (length messages) 2) messages))))
         (should (equal message expected))))))
 
-(ert-deftest context-coloring-test-unsupported-mode ()
-  (context-coloring-test-with-fixture
-   "./fixtures/function-scopes.js"
-   (context-coloring-mode)
-   (context-coloring-test-assert-message
-    "Context coloring is not available for this major mode")))
-
 (defun context-coloring-test-assert-face (level foreground)
   (let* ((face (context-coloring-face-symbol level))
          actual-foreground)
@@ -172,6 +192,16 @@ to run arbitrary code before the mode is invoked."
                         level
                         foreground actual-foreground)))))
 
+
+;;; The tests
+
+(ert-deftest context-coloring-test-unsupported-mode ()
+  (context-coloring-test-with-fixture
+   "./fixtures/function-scopes.js"
+   (context-coloring-mode)
+   (context-coloring-test-assert-message
+    "Context coloring is not available for this major mode")))
+
 (ert-deftest context-coloring-test-set-colors ()
   ;; This test has an irreversible side-effect in that it defines faces beyond
   ;; 7. Faces 0 through 7 are reset to their default states, so it might not
@@ -212,38 +242,16 @@ to run arbitrary code before the mode is invoked."
   (context-coloring-test-assert-region-level 82 87 2)
   (context-coloring-test-assert-region-level 87 89 1))
 
-(ert-deftest-async context-coloring-test-js-mode-function-scopes (done)
-  (context-coloring-test-js-mode
-   "./fixtures/function-scopes.js"
-   (lambda (teardown)
-     (unwind-protect
-         (context-coloring-test-js-function-scopes)
-       (funcall teardown))
-     (funcall done))))
-
-(ert-deftest context-coloring-test-js2-mode-function-scopes ()
-  (context-coloring-test-js2-mode
-   "./fixtures/function-scopes.js"
-   (context-coloring-test-js-function-scopes)))
+(context-coloring-test-deftest-js-mode function-scopes)
+(context-coloring-test-deftest-js2-mode function-scopes)
 
 (defun context-coloring-test-js-global ()
   (context-coloring-test-assert-region-level 20 28 1)
   (context-coloring-test-assert-region-level 28 35 0)
   (context-coloring-test-assert-region-level 35 41 1))
 
-(ert-deftest-async context-coloring-test-js-mode-global (done)
-  (context-coloring-test-js-mode
-   "./fixtures/global.js"
-   (lambda (teardown)
-     (unwind-protect
-         (context-coloring-test-js-global)
-       (funcall teardown))
-     (funcall done))))
-
-(ert-deftest context-coloring-test-js2-mode-global ()
-  (context-coloring-test-js2-mode
-   "./fixtures/global.js"
-   (context-coloring-test-js-global)))
+(context-coloring-test-deftest-js-mode global)
+(context-coloring-test-deftest-js2-mode global)
 
 (defun context-coloring-test-js-block-scopes ()
   (context-coloring-test-assert-region-level 20 64 1)
@@ -254,10 +262,7 @@ to run arbitrary code before the mode is invoked."
    (context-coloring-test-assert-region-level 41 42 1)
    (context-coloring-test-assert-region-level 42 64 2))
 
-(ert-deftest context-coloring-test-js2-mode-block-scopes ()
-  (context-coloring-test-js2-mode
-   "./fixtures/block-scopes.js"
-   (context-coloring-test-js-block-scopes)))
+(context-coloring-test-deftest-js2-mode block-scopes)
 
 (defun context-coloring-test-js-catch ()
   (context-coloring-test-assert-region-level 20 27 1)
@@ -269,36 +274,14 @@ to run arbitrary code before the mode is invoked."
   (context-coloring-test-assert-region-level 102 117 3)
   (context-coloring-test-assert-region-level 117 123 2))
 
-(ert-deftest-async context-coloring-test-js-mode-catch (done)
-  (context-coloring-test-js-mode
-   "./fixtures/catch.js"
-   (lambda (teardown)
-     (unwind-protect
-         (context-coloring-test-js-catch)
-       (funcall teardown))
-     (funcall done))))
-
-(ert-deftest context-coloring-test-js2-mode-catch ()
-  (context-coloring-test-js2-mode
-   "./fixtures/catch.js"
-   (context-coloring-test-js-catch)))
+(context-coloring-test-deftest-js-mode catch)
+(context-coloring-test-deftest-js2-mode catch)
 
 (defun context-coloring-test-js-key-names ()
   (context-coloring-test-assert-region-level 20 63 1))
 
-(ert-deftest-async context-coloring-test-js-mode-key-names (done)
-  (context-coloring-test-js-mode
-   "./fixtures/key-names.js"
-   (lambda (teardown)
-     (unwind-protect
-         (context-coloring-test-js-key-names)
-       (funcall teardown))
-     (funcall done))))
-
-(ert-deftest context-coloring-test-js2-mode-key-names ()
-  (context-coloring-test-js2-mode
-   "./fixtures/key-names.js"
-   (context-coloring-test-js-key-names)))
+(context-coloring-test-deftest-js-mode key-names)
+(context-coloring-test-deftest-js2-mode key-names)
 
 (defun context-coloring-test-js-property-lookup ()
   (context-coloring-test-assert-region-level 20 26 0)
@@ -308,36 +291,14 @@ to run arbitrary code before the mode is invoked."
   (context-coloring-test-assert-region-level 57 63 0)
   (context-coloring-test-assert-region-level 63 74 1))
 
-(ert-deftest-async context-coloring-test-js-mode-property-lookup (done)
-  (context-coloring-test-js-mode
-   "./fixtures/property-lookup.js"
-   (lambda (teardown)
-     (unwind-protect
-         (context-coloring-test-js-property-lookup)
-       (funcall teardown))
-     (funcall done))))
-
-(ert-deftest context-coloring-test-js2-mode-property-lookup ()
-  (context-coloring-test-js2-mode
-   "./fixtures/property-lookup.js"
-   (context-coloring-test-js-property-lookup)))
+(context-coloring-test-deftest-js-mode property-lookup)
+(context-coloring-test-deftest-js2-mode property-lookup)
 
 (defun context-coloring-test-js-key-values ()
   (context-coloring-test-assert-region-level 78 79 1))
 
-(ert-deftest-async context-coloring-test-js-mode-key-values (done)
-  (context-coloring-test-js-mode
-   "./fixtures/key-values.js"
-   (lambda (teardown)
-     (unwind-protect
-         (context-coloring-test-js-key-values)
-       (funcall teardown))
-     (funcall done))))
-
-(ert-deftest context-coloring-test-js2-mode-key-values ()
-  (context-coloring-test-js2-mode
-   "./fixtures/key-values.js"
-   (context-coloring-test-js-key-values)))
+(context-coloring-test-deftest-js-mode key-values)
+(context-coloring-test-deftest-js2-mode key-values)
 
 (defun context-coloring-test-js-comments-and-strings ()
   (context-coloring-test-assert-region-comment-delimiter 1 4)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]