diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /netwerk/test/unit/test_mozTXTToHTMLConv.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'netwerk/test/unit/test_mozTXTToHTMLConv.js')
-rw-r--r-- | netwerk/test/unit/test_mozTXTToHTMLConv.js | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_mozTXTToHTMLConv.js b/netwerk/test/unit/test_mozTXTToHTMLConv.js new file mode 100644 index 000000000..075323d7c --- /dev/null +++ b/netwerk/test/unit/test_mozTXTToHTMLConv.js @@ -0,0 +1,199 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Test that mozITXTToHTMLConv works properly. + */ + +var Cc = Components.classes; +var Ci = Components.interfaces; + +function run_test() { + let converter = Cc["@mozilla.org/txttohtmlconv;1"] + .getService(Ci.mozITXTToHTMLConv); + + const scanTXTtests = [ + // -- RFC1738 + { + input: "RFC1738: <URL:http://mozilla.org> then", + url: "http://mozilla.org" + }, + // -- RFC2396E + { + input: "RFC2396E: <http://mozilla.org/> then", + url: "http://mozilla.org/" + }, + // -- abbreviated + { + input: "see www.mozilla.org maybe", + url: "http://www.mozilla.org" + }, + // -- freetext + { + input:"I mean http://www.mozilla.org/.", + url: "http://www.mozilla.org/" + }, + { + input:"you mean http://mozilla.org:80, right?", + url: "http://mozilla.org:80" + }, + { + input:"go to http://mozilla.org; then go home", + url: "http://mozilla.org" + }, + { + input:"http://mozilla.org! yay!", + url: "http://mozilla.org" + }, + { + input:"er, http://mozilla.com?", + url: "http://mozilla.com" + }, + { + input:"http://example.org- where things happen", + url: "http://example.org" + }, + { + input:"see http://mozilla.org: front page", + url: "http://mozilla.org" + }, + { + input:"'http://mozilla.org/': that's the url", + url: "http://mozilla.org/" + }, + { + input:"some special http://mozilla.org/?x=.,;!-:x", + url: "http://mozilla.org/?x=.,;!-:x" + }, + { + // escape & when producing html + input:"'http://example.org/?test=true&success=true': ok", + url: "http://example.org/?test=true&success=true" + }, + { + input: "bracket: http://localhost/[1] etc.", + url: "http://localhost/" + }, + { + input: "parenthesis: (http://localhost/) etc.", + url: "http://localhost/" + }, + { + input: "(thunderbird)http://mozilla.org/thunderbird", + url: "http://mozilla.org/thunderbird" + }, + { + input: "()http://mozilla.org", + url: "http://mozilla.org" + }, + { + input: "parenthesis included: http://kb.mozillazine.org/Performance_(Thunderbird) etc.", + url: "http://kb.mozillazine.org/Performance_(Thunderbird)" + }, + { + input: "parenthesis slash bracket: (http://localhost/)[1] etc.", + url: "http://localhost/" + }, + { + input: "parenthesis bracket: (http://example.org[1]) etc.", + url: "http://example.org" + }, + { + input: "ipv6 1: https://[1080::8:800:200C:417A]/foo?bar=x test", + url: "https://[1080::8:800:200C:417A]/foo?bar=x" + }, + { + input: "ipv6 2: http://[::ffff:127.0.0.1]/#yay test", + url: "http://[::ffff:127.0.0.1]/#yay" + }, + { + input: "ipv6 parenthesis port: (http://[2001:db8::1]:80/) test", + url: "http://[2001:db8::1]:80/" + }, + { + input: "test http://www.map.com/map.php?t=Nova_Scotia&markers=//Not_a_survey||description=plm2 test", + url: "http://www.map.com/map.php?t=Nova_Scotia&markers=//Not_a_survey||description=plm2" + } + ]; + + const scanHTMLtests = [ + { + input: "http://foo.example.com", + shouldChange: true + }, + { + input: " <a href='http://a.example.com/'>foo</a>", + shouldChange: false + }, + { + input: "<abbr>see http://abbr.example.com</abbr>", + shouldChange: true + }, + { + input: "<!-- see http://comment.example.com/ -->", + shouldChange: false + }, + { + input: "<!-- greater > -->", + shouldChange: false + }, + { + input: "<!-- lesser < -->", + shouldChange: false + }, + { + input: "<style id='ex'>background-image: url(http://example.com/ex.png);</style>", + shouldChange: false + }, + { + input: "<style>body > p, body > div { color:blue }</style>", + shouldChange: false + }, + { + input: "<script>window.location='http://script.example.com/';</script>", + shouldChange: false + }, + { + input: "<head><title>http://head.example.com/</title></head>", + shouldChange: false + }, + { + input: "<header>see http://header.example.com</header>", + shouldChange: true + }, + { + input: "<iframe src='http://iframe.example.com/' />", + shouldChange: false + }, + { + input: "broken end <script", + shouldChange: false + }, + ]; + + function hrefLink(url) { + return ' href="' + url + '"'; + } + + for (let i = 0; i < scanTXTtests.length; i++) { + let t = scanTXTtests[i]; + let output = converter.scanTXT(t.input, Ci.mozITXTToHTMLConv.kURLs); + let link = hrefLink(t.url); + if (output.indexOf(link) == -1) + do_throw("Unexpected conversion by scanTXT: input=" + t.input + + ", output=" + output + ", link=" + link); + } + + for (let i = 0; i < scanHTMLtests.length; i++) { + let t = scanHTMLtests[i]; + let output = converter.scanHTML(t.input, Ci.mozITXTToHTMLConv.kURLs); + let changed = (t.input != output); + if (changed != t.shouldChange) { + do_throw("Unexpected change by scanHTML: changed=" + changed + + ", shouldChange=" + t.shouldChange + + ", \ninput=" + t.input + + ", \noutput=" + output); + } + } +} |