diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
commit | de98e0b232509d5f40c135d540a70e415272ff85 (patch) | |
tree | a79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/htmlparser2/test | |
parent | e0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff) |
node_modules
Diffstat (limited to 'node_modules/htmlparser2/test')
39 files changed, 4747 insertions, 0 deletions
diff --git a/node_modules/htmlparser2/test/01-events.js b/node_modules/htmlparser2/test/01-events.js new file mode 100644 index 000000000..a3c7cf329 --- /dev/null +++ b/node_modules/htmlparser2/test/01-events.js @@ -0,0 +1,9 @@ +var helper = require("./test-helper.js"); + +helper.mochaTest("Events", __dirname, function(test, cb){ + helper.writeToParser( + helper.getEventCollector(cb), + test.options.parser, + test.html + ); +});
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/02-stream.js b/node_modules/htmlparser2/test/02-stream.js new file mode 100644 index 000000000..340398067 --- /dev/null +++ b/node_modules/htmlparser2/test/02-stream.js @@ -0,0 +1,23 @@ +var helper = require("./test-helper.js"), + Stream = require("..").WritableStream, + fs = require("fs"), + path = require("path"); + +helper.mochaTest("Stream", __dirname, function(test, cb){ + var filePath = path.join(__dirname, "Documents", test.file); + fs.createReadStream(filePath).pipe( + new Stream( + helper.getEventCollector(function(err, events){ + cb(err, events); + + var handler = helper.getEventCollector(cb), + stream = new Stream(handler, test.options); + + fs.readFile(filePath, function(err, data){ + if(err) throw err; + else stream.end(data); + }); + } + ), test.options) + ).on("error", cb); +});
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/03-feed.js b/node_modules/htmlparser2/test/03-feed.js new file mode 100644 index 000000000..8e78eb8e4 --- /dev/null +++ b/node_modules/htmlparser2/test/03-feed.js @@ -0,0 +1,19 @@ +//Runs tests for feeds + +var helper = require("./test-helper.js"), + FeedHandler = require("../lib/FeedHandler.js"), + fs = require("fs"), + path = require("path"); + +helper.mochaTest("Feeds", __dirname, function(test, cb){ + fs.readFile( + path.join(__dirname, "Documents", test.file), + function(err, file){ + helper.writeToParser( + new FeedHandler(cb), + { xmlMode: true }, + file.toString() + ); + } + ); +});
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Documents/Atom_Example.xml b/node_modules/htmlparser2/test/Documents/Atom_Example.xml new file mode 100644 index 000000000..734974539 --- /dev/null +++ b/node_modules/htmlparser2/test/Documents/Atom_Example.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- http://en.wikipedia.org/wiki/Atom_%28standard%29 --> +<feed xmlns="http://www.w3.org/2005/Atom"> + <title>Example Feed</title> + <subtitle>A subtitle.</subtitle> + <link href="http://example.org/feed/" rel="self" /> + <link href="http://example.org/" /> + <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id> + <updated>2003-12-13T18:30:02Z</updated> + <author> + <name>John Doe</name> + <email>johndoe@example.com</email> + </author> + + <entry> + <title>Atom-Powered Robots Run Amok</title> + <link href="http://example.org/2003/12/13/atom03" /> + <link rel="alternate" type="text/html" href="http://example.org/2003/12/13/atom03.html"/> + <link rel="edit" href="http://example.org/2003/12/13/atom03/edit"/> + <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> + <updated>2003-12-13T18:30:02Z</updated> + <summary>Some text.</summary> + </entry> + +</feed>
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Documents/Attributes.html b/node_modules/htmlparser2/test/Documents/Attributes.html new file mode 100644 index 000000000..f3bfa09c1 --- /dev/null +++ b/node_modules/htmlparser2/test/Documents/Attributes.html @@ -0,0 +1,16 @@ +<!doctype html> +<html> +<head> + <title>Attributes test</title> +</head> +<body> + <!-- Normal attributes --> + <button id="test0" class="value0" title="value1">class="value0" title="value1"</button> + + <!-- Attributes with no quotes or value --> + <button id="test1" class=value2 disabled>class=value2 disabled</button> + + <!-- Attributes with no space between them. No valid, but accepted by the browser --> + <button id="test2" class="value4"title="value5">class="value4"title="value5"</button> +</body> +</html>
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Documents/Basic.html b/node_modules/htmlparser2/test/Documents/Basic.html new file mode 100644 index 000000000..65957a2f1 --- /dev/null +++ b/node_modules/htmlparser2/test/Documents/Basic.html @@ -0,0 +1 @@ +<!DOCTYPE html><html><title>The Title</title><body>Hello world</body></html>
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Documents/RDF_Example.xml b/node_modules/htmlparser2/test/Documents/RDF_Example.xml new file mode 100644 index 000000000..068da173c --- /dev/null +++ b/node_modules/htmlparser2/test/Documents/RDF_Example.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:ev="http://purl.org/rss/1.0/modules/event/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:admin="http://webns.net/mvcb/"> + <channel rdf:about="http://sfbay.craigslist.org/ccc/"> + <title>craigslist | all community in SF bay area</title> + <link>http://sfbay.craigslist.org/ccc/</link> + <description/> + <dc:language>en-us</dc:language> + <dc:rights>Copyright 2011 craigslist, inc.</dc:rights> + <dc:publisher>webmaster@craigslist.org</dc:publisher> + <dc:creator>webmaster@craigslist.org</dc:creator> + <dc:source>http://sfbay.craigslist.org/ccc//</dc:source> + <dc:title>craigslist | all community in SF bay area</dc:title> + <dc:type>Collection</dc:type> + <syn:updateBase>2011-11-04T09:39:10-07:00</syn:updateBase> + <syn:updateFrequency>4</syn:updateFrequency> + <syn:updatePeriod>hourly</syn:updatePeriod> + <items> + <rdf:Seq> + <rdf:li rdf:resource="http://sfbay.craigslist.org/sby/muc/2681301534.html"/> + </rdf:Seq> + </items> + </channel> + <item rdf:about="http://sfbay.craigslist.org/sby/muc/2681301534.html"> + <title><![CDATA[ Music Equipment Repair and Consignment ]]></title> + <link> +http://sfbay.craigslist.org/sby/muc/2681301534.html +</link> + <description><![CDATA[ +San Jose Rock Shop offers musical instrument repair and consignment! (408) 215-2065<br> <br> We are pleased to announce our NEW LOCATION: 1199 N 5th st. San Jose, ca 95112. Please call ahead, by appointment only.<br> <br> Recently featured by Metro Newspaper in their 2011 Best of the Silicon Valley edition see it online here:<br> <a href="http://www.metroactive.com/best-of-silicon-valley/2011/music-nightlife/editor-picks.html" rel="nofollow">http://www.metroactive.com/best-of-silicon-valley/2011/music-nightlife/editor-picks.html</a><br> <br> Guitar Set up (acoustic and electronic) $40!<!-- END CLTAGS --> +]]></description> + <dc:date>2011-11-04T09:35:17-07:00</dc:date> + <dc:language>en-us</dc:language> + <dc:rights>Copyright 2011 craigslist, inc.</dc:rights> + <dc:source> +http://sfbay.craigslist.org/sby/muc/2681301534.html +</dc:source> + <dc:title><![CDATA[ Music Equipment Repair and Consignment ]]></dc:title> + <dc:type>text</dc:type> + <dcterms:issued>2011-11-04T09:35:17-07:00</dcterms:issued> + </item> + <item rdf:about="http://sfbay.craigslist.org/eby/rid/2685010755.html"> + <title><![CDATA[ +Ride Offered - Oakland/BART to LA/SFV - TODAY 3PM 11/04 (oakland north / temescal) +]]></title> + <link> +http://sfbay.craigslist.org/eby/rid/2685010755.html +</link> + <description><![CDATA[ +Im offering a lift for up to two people from Oakland (or near any BART station in the East Bay/580/880 Corridor, or San Jose/Morgan Hill, Gilroy) to the San Fernando Valley / Los Angeles area. Specifically, Im leaving from Oakland between 2:30 and 3:00pm (this is flexible, but if I leave too late my girlfriend will kill me), and heading to Woodland Hills via the 580, I-5, 405, and 101.<!-- END CLTAGS --> +]]></description> + <dc:date>2011-11-04T09:34:54-07:00</dc:date> + <dc:language>en-us</dc:language> + <dc:rights>Copyright 2011 craigslist, inc.</dc:rights> + <dc:source> +http://sfbay.craigslist.org/eby/rid/2685010755.html +</dc:source> + <dc:title><![CDATA[ +Ride Offered - Oakland/BART to LA/SFV - TODAY 3PM 11/04 (oakland north / temescal) +]]></dc:title> + <dc:type>text</dc:type> + <dcterms:issued>2011-11-04T09:34:54-07:00</dcterms:issued> + </item> +</rdf:RDF>
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Documents/RSS_Example.xml b/node_modules/htmlparser2/test/Documents/RSS_Example.xml new file mode 100644 index 000000000..0d1fde875 --- /dev/null +++ b/node_modules/htmlparser2/test/Documents/RSS_Example.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!-- http://cyber.law.harvard.edu/rss/examples/rss2sample.xml --> +<rss version="2.0"> + <channel> + <title>Liftoff News</title> + <link>http://liftoff.msfc.nasa.gov/</link> + <description>Liftoff to Space Exploration.</description> + <language>en-us</language> + <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate> + + <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate> + <docs>http://blogs.law.harvard.edu/tech/rss</docs> + <generator>Weblog Editor 2.0</generator> + <managingEditor>editor@example.com</managingEditor> + <webMaster>webmaster@example.com</webMaster> + <item> + + <title>Star City</title> + <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link> + <description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description> + <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate> + <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid> + + </item> + <item> + <description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description> + <pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate> + <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid> + + </item> + <item> + <title>The Engine That Does More</title> + <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link> + <description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.</description> + <pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate> + <guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid> + + </item> + <item> + <title>Astronauts' Dirty Laundry</title> + <link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link> + <description>Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.</description> + <pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate> + <guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid> + + </item> + </channel> +</rss>
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/01-simple.json b/node_modules/htmlparser2/test/Events/01-simple.json new file mode 100644 index 000000000..ab3076ac5 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/01-simple.json @@ -0,0 +1,44 @@ +{ + "name": "simple", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<h1 class=test>adsf</h1>", + "expected": [ + { + "event": "opentagname", + "data": [ + "h1" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "test" + ] + }, + { + "event": "opentag", + "data": [ + "h1", + { + "class": "test" + } + ] + }, + { + "event": "text", + "data": [ + "adsf" + ] + }, + { + "event": "closetag", + "data": [ + "h1" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/02-template.json b/node_modules/htmlparser2/test/Events/02-template.json new file mode 100644 index 000000000..df344b6a2 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/02-template.json @@ -0,0 +1,63 @@ +{ + "name": "Template script tags", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<p><script type=\"text/template\"><h1>Heading1</h1></script></p>", + "expected": [ + { + "event": "opentagname", + "data": [ + "p" + ] + }, + { + "event": "opentag", + "data": [ + "p", + {} + ] + }, + { + "event": "opentagname", + "data": [ + "script" + ] + }, + { + "event": "attribute", + "data": [ + "type", + "text/template" + ] + }, + { + "event": "opentag", + "data": [ + "script", + { + "type": "text/template" + } + ] + }, + { + "event": "text", + "data": [ + "<h1>Heading1</h1>" + ] + }, + { + "event": "closetag", + "data": [ + "script" + ] + }, + { + "event": "closetag", + "data": [ + "p" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/03-lowercase_tags.json b/node_modules/htmlparser2/test/Events/03-lowercase_tags.json new file mode 100644 index 000000000..9b58c5999 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/03-lowercase_tags.json @@ -0,0 +1,46 @@ +{ + "name": "Lowercase tags", + "options": { + "handler": {}, + "parser": { + "lowerCaseTags": true + } + }, + "html": "<H1 class=test>adsf</H1>", + "expected": [ + { + "event": "opentagname", + "data": [ + "h1" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "test" + ] + }, + { + "event": "opentag", + "data": [ + "h1", + { + "class": "test" + } + ] + }, + { + "event": "text", + "data": [ + "adsf" + ] + }, + { + "event": "closetag", + "data": [ + "h1" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/04-cdata.json b/node_modules/htmlparser2/test/Events/04-cdata.json new file mode 100644 index 000000000..71d4860c9 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/04-cdata.json @@ -0,0 +1,43 @@ +{ + "name": "CDATA", + "options": { + "handler": {}, + "parser": {"xmlMode": true} + }, + "html": "<tag><![CDATA[ asdf ><asdf></adsf><> fo]]></tag>", + "expected": [ + { + "event": "opentagname", + "data": [ + "tag" + ] + }, + { + "event": "opentag", + "data": [ + "tag", + {} + ] + }, + { + "event": "cdatastart", + "data": [] + }, + { + "event": "text", + "data": [ + " asdf ><asdf></adsf><> fo" + ] + }, + { + "event": "cdataend", + "data": [] + }, + { + "event": "closetag", + "data": [ + "tag" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/05-cdata-special.json b/node_modules/htmlparser2/test/Events/05-cdata-special.json new file mode 100644 index 000000000..686cb1a2f --- /dev/null +++ b/node_modules/htmlparser2/test/Events/05-cdata-special.json @@ -0,0 +1,35 @@ +{ + "name": "CDATA (inside special)", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<script>/*<![CDATA[*/ asdf ><asdf></adsf><> fo/*]]>*/</script>", + "expected": [ + { + "event": "opentagname", + "data": [ + "script" + ] + }, + { + "event": "opentag", + "data": [ + "script", + {} + ] + }, + { + "event": "text", + "data": [ + "/*<![CDATA[*/ asdf ><asdf></adsf><> fo/*]]>*/" + ] + }, + { + "event": "closetag", + "data": [ + "script" + ] + } + ] +} diff --git a/node_modules/htmlparser2/test/Events/06-leading-lt.json b/node_modules/htmlparser2/test/Events/06-leading-lt.json new file mode 100644 index 000000000..fcec85289 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/06-leading-lt.json @@ -0,0 +1,16 @@ +{ + "name": "leading lt", + "options": { + "handler": {}, + "parser": {} + }, + "html": ">a>", + "expected": [ + { + "event": "text", + "data": [ + ">a>" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/07-self-closing.json b/node_modules/htmlparser2/test/Events/07-self-closing.json new file mode 100644 index 000000000..f8903aa69 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/07-self-closing.json @@ -0,0 +1,67 @@ +{ + "name": "Self-closing tags", + "options": { + "handler": { + + }, + "parser": { + + } + }, + "html": "<a href=http://test.com/>Foo</a><hr />", + "expected": [ + { + "event": "opentagname", + "data": [ + "a" + ] + }, + { + "event": "attribute", + "data": [ + "href", + "http://test.com/" + ] + }, + { + "event": "opentag", + "data": [ + "a", + { + "href": "http://test.com/" + } + ] + }, + { + "event": "text", + "data": [ + "Foo" + ] + }, + { + "event": "closetag", + "data": [ + "a" + ] + }, + { + "event": "opentagname", + "data": [ + "hr" + ] + }, + { + "event": "opentag", + "data": [ + "hr", + {} + ] + }, + { + "event": "closetag", + "data": [ + "hr" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/08-implicit-close-tags.json b/node_modules/htmlparser2/test/Events/08-implicit-close-tags.json new file mode 100644 index 000000000..3441f2088 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/08-implicit-close-tags.json @@ -0,0 +1,59 @@ +{ + "name": "Implicit close tags", + "options": {}, + "html": "<ol><li class=test><div><table style=width:100%><tr><td colspan=2><h3>Heading</h3><tr><td><div>Div</div><td><div>Div2</div></table></div><li><div><h3>Heading 2</h3></div></li></ol>", + "expected": [ + { "event": "opentagname", "data": [ "ol" ] }, + { "event": "opentag", "data": [ "ol", {} ] }, + { "event": "opentagname", "data": [ "li" ] }, + { "event": "attribute", "data": [ "class", "test" ] }, + { "event": "opentag", "data": [ "li", { "class": "test" } ] }, + { "event": "opentagname", "data": [ "div" ] }, + { "event": "opentag", "data": [ "div", {} ] }, + { "event": "opentagname", "data": [ "table" ] }, + { "event": "attribute", "data": [ "style", "width:100%" ] }, + { "event": "opentag", "data": [ "table", { "style": "width:100%" } ] }, + { "event": "opentagname", "data": [ "tr" ] }, + { "event": "opentag", "data": [ "tr", {} ] }, + { "event": "opentagname", "data": [ "td" ] }, + { "event": "attribute", "data": [ "colspan", "2" ] }, + { "event": "opentag", "data": [ "td", { "colspan": "2" } ] }, + { "event": "opentagname", "data": [ "h3" ] }, + { "event": "opentag", "data": [ "h3", {} ] }, + { "event": "text", "data": [ "Heading" ] }, + { "event": "closetag", "data": [ "h3" ] }, + { "event": "closetag", "data": [ "td" ] }, + { "event": "closetag", "data": [ "tr" ] }, + { "event": "opentagname", "data": [ "tr" ] }, + { "event": "opentag", "data": [ "tr", {} ] }, + { "event": "opentagname", "data": [ "td" ] }, + { "event": "opentag", "data": [ "td", {} ] }, + { "event": "opentagname", "data": [ "div" ] }, + { "event": "opentag", "data": [ "div", {} ] }, + { "event": "text", "data": [ "Div" ] }, + { "event": "closetag", "data": [ "div" ] }, + { "event": "closetag", "data": [ "td" ] }, + { "event": "opentagname", "data": [ "td" ] }, + { "event": "opentag", "data": [ "td", {} ] }, + { "event": "opentagname", "data": [ "div" ] }, + { "event": "opentag", "data": [ "div", {} ] }, + { "event": "text", "data": [ "Div2" ] }, + { "event": "closetag", "data": [ "div" ] }, + { "event": "closetag", "data": [ "td" ] }, + { "event": "closetag", "data": [ "tr" ] }, + { "event": "closetag", "data": [ "table" ] }, + { "event": "closetag", "data": [ "div" ] }, + { "event": "closetag", "data": [ "li" ] }, + { "event": "opentagname", "data": [ "li" ] }, + { "event": "opentag", "data": [ "li", {} ] }, + { "event": "opentagname", "data": [ "div" ] }, + { "event": "opentag", "data": [ "div", {} ] }, + { "event": "opentagname", "data": [ "h3" ] }, + { "event": "opentag", "data": [ "h3", {} ] }, + { "event": "text", "data": [ "Heading 2" ] }, + { "event": "closetag", "data": [ "h3" ] }, + { "event": "closetag", "data": [ "div" ] }, + { "event": "closetag", "data": [ "li" ] }, + { "event": "closetag", "data": [ "ol" ] } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/09-attributes.json b/node_modules/htmlparser2/test/Events/09-attributes.json new file mode 100644 index 000000000..afa6e4a96 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/09-attributes.json @@ -0,0 +1,68 @@ +{ + "name": "attributes (no white space, no value, no quotes)", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<button class=\"test0\"title=\"test1\" disabled value=test2>adsf</button>", + "expected": [ + { + "event": "opentagname", + "data": [ + "button" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "test0" + ] + }, + { + "event": "attribute", + "data": [ + "title", + "test1" + ] + }, + { + "event": "attribute", + "data": [ + "disabled", + "" + ] + }, + { + "event": "attribute", + "data": [ + "value", + "test2" + ] + }, + { + "event": "opentag", + "data": [ + "button", + { + "class": "test0", + "title": "test1", + "disabled": "", + "value": "test2" + } + ] + }, + { + "event": "text", + "data": [ + "adsf" + ] + }, + { + "event": "closetag", + "data": [ + "button" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/10-crazy-attrib.json b/node_modules/htmlparser2/test/Events/10-crazy-attrib.json new file mode 100644 index 000000000..baf319f43 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/10-crazy-attrib.json @@ -0,0 +1,52 @@ +{ + "name": "crazy attribute", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<p <='' FAIL>stuff</p>", + "expected": [ + { + "event": "opentagname", + "data": [ + "p" + ] + }, + { + "event": "attribute", + "data": [ + "<", + "" + ] + }, + { + "event": "attribute", + "data": [ + "fail", + "" + ] + }, + { + "event": "opentag", + "data": [ + "p", + { + "<": "", + "fail": "" + } + ] + }, + { + "event": "text", + "data": [ + "stuff" + ] + }, + { + "event": "closetag", + "data": [ + "p" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/11-script_in_script.json b/node_modules/htmlparser2/test/Events/11-script_in_script.json new file mode 100644 index 000000000..ddbb87c87 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/11-script_in_script.json @@ -0,0 +1,54 @@ +{ + "name": "Scripts creating other scripts", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<p><script>var str = '<script></'+'script>';</script></p>", + "expected": [ + { + "event": "opentagname", + "data": [ + "p" + ] + }, + { + "event": "opentag", + "data": [ + "p", + {} + ] + }, + { + "event": "opentagname", + "data": [ + "script" + ] + }, + { + "event": "opentag", + "data": [ + "script", + {} + ] + }, + { + "event": "text", + "data": [ + "var str = '<script></'+'script>';" + ] + }, + { + "event": "closetag", + "data": [ + "script" + ] + }, + { + "event": "closetag", + "data": [ + "p" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/12-long-comment-end.json b/node_modules/htmlparser2/test/Events/12-long-comment-end.json new file mode 100644 index 000000000..e81f30774 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/12-long-comment-end.json @@ -0,0 +1,20 @@ +{ + "name": "Long comment ending", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<meta id='before'><!-- text ---><meta id='after'>", + "expected": [ + { "event": "opentagname", "data": [ "meta" ] }, + { "event": "attribute", "data": [ "id", "before" ] }, + { "event": "opentag", "data": [ "meta", {"id": "before"} ] }, + { "event": "closetag", "data": [ "meta" ] }, + { "event": "comment", "data": [ " text -" ] }, + { "event": "commentend", "data": [] }, + { "event": "opentagname", "data": [ "meta" ] }, + { "event": "attribute", "data": [ "id", "after" ] }, + { "event": "opentag", "data": [ "meta", {"id": "after"} ] }, + { "event": "closetag", "data": [ "meta" ] } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/13-long-cdata-end.json b/node_modules/htmlparser2/test/Events/13-long-cdata-end.json new file mode 100644 index 000000000..34b7b4105 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/13-long-cdata-end.json @@ -0,0 +1,22 @@ +{ + "name": "Long CDATA ending", + "options": { + "handler": {}, + "parser": {"xmlMode": true} + }, + "html": "<before /><tag><![CDATA[ text ]]]></tag><after />", + "expected": [ + { "event": "opentagname", "data": [ "before" ] }, + { "event": "opentag", "data": [ "before", {} ] }, + { "event": "closetag", "data": [ "before" ] }, + { "event": "opentagname", "data": [ "tag" ] }, + { "event": "opentag", "data": [ "tag", {} ] }, + { "event": "cdatastart", "data": [] }, + { "event": "text", "data": [ " text ]" ] }, + { "event": "cdataend", "data": [] }, + { "event": "closetag", "data": [ "tag" ] }, + { "event": "opentagname", "data": [ "after" ] }, + { "event": "opentag", "data": [ "after", {} ] }, + { "event": "closetag", "data": [ "after" ] } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/14-implicit-open-tags.json b/node_modules/htmlparser2/test/Events/14-implicit-open-tags.json new file mode 100644 index 000000000..096925ae9 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/14-implicit-open-tags.json @@ -0,0 +1,24 @@ +{ + "name": "Implicit open p and br tags", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<div>Hallo</p>World</br></div></p>", + "expected": [ + { "event": "opentagname", "data": [ "div" ] }, + { "event": "opentag", "data": [ "div", {} ] }, + { "event": "text", "data": [ "Hallo" ] }, + { "event": "opentagname", "data": [ "p" ] }, + { "event": "opentag", "data": [ "p", {} ] }, + { "event": "closetag", "data": [ "p" ] }, + { "event": "text", "data": [ "World" ] }, + { "event": "opentagname", "data": [ "br" ] }, + { "event": "opentag", "data": [ "br", {} ] }, + { "event": "closetag", "data": [ "br" ] }, + { "event": "closetag", "data": [ "div" ] }, + { "event": "opentagname", "data": [ "p" ] }, + { "event": "opentag", "data": [ "p", {} ] }, + { "event": "closetag", "data": [ "p" ] } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/15-lt-whitespace.json b/node_modules/htmlparser2/test/Events/15-lt-whitespace.json new file mode 100644 index 000000000..aae6eb097 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/15-lt-whitespace.json @@ -0,0 +1,16 @@ +{ + "name": "lt followed by whitespace", + "options": { + "handler": {}, + "parser": {} + }, + "html": "a < b", + "expected": [ + { + "event": "text", + "data": [ + "a < b" + ] + } + ] +} diff --git a/node_modules/htmlparser2/test/Events/16-double_attribs.json b/node_modules/htmlparser2/test/Events/16-double_attribs.json new file mode 100644 index 000000000..bed1d8f22 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/16-double_attribs.json @@ -0,0 +1,45 @@ +{ + "name": "double attribute", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<h1 class=test class=boo></h1>", + "expected": [ + { + "event": "opentagname", + "data": [ + "h1" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "test" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "boo" + ] + }, + { + "event": "opentag", + "data": [ + "h1", + { + "class": "test" + } + ] + }, + { + "event": "closetag", + "data": [ + "h1" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/17-numeric_entities.json b/node_modules/htmlparser2/test/Events/17-numeric_entities.json new file mode 100644 index 000000000..c76221c0e --- /dev/null +++ b/node_modules/htmlparser2/test/Events/17-numeric_entities.json @@ -0,0 +1,16 @@ +{ + "name": "numeric entities", + "options": { + "handler": {}, + "parser": {"decodeEntities": true} + }, + "html": "abcd", + "expected": [ + { + "event": "text", + "data": [ + "abcd" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/18-legacy_entities.json b/node_modules/htmlparser2/test/Events/18-legacy_entities.json new file mode 100644 index 000000000..e0be6990b --- /dev/null +++ b/node_modules/htmlparser2/test/Events/18-legacy_entities.json @@ -0,0 +1,16 @@ +{ + "name": "legacy entities", + "options": { + "handler": {}, + "parser": {"decodeEntities": true} + }, + "html": "&elíes<er", + "expected": [ + { + "event": "text", + "data": [ + "&el\u00EDes<er" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/19-named_entities.json b/node_modules/htmlparser2/test/Events/19-named_entities.json new file mode 100644 index 000000000..33db898e0 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/19-named_entities.json @@ -0,0 +1,16 @@ +{ + "name": "named entities", + "options": { + "handler": {}, + "parser": {"decodeEntities": true} + }, + "html": "&el<er∳foo", + "expected": [ + { + "event": "text", + "data": [ + "&el<er\u2233foo" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/20-xml_entities.json b/node_modules/htmlparser2/test/Events/20-xml_entities.json new file mode 100644 index 000000000..0f7dece27 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/20-xml_entities.json @@ -0,0 +1,16 @@ +{ + "name": "xml entities", + "options": { + "handler": {}, + "parser": {"decodeEntities": true, "xmlMode": true} + }, + "html": "&>&<üabcd", + "expected": [ + { + "event": "text", + "data": [ + "&>&<üaجd" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/21-entity_in_attribute.json b/node_modules/htmlparser2/test/Events/21-entity_in_attribute.json new file mode 100644 index 000000000..77eb4f363 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/21-entity_in_attribute.json @@ -0,0 +1,38 @@ +{ + "name": "entity in attribute", + "options": { + "handler": {}, + "parser": {"decodeEntities": true} + }, + "html": "<a href='http://example.com/page?param=value¶m2=<val'>", + "expected": [ + { + "event": "opentagname", + "data": [ + "a" + ] + }, + { + "event": "attribute", + "data": [ + "href", + "http://example.com/page?param=value¶m2=<val" + ] + }, + { + "event": "opentag", + "data": [ + "a", + { + "href": "http://example.com/page?param=value¶m2=<val" + } + ] + }, + { + "event": "closetag", + "data": [ + "a" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Events/22-double_brackets.json b/node_modules/htmlparser2/test/Events/22-double_brackets.json new file mode 100644 index 000000000..38a513b77 --- /dev/null +++ b/node_modules/htmlparser2/test/Events/22-double_brackets.json @@ -0,0 +1,41 @@ +{ + "name": "double brackets", + "options": { + "handler": {}, + "parser": {} + }, + "html": "<<princess-purpose>>testing</princess-purpose>", + "expected": [ + { + "event": "text", + "data": [ + "<" + ] + }, + { + "event": "opentagname", + "data": [ + "princess-purpose" + ] + }, + { + "event": "opentag", + "data": [ + "princess-purpose", + {} + ] + }, + { + "event": "text", + "data": [ + ">testing" + ] + }, + { + "event": "closetag", + "data": [ + "princess-purpose" + ] + } + ] +} diff --git a/node_modules/htmlparser2/test/Feeds/01-rss.js b/node_modules/htmlparser2/test/Feeds/01-rss.js new file mode 100644 index 000000000..a3aae479b --- /dev/null +++ b/node_modules/htmlparser2/test/Feeds/01-rss.js @@ -0,0 +1,34 @@ +exports.name = "RSS (2.0)"; +exports.file = "/RSS_Example.xml"; +exports.expected = { + type: "rss", + id: "", + title: "Liftoff News", + link: "http://liftoff.msfc.nasa.gov/", + description: "Liftoff to Space Exploration.", + updated: new Date("Tue, 10 Jun 2003 09:41:01 GMT"), + author: "editor@example.com", + items: [{ + id: "http://liftoff.msfc.nasa.gov/2003/06/03.html#item573", + title: "Star City", + link: "http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp", + description: "How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href=\"http://howe.iki.rssi.ru/GCTC/gctc_e.htm\">Star City</a>.", + pubDate: new Date("Tue, 03 Jun 2003 09:39:21 GMT") + }, { + id: "http://liftoff.msfc.nasa.gov/2003/05/30.html#item572", + description: "Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href=\"http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm\">partial eclipse of the Sun</a> on Saturday, May 31st.", + pubDate: new Date("Fri, 30 May 2003 11:06:42 GMT") + }, { + id: "http://liftoff.msfc.nasa.gov/2003/05/27.html#item571", + title: "The Engine That Does More", + link: "http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp", + description: "Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.", + pubDate: new Date("Tue, 27 May 2003 08:37:32 GMT") + }, { + id: "http://liftoff.msfc.nasa.gov/2003/05/20.html#item570", + title: "Astronauts' Dirty Laundry", + link: "http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp", + description: "Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.", + pubDate: new Date("Tue, 20 May 2003 08:56:02 GMT") + }] +};
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Feeds/02-atom.js b/node_modules/htmlparser2/test/Feeds/02-atom.js new file mode 100644 index 000000000..92b6de336 --- /dev/null +++ b/node_modules/htmlparser2/test/Feeds/02-atom.js @@ -0,0 +1,18 @@ +exports.name = "Atom (1.0)"; +exports.file = "/Atom_Example.xml"; +exports.expected = { + type: "atom", + id: "urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6", + title: "Example Feed", + link: "http://example.org/feed/", + description: "A subtitle.", + updated: new Date("2003-12-13T18:30:02Z"), + author: "johndoe@example.com", + items: [{ + id: "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a", + title: "Atom-Powered Robots Run Amok", + link: "http://example.org/2003/12/13/atom03", + description: "Some text.", + pubDate: new Date("2003-12-13T18:30:02Z") + }] +};
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Feeds/03-rdf.js b/node_modules/htmlparser2/test/Feeds/03-rdf.js new file mode 100644 index 000000000..0f1cbc41c --- /dev/null +++ b/node_modules/htmlparser2/test/Feeds/03-rdf.js @@ -0,0 +1,20 @@ +exports.name = "RDF test"; +exports.file = "/RDF_Example.xml"; +exports.expected = { + "type": "rdf", + "id": "", + "title": "craigslist | all community in SF bay area", + "link": "http://sfbay.craigslist.org/ccc/", + "items": [ + { + "title": "Music Equipment Repair and Consignment", + "link": "http://sfbay.craigslist.org/sby/muc/2681301534.html", + "description": "San Jose Rock Shop offers musical instrument repair and consignment! (408) 215-2065<br> <br> We are pleased to announce our NEW LOCATION: 1199 N 5th st. San Jose, ca 95112. Please call ahead, by appointment only.<br> <br> Recently featured by Metro Newspaper in their 2011 Best of the Silicon Valley edition see it online here:<br> <a href=\"http://www.metroactive.com/best-of-silicon-valley/2011/music-nightlife/editor-picks.html\" rel=\"nofollow\">http://www.metroactive.com/best-of-silicon-valley/2011/music-nightlife/editor-picks.html</a><br> <br> Guitar Set up (acoustic and electronic) $40!<!-- END CLTAGS -->" + }, + { + "title": "Ride Offered - Oakland/BART to LA/SFV - TODAY 3PM 11/04 (oakland north / temescal)", + "link": "http://sfbay.craigslist.org/eby/rid/2685010755.html", + "description": "Im offering a lift for up to two people from Oakland (or near any BART station in the East Bay/580/880 Corridor, or San Jose/Morgan Hill, Gilroy) to the San Fernando Valley / Los Angeles area. Specifically, Im leaving from Oakland between 2:30 and 3:00pm (this is flexible, but if I leave too late my girlfriend will kill me), and heading to Woodland Hills via the 580, I-5, 405, and 101.<!-- END CLTAGS -->" + } + ] +};
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Stream/01-basic.json b/node_modules/htmlparser2/test/Stream/01-basic.json new file mode 100644 index 000000000..e0766e791 --- /dev/null +++ b/node_modules/htmlparser2/test/Stream/01-basic.json @@ -0,0 +1,83 @@ +{ + "name": "Basic html", + "options": {}, + "file": "Basic.html", + "expected": [ + { + "event": "processinginstruction", + "data": [ + "!doctype", + "!DOCTYPE html" + ] + }, + { + "event": "opentagname", + "data": [ + "html" + ] + }, + { + "event": "opentag", + "data": [ + "html", + {} + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "The Title" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "opentagname", + "data": [ + "body" + ] + }, + { + "event": "opentag", + "data": [ + "body", + {} + ] + }, + { + "event": "text", + "data": [ + "Hello world" + ] + }, + { + "event": "closetag", + "data": [ + "body" + ] + }, + { + "event": "closetag", + "data": [ + "html" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Stream/02-RSS.json b/node_modules/htmlparser2/test/Stream/02-RSS.json new file mode 100644 index 000000000..0d5921cec --- /dev/null +++ b/node_modules/htmlparser2/test/Stream/02-RSS.json @@ -0,0 +1,1093 @@ +{ + "name": "RSS feed", + "options": {"xmlMode": true}, + "file": "RSS_Example.xml", + "expected": [ + { + "event": "processinginstruction", + "data": [ + "?xml", + "?xml version=\"1.0\"?" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "comment", + "data": [ + " http://cyber.law.harvard.edu/rss/examples/rss2sample.xml " + ] + }, + { + "event": "commentend", + "data": [] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "opentagname", + "data": [ + "rss" + ] + }, + { + "event": "attribute", + "data": [ + "version", + "2.0" + ] + }, + { + "event": "opentag", + "data": [ + "rss", + { + "version": "2.0" + } + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "channel" + ] + }, + { + "event": "opentag", + "data": [ + "channel", + {} + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "Liftoff News" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "opentag", + "data": [ + "link", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/" + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "text", + "data": [ + "Liftoff to Space Exploration." + ] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "language" + ] + }, + { + "event": "opentag", + "data": [ + "language", + {} + ] + }, + { + "event": "text", + "data": [ + "en-us" + ] + }, + { + "event": "closetag", + "data": [ + "language" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "pubDate" + ] + }, + { + "event": "opentag", + "data": [ + "pubDate", + {} + ] + }, + { + "event": "text", + "data": [ + "Tue, 10 Jun 2003 04:00:00 GMT" + ] + }, + { + "event": "closetag", + "data": [ + "pubDate" + ] + }, + { + "event": "text", + "data": [ + "\n\n " + ] + }, + { + "event": "opentagname", + "data": [ + "lastBuildDate" + ] + }, + { + "event": "opentag", + "data": [ + "lastBuildDate", + {} + ] + }, + { + "event": "text", + "data": [ + "Tue, 10 Jun 2003 09:41:01 GMT" + ] + }, + { + "event": "closetag", + "data": [ + "lastBuildDate" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "docs" + ] + }, + { + "event": "opentag", + "data": [ + "docs", + {} + ] + }, + { + "event": "text", + "data": [ + "http://blogs.law.harvard.edu/tech/rss" + ] + }, + { + "event": "closetag", + "data": [ + "docs" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "generator" + ] + }, + { + "event": "opentag", + "data": [ + "generator", + {} + ] + }, + { + "event": "text", + "data": [ + "Weblog Editor 2.0" + ] + }, + { + "event": "closetag", + "data": [ + "generator" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "managingEditor" + ] + }, + { + "event": "opentag", + "data": [ + "managingEditor", + {} + ] + }, + { + "event": "text", + "data": [ + "editor@example.com" + ] + }, + { + "event": "closetag", + "data": [ + "managingEditor" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "webMaster" + ] + }, + { + "event": "opentag", + "data": [ + "webMaster", + {} + ] + }, + { + "event": "text", + "data": [ + "webmaster@example.com" + ] + }, + { + "event": "closetag", + "data": [ + "webMaster" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "item" + ] + }, + { + "event": "opentag", + "data": [ + "item", + {} + ] + }, + { + "event": "text", + "data": [ + "\n\n " + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "Star City" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "opentag", + "data": [ + "link", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp" + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "text", + "data": [ + "How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href=\"http://howe.iki.rssi.ru/GCTC/gctc_e.htm\">Star City</a>." + ] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "pubDate" + ] + }, + { + "event": "opentag", + "data": [ + "pubDate", + {} + ] + }, + { + "event": "text", + "data": [ + "Tue, 03 Jun 2003 09:39:21 GMT" + ] + }, + { + "event": "closetag", + "data": [ + "pubDate" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "guid" + ] + }, + { + "event": "opentag", + "data": [ + "guid", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/2003/06/03.html#item573" + ] + }, + { + "event": "closetag", + "data": [ + "guid" + ] + }, + { + "event": "text", + "data": [ + "\n\n " + ] + }, + { + "event": "closetag", + "data": [ + "item" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "item" + ] + }, + { + "event": "opentag", + "data": [ + "item", + {} + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "text", + "data": [ + "Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href=\"http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm\">partial eclipse of the Sun</a> on Saturday, May 31st." + ] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "pubDate" + ] + }, + { + "event": "opentag", + "data": [ + "pubDate", + {} + ] + }, + { + "event": "text", + "data": [ + "Fri, 30 May 2003 11:06:42 GMT" + ] + }, + { + "event": "closetag", + "data": [ + "pubDate" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "guid" + ] + }, + { + "event": "opentag", + "data": [ + "guid", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/2003/05/30.html#item572" + ] + }, + { + "event": "closetag", + "data": [ + "guid" + ] + }, + { + "event": "text", + "data": [ + "\n\n " + ] + }, + { + "event": "closetag", + "data": [ + "item" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "item" + ] + }, + { + "event": "opentag", + "data": [ + "item", + {} + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "The Engine That Does More" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "opentag", + "data": [ + "link", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp" + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "text", + "data": [ + "Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that." + ] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "pubDate" + ] + }, + { + "event": "opentag", + "data": [ + "pubDate", + {} + ] + }, + { + "event": "text", + "data": [ + "Tue, 27 May 2003 08:37:32 GMT" + ] + }, + { + "event": "closetag", + "data": [ + "pubDate" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "guid" + ] + }, + { + "event": "opentag", + "data": [ + "guid", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/2003/05/27.html#item571" + ] + }, + { + "event": "closetag", + "data": [ + "guid" + ] + }, + { + "event": "text", + "data": [ + "\n\n " + ] + }, + { + "event": "closetag", + "data": [ + "item" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "item" + ] + }, + { + "event": "opentag", + "data": [ + "item", + {} + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "Astronauts' Dirty Laundry" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "opentag", + "data": [ + "link", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp" + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "text", + "data": [ + "Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options." + ] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "pubDate" + ] + }, + { + "event": "opentag", + "data": [ + "pubDate", + {} + ] + }, + { + "event": "text", + "data": [ + "Tue, 20 May 2003 08:56:02 GMT" + ] + }, + { + "event": "closetag", + "data": [ + "pubDate" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "opentagname", + "data": [ + "guid" + ] + }, + { + "event": "opentag", + "data": [ + "guid", + {} + ] + }, + { + "event": "text", + "data": [ + "http://liftoff.msfc.nasa.gov/2003/05/20.html#item570" + ] + }, + { + "event": "closetag", + "data": [ + "guid" + ] + }, + { + "event": "text", + "data": [ + "\n\n " + ] + }, + { + "event": "closetag", + "data": [ + "item" + ] + }, + { + "event": "text", + "data": [ + "\n " + ] + }, + { + "event": "closetag", + "data": [ + "channel" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "closetag", + "data": [ + "rss" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Stream/03-Atom.json b/node_modules/htmlparser2/test/Stream/03-Atom.json new file mode 100644 index 000000000..4c81b24fe --- /dev/null +++ b/node_modules/htmlparser2/test/Stream/03-Atom.json @@ -0,0 +1,644 @@ +{ + "name": "Atom feed", + "options": {"xmlMode": true}, + "file": "Atom_Example.xml", + "expected": [ + { + "event": "processinginstruction", + "data": [ + "?xml", + "?xml version=\"1.0\" encoding=\"utf-8\"?" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "comment", + "data": [ + " http://en.wikipedia.org/wiki/Atom_%28standard%29 " + ] + }, + { + "event": "commentend", + "data": [] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "opentagname", + "data": [ + "feed" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns", + "http://www.w3.org/2005/Atom" + ] + }, + { + "event": "opentag", + "data": [ + "feed", + { + "xmlns": "http://www.w3.org/2005/Atom" + } + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "Example Feed" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "subtitle" + ] + }, + { + "event": "opentag", + "data": [ + "subtitle", + {} + ] + }, + { + "event": "text", + "data": [ + "A subtitle." + ] + }, + { + "event": "closetag", + "data": [ + "subtitle" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "attribute", + "data": [ + "href", + "http://example.org/feed/" + ] + }, + { + "event": "attribute", + "data": [ + "rel", + "self" + ] + }, + { + "event": "opentag", + "data": [ + "link", + { + "href": "http://example.org/feed/", + "rel": "self" + } + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "attribute", + "data": [ + "href", + "http://example.org/" + ] + }, + { + "event": "opentag", + "data": [ + "link", + { + "href": "http://example.org/" + } + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "id" + ] + }, + { + "event": "opentag", + "data": [ + "id", + {} + ] + }, + { + "event": "text", + "data": [ + "urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6" + ] + }, + { + "event": "closetag", + "data": [ + "id" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "updated" + ] + }, + { + "event": "opentag", + "data": [ + "updated", + {} + ] + }, + { + "event": "text", + "data": [ + "2003-12-13T18:30:02Z" + ] + }, + { + "event": "closetag", + "data": [ + "updated" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "author" + ] + }, + { + "event": "opentag", + "data": [ + "author", + {} + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "name" + ] + }, + { + "event": "opentag", + "data": [ + "name", + {} + ] + }, + { + "event": "text", + "data": [ + "John Doe" + ] + }, + { + "event": "closetag", + "data": [ + "name" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "email" + ] + }, + { + "event": "opentag", + "data": [ + "email", + {} + ] + }, + { + "event": "text", + "data": [ + "johndoe@example.com" + ] + }, + { + "event": "closetag", + "data": [ + "email" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "closetag", + "data": [ + "author" + ] + }, + { + "event": "text", + "data": [ + "\n\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "entry" + ] + }, + { + "event": "opentag", + "data": [ + "entry", + {} + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "Atom-Powered Robots Run Amok" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "attribute", + "data": [ + "href", + "http://example.org/2003/12/13/atom03" + ] + }, + { + "event": "opentag", + "data": [ + "link", + { + "href": "http://example.org/2003/12/13/atom03" + } + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "attribute", + "data": [ + "rel", + "alternate" + ] + }, + { + "event": "attribute", + "data": [ + "type", + "text/html" + ] + }, + { + "event": "attribute", + "data": [ + "href", + "http://example.org/2003/12/13/atom03.html" + ] + }, + { + "event": "opentag", + "data": [ + "link", + { + "rel": "alternate", + "type": "text/html", + "href": "http://example.org/2003/12/13/atom03.html" + } + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "attribute", + "data": [ + "rel", + "edit" + ] + }, + { + "event": "attribute", + "data": [ + "href", + "http://example.org/2003/12/13/atom03/edit" + ] + }, + { + "event": "opentag", + "data": [ + "link", + { + "rel": "edit", + "href": "http://example.org/2003/12/13/atom03/edit" + } + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "id" + ] + }, + { + "event": "opentag", + "data": [ + "id", + {} + ] + }, + { + "event": "text", + "data": [ + "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a" + ] + }, + { + "event": "closetag", + "data": [ + "id" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "updated" + ] + }, + { + "event": "opentag", + "data": [ + "updated", + {} + ] + }, + { + "event": "text", + "data": [ + "2003-12-13T18:30:02Z" + ] + }, + { + "event": "closetag", + "data": [ + "updated" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "summary" + ] + }, + { + "event": "opentag", + "data": [ + "summary", + {} + ] + }, + { + "event": "text", + "data": [ + "Some text." + ] + }, + { + "event": "closetag", + "data": [ + "summary" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "closetag", + "data": [ + "entry" + ] + }, + { + "event": "text", + "data": [ + "\n\n" + ] + }, + { + "event": "closetag", + "data": [ + "feed" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Stream/04-RDF.json b/node_modules/htmlparser2/test/Stream/04-RDF.json new file mode 100644 index 000000000..7ebf5161f --- /dev/null +++ b/node_modules/htmlparser2/test/Stream/04-RDF.json @@ -0,0 +1,1399 @@ +{ + "name": "RDF feed", + "options": {"xmlMode": true}, + "file": "RDF_Example.xml", + "expected": [ + { + "event": "processinginstruction", + "data": [ + "?xml", + "?xml version=\"1.0\" encoding=\"UTF-8\"?" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "opentagname", + "data": [ + "rdf:RDF" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:rdf", + "http://www.w3.org/1999/02/22-rdf-syntax-ns#" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns", + "http://purl.org/rss/1.0/" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:ev", + "http://purl.org/rss/1.0/modules/event/" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:content", + "http://purl.org/rss/1.0/modules/content/" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:taxo", + "http://purl.org/rss/1.0/modules/taxonomy/" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:dc", + "http://purl.org/dc/elements/1.1/" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:syn", + "http://purl.org/rss/1.0/modules/syndication/" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:dcterms", + "http://purl.org/dc/terms/" + ] + }, + { + "event": "attribute", + "data": [ + "xmlns:admin", + "http://webns.net/mvcb/" + ] + }, + { + "event": "opentag", + "data": [ + "rdf:RDF", + { + "xmlns:rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "xmlns": "http://purl.org/rss/1.0/", + "xmlns:ev": "http://purl.org/rss/1.0/modules/event/", + "xmlns:content": "http://purl.org/rss/1.0/modules/content/", + "xmlns:taxo": "http://purl.org/rss/1.0/modules/taxonomy/", + "xmlns:dc": "http://purl.org/dc/elements/1.1/", + "xmlns:syn": "http://purl.org/rss/1.0/modules/syndication/", + "xmlns:dcterms": "http://purl.org/dc/terms/", + "xmlns:admin": "http://webns.net/mvcb/" + } + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "channel" + ] + }, + { + "event": "attribute", + "data": [ + "rdf:about", + "http://sfbay.craigslist.org/ccc/" + ] + }, + { + "event": "opentag", + "data": [ + "channel", + { + "rdf:about": "http://sfbay.craigslist.org/ccc/" + } + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "craigslist | all community in SF bay area" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "opentag", + "data": [ + "link", + {} + ] + }, + { + "event": "text", + "data": [ + "http://sfbay.craigslist.org/ccc/" + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:language" + ] + }, + { + "event": "opentag", + "data": [ + "dc:language", + {} + ] + }, + { + "event": "text", + "data": [ + "en-us" + ] + }, + { + "event": "closetag", + "data": [ + "dc:language" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:rights" + ] + }, + { + "event": "opentag", + "data": [ + "dc:rights", + {} + ] + }, + { + "event": "text", + "data": [ + "Copyright 2011 craigslist, inc." + ] + }, + { + "event": "closetag", + "data": [ + "dc:rights" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:publisher" + ] + }, + { + "event": "opentag", + "data": [ + "dc:publisher", + {} + ] + }, + { + "event": "text", + "data": [ + "webmaster@craigslist.org" + ] + }, + { + "event": "closetag", + "data": [ + "dc:publisher" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:creator" + ] + }, + { + "event": "opentag", + "data": [ + "dc:creator", + {} + ] + }, + { + "event": "text", + "data": [ + "webmaster@craigslist.org" + ] + }, + { + "event": "closetag", + "data": [ + "dc:creator" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:source" + ] + }, + { + "event": "opentag", + "data": [ + "dc:source", + {} + ] + }, + { + "event": "text", + "data": [ + "http://sfbay.craigslist.org/ccc//" + ] + }, + { + "event": "closetag", + "data": [ + "dc:source" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:title" + ] + }, + { + "event": "opentag", + "data": [ + "dc:title", + {} + ] + }, + { + "event": "text", + "data": [ + "craigslist | all community in SF bay area" + ] + }, + { + "event": "closetag", + "data": [ + "dc:title" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:type" + ] + }, + { + "event": "opentag", + "data": [ + "dc:type", + {} + ] + }, + { + "event": "text", + "data": [ + "Collection" + ] + }, + { + "event": "closetag", + "data": [ + "dc:type" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "syn:updateBase" + ] + }, + { + "event": "opentag", + "data": [ + "syn:updateBase", + {} + ] + }, + { + "event": "text", + "data": [ + "2011-11-04T09:39:10-07:00" + ] + }, + { + "event": "closetag", + "data": [ + "syn:updateBase" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "syn:updateFrequency" + ] + }, + { + "event": "opentag", + "data": [ + "syn:updateFrequency", + {} + ] + }, + { + "event": "text", + "data": [ + "4" + ] + }, + { + "event": "closetag", + "data": [ + "syn:updateFrequency" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "syn:updatePeriod" + ] + }, + { + "event": "opentag", + "data": [ + "syn:updatePeriod", + {} + ] + }, + { + "event": "text", + "data": [ + "hourly" + ] + }, + { + "event": "closetag", + "data": [ + "syn:updatePeriod" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "items" + ] + }, + { + "event": "opentag", + "data": [ + "items", + {} + ] + }, + { + "event": "text", + "data": [ + "\n\t\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "rdf:Seq" + ] + }, + { + "event": "opentag", + "data": [ + "rdf:Seq", + {} + ] + }, + { + "event": "text", + "data": [ + "\n\t\t\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "rdf:li" + ] + }, + { + "event": "attribute", + "data": [ + "rdf:resource", + "http://sfbay.craigslist.org/sby/muc/2681301534.html" + ] + }, + { + "event": "opentag", + "data": [ + "rdf:li", + { + "rdf:resource": "http://sfbay.craigslist.org/sby/muc/2681301534.html" + } + ] + }, + { + "event": "closetag", + "data": [ + "rdf:li" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t\t" + ] + }, + { + "event": "closetag", + "data": [ + "rdf:Seq" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "closetag", + "data": [ + "items" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "closetag", + "data": [ + "channel" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "item" + ] + }, + { + "event": "attribute", + "data": [ + "rdf:about", + "http://sfbay.craigslist.org/sby/muc/2681301534.html" + ] + }, + { + "event": "opentag", + "data": [ + "item", + { + "rdf:about": "http://sfbay.craigslist.org/sby/muc/2681301534.html" + } + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "cdatastart", + "data": [] + }, + { + "event": "text", + "data": [ + " Music Equipment Repair and Consignment " + ] + }, + { + "event": "cdataend", + "data": [] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "opentag", + "data": [ + "link", + {} + ] + }, + { + "event": "text", + "data": [ + "\nhttp://sfbay.craigslist.org/sby/muc/2681301534.html\n" + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "cdatastart", + "data": [] + }, + { + "event": "text", + "data": [ + "\nSan Jose Rock Shop offers musical instrument repair and consignment! (408) 215-2065<br> <br> We are pleased to announce our NEW LOCATION: 1199 N 5th st. San Jose, ca 95112. Please call ahead, by appointment only.<br> <br> Recently featured by Metro Newspaper in their 2011 Best of the Silicon Valley edition see it online here:<br> <a href=\"http://www.metroactive.com/best-of-silicon-valley/2011/music-nightlife/editor-picks.html\" rel=\"nofollow\">http://www.metroactive.com/best-of-silicon-valley/2011/music-nightlife/editor-picks.html</a><br> <br> Guitar Set up (acoustic and electronic) $40!<!-- END CLTAGS -->\n" + ] + }, + { + "event": "cdataend", + "data": [] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:date" + ] + }, + { + "event": "opentag", + "data": [ + "dc:date", + {} + ] + }, + { + "event": "text", + "data": [ + "2011-11-04T09:35:17-07:00" + ] + }, + { + "event": "closetag", + "data": [ + "dc:date" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:language" + ] + }, + { + "event": "opentag", + "data": [ + "dc:language", + {} + ] + }, + { + "event": "text", + "data": [ + "en-us" + ] + }, + { + "event": "closetag", + "data": [ + "dc:language" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:rights" + ] + }, + { + "event": "opentag", + "data": [ + "dc:rights", + {} + ] + }, + { + "event": "text", + "data": [ + "Copyright 2011 craigslist, inc." + ] + }, + { + "event": "closetag", + "data": [ + "dc:rights" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:source" + ] + }, + { + "event": "opentag", + "data": [ + "dc:source", + {} + ] + }, + { + "event": "text", + "data": [ + "\nhttp://sfbay.craigslist.org/sby/muc/2681301534.html\n" + ] + }, + { + "event": "closetag", + "data": [ + "dc:source" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:title" + ] + }, + { + "event": "opentag", + "data": [ + "dc:title", + {} + ] + }, + { + "event": "cdatastart", + "data": [] + }, + { + "event": "text", + "data": [ + " Music Equipment Repair and Consignment " + ] + }, + { + "event": "cdataend", + "data": [] + }, + { + "event": "closetag", + "data": [ + "dc:title" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:type" + ] + }, + { + "event": "opentag", + "data": [ + "dc:type", + {} + ] + }, + { + "event": "text", + "data": [ + "text" + ] + }, + { + "event": "closetag", + "data": [ + "dc:type" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dcterms:issued" + ] + }, + { + "event": "opentag", + "data": [ + "dcterms:issued", + {} + ] + }, + { + "event": "text", + "data": [ + "2011-11-04T09:35:17-07:00" + ] + }, + { + "event": "closetag", + "data": [ + "dcterms:issued" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "closetag", + "data": [ + "item" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "item" + ] + }, + { + "event": "attribute", + "data": [ + "rdf:about", + "http://sfbay.craigslist.org/eby/rid/2685010755.html" + ] + }, + { + "event": "opentag", + "data": [ + "item", + { + "rdf:about": "http://sfbay.craigslist.org/eby/rid/2685010755.html" + } + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "cdatastart", + "data": [] + }, + { + "event": "text", + "data": [ + "\nRide Offered - Oakland/BART to LA/SFV - TODAY 3PM 11/04 (oakland north / temescal)\n" + ] + }, + { + "event": "cdataend", + "data": [] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "link" + ] + }, + { + "event": "opentag", + "data": [ + "link", + {} + ] + }, + { + "event": "text", + "data": [ + "\nhttp://sfbay.craigslist.org/eby/rid/2685010755.html\n" + ] + }, + { + "event": "closetag", + "data": [ + "link" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "description" + ] + }, + { + "event": "opentag", + "data": [ + "description", + {} + ] + }, + { + "event": "cdatastart", + "data": [] + }, + { + "event": "text", + "data": [ + "\nIm offering a lift for up to two people from Oakland (or near any BART station in the East Bay/580/880 Corridor, or San Jose/Morgan Hill, Gilroy) to the San Fernando Valley / Los Angeles area. Specifically, Im leaving from Oakland between 2:30 and 3:00pm (this is flexible, but if I leave too late my girlfriend will kill me), and heading to Woodland Hills via the 580, I-5, 405, and 101.<!-- END CLTAGS -->\n" + ] + }, + { + "event": "cdataend", + "data": [] + }, + { + "event": "closetag", + "data": [ + "description" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:date" + ] + }, + { + "event": "opentag", + "data": [ + "dc:date", + {} + ] + }, + { + "event": "text", + "data": [ + "2011-11-04T09:34:54-07:00" + ] + }, + { + "event": "closetag", + "data": [ + "dc:date" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:language" + ] + }, + { + "event": "opentag", + "data": [ + "dc:language", + {} + ] + }, + { + "event": "text", + "data": [ + "en-us" + ] + }, + { + "event": "closetag", + "data": [ + "dc:language" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:rights" + ] + }, + { + "event": "opentag", + "data": [ + "dc:rights", + {} + ] + }, + { + "event": "text", + "data": [ + "Copyright 2011 craigslist, inc." + ] + }, + { + "event": "closetag", + "data": [ + "dc:rights" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:source" + ] + }, + { + "event": "opentag", + "data": [ + "dc:source", + {} + ] + }, + { + "event": "text", + "data": [ + "\nhttp://sfbay.craigslist.org/eby/rid/2685010755.html\n" + ] + }, + { + "event": "closetag", + "data": [ + "dc:source" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:title" + ] + }, + { + "event": "opentag", + "data": [ + "dc:title", + {} + ] + }, + { + "event": "cdatastart", + "data": [] + }, + { + "event": "text", + "data": [ + "\nRide Offered - Oakland/BART to LA/SFV - TODAY 3PM 11/04 (oakland north / temescal)\n" + ] + }, + { + "event": "cdataend", + "data": [] + }, + { + "event": "closetag", + "data": [ + "dc:title" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dc:type" + ] + }, + { + "event": "opentag", + "data": [ + "dc:type", + {} + ] + }, + { + "event": "text", + "data": [ + "text" + ] + }, + { + "event": "closetag", + "data": [ + "dc:type" + ] + }, + { + "event": "text", + "data": [ + "\n\t\t" + ] + }, + { + "event": "opentagname", + "data": [ + "dcterms:issued" + ] + }, + { + "event": "opentag", + "data": [ + "dcterms:issued", + {} + ] + }, + { + "event": "text", + "data": [ + "2011-11-04T09:34:54-07:00" + ] + }, + { + "event": "closetag", + "data": [ + "dcterms:issued" + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "closetag", + "data": [ + "item" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "closetag", + "data": [ + "rdf:RDF" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/Stream/05-Attributes.json b/node_modules/htmlparser2/test/Stream/05-Attributes.json new file mode 100644 index 000000000..ad364c048 --- /dev/null +++ b/node_modules/htmlparser2/test/Stream/05-Attributes.json @@ -0,0 +1,354 @@ +{ + "name": "Attributes", + "options": {}, + "file": "Attributes.html", + "expected": [ + { + "event": "processinginstruction", + "data": [ + "!doctype", + "!doctype html" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "opentagname", + "data": [ + "html" + ] + }, + { + "event": "opentag", + "data": [ + "html", + {} + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "opentagname", + "data": [ + "head" + ] + }, + { + "event": "opentag", + "data": [ + "head", + {} + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "title" + ] + }, + { + "event": "opentag", + "data": [ + "title", + {} + ] + }, + { + "event": "text", + "data": [ + "Attributes test" + ] + }, + { + "event": "closetag", + "data": [ + "title" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "closetag", + "data": [ + "head" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "opentagname", + "data": [ + "body" + ] + }, + { + "event": "opentag", + "data": [ + "body", + {} + ] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "comment", + "data": [ + " Normal attributes " + ] + }, + { + "event": "commentend", + "data": [] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "button" + ] + }, + { + "event": "attribute", + "data": [ + "id", + "test0" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "value0" + ] + }, + { + "event": "attribute", + "data": [ + "title", + "value1" + ] + }, + { + "event": "opentag", + "data": [ + "button", + { + "id": "test0", + "class": "value0", + "title": "value1" + } + ] + }, + { + "event": "text", + "data": [ + "class=\"value0\" title=\"value1\"" + ] + }, + { + "event": "closetag", + "data": [ + "button" + ] + }, + { + "event": "text", + "data": [ + "\n\n\t" + ] + }, + { + "event": "comment", + "data": [ + " Attributes with no quotes or value " + ] + }, + { + "event": "commentend", + "data": [] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "button" + ] + }, + { + "event": "attribute", + "data": [ + "id", + "test1" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "value2" + ] + }, + { + "event": "attribute", + "data": [ + "disabled", + "" + ] + }, + { + "event": "opentag", + "data": [ + "button", + { + "id": "test1", + "class": "value2", + "disabled": "" + } + ] + }, + { + "event": "text", + "data": [ + "class=value2 disabled" + ] + }, + { + "event": "closetag", + "data": [ + "button" + ] + }, + { + "event": "text", + "data": [ + "\n\n\t" + ] + }, + { + "event": "comment", + "data": [ + " Attributes with no space between them. No valid, but accepted by the browser " + ] + }, + { + "event": "commentend", + "data": [] + }, + { + "event": "text", + "data": [ + "\n\t" + ] + }, + { + "event": "opentagname", + "data": [ + "button" + ] + }, + { + "event": "attribute", + "data": [ + "id", + "test2" + ] + }, + { + "event": "attribute", + "data": [ + "class", + "value4" + ] + }, + { + "event": "attribute", + "data": [ + "title", + "value5" + ] + }, + { + "event": "opentag", + "data": [ + "button", + { + "id": "test2", + "class": "value4", + "title": "value5" + } + ] + }, + { + "event": "text", + "data": [ + "class=\"value4\"title=\"value5\"" + ] + }, + { + "event": "closetag", + "data": [ + "button" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "closetag", + "data": [ + "body" + ] + }, + { + "event": "text", + "data": [ + "\n" + ] + }, + { + "event": "closetag", + "data": [ + "html" + ] + } + ] +}
\ No newline at end of file diff --git a/node_modules/htmlparser2/test/test-helper.js b/node_modules/htmlparser2/test/test-helper.js new file mode 100644 index 000000000..5111259b2 --- /dev/null +++ b/node_modules/htmlparser2/test/test-helper.js @@ -0,0 +1,81 @@ +var htmlparser2 = require(".."), + fs = require("fs"), + path = require("path"), + assert = require("assert"), + Parser = htmlparser2.Parser, + CollectingHandler = htmlparser2.CollectingHandler; + +exports.writeToParser = function(handler, options, data){ + var parser = new Parser(handler, options); + //first, try to run the test via chunks + for(var i = 0; i < data.length; i++){ + parser.write(data.charAt(i)); + } + parser.end(); + //then parse everything + parser.parseComplete(data); +}; + +//returns a tree structure +exports.getEventCollector = function(cb){ + var handler = new CollectingHandler({onerror: cb, onend: function(){ + cb(null, handler.events.reduce(eventReducer, [])); + }}); + + return handler; +}; + +function eventReducer(events, arr){ + if(arr[0] === "onerror" || arr[0] === "onend"); + else if(arr[0] === "ontext" && events.length && events[events.length-1].event === "text"){ + events[events.length-1].data[0] += arr[1]; + } else { + events.push({ + event: arr[0].substr(2), + data: arr.slice(1) + }); + } + + return events; +} + +function getCallback(expected, done){ + var repeated = false; + + return function(err, actual){ + assert.ifError(err); + try { + assert.deepEqual(expected, actual, "didn't get expected output"); + } catch(e){ + e.expected = JSON.stringify(expected, null, 2); + e.actual = JSON.stringify(actual, null, 2); + throw e; + } + + if(repeated) done(); + else repeated = true; + }; +} + +exports.mochaTest = function(name, root, test){ + describe(name, readDir); + + function readDir(cb){ + var dir = path.join(root, name); + + fs + .readdirSync(dir) + .filter(RegExp.prototype.test, /^[^\._]/) //ignore all files with a leading dot or underscore + .map(function(name){ + return path.join(dir, name); + }) + .map(require) + .forEach(runTest); + } + + function runTest(file){ + it(file.name, function(done){ + test(file, getCallback(file.expected, done)); + }); + } +};
\ No newline at end of file |