aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorHolger Dürer <me@hdurer.net>2017-06-07 18:29:10 +0100
committerJohnson Denen <johnson.denen@gmail.com>2017-06-19 13:46:27 -0400
commit60ac9773d29a0d761d8be42878b471c755a59779 (patch)
treef5874153b7219f257785040c322c1b782b4ec84f /test
parent0108cd1e7abf621cf65a89e4f6ad12f8dcaa2eed (diff)
Catch any errors thrown during url-retrieve.
On Emacs24 I've been able to reliably fail url fetching which exposed issues in loading a timeline (it aborts the loading). This catches any errors, marking the image load as failed so that we won't retry (retries are a TODO item I guess) and then succeeds the function so the rest of the timeline loading can proceed.
Diffstat (limited to 'test')
-rw-r--r--test/mastodon-media-tests.el18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/mastodon-media-tests.el b/test/mastodon-media-tests.el
index 4bb89c7..7031e90 100644
--- a/test/mastodon-media-tests.el
+++ b/test/mastodon-media-tests.el
@@ -111,6 +111,24 @@
(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 ()
+ "Should cope with failures in url-retrieve."
+ (let ((url "http://example.org/image.png")
+ (mastodon-media--avatar-height 123))
+ (with-mock
+ (mock (image-type-available-p 'imagemagick) => t)
+ (mock (create-image * 'imagemagick t :height 123) => '(image foo))
+ (stub url-retrieve => (error "url-retrieve failed"))
+
+ (with-temp-buffer
+ (insert (concat "Start:"
+ (mastodon-media--get-avatar-rendering "http://example.org/img.png")
+ ":rest"))
+
+ (should (eq :loading-failed (mastodon-media--load-image-from-url url 'avatar 7 1)))
+ ;; 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 ()
"Should process the HTTP response and adjust the source buffer."
(with-temp-buffer