diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-20 12:57:40 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-20 12:57:40 -0400 |
| commit | 8cccc2cd64105062ae4558090f11cc5b11e968a4 (patch) | |
| tree | 5cfef2e2dae9f38aa28eb42667bbfbefacf3a507 /tests/test-elfeed-config--decode-html-entities.el | |
| parent | 955357251d84a31c39cf18583393935369049f32 (diff) | |
| download | dotemacs-8cccc2cd64105062ae4558090f11cc5b11e968a4.tar.gz dotemacs-8cccc2cd64105062ae4558090f11cc5b11e968a4.zip | |
refactor(elfeed): extract HTML-entity decoder, drop leftover DEBUG logging
cj/youtube-to-elfeed-feed-format hand-decoded an og:title with six sequential replace-regexp-in-string calls; extract cj/--decode-html-entities (alist-driven, & first) and call it. Also remove the leftover DEBUG cj/log-silently instrumentation from cj/extract-stream-url. Behavior unchanged; adds coverage of the decoder.
Diffstat (limited to 'tests/test-elfeed-config--decode-html-entities.el')
| -rw-r--r-- | tests/test-elfeed-config--decode-html-entities.el | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/test-elfeed-config--decode-html-entities.el b/tests/test-elfeed-config--decode-html-entities.el new file mode 100644 index 000000000..a3fba3c49 --- /dev/null +++ b/tests/test-elfeed-config--decode-html-entities.el @@ -0,0 +1,31 @@ +;;; test-elfeed-config--decode-html-entities.el --- Tests for cj/--decode-html-entities -*- lexical-binding: t; -*- + +;;; Commentary: +;; cj/--decode-html-entities replaces the six inline replace-regexp-in-string +;; calls that cj/youtube-to-elfeed-feed-format used to hand-decode an og:title. + +;;; Code: + +(require 'ert) + +(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) +(require 'elfeed-config) + +(ert-deftest test-elfeed-decode-html-entities-all () + "Normal: every supported entity is decoded." + (should (equal (cj/--decode-html-entities + "a & b <c> "d" 'e'") + "a & b <c> \"d\" 'e'"))) + +(ert-deftest test-elfeed-decode-html-entities-no-entities () + "Boundary: text without entities is unchanged." + (should (equal (cj/--decode-html-entities "plain title") "plain title")) + (should (equal (cj/--decode-html-entities "") ""))) + +(ert-deftest test-elfeed-decode-html-entities-amp-first () + "Boundary: & is decoded before the others (no double-decoding chains)." + (should (equal (cj/--decode-html-entities "Tom & Jerry <3") + "Tom & Jerry <3"))) + +(provide 'test-elfeed-config--decode-html-entities) +;;; test-elfeed-config--decode-html-entities.el ends here |
