diff options
| author | Holger Dürer <me@hdurer.net> | 2021-11-01 15:53:37 +0100 | 
|---|---|---|
| committer | Holger Dürer <me@hdurer.net> | 2021-11-01 15:53:37 +0100 | 
| commit | e7c7da386c812f9452b072567e822077180f3dc5 (patch) | |
| tree | cfd28454b3c54404381620a1e77e722b6d5e9740 /test | |
| parent | d7593a06912b7946d2fb318093ec7e27c64b3be7 (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.el | 11 | ||||
| -rw-r--r-- | test/mastodon-auth-test.el | 47 | ||||
| -rw-r--r-- | test/mastodon-http-tests.el | 2 | ||||
| -rw-r--r-- | test/mastodon-media-tests.el | 34 | ||||
| -rw-r--r-- | test/mastodon-notifications-test.el | 2 | ||||
| -rw-r--r-- | test/mastodon-tl-tests.el | 6 | 
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    ------------  "))))) | 
