aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorHolger Dürer <me@hdurer.net>2021-11-09 18:24:54 +0100
committerHolger Dürer <me@hdurer.net>2021-11-10 20:12:12 +0100
commit522926bcca0caf45516da3dcd00c944066641965 (patch)
treea53083dd1483f06e7833e0e0dacbf080cff15293 /test
parent5df05d94926ada6843cbc65aea4b64c18429fdf1 (diff)
Hamonize tests.
- Add a header comment explicitly switching off lexical binding - Harmonize naming (always start with module and double hyphen) - Ensure all tests have at least a minimal doc string. - Move tests from `mastodon-auth-test.el` to `mastodon-auth-tests.el`
Diffstat (limited to 'test')
-rw-r--r--test/mastodon-auth-test.el59
-rw-r--r--test/mastodon-auth-tests.el59
-rw-r--r--test/mastodon-client-tests.el26
-rw-r--r--test/mastodon-http-tests.el13
-rw-r--r--test/mastodon-media-tests.el20
-rw-r--r--test/mastodon-notifications-test.el14
-rw-r--r--test/mastodon-search-tests.el18
-rw-r--r--test/mastodon-tl-tests.el27
-rw-r--r--test/mastodon-toot-tests.el25
9 files changed, 134 insertions, 127 deletions
diff --git a/test/mastodon-auth-test.el b/test/mastodon-auth-test.el
deleted file mode 100644
index 4372047..0000000
--- a/test/mastodon-auth-test.el
+++ /dev/null
@@ -1,59 +0,0 @@
-;;; 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 ()
- (should
- (equal
- '(error "Unknown response from mastodon-auth--get-token!")
- (condition-case error
- (progn
- (mastodon-auth--handle-token-response '(:herp "derp"))
- nil)
- (t error)))))
-
-(ert-deftest mastodon-auth--handle-token-response--failure ()
- (let ((error-message "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."))
- (should
- (equal
- `(error ,(format "Mastodon-auth--access-token: invalid_grant: %s" error-message))
- (condition-case error
- (mastodon-auth--handle-token-response
- `(:error "invalid_grant" :error_description ,error-message))
- (t error))))))
-
-(provide 'mastodon-auth--test)
-;;; mastodon-auth--test.el ends here
diff --git a/test/mastodon-auth-tests.el b/test/mastodon-auth-tests.el
index fda04eb..6a090b7 100644
--- a/test/mastodon-auth-tests.el
+++ b/test/mastodon-auth-tests.el
@@ -1,6 +1,38 @@
+;;; mastodon-auth-test.el --- Tests for mastodon-auth.el -*- lexical-binding: nil -*-
+
(require 'el-mock)
-(ert-deftest generate-token--no-storing-credentials ()
+(ert-deftest mastodon-auth--handle-token-response--good ()
+ "Should extract the access token from a good response."
+ (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 ()
+ "Should throw an error when the response is unparsable."
+ (should
+ (equal
+ '(error "Unknown response from mastodon-auth--get-token!")
+ (condition-case error
+ (progn
+ (mastodon-auth--handle-token-response '(:herp "derp"))
+ nil)
+ (t error)))))
+
+(ert-deftest mastodon-auth--handle-token-response--failure ()
+ "Should throw an error when the response indicates an error."
+ (let ((error-message "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."))
+ (should
+ (equal
+ `(error ,(format "Mastodon-auth--access-token: invalid_grant: %s" error-message))
+ (condition-case error
+ (mastodon-auth--handle-token-response
+ `(:error "invalid_grant" :error_description ,error-message))
+ (t error))))))
+
+(ert-deftest mastodon-auth--generate-token--no-storing-credentials ()
"Should make `mastdon-http--post' request to generate auth token."
(with-mock
(let ((mastodon-auth-source-file "")
@@ -19,7 +51,7 @@
:unauthenticated))
(mastodon-auth--generate-token))))
-(ert-deftest generate-token--storing-credentials ()
+(ert-deftest mastodon-auth--generate-token--storing-credentials ()
"Should make `mastdon-http--post' request to generate auth token."
(with-mock
(let ((mastodon-auth-source-file "~/.authinfo")
@@ -41,26 +73,33 @@
:unauthenticated))
(mastodon-auth--generate-token))))
-(ert-deftest get-token ()
+(ert-deftest mastodon-auth--get-token ()
"Should generate token and return JSON response."
(with-temp-buffer
(with-mock
(mock (mastodon-auth--generate-token) => (progn
(insert "\n\n{\"access_token\":\"abcdefg\"}")
(current-buffer)))
- (should (equal (mastodon-auth--get-token) '(:access_token "abcdefg"))))))
+ (should
+ (equal (mastodon-auth--get-token)
+ '(:access_token "abcdefg"))))))
-(ert-deftest access-token-found ()
+(ert-deftest mastodon-auth--access-token-found ()
"Should return value in `mastodon-auth--token-alist' if found."
(let ((mastodon-instance-url "https://instance.url")
(mastodon-auth--token-alist '(("https://instance.url" . "foobar")) ))
- (should (string= (mastodon-auth--access-token) "foobar"))))
+ (should
+ (string= (mastodon-auth--access-token) "foobar"))))
-(ert-deftest access-token-2 ()
+(ert-deftest mastodon-auth--access-token-not-found ()
"Should set and return `mastodon-auth--token' if nil."
(let ((mastodon-instance-url "https://instance.url")
- (mastodon-auth--token nil))
+ (mastodon-auth--token-alist nil))
(with-mock
(mock (mastodon-auth--get-token) => '(:access_token "foobaz"))
- (should (string= (mastodon-auth--access-token) "foobaz"))
- (should (equal mastodon-auth--token-alist '(("https://instance.url" . "foobaz")))))))
+ (should
+ (string= (mastodon-auth--access-token)
+ "foobaz"))
+ (should
+ (equal mastodon-auth--token-alist
+ '(("https://instance.url" . "foobaz")))))))
diff --git a/test/mastodon-client-tests.el b/test/mastodon-client-tests.el
index 12d2350..b112729 100644
--- a/test/mastodon-client-tests.el
+++ b/test/mastodon-client-tests.el
@@ -1,6 +1,8 @@
+;;; mastodon-client-test.el --- Tests for mastodon-client.el -*- lexical-binding: nil -*-
+
(require 'el-mock)
-(ert-deftest register ()
+(ert-deftest mastodon-client--register ()
"Should POST to /apps."
(with-mock
(mock (mastodon-http--api "apps") => "https://instance.url/api/v1/apps")
@@ -13,7 +15,7 @@
:unauthenticated))
(mastodon-client--register)))
-(ert-deftest fetch ()
+(ert-deftest mastodon-client--fetch ()
"Should return client registration JSON."
(with-temp-buffer
(with-mock
@@ -22,7 +24,7 @@
(current-buffer)))
(should (equal (mastodon-client--fetch) '(:foo "bar"))))))
-(ert-deftest store-1 ()
+(ert-deftest mastodon-client--store-1 ()
"Should return the client plist."
(let ((mastodon-instance-url "http://mastodon.example")
(plist '(:client_id "id" :client_secret "secret")))
@@ -33,8 +35,8 @@
(client (cdr (plstore-get plstore "mastodon-http://mastodon.example"))))
(should (equal (mastodon-client--store) plist))))))
-(ert-deftest store-2 ()
- "Should store client in `mastodon-client--token-file'."
+(ert-deftest mastodon-client--store-2 ()
+ "Should store client in `mastodon-client--token-file'."
(let* ((mastodon-instance-url "http://mastodon.example")
(plstore (plstore-open "stubfile.plstore"))
(client (cdr (plstore-get plstore "mastodon-http://mastodon.example"))))
@@ -42,7 +44,7 @@
(should (string= (plist-get client :client_id) "id"))
(should (string= (plist-get client :client_secret) "secret"))))
-(ert-deftest read-finds-match ()
+(ert-deftest mastodon-client--read-finds-match ()
"Should return mastodon client from `mastodon-token-file' if it exists."
(let ((mastodon-instance-url "http://mastodon.example"))
(with-mock
@@ -50,27 +52,27 @@
(should (equal (mastodon-client--read)
'(:client_id "id2" :client_secret "secret2"))))))
-(ert-deftest read-finds-no-match ()
+(ert-deftest mastodon-client--read-finds-no-match ()
"Should return mastodon client from `mastodon-token-file' if it exists."
(let ((mastodon-instance-url "http://mastodon.social"))
(with-mock
(mock (mastodon-client--token-file) => "fixture/client.plstore")
(should (equal (mastodon-client--read) nil)))))
-(ert-deftest read-empty-store ()
+(ert-deftest mastodon-client--read-empty-store ()
"Should return nil if mastodon client is not present in the plstore."
(with-mock
(mock (mastodon-client--token-file) => "fixture/empty.plstore")
(should (equal (mastodon-client--read) nil))))
-(ert-deftest client-set-and-matching ()
+(ert-deftest mastodon-client--client-set-and-matching ()
"Should return `mastondon-client' if `mastodon-client--client-details-alist' is non-nil and instance url is included."
(let ((mastodon-instance-url "http://mastodon.example")
(mastodon-client--client-details-alist '(("https://other.example" . :no-match)
("http://mastodon.example" . :matches))))
(should (eq (mastodon-client) :matches))))
-(ert-deftest client-set-but-not-matching ()
+(ert-deftest mastodon-client--client-set-but-not-matching ()
"Should read from `mastodon-token-file' if wrong data is cached."
(let ((mastodon-instance-url "http://mastodon.example")
(mastodon-client--client-details-alist '(("http://other.example" :wrong))))
@@ -81,7 +83,7 @@
'(("http://mastodon.example" :client_id "foo" :client_secret "bar")
("http://other.example" :wrong)))))))
-(ert-deftest client-unset ()
+(ert-deftest mastodon-client--client-unset ()
"Should read from `mastodon-token-file' if available."
(let ((mastodon-instance-url "http://mastodon.example")
(mastodon-client--client-details-alist nil))
@@ -91,7 +93,7 @@
(should (equal mastodon-client--client-details-alist
'(("http://mastodon.example" :client_id "foo" :client_secret "bar")))))))
-(ert-deftest client-unset-and-not-in-storage ()
+(ert-deftest mastodon-client--client-unset-and-not-in-storage ()
"Should store client data in plstore if it can't be read."
(let ((mastodon-instance-url "http://mastodon.example")
(mastodon-client--client-details-alist nil))
diff --git a/test/mastodon-http-tests.el b/test/mastodon-http-tests.el
index d0f715e..00e1f41 100644
--- a/test/mastodon-http-tests.el
+++ b/test/mastodon-http-tests.el
@@ -1,9 +1,10 @@
+;;; mastodon-http-test.el --- Tests for mastodon-http.el -*- lexical-binding: nil -*-
+
(require 'el-mock)
-(ert-deftest mastodon-http:get:retrieves-endpoint ()
+(ert-deftest mastodon-http--get-retrieves-endpoint ()
"Should make a `url-retrieve' of the given URL."
- (let ((callback-double (lambda () "double")))
- (with-mock
- (mock (mastodon-http--url-retrieve-synchronously "https://foo.bar/baz"))
- (mock (mastodon-auth--access-token) => "test-token")
- (mastodon-http--get "https://foo.bar/baz"))))
+ (with-mock
+ (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 3345e74..886c7b0 100644
--- a/test/mastodon-media-tests.el
+++ b/test/mastodon-media-tests.el
@@ -1,6 +1,8 @@
+;;; mastodon-media-test.el --- Tests for mastodon-media.el -*- lexical-binding: nil -*-
+
(require 'el-mock)
-(ert-deftest mastodon-media:get-avatar-rendering ()
+(ert-deftest mastodon-media--get-avatar-rendering ()
"Should return text with all expected properties."
(with-mock
(mock (image-type-available-p 'imagemagick) => t)
@@ -16,7 +18,7 @@
(should (eq 'avatar (plist-get properties 'media-type)))
(should (eq :mock-image (plist-get properties 'display))))))
-(ert-deftest mastodon-media:get-media-link-rendering ()
+(ert-deftest mastodon-media--get-media-link-rendering ()
"Should return text with all expected properties."
(with-mock
(mock (create-image * nil t) => :mock-image)
@@ -39,7 +41,7 @@
(should (string= "RET/i: load full image (prefix: copy URL), +/-: zoom, r: rotate, o: save preview"
(plist-get properties 'help-echo))))))
-(ert-deftest mastodon-media:load-image-from-url:avatar-with-imagemagic ()
+(ert-deftest mastodon-media--load-image-from-url-avatar-with-imagemagic ()
"Should make the right call to url-retrieve."
(let ((url "http://example.org/image.png")
(mastodon-media--avatar-height 123))
@@ -63,7 +65,7 @@
(should (eq :called-as-expected (mastodon-media--load-image-from-url url 'avatar 7 1)))))))
-(ert-deftest mastodon-media:load-image-from-url:avatar-without-imagemagic ()
+(ert-deftest mastodon-media--load-image-from-url-avatar-without-imagemagic ()
"Should make the right call to url-retrieve."
(let ((url "http://example.org/image.png"))
(with-mock
@@ -83,7 +85,7 @@
(should (eq :called-as-expected (mastodon-media--load-image-from-url url 'avatar 7 1)))))))
-(ert-deftest mastodon-media:load-image-from-url:media-link-with-imagemagic ()
+(ert-deftest mastodon-media--load-image-from-url-media-link-with-imagemagic ()
"Should make the right call to url-retrieve."
(let ((url "http://example.org/image.png"))
(with-mock
@@ -102,7 +104,7 @@
(let ((mastodon-media--preview-max-height 321))
(should (eq :called-as-expected (mastodon-media--load-image-from-url url 'media-link 7 5))))))))
-(ert-deftest mastodon-media:load-image-from-url:media-link-without-imagemagic ()
+(ert-deftest mastodon-media--load-image-from-url-media-link-without-imagemagic ()
"Should make the right call to url-retrieve."
(let ((url "http://example.org/image.png"))
(with-mock
@@ -122,7 +124,7 @@
(let ((mastodon-media--preview-max-height 321))
(should (eq :called-as-expected (mastodon-media--load-image-from-url url 'media-link 7 5))))))))
-(ert-deftest mastodon-media:load-image-from-url:url-fetching-fails ()
+(ert-deftest mastodon-media--load-image-from-url-url-fetching-fails ()
"Should cope with failures in url-retrieve."
(let ((url "http://example.org/image.png")
(mastodon-media--avatar-height 123))
@@ -143,7 +145,7 @@
;; the media state was updated so we won't load this again:
(should (eq 'loading-failed (get-text-property 7 'media-state)))))))
-(ert-deftest mastodon-media:process-image-response ()
+(ert-deftest mastodon-media--process-image-response ()
"Should process the HTTP response and adjust the source buffer."
(with-temp-buffer
(with-mock
@@ -180,7 +182,7 @@
(should (eq 'loaded (get-text-property saved-marker 'media-state source-buffer)))
(should (eq ':fake-image (get-text-property saved-marker 'display source-buffer))))))))
-(ert-deftest mastodon-media:inline-images ()
+(ert-deftest mastodon-media--inline-images ()
"Should process all media in buffer."
(with-mock
;; Stub needed for the test setup:
diff --git a/test/mastodon-notifications-test.el b/test/mastodon-notifications-test.el
index 778d350..ee6748a 100644
--- a/test/mastodon-notifications-test.el
+++ b/test/mastodon-notifications-test.el
@@ -1,8 +1,10 @@
+;;; mastodon-notifications-test.el --- Tests for mastodon-notifications.el -*- lexical-binding: nil -*-
+
(require 'cl-lib)
(require 'cl-macs)
(require 'el-mock)
-(defconst mastodon-notifications-test-base-mentioned
+(defconst mastodon-notifications--test-base-mentioned
'((id . "1234")
(type . "mention")
(created_at . "2018-03-06T04:27:21.288Z" )
@@ -43,7 +45,7 @@
(favourites_count . 0)
(reblog))))
-(defconst mastodon-notifications-test-base-favourite
+(defconst mastodon-notifications--test-base-favourite
'((id . "1234")
(type . "favourite")
(created_at . "2018-03-06T04:27:21.288Z" )
@@ -84,7 +86,7 @@
(favourites_count . 0)
(reblog))))
-(defconst mastodon-notifications-test-base-boosted
+(defconst mastodon-notifications--test-base-boosted
'((id . "1234")
(type . "reblog")
(created_at . "2018-03-06T04:27:21.288Z" )
@@ -125,7 +127,7 @@
(favourites_count . 0)
(reblog))))
-(defconst mastodon-notifications-test-base-followed
+(defconst mastodon-notifications--test-base-followed
'((id . "1234")
(type . "follow")
(created_at . "2018-03-06T04:27:21.288Z" )
@@ -166,7 +168,7 @@
(favourites_count . 0)
(reblog))))
-(defconst mastodon-notifications-test-base-favourite
+(defconst mastodon-notifications--test-base-favourite
'((id . "1234")
(type . "mention")
(created_at . "2018-03-06T04:27:21.288Z" )
@@ -181,7 +183,7 @@
(statuses_count . 101)
(note . "E"))))
-(ert-deftest notification-get ()
+(ert-deftest mastodon-notifications--notification-get ()
"Ensure get request format for notifictions is accurate."
(let ((mastodon-instance-url "https://instance.url"))
(with-mock
diff --git a/test/mastodon-search-tests.el b/test/mastodon-search-tests.el
index 552f467..996f786 100644
--- a/test/mastodon-search-tests.el
+++ b/test/mastodon-search-tests.el
@@ -1,4 +1,4 @@
-
+;;; mastodon-search-test.el --- Tests for mastodon-search.el -*- lexical-binding: nil -*-
(defconst mastodon-search--single-account-query
'((id . "242971")
@@ -37,7 +37,7 @@
(verified_at))]))
"A sample mastodon account search result (parsed json)")
-(defconst mastodon-search-test-single-tag
+(defconst mastodon-search--test-single-tag
'((name . "TeamBringBackVisibleScrollbars")
(url . "https://todon.nl/tags/TeamBringBackVisibleScrollbars")
(history . [((day . "1636156800") (uses . "0") (accounts . "0"))
@@ -48,7 +48,7 @@
((day . "1635724800") (uses . "0") (accounts . "0"))
((day . "1635638400") (uses . "0") (accounts . "0"))])))
-(defconst mastodon-search-test-single-status
+(defconst mastodon-search--test-single-status
'((id . "107230316503209282")
(created_at . "2021-11-06T13:19:40.628Z")
(in_reply_to_id)
@@ -114,33 +114,33 @@
(card)
(poll)))
-(ert-deftest mastodon-search-test-get-user-info-@ ()
+(ert-deftest mastodon-search--get-user-info-@ ()
"Should build a list from a single account for company completion."
(should
(equal
(mastodon-search--get-user-info-@ mastodon-search--single-account-query)
'(": ( ) { : | : & } ; :" "@mousebot" "https://todon.nl/@mousebot"))))
-(ert-deftest mastodon-search-test-get-user-info ()
+(ert-deftest mastodon-search--get-user-info ()
"Should build a list from a single account for company completion."
(should
(equal
(mastodon-search--get-user-info mastodon-search--single-account-query)
'(": ( ) { : | : & } ; :" "mousebot" "https://todon.nl/@mousebot"))))
-(ert-deftest mastodon-search-test-get-hashtag-info ()
+(ert-deftest mastodon-search--get-hashtag-info ()
"Should build a list of hashtag name and URL."
(should
(equal
- (mastodon-search--get-hashtag-info mastodon-search-test-single-tag)
+ (mastodon-search--get-hashtag-info mastodon-search--test-single-tag)
'("TeamBringBackVisibleScrollbars"
"https://todon.nl/tags/TeamBringBackVisibleScrollbars"))))
-(ert-deftest mastodon-search-test-get-status-info ()
+(ert-deftest mastodon-search--get-status-info ()
"Should return a list of ID, timestamp, content, and spoiler."
(should
(equal
- (mastodon-search--get-status-info mastodon-search-test-single-status)
+ (mastodon-search--get-status-info mastodon-search--test-single-status)
'("107230316503209282"
"2021-11-06T13:19:40.628Z"
""
diff --git a/test/mastodon-tl-tests.el b/test/mastodon-tl-tests.el
index e4606cc..da3b315 100644
--- a/test/mastodon-tl-tests.el
+++ b/test/mastodon-tl-tests.el
@@ -1,3 +1,5 @@
+;;; mastodon-tl-test.el --- Tests for mastodon-tl.el -*- lexical-binding: nil -*-
+
(require 'cl-lib)
(require 'cl-macs)
(require 'el-mock)
@@ -89,46 +91,46 @@
(reblogged)))
"A sample reblogged/boosted toot (parsed json)")
-(ert-deftest remove-html-1 ()
+(ert-deftest mastodon-tl--remove-html-1 ()
"Should remove all <span> tags."
(let ((input "<span class=\"h-card\">foobar</span> <span>foobaz</span>"))
(should (string= (mastodon-tl--remove-html input) "foobar foobaz"))))
-(ert-deftest remove-html-2 ()
+(ert-deftest mastodon-tl--remove-html-2 ()
"Should replace <\p> tags with two new lines."
(let ((input "foobar</p>"))
(should (string= (mastodon-tl--remove-html input) "foobar\n\n"))))
-(ert-deftest toot-id-boosted ()
+(ert-deftest mastodon-tl--toot-id-boosted ()
"If a toot is boostedm, return the reblog id."
(should (string= (mastodon-tl--as-string
(mastodon-tl--toot-id mastodon-tl-test-base-boosted-toot))
"4543919")))
-(ert-deftest toot-id ()
+(ert-deftest mastodon-tl--toot-id ()
"If a toot is boostedm, return the reblog id."
(should (string= (mastodon-tl--as-string
(mastodon-tl--toot-id mastodon-tl-test-base-toot))
"61208")))
-(ert-deftest as-string-1 ()
+(ert-deftest mastodon-tl--as-string-1 ()
"Should accept a string or number and return a string."
(let ((id "1000"))
(should (string= (mastodon-tl--as-string id) id))))
-(ert-deftest as-string-2 ()
+(ert-deftest mastodon-tl--as-string-2 ()
"Should accept a string or number and return a string."
(let ((id 1000))
(should (string= (mastodon-tl--as-string id) (number-to-string id)))))
-(ert-deftest more-json ()
+(ert-deftest mastodon-tl--more-json ()
"Should request toots older than max_id."
(let ((mastodon-instance-url "https://instance.url"))
(with-mock
(mock (mastodon-http--get-json "https://instance.url/api/v1/timelines/foo?max_id=12345"))
(mastodon-tl--more-json "timelines/foo" 12345))))
-(ert-deftest more-json-id-string ()
+(ert-deftest mastodon-tl--more-json-id-string ()
"Should request toots older than max_id.
`mastodon-tl--more-json' should accept and id that is either
@@ -138,7 +140,7 @@ a string or a numeric."
(mock (mastodon-http--get-json "https://instance.url/api/v1/timelines/foo?max_id=12345"))
(mastodon-tl--more-json "timelines/foo" "12345"))))
-(ert-deftest update-json-id-string ()
+(ert-deftest mastodon-tl--update-json-id-string ()
"Should request toots more recent than since_id.
`mastodon-tl--updated-json' should accept and id that is either
@@ -912,23 +914,27 @@ constant."
"Browse tag #sampletag"))))
(ert-deftest mastodon-tl--extract-hashtag-from-url-mastodon-link ()
+ "Should extract the hashtag from a tags url."
(should (equal (mastodon-tl--extract-hashtag-from-url
"https://example.org/tags/foo"
"https://example.org")
"foo")))
(ert-deftest mastodon-tl--extract-hashtag-from-url-other-link ()
+ "Should extract the hashtag from a tag url."
(should (equal (mastodon-tl--extract-hashtag-from-url
"https://example.org/tag/foo"
"https://example.org")
"foo")))
(ert-deftest mastodon-tl--extract-hashtag-from-url-wrong-instance ()
+ "Should not find a tag when the instance doesn't match."
(should (null (mastodon-tl--extract-hashtag-from-url
"https://example.org/tags/foo"
"https://other.example.org"))))
(ert-deftest mastodon-tl--extract-hashtag-from-url-not-tag ()
+ "Should not find a hashtag when not a tag url"
(should (null (mastodon-tl--extract-hashtag-from-url
"https://example.org/@userid"
"https://example.org"))))
@@ -957,17 +963,20 @@ constant."
"Browse user profile of @foo@bar.example"))))
(ert-deftest mastodon-tl--extract-userhandle-from-url-correct-case ()
+ "Should extract the user handle from url."
(should (equal (mastodon-tl--extract-userhandle-from-url
"https://example.org/@someuser"
"@SomeUser")
"@SomeUser@example.org")))
(ert-deftest mastodon-tl--extract-userhandle-from-url-missing-at-in-text ()
+ "Should not extract a user handle from url if the text is wrong."
(should (null (mastodon-tl--extract-userhandle-from-url
"https://example.org/@someuser"
"SomeUser"))))
(ert-deftest mastodon-tl--extract-userhandle-from-url-query-in-url ()
+ "Should not extract a user handle from url if there is a query param."
(should (null (mastodon-tl--extract-userhandle-from-url
"https://example.org/@someuser?shouldnot=behere"
"SomeUser"))))
diff --git a/test/mastodon-toot-tests.el b/test/mastodon-toot-tests.el
index 06da870..804c55a 100644
--- a/test/mastodon-toot-tests.el
+++ b/test/mastodon-toot-tests.el
@@ -1,6 +1,8 @@
+;;; mastodon-toot-test.el --- Tests for mastodon-toot.el -*- lexical-binding: nil -*-
+
(require 'el-mock)
-(defconst mastodon-toot-multi-mention
+(defconst mastodon-toot--multi-mention
'((mentions .
[((id . "1")
(username . "federated")
@@ -18,28 +20,37 @@
(defconst mastodon-toot-no-mention
'((mentions . [])))
-(ert-deftest toot-multi-mentions ()
+(ert-deftest mastodon-toot--multi-mentions ()
+ "Should build a correct mention string from the test toot data.
+
+Even the local name \"local\" gets a domain name added."
(let ((mastodon-auth--acct-alist '(("https://local.social". "null")))
(mastodon-instance-url "https://local.social"))
(should (string=
- (mastodon-toot--mentions mastodon-toot-multi-mention)
+ (mastodon-toot--mentions mastodon-toot--multi-mention)
"@local@local.social @federated@federated.social @federated@federated.cafe "))))
-(ert-deftest toot-multi-mentions-with-name ()
+(ert-deftest mastodon-toot--multi-mentions-with-name ()
+ "Should build a correct mention string omitting self.
+
+Here \"local\" is the user themselves and gets omitted from the
+mention string."
(let ((mastodon-auth--acct-alist
'(("https://local.social". "local")))
(mastodon-instance-url "https://local.social"))
(should (string=
- (mastodon-toot--mentions mastodon-toot-multi-mention)
+ (mastodon-toot--mentions mastodon-toot--multi-mention)
"@federated@federated.social @federated@federated.cafe "))))
-(ert-deftest toot-no-mention ()
+(ert-deftest mastodon-toot--no-mention ()
+ "Should construct an empty mention string without mentions."
(let ((mastodon-auth--acct-alist
'(("https://local.social". "null")))
(mastodon-instance-url "https://local.social"))
(should (string= (mastodon-toot--mentions mastodon-toot-no-mention) ""))))
-(ert-deftest cancel ()
+(ert-deftest mastodon-toot--cancel ()
+ "Should kill the buffer when cancelling the toot."
(with-mock
(mock (kill-buffer-and-window))
(mastodon-toot--cancel)