+(ert-deftest package-test-signed ()
+ "Test verifying package signature."
+ :expected-result (condition-case nil
+ (progn
+ (epg-check-configuration (epg-configuration))
+ :passed)
+ (error :failed))
+ (let* ((keyring (expand-file-name "key.pub" package-test-data-dir))
+ (package-test-data-dir
+ (expand-file-name "data/package/signed" package-test-file-dir)))
+ (with-package-test ()
+ (package-initialize)
+ (package-import-keyring keyring)
+ (package-refresh-contents)
+ (should (package-install 'signed-good))
+ (should-error (package-install 'signed-bad))
+ ;; Check if the installed package status is updated.
+ (let ((buf (package-list-packages)))
+ (package-menu-refresh)
+ (should (re-search-forward "^\\s-+signed-good\\s-+1\\.0\\s-+installed"
+ nil t)))
+ ;; Check if the package description is updated.
+ (with-fake-help-buffer
+ (describe-package 'signed-good)
+ (goto-char (point-min))
+ (should (search-forward "signed-good is an installed package." nil t))
+ (should (search-forward
+ (format "Status: Installed in `%s/'."
+ (expand-file-name "signed-good-1.0" package-user-dir))
+ nil t))))))
+