aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test-api.el3
-rw-r--r--test/test-macros.el22
-rw-r--r--test/test-search.el4
-rw-r--r--test/test-state.el22
-rw-r--r--test/test-util.el14
-rw-r--r--test/tests.el1
6 files changed, 64 insertions, 2 deletions
diff --git a/test/test-api.el b/test/test-api.el
index ca775ff..b7d5dbb 100644
--- a/test/test-api.el
+++ b/test/test-api.el
@@ -11,3 +11,6 @@
(should-error
(sx-request-make "questions" '(()))))
+(ert-deftest test-method-get-all ()
+ "Tests sx-method interface to `sx-request-all-items'"
+ (should (< 250 (length (sx-method-call 'sites :get-all t)))))
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-search.el b/test/test-search.el
index 72dbcdc..72f0846 100644
--- a/test/test-search.el
+++ b/test/test-search.el
@@ -29,8 +29,8 @@
(ert-deftest test-search-full-page ()
"Test retrieval of the full search page"
(should
- (= 30 (length (sx-search-get-questions
- "stackoverflow" 1 "jquery")))))
+ (= 100 (length (sx-search-get-questions
+ "stackoverflow" 1 "jquery")))))
(ert-deftest test-search-exclude-tags ()
"Test excluding tags from a search"
diff --git a/test/test-state.el b/test/test-state.el
new file mode 100644
index 0000000..7af4a64
--- /dev/null
+++ b/test/test-state.el
@@ -0,0 +1,22 @@
+(defmacro with-question-data (cell id &rest body)
+ (declare (indent 2))
+ `(let ((,cell '((question_id . ,id)
+ (site_par . "emacs")
+ (last_activity_date . 1234123456))))
+ ,@body))
+
+(ert-deftest test-question-mark-read ()
+ "00ccd139248e782cd8316eff65c26aed838c7e46"
+ (with-question-data q 10
+ ;; Check basic logic.
+ (should (sx-question--mark-read q))
+ (should (sx-question--read-p q))
+ (should (not (setcdr (assq 10 (cdr (assoc "emacs" sx-question--user-read-list))) nil)))
+ ;; Don't freak out because the cdr was nil.
+ (should (not (sx-question--read-p q)))
+ (should (sx-question--mark-read q)))
+ (should
+ (with-question-data q nil
+ ;; Don't freak out because question_id was nil.
+ (sx-question--mark-read q))))
+
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))))
diff --git a/test/tests.el b/test/tests.el
index d06c0ff..ce42a9f 100644
--- a/test/tests.el
+++ b/test/tests.el
@@ -11,6 +11,7 @@
sx-initialized t
sx-request-remaining-api-requests-message-threshold 50000
debug-on-error t
+ url-show-status nil
user-emacs-directory "."
sx-test-base-dir (file-name-directory (or load-file-name "./")))