diff --git a/testing/lisp/test-org-protocol.el b/testing/lisp/test-org-protocol.el index b5df7c132..b9db8fdd3 100644 --- a/testing/lisp/test-org-protocol.el +++ b/testing/lisp/test-org-protocol.el @@ -78,6 +78,16 @@ (should (null (org-protocol-check-filename-for-protocol uri (list uri) nil))) (should (equal (car org-stored-links) '("URL3" "TITLE3"))))) +(ert-deftest test-org-protocol/org-protocol-store-link-file () + "store-link: `org-protocol-sanitize-uri' could distort URL." + :expected-result :failed + (let ((uri "/org-protocol:/store-link:/file%3A%2F%2F%2Fetc%2Fmailcap/Triple%20Slash")) + (should (null (org-protocol-check-filename-for-protocol uri (list uri) nil))) + (should (equal (car org-stored-links) '("file:///etc/mailcap" "Triple Slash")))) + (let ((uri "/org-protocol:/store-link?url=file%3A%2F%2F%2Fetc%2Fmailcap&title=Triple%20Slash")) + (should (null (org-protocol-check-filename-for-protocol uri (list uri) nil))) + (should (equal (car org-stored-links) '("file:///etc/mailcap" "Triple Slash"))))) + (ert-deftest test-org-protocol/org-protocol-capture () "Test `org-protocol-capture' specifications." (let* ((org-protocol-default-template-key "t") @@ -134,6 +144,20 @@ test-urls) (delete-file temp-file-name))) +(ert-deftest test-org-protocol/org-protocol-capture-file () + "capture: `org-protocol-sanitize-uri' could distort URL." + :expected-result :failed + (let* ((org-protocol-default-template-key "t") + (temp-file-name (make-temp-file "org-protocol-test")) + (org-capture-templates + `(("t" "Test" plain (file ,temp-file-name) "%a\n%i\n" :kill-buffer t)))) + (let ((uri "/org-protocol:/capture:/t/file%3A%2F%2F%2Fetc%2Fmailcap/Triple%20Slash/Body")) + (should (null (org-protocol-check-filename-for-protocol uri (list uri) nil))) + (should (string= (buffer-string) "[[file:///etc/mailcap][Triple Slash]]\nBody"))) + (let ((uri "/org-protocol:/capture?template=t&url=file%3A%2F%2F%2Fetc%2Fmailcap&title=Triple%20Slash&body=Body")) + (should (null (org-protocol-check-filename-for-protocol uri (list uri) nil))) + (should (string= (buffer-string) "[[file:///etc/mailcap][Triple Slash]]\nBody"))))) + (ert-deftest test-org-protocol/org-protocol-open-source () "Test org-protocol://open-source links." (let* ((temp-file-name1 (make-temp-file "org-protocol-test1"))