2018-02-27 14:38:13 -06:00
|
|
|
(eval-when-compile (require 'cl))
|
|
|
|
(require 'ert)
|
|
|
|
|
|
|
|
(require 'ein-output-area)
|
|
|
|
|
|
|
|
(defun ein:testing-insert-html--fix-urls-do-test (source desired)
|
2020-01-16 15:31:47 -05:00
|
|
|
(let ((s (ein:xml-parse-html-string source))
|
|
|
|
(d (ein:xml-parse-html-string desired)))
|
|
|
|
(ein:insert-html--fix-urls s 8888)
|
|
|
|
(should (equal s d))))
|
2018-02-27 14:38:13 -06:00
|
|
|
|
|
|
|
(defmacro ein:testing-insert-html--fix-urls-deftests (args-list)
|
|
|
|
`(progn
|
2020-01-02 20:09:42 -05:00
|
|
|
,@(cl-loop for i from 0
|
2018-02-27 14:38:13 -06:00
|
|
|
for args in args-list
|
|
|
|
for test = (intern (format "ein:insert-html--fix-urls/%s" i))
|
|
|
|
collect
|
|
|
|
`(ert-deftest ,test ()
|
|
|
|
(ein:testing-insert-html--fix-urls-do-test ,@args)))))
|
|
|
|
|
2019-11-14 20:04:21 -05:00
|
|
|
(ein:testing-insert-html--fix-urls-deftests
|
|
|
|
(;; Simple replaces
|
|
|
|
("<a href=files/spam>text</a>"
|
|
|
|
"<a href=http://127.0.0.1:8888/files/spam>text</a>")
|
|
|
|
("<a href=/files/spam>text</a>"
|
|
|
|
"<a href=http://127.0.0.1:8888/files/spam>text</a>")
|
|
|
|
("<img src=files/sample.png />"
|
|
|
|
"<img src=http://127.0.0.1:8888/files/sample.png />")
|
|
|
|
("<img src=/files/sample.png />"
|
|
|
|
"<img src=http://127.0.0.1:8888/files/sample.png />")
|
|
|
|
;; Do not modify dom in these cases:
|
|
|
|
("<a>text</a>"
|
|
|
|
"<a>text</a>")
|
|
|
|
("<a href=http://example>text</a>"
|
|
|
|
"<a href=http://example>text</a>")
|
|
|
|
("<img src=http://example />"
|
|
|
|
"<img src=http://example />")
|
|
|
|
;; Bit more complicated cases:
|
|
|
|
("<p><a href=files/spam>link</a> normal</p>"
|
|
|
|
"<p><a href=http://127.0.0.1:8888/files/spam>link</a> normal</p>")
|
|
|
|
("<img><img src=files/sample.png /> normal</p>"
|
|
|
|
"<img><img src=http://127.0.0.1:8888/files/sample.png /> normal</p>")))
|