summaryrefslogtreecommitdiff
path: root/test/lisp/emacs-lisp/package-tests.el
diff options
context:
space:
mode:
Diffstat (limited to 'test/lisp/emacs-lisp/package-tests.el')
-rw-r--r--test/lisp/emacs-lisp/package-tests.el61
1 files changed, 61 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el
index a81506d626b..b0da54a3015 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -857,6 +857,67 @@ If the rest succeed, just ignore the unsupported one."
(insert "7")
(should-error (package--verify-package-size pkg-desc)))))
+(ert-deftest package-test-parse-valid-until-from-buffer ()
+ (with-temp-buffer
+ (insert ";; Valid-Until: 2020-05-01T15:43:35.000Z\n(foo bar baz)")
+ (should (equal (package--parse-valid-until-from-buffer "foo")
+ '(24236 17319)))))
+
+(ert-deftest package-test-parse-last-updated-from-buffer ()
+ (with-temp-buffer
+ (insert ";; Last-Updated: 2020-05-01T15:43:35.000Z\n(foo bar baz)")
+ (should (equal (package--parse-last-updated-from-buffer "foo")
+ '(24236 17319)))))
+
+(defun package-tests--parse-last-updated (timestamp)
+ (with-temp-buffer
+ (insert timestamp)
+ (package--parse-last-updated-from-buffer "test")))
+
+(ert-deftest package-test-archive-verify-timestamp ()
+ (let ((a (package-tests--parse-last-updated
+ ";; Last-Updated: 2020-05-01T15:43:35.000Z\n"))
+ (b (package-tests--parse-last-updated
+ ";; Last-Updated: 2020-06-01T15:43:35.000Z\n"))
+ (c (package-tests--parse-last-updated
+ ";; Last-Updated: 2020-07-01T15:43:35.000Z\n")))
+ (should (package--archive-verify-timestamp b nil "foo"))
+ (should (package--archive-verify-timestamp b a "foo"))
+ (should (package--archive-verify-timestamp c a "foo"))
+ (should (package--archive-verify-timestamp c b "foo"))
+ ;; Signal error.
+ (should-error (package--archive-verify-timestamp a b "foo")
+ :type 'bad-timestamp)
+ (should-error (package--archive-verify-timestamp a c "foo")
+ :type 'bad-timestamp)
+ (should-error (package--archive-verify-timestamp b c "foo")
+ :type 'bad-timestamp)
+ (should-error (package--archive-verify-timestamp nil a "foo")
+ :type 'bad-timestamp)))
+
+(ert-deftest package-test-check-archive-timestamp ()
+ (let ((package-user-dir package-test-data-dir))
+ (with-temp-buffer
+ (insert ";; Last-Updated: 2020-01-01T00:00:00.000Z\n")
+ (package--check-archive-timestamp "older")
+ (package--check-archive-timestamp "missing")
+ (should-error (package--check-archive-timestamp "newer")
+ :type 'bad-timestamp))))
+
+(ert-deftest package-test-check-archive-timestamp/not-expired ()
+ (let ((package-user-dir package-test-data-dir))
+ (with-temp-buffer
+ (insert ";; Last-Updated: 2020-01-01T00:00:00.000Z\n"
+ ";; Valid-Until: 2999-01-02T00:00:00.000Z\n")
+ (should-not (package--check-archive-timestamp "older")))))
+
+(ert-deftest package-test-check-archive-timestamp/expired ()
+ (let ((package-user-dir package-test-data-dir))
+ (with-temp-buffer
+ (insert ";; Last-Updated: 2020-01-01T00:00:00.000Z\n"
+ ";; Valid-Until: 2020-01-02T00:00:00.000Z\n")
+ (should-error (package--check-archive-timestamp "older")))))
+
;;; Tests for package-x features.