diff options
| -rw-r--r-- | test/lisp/emacs-lisp/package-tests.el | 66 |
1 files changed, 51 insertions, 15 deletions
diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el index 8f021bf6fc9..c757bccf672 100644 --- a/test/lisp/emacs-lisp/package-tests.el +++ b/test/lisp/emacs-lisp/package-tests.el | |||
| @@ -190,12 +190,33 @@ Must called from within a `tar-mode' buffer." | |||
| 190 | "Return the package version as a string." | 190 | "Return the package version as a string." |
| 191 | (package-version-join (package-desc-version desc))) | 191 | (package-version-join (package-desc-version desc))) |
| 192 | 192 | ||
| 193 | (defun package-test--compatible-p (pkg-desc pkg-sample &optional kind) | ||
| 194 | (and (cl-every (lambda (f) | ||
| 195 | (equal (funcall f pkg-desc) | ||
| 196 | (funcall f pkg-sample))) | ||
| 197 | (cons (if kind #'package-desc-kind #'ignore) | ||
| 198 | '(package-desc-name | ||
| 199 | package-desc-version | ||
| 200 | package-desc-summary | ||
| 201 | package-desc-reqs | ||
| 202 | package-desc-archive | ||
| 203 | package-desc-dir | ||
| 204 | package-desc-signed))) | ||
| 205 | ;; The `extras' field should contain at least the specified elements. | ||
| 206 | (let ((extras (package-desc-extras pkg-desc)) | ||
| 207 | (extras-sample (package-desc-extras pkg-sample))) | ||
| 208 | (cl-every (lambda (sample-elem) | ||
| 209 | (member sample-elem extras)) | ||
| 210 | extras-sample)))) | ||
| 211 | |||
| 193 | (ert-deftest package-test-desc-from-buffer () | 212 | (ert-deftest package-test-desc-from-buffer () |
| 194 | "Parse an elisp buffer to get a `package-desc' object." | 213 | "Parse an elisp buffer to get a `package-desc' object." |
| 195 | (with-package-test (:basedir "package-resources" :file "simple-single-1.3.el") | 214 | (with-package-test (:basedir "package-resources" :file "simple-single-1.3.el") |
| 196 | (should (equal (package-buffer-info) simple-single-desc))) | 215 | (should (package-test--compatible-p |
| 216 | (package-buffer-info) simple-single-desc 'kind))) | ||
| 197 | (with-package-test (:basedir "package-resources" :file "simple-depend-1.0.el") | 217 | (with-package-test (:basedir "package-resources" :file "simple-depend-1.0.el") |
| 198 | (should (equal (package-buffer-info) simple-depend-desc))) | 218 | (should (package-test--compatible-p |
| 219 | (package-buffer-info) simple-depend-desc 'kind))) | ||
| 199 | (with-package-test (:basedir "package-resources" | 220 | (with-package-test (:basedir "package-resources" |
| 200 | :file "multi-file-0.2.3.tar") | 221 | :file "multi-file-0.2.3.tar") |
| 201 | (tar-mode) | 222 | (tar-mode) |
| @@ -223,15 +244,12 @@ Must called from within a `tar-mode' buffer." | |||
| 223 | (with-temp-buffer | 244 | (with-temp-buffer |
| 224 | (insert-file-contents (expand-file-name "simple-single-pkg.el" | 245 | (insert-file-contents (expand-file-name "simple-single-pkg.el" |
| 225 | simple-pkg-dir)) | 246 | simple-pkg-dir)) |
| 226 | (should (string= (buffer-string) | 247 | (goto-char (point-min)) |
| 227 | (concat ";;; -*- no-byte-compile: t -*-\n" | 248 | (let ((sexp (read (current-buffer)))) |
| 228 | "(define-package \"simple-single\" \"1.3\" " | 249 | (should (eq (car-safe sexp) 'define-package)) |
| 229 | "\"A single-file package " | 250 | (should (package-test--compatible-p |
| 230 | "with no dependencies\" 'nil " | 251 | (apply #'package-desc-from-define (cdr sexp)) |
| 231 | ":authors '((\"J. R. Hacker\" . \"jrh@example.com\")) " | 252 | simple-single-desc)))) |
| 232 | ":maintainer '(\"J. R. Hacker\" . \"jrh@example.com\") " | ||
| 233 | ":url \"http://doodles.au\"" | ||
| 234 | ")\n")))) | ||
| 235 | (should (file-exists-p autoloads-file)) | 253 | (should (file-exists-p autoloads-file)) |
| 236 | (should-not (get-file-buffer autoloads-file))))) | 254 | (should-not (get-file-buffer autoloads-file))))) |
| 237 | 255 | ||
| @@ -580,8 +598,17 @@ Must called from within a `tar-mode' buffer." | |||
| 580 | (setq archive-contents | 598 | (setq archive-contents |
| 581 | (package-read-from-string | 599 | (package-read-from-string |
| 582 | (buffer-substring (point-min) (point-max))))) | 600 | (buffer-substring (point-min) (point-max))))) |
| 583 | (should (equal archive-contents | 601 | (should (equal 1 (car archive-contents))) |
| 584 | (list 1 package-x-test--single-archive-entry-1-3)))))) | 602 | (should (equal 2 (length archive-contents))) |
| 603 | (let ((pac (cadr archive-contents)) | ||
| 604 | (pac-sample package-x-test--single-archive-entry-1-3)) | ||
| 605 | (should (equal (pop pac) (pop pac-sample))) | ||
| 606 | (dotimes (i 4) | ||
| 607 | (should (equal (aref pac i) (aref pac-sample i)))) | ||
| 608 | ;; The `extras' field should contain at least the specified elements. | ||
| 609 | (should (cl-every (lambda (sample-elem) | ||
| 610 | (member sample-elem (aref pac 4))) | ||
| 611 | (aref pac-sample 4))))))) | ||
| 585 | 612 | ||
| 586 | (ert-deftest package-x-test-upload-new-version () | 613 | (ert-deftest package-x-test-upload-new-version () |
| 587 | "Test uploading a new version of a package" | 614 | "Test uploading a new version of a package" |
| @@ -601,8 +628,17 @@ Must called from within a `tar-mode' buffer." | |||
| 601 | (setq archive-contents | 628 | (setq archive-contents |
| 602 | (package-read-from-string | 629 | (package-read-from-string |
| 603 | (buffer-substring (point-min) (point-max))))) | 630 | (buffer-substring (point-min) (point-max))))) |
| 604 | (should (equal archive-contents | 631 | (should (equal 1 (car archive-contents))) |
| 605 | (list 1 package-x-test--single-archive-entry-1-4)))))) | 632 | (should (equal 2 (length archive-contents))) |
| 633 | (let ((pac (cadr archive-contents)) | ||
| 634 | (pac-sample package-x-test--single-archive-entry-1-4)) | ||
| 635 | (should (equal (pop pac) (pop pac-sample))) | ||
| 636 | (dotimes (i 4) | ||
| 637 | (should (equal (aref pac i) (aref pac-sample i)))) | ||
| 638 | ;; The `extras' field should contain at least the specified elements. | ||
| 639 | (should (cl-every (lambda (sample-elem) | ||
| 640 | (member sample-elem (aref pac 4))) | ||
| 641 | (aref pac-sample 4))))))) | ||
| 606 | 642 | ||
| 607 | (ert-deftest package-test-get-deps () | 643 | (ert-deftest package-test-get-deps () |
| 608 | "Test `package--get-deps' with complex structures." | 644 | "Test `package--get-deps' with complex structures." |