diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:47:49 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:47:49 +0200 |
commit | 21e6b15991212e21a0bd9928890e8e8518f367e8 (patch) | |
tree | 3859320d916ff6c2e2fbe2f022375827fa28997c /thirdparty/URI.js/test/test_jquery.js | |
parent | 02fa518542328183f35ae04d389b61226f4c4e30 (diff) | |
parent | d5194154335d6cb30edca9b648083069faf9778c (diff) | |
download | wallet-core-21e6b15991212e21a0bd9928890e8e8518f367e8.tar.xz |
Merge commit 'd5194154335d6cb30edca9b648083069faf9778c' as 'thirdparty/URI.js'
Diffstat (limited to 'thirdparty/URI.js/test/test_jquery.js')
-rw-r--r-- | thirdparty/URI.js/test/test_jquery.js | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/thirdparty/URI.js/test/test_jquery.js b/thirdparty/URI.js/test/test_jquery.js new file mode 100644 index 000000000..b6ab8c1be --- /dev/null +++ b/thirdparty/URI.js/test/test_jquery.js @@ -0,0 +1,141 @@ +(function() { + 'use strict'; + /*global document, URI, $, test, equal, ok */ + + module('jQuery.URI', { + setup: function() { + var links = [ + '<a href="http://example.org/">an HTTP link</a>', + '<a href="https://example.org/">an HTTPS link</a>', + '<a href="http://example.org/so)me.pdf">some pdf</a>', + '<a href="http://example.org/hello/world.html">hello world</a>', + '<a href="ftp://localhost/one/two/three/file.ext">directories</a>', + '<a href="ftp://localhost/one/two/file.ext">directories</a>', + '<a href="mailto:mail@example.org?subject=Hello+World">Mail me</a>', + '<a href="javascript:alert(\'ugly!\');">some javascript</a>', + '<a href="#anchor">jump to anchor</a>', + '<img src="/dontexist.jpg" alt="some jpeg">', + '<img src="/dontexist.svg" alt="some svg">', + '<form method="post" action="/some/script.php"></form>' + ]; + + $('<div id="testestest">' + links.join('') + '</div>') + .appendTo(document.body); + $('<div>foo</div>') + .appendTo(document.body); + + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = '/nonexistant.js'; + document.getElementById('testestest').appendChild(script); + }, + teardown: function() { + var t = $('#testestest'); + t.next().remove(); + t.remove(); + } + }); + test('.uri()', function() { + var $links = $('#testestest'), + $first = $links.children().first(), + uri = $first.uri(), + _uri = URI('/hello.world'); + + ok(uri !== _uri, 'different URI instances'); + var __uri = $first.uri(_uri); + ok(uri !== _uri, 'different URI instances'); + ok(uri === __uri, 'same URI instances'); + equal($first.attr('href'), _uri.toString(), 'equal URI'); + + }); + test('filtering with :uri()', function() { + var $links = $('#testestest'); + + // find using accessor and "begins with" comparison + equal($('a:uri(href^=#anc)').length, 1, '$(selector) Anchor Link'); + equal($links.find(':uri(href^=#anc)').length, 1, '.find(selector) Anchor Link'); + + // find using accessor and "ends with" comparison + equal($(':uri(href$=.css)').length, 1, ':uri(href$=.css)'); + + // find using accessor and "contains" comparison + equal($(':uri(href *= /hello/)').length, 1, ':uri(href *= /hello/)'); + + // find using accessor and "equals" comparison + equal($links.find(':uri(protocol=https)').length, 1, ':uri(protocol=https)'); + equal($links.find(':uri(protocol=http)').length, 3, ':uri(protocol=http)'); + + // directory match with trailing slash + equal($links.find(':uri(directory *= /two/)').length, 2, ':uri(directory *= /two/)'); + + // find using URI.is() + equal($links.find(':uri(relative)').length, 5, ':uri(relative)'); + equal($links.find(':uri(is:relative)').length, 5, ':uri(is:relative)'); + equal($links.find(':uri(is: relative)').length, 5, ':uri(is:relative)'); + + // find using URI.equal() + // This syntax breaks Sizzle, probably because it's looking for a nested pseudo ":http" + //equal($links.find(':uri(equals:http://example.org/hello/foo/../world.html)').length, 1, ':uri(equals:$url$)'); + equal($links.find(':uri(equals:"http://example.org/hello/foo/../world.html")').length, 1, ':uri(equals:$url$)'); + equal($links.find(':uri(equals: "http://example.org/hello/foo/../world.html")').length, 1, ':uri(equals:$url$)'); + + // find URNs + equal($links.find(':uri(urn)').length, 2, ':uri(urn)'); + + // .is() + equal($links.children('script').is(':uri(suffix=js)'), true, '.is(\':uri(suffix=js)\')'); + equal($links.children('form').is(':uri(suffix=php)'), true, '.is(\':uri(suffix=php)\')'); + + // .has() + equal($('div').has(':uri(suffix=js)').length, 1, '.has(\':uri(suffix=js)\')'); + }); + test('.attr("href")', function() { + var $links = $('#testestest'), + $first = $links.children().first(), + first = $first.get(0), + uri = $first.uri(), + href = function(elem) { + return elem.getAttribute('href'); + }; + + if (!$.support.hrefNormalized) { + href = function(elem) { + return elem.getAttribute('href', 2); + }; + } + + ok(uri instanceof URI, 'instanceof URI'); + equal(href(first), uri.toString(), 'URI equals href'); + + // test feedback to DOM element + uri.hostname('example.com'); + ok($first.uri() === uri, 'URI persisted'); + equal(href(first), uri.toString(), 'transparent href update'); + + // test feedback from DOM element + $first.attr('href', 'http://example.net/'); + ok($first.uri() === uri, 'URI persisted'); + equal(href(first), uri.toString(), 'transparent href update'); + }); + test('.attr("uri:accessor")', function() { + var $links = $('#testestest'), + $first = $links.children().first(), + uri = $first.uri(), + href = function(elem) { + return elem.getAttribute('href'); + }; + + if (!$.support.hrefNormalized) { + href = function(elem) { + return elem.getAttribute('href', 2); + }; + } + + equal($first.attr('uri:hostname'), 'example.org', 'reading uri:hostname'); + $first.attr('uri:hostname', 'example.com'); + equal($first.attr('uri:hostname'), 'example.com', 'changed uri:hostname'); + equal($first.is(':uri(hostname=example.com)'), true, ':uri() after changed uri:hostname'); + ok($first.uri() === uri, 'URI persisted'); + }); + +})();
\ No newline at end of file |