aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorHolger Dürer <me@hdurer.net>2021-11-01 15:53:37 +0100
committerHolger Dürer <me@hdurer.net>2021-11-01 15:53:37 +0100
commite7c7da386c812f9452b072567e822077180f3dc5 (patch)
treecfd28454b3c54404381620a1e77e722b6d5e9740 /test
parentd7593a06912b7946d2fb318093ec7e27c64b3be7 (diff)
Fix tests.
These needed a bit of tender love and care to get back into passing state. - Move the auth tests to the `test` directory. No idea what it was doing in `lisp`. - Image tests are mostly broken because with later Emacsen we no longer need the `imagemagic` option on create-image. - Some method signatures have changed and mocking calls needed to follow suit.
Diffstat (limited to 'test')
-rw-r--r--test/ert-helper.el11
-rw-r--r--test/mastodon-auth-test.el47
-rw-r--r--test/mastodon-http-tests.el2
-rw-r--r--test/mastodon-media-tests.el34
-rw-r--r--test/mastodon-notifications-test.el2
-rw-r--r--test/mastodon-tl-tests.el6
6 files changed, 83 insertions, 19 deletions
diff --git a/test/ert-helper.el b/test/ert-helper.el
index 6979837..d3e0016 100644
--- a/test/ert-helper.el
+++ b/test/ert-helper.el
@@ -1,8 +1,13 @@
+(load-file "lisp/mastodon-async.el")
(load-file "lisp/mastodon-http.el")
-(load-file "lisp/mastodon-client.el")
(load-file "lisp/mastodon-auth.el")
-(load-file "lisp/mastodon-toot.el")
+(load-file "lisp/mastodon-client.el")
+(load-file "lisp/mastodon-discover.el")
+(load-file "lisp/mastodon-inspect.el")
(load-file "lisp/mastodon-media.el")
-(load-file "lisp/mastodon-tl.el")
(load-file "lisp/mastodon-notifications.el")
+(load-file "lisp/mastodon-profile.el")
+(load-file "lisp/mastodon-search.el")
+(load-file "lisp/mastodon-tl.el")
+(load-file "lisp/mastodon-toot.el")
(load-file "lisp/mastodon.el")
diff --git a/test/mastodon-auth-test.el b/test/mastodon-auth-test.el
new file mode 100644
index 0000000..9a765b9
--- /dev/null
+++ b/test/mastodon-auth-test.el
@@ -0,0 +1,47 @@
+;;; mastodon-auth--test.el --- Tests for mastodon-auth -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2020 Ian Eure
+
+;; Author: Ian Eure <ian@retrospec.tv>
+;; Version: 0.9.1
+;; Homepage: https://github.com/jdenen/mastodon.el
+;; Package-Requires: ((emacs "26.1"))
+
+;; This file is not part of GNU Emacs.
+
+;; This file is part of mastodon.el.
+
+;; This program 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.
+
+;; This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; mastodon-auth--test.el provides ERT tests for mastodon-auth.el
+
+;;; Code:
+
+(require 'ert)
+
+(ert-deftest mastodon-auth--handle-token-response--good ()
+ (should (string= "foo" (mastodon-auth--handle-token-response '(:access_token "foo" :token_type "Bearer" :scope "read write follow" :created_at 0)))))
+
+(ert-deftest mastodon-auth--handle-token-response--unknown ()
+ :expected-result :failed
+ (mastodon-auth--handle-token-response '(:herp "derp")))
+
+(ert-deftest mastodon-auth--handle-token-response--failure ()
+ :expected-result :failed
+ (mastodon-auth--handle-token-response '(:error "invalid_grant" :error_description "The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.")))
+
+(provide 'mastodon-auth--test)
+;;; mastodon-auth--test.el ends here
diff --git a/test/mastodon-http-tests.el b/test/mastodon-http-tests.el
index 972cedb..d0f715e 100644
--- a/test/mastodon-http-tests.el
+++ b/test/mastodon-http-tests.el
@@ -4,6 +4,6 @@
"Should make a `url-retrieve' of the given URL."
(let ((callback-double (lambda () "double")))
(with-mock
- (mock (url-retrieve-synchronously "https://foo.bar/baz"))
+ (mock (mastodon-http--url-retrieve-synchronously "https://foo.bar/baz"))
(mock (mastodon-auth--access-token) => "test-token")
(mastodon-http--get "https://foo.bar/baz"))))
diff --git a/test/mastodon-media-tests.el b/test/mastodon-media-tests.el
index a586be9..20993f9 100644
--- a/test/mastodon-media-tests.el
+++ b/test/mastodon-media-tests.el
@@ -4,7 +4,7 @@
"Should return text with all expected properties."
(with-mock
(mock (image-type-available-p 'imagemagick) => t)
- (mock (create-image * 'imagemagick t :height 123) => :mock-image)
+ (mock (create-image * (when (version< emacs-version "27.1") 'imagemagick) t :height 123) => :mock-image)
(let* ((mastodon-media--avatar-height 123)
(result (mastodon-media--get-avatar-rendering "http://example.org/img.png"))
@@ -37,12 +37,15 @@
(mastodon-media--avatar-height 123))
(with-mock
(mock (image-type-available-p 'imagemagick) => t)
- (mock (create-image * 'imagemagick t :height 123) => '(image foo))
+ (mock (create-image
+ *
+ (when (version< emacs-version "27.1") 'imagemagick)
+ t :height 123) => '(image foo))
(mock (copy-marker 7) => :my-marker )
(mock (url-retrieve
url
#'mastodon-media--process-image-response
- '(:my-marker (:height 123) 1))
+ `(:my-marker (:height 123) 1 ,url))
=> :called-as-expected)
(with-temp-buffer
@@ -62,7 +65,7 @@
(mock (url-retrieve
url
#'mastodon-media--process-image-response
- '(:my-marker () 1))
+ `(:my-marker () 1 ,url))
=> :called-as-expected)
(with-temp-buffer
@@ -82,7 +85,7 @@
(mock (url-retrieve
"http://example.org/image.png"
#'mastodon-media--process-image-response
- '(:my-marker (:max-height 321) 5))
+ '(:my-marker (:max-height 321) 5 "http://example.org/image.png"))
=> :called-as-expected)
(with-temp-buffer
(insert (concat "Start:"
@@ -101,7 +104,7 @@
(mock (url-retrieve
"http://example.org/image.png"
#'mastodon-media--process-image-response
- '(:my-marker () 5))
+ '(:my-marker () 5 "http://example.org/image.png"))
=> :called-as-expected)
(with-temp-buffer
@@ -117,7 +120,10 @@
(mastodon-media--avatar-height 123))
(with-mock
(mock (image-type-available-p 'imagemagick) => t)
- (mock (create-image * 'imagemagick t :height 123) => '(image foo))
+ (mock (create-image
+ *
+ (when (version< emacs-version "27.1") 'imagemagick)
+ t :height 123) => '(image foo))
(stub url-retrieve => (error "url-retrieve failed"))
(with-temp-buffer
@@ -139,9 +145,11 @@
(insert "start:")
(setq used-marker (copy-marker (point))
saved-marker (copy-marker (point)))
- ;; Mock needed for the preliminary image created in mastodon-media--get-avatar-rendering
+ ;; Mock needed for the preliminary image created in
+ ;; mastodon-media--get-avatar-rendering
(stub create-image => :fake-image)
- (insert (mastodon-media--get-avatar-rendering "http://example.org/image.png")
+ (insert (mastodon-media--get-avatar-rendering
+ "http://example.org/image.png.")
":end")
(with-temp-buffer
(insert "some irrelevant\n"
@@ -150,9 +158,13 @@
"fake\nimage\ndata")
(goto-char (point-min))
- (mock (create-image "fake\nimage\ndata" 'imagemagick t ':image :option) => :fake-image)
+ (mock (create-image
+ "fake\nimage\ndata"
+ (when (version< emacs-version "27.1") 'imagemagick)
+ t ':image :option) => :fake-image)
- (mastodon-media--process-image-response () used-marker '(:image :option) 1)
+ (mastodon-media--process-image-response
+ () used-marker '(:image :option) 1 "http://example.org/image.png")
;; the used marker has been unset:
(should (null (marker-position used-marker)))
diff --git a/test/mastodon-notifications-test.el b/test/mastodon-notifications-test.el
index 19b591d..778d350 100644
--- a/test/mastodon-notifications-test.el
+++ b/test/mastodon-notifications-test.el
@@ -185,7 +185,7 @@
"Ensure get request format for notifictions is accurate."
(let ((mastodon-instance-url "https://instance.url"))
(with-mock
- (mock (mastodon-http--get-json-async "https://instance.url/api/v1/notifications" 'mastodon-tl--init* "*mastodon-notifications*" "notifications" 'mastodon-notifications--timeline))
+ (mock (mastodon-http--get-json "https://instance.url/api/v1/notifications" ))
(mastodon-notifications--get))))
(defun mastodon-notifications--test-type (fun sample)
diff --git a/test/mastodon-tl-tests.el b/test/mastodon-tl-tests.el
index c7dfc9a..24de5d0 100644
--- a/test/mastodon-tl-tests.el
+++ b/test/mastodon-tl-tests.el
@@ -285,7 +285,7 @@ a string or a numeric."
(mastodon-tl--byline mastodon-tl-test-base-toot
'mastodon-tl--byline-author
'mastodon-tl--byline-boosted))
- " Account 42 (@acct42@example.space) 2999-99-99 00:11:22
+ "Account 42 (@acct42@example.space) 2999-99-99 00:11:22
------------
")))))
@@ -395,8 +395,8 @@ a string or a numeric."
(mastodon-tl--byline toot
'mastodon-tl--byline-author
'mastodon-tl--byline-boosted))
- " Account 42 (@acct42@example.space)
- Boosted Account 43 (@acct43@example.space) original time
+ "Account 42 (@acct42@example.space)
+ Boosted Account 43 (@acct43@example.space) original time
------------
")))))