Add test suite for sgml-html-meta-auto-coding-function
* test/lisp/international/mule-tests.el (sgml-html-meta-pre) (sgml-html-meta-post, sgml-html-meta-run, sgml-html-meta-utf-8) (sgml-html-meta-windows-hebrew, sgml-html-meta-none) (sgml-html-meta-unknown-coding, sgml-html-meta-no-pre) (sgml-html-meta-no-post-less-than-10lines) (sgml-html-meta-no-post-10lines, sgml-html-meta-utf-8-with-bom): Add.
This commit is contained in:
parent
0fb90f524d
commit
846838dbab
1 changed files with 66 additions and 0 deletions
|
@ -70,6 +70,72 @@
|
||||||
;; The chinese-hz encoding is not ASCII compatible.
|
;; The chinese-hz encoding is not ASCII compatible.
|
||||||
(should-not (coding-system-get 'chinese-hz :ascii-compatible-p)))
|
(should-not (coding-system-get 'chinese-hz :ascii-compatible-p)))
|
||||||
|
|
||||||
|
;;; Testing `sgml-html-meta-auto-coding-function'.
|
||||||
|
|
||||||
|
(defconst sgml-html-meta-pre "<!doctype html><html><head>"
|
||||||
|
"The beginning of a minimal HTML document.")
|
||||||
|
|
||||||
|
(defconst sgml-html-meta-post "</head></html>"
|
||||||
|
"The end of a minimal HTML document.")
|
||||||
|
|
||||||
|
(defun sgml-html-meta-run (coding-system)
|
||||||
|
"Run `sgml-html-meta-auto-coding-function' on a minimal HTML.
|
||||||
|
When CODING-SYSTEM is not nil, insert it, wrapped in a '<meta>'
|
||||||
|
element. When CODING-SYSTEM contains HTML meta characters or
|
||||||
|
white space, insert it as-is, without additional formatting. Use
|
||||||
|
the variables `sgml-html-meta-pre' and `sgml-html-meta-post' to
|
||||||
|
provide HTML fragments. Some tests override those variables."
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert sgml-html-meta-pre
|
||||||
|
(cond ((not coding-system)
|
||||||
|
"")
|
||||||
|
((string-match "[<>'\"\n ]" coding-system)
|
||||||
|
coding-system)
|
||||||
|
(t
|
||||||
|
(format "<meta charset='%s'>" coding-system)))
|
||||||
|
sgml-html-meta-post)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(sgml-html-meta-auto-coding-function (- (point-max) (point-min)))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-utf-8 ()
|
||||||
|
"Baseline: UTF-8."
|
||||||
|
(should (eq 'utf-8 (sgml-html-meta-run "utf-8"))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-windows-hebrew ()
|
||||||
|
"A non-Unicode charset."
|
||||||
|
(should (eq 'windows-1255 (sgml-html-meta-run "windows-1255"))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-none ()
|
||||||
|
(should (eq nil (sgml-html-meta-run nil))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-unknown-coding ()
|
||||||
|
(should (eq nil (sgml-html-meta-run "XXX"))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-no-pre ()
|
||||||
|
"Without the prefix, so not HTML."
|
||||||
|
(let ((sgml-html-meta-pre ""))
|
||||||
|
(should (eq nil (sgml-html-meta-run "utf-8")))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-no-post-less-than-10lines ()
|
||||||
|
"No '</head>', detect charset in the first 10 lines."
|
||||||
|
(let ((sgml-html-meta-post ""))
|
||||||
|
(should (eq 'utf-8 (sgml-html-meta-run
|
||||||
|
(concat "\n\n\n\n\n\n\n\n\n"
|
||||||
|
"<meta charset='utf-8'>"))))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-no-post-10lines ()
|
||||||
|
"No '</head>', do not detect charset after the first 10 lines."
|
||||||
|
(let ((sgml-html-meta-post ""))
|
||||||
|
(should (eq nil (sgml-html-meta-run
|
||||||
|
(concat "\n\n\n\n\n\n\n\n\n\n"
|
||||||
|
"<meta charset='utf-8'>"))))))
|
||||||
|
|
||||||
|
(ert-deftest sgml-html-meta-utf-8-with-bom ()
|
||||||
|
"Requesting 'UTF-8' does not override `utf-8-with-signature'.
|
||||||
|
Check fix for Bug#20623."
|
||||||
|
(let ((buffer-file-coding-system 'utf-8-with-signature))
|
||||||
|
(should (eq 'utf-8-with-signature (sgml-html-meta-run "utf-8")))))
|
||||||
|
|
||||||
;; Stop "Local Variables" above causing confusion when visiting this file.
|
;; Stop "Local Variables" above causing confusion when visiting this file.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue