From 60ef565b678e3a19bf67df1721b86e677f9c0b78 Mon Sep 17 00:00:00 2001 From: Gijs Kruitbosch Date: Mon, 28 Jan 2019 16:50:07 +0100 Subject: [PATCH] Don't choke on tags that do not have a content attribute --- Readability.js | 3 ++ .../expected-metadata.json | 8 +++++ .../metadata-content-missing/expected.html | 20 +++++++++++ .../metadata-content-missing/source.html | 33 +++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 test/test-pages/metadata-content-missing/expected-metadata.json create mode 100644 test/test-pages/metadata-content-missing/expected.html create mode 100644 test/test-pages/metadata-content-missing/source.html diff --git a/Readability.js b/Readability.js index 12e2de6..4d9d7dd 100644 --- a/Readability.js +++ b/Readability.js @@ -1222,6 +1222,9 @@ Readability.prototype = { var elementName = element.getAttribute("name"); var elementProperty = element.getAttribute("property"); var content = element.getAttribute("content"); + if (!content) { + return; + } var matches = null; var name = null; diff --git a/test/test-pages/metadata-content-missing/expected-metadata.json b/test/test-pages/metadata-content-missing/expected-metadata.json new file mode 100644 index 0000000..dd9bd08 --- /dev/null +++ b/test/test-pages/metadata-content-missing/expected-metadata.json @@ -0,0 +1,8 @@ +{ + "title": "My title", + "byline": "Creator Name", + "dir": null, + "excerpt": "Preferred description", + "readerable": true, + "siteName": null +} diff --git a/test/test-pages/metadata-content-missing/expected.html b/test/test-pages/metadata-content-missing/expected.html new file mode 100644 index 0000000..dced8c9 --- /dev/null +++ b/test/test-pages/metadata-content-missing/expected.html @@ -0,0 +1,20 @@ +
+
+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +

+
+
diff --git a/test/test-pages/metadata-content-missing/source.html b/test/test-pages/metadata-content-missing/source.html new file mode 100644 index 0000000..1e5c1ad --- /dev/null +++ b/test/test-pages/metadata-content-missing/source.html @@ -0,0 +1,33 @@ + + + + + Title Element + + + + + + + +
+

Test document title

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum. +

+
+ +