aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSean Allred <code@seanallred.com>2015-01-04 11:41:30 -0500
committerSean Allred <code@seanallred.com>2015-01-04 11:57:52 -0500
commit59327f6f9c6ba419543c47670a62af0aa41271ca (patch)
tree4c5dcd1ab569769f3ad338976abb601cf787c2db /test
parent0e03d9086eedd486a4492e5f198e45990ad5a3bf (diff)
Tree-style specification for filter-from-nil
Instead of saying (field-a field-b object-a.subfield field-c object-b.subfield-a object-b.subfield-b) you can rather say (field-a field-b (object-a subfield) field-c (object-b subfield-a subfield-b)) To avoid a dependency loop, sx-browse-filter has been moved to sx-filter.el.
Diffstat (limited to 'test')
-rw-r--r--test/test-macros.el22
-rw-r--r--test/test-util.el14
2 files changed, 36 insertions, 0 deletions
diff --git a/test/test-macros.el b/test/test-macros.el
index b6bf20b..1634603 100644
--- a/test/test-macros.el
+++ b/test/test-macros.el
@@ -20,3 +20,25 @@
(should
(equal (sx-assoc-let data (cons .test-one .test-two))
'(1 . 2)))))
+
+(ert-deftest macro-test--sx-filter-from-nil ()
+ "Test `sx-filter-from-nil'"
+ (should
+ (equal
+ (sx-filter-from-nil
+ (one two (three four five) (six seven)
+ (a b c d e)))
+ '((one two three.four three.five six.seven
+ a.b a.c a.d a.e
+ .backoff
+ .error_id
+ .error_message
+ .error_name
+ .has_more
+ .items
+ .page
+ .page_size
+ .quota_max
+ .quota_remaining
+ .total)
+ nil none))))
diff --git a/test/test-util.el b/test/test-util.el
index 5db1691..1e3dc2b 100644
--- a/test/test-util.el
+++ b/test/test-util.el
@@ -29,3 +29,17 @@
(string= (sx--thing-as-string
'test& nil t)
"test%26")))
+
+(ert-deftest tree ()
+ (should
+ (equal
+ (sx--tree-expand
+ (lambda (path) (mapconcat #'symbol-name path "."))
+ '(a b (c d (e f g) h i (j k) l) m (n o) p))
+ '("a" "b" "c.d" "c.e.f" "c.e.g" "c.h" "c.i" "c.j.k" "c.l" "m" "n.o" "p")))
+ (should
+ (equal
+ (sx--tree-expand
+ (lambda (path) (intern (mapconcat #'symbol-name path "/")))
+ '(a b (c d (e f g) h i (j k) l) m (n o) p))
+ '(a b c/d c/e/f c/e/g c/h c/i c/j/k c/l m n/o p))))