- Changes to get the navigation_helpers.js unit tests green.

- Modified isExternal so that it returns true/false to help with unit tests.
This commit is contained in:
Kin Blas 2011-06-08 17:20:01 -07:00
parent eb082c27e3
commit 3d6bd402a2
2 changed files with 80 additions and 20 deletions

View file

@ -203,7 +203,7 @@
//could be mailto, etc
isExternal: function( url ) {
var u = path.parseUrl( url );
return u.protocol && u.domain !== documentUrl.domain;
return u.protocol && u.domain !== documentUrl.domain ? true : false;
},
hasProtocol: function( url ) {

View file

@ -35,26 +35,91 @@
same("foo", window.location.hash.replace(/^#/,""), "sets location.hash properly");
});
test( "path.makeAbsolute is working properly", function(){
$.mobile.urlHistory.ignoreNextHashChange = false;
test( "path.makeUrlAbsolute is working properly", function(){
var mua = $.mobile.path.makeUrlAbsolute,
p1 = "http://jqm.com/",
p2 = "http://jqm.com/?foo=1&bar=2",
p3 = "http://jqm.com/#spaz",
p4 = "http://jqm.com/?foo=1&bar=2#spaz",
$.mobile.path.set("bar/");
same( $.mobile.path.makeAbsolute("test.html"), "bar/test.html", "prefixes path with absolute base path from hash");
p5 = "http://jqm.com/test.php",
p6 = "http://jqm.com/test.php?foo=1&bar=2",
p7 = "http://jqm.com/test.php#spaz",
p8 = "http://jqm.com/test.php?foo=1&bar=2#spaz",
$.mobile.path.set("bar");
same( $.mobile.path.makeAbsolute("test.html"), siteDirectory + "test.html", "returns the absolute path unaltered ignoring non path hash");
p9 = "http://jqm.com/dir1/dir2/",
p10 = "http://jqm.com/dir1/dir2/?foo=1&bar=2",
p11 = "http://jqm.com/dir1/dir2/#spaz",
p12 = "http://jqm.com/dir1/dir2/?foo=1&bar=2#spaz",
$.mobile.path.set("bar/bing/bang");
same( $.mobile.path.makeAbsolute("?foo=bar&bak=baz"), "bar/bing/bang?foo=bar&bak=baz", "appends query string paths to current path");
p13 = "http://jqm.com/dir1/dir2/test.php",
p14 = "http://jqm.com/dir1/dir2/test.php?foo=1&bar=2",
p15 = "http://jqm.com/dir1/dir2/test.php#spaz",
p16 = "http://jqm.com/dir1/dir2/test.php?foo=1&bar=2#spaz";
$.mobile.path.set("");
same( $.mobile.path.makeAbsolute("?foo=bar&bak=baz"), siteDirectory + "?foo=bar&bak=baz", "uses pathname for empty hash");
// Test URL conversion against an absolute URL to the site root.
$.mobile.path.set("bar");
same( $.mobile.path.makeAbsolute("?foo=bar&bak=baz"), siteDirectory + "?foo=bar&bak=baz", "uses pathname for embedded pages");
// directory tests
same( mua( "http://jqm.com/", p1 ), "http://jqm.com/", "absolute root - absolute root" );
same( mua( "//jqm.com/", p1 ), "http://jqm.com/", "protocol relative root - absolute root" );
same( mua( "/", p1 ), "http://jqm.com/", "site relative root - absolute root" );
$.mobile.path.set("bar/bing?foo=bar");
same( $.mobile.path.makeAbsolute("?foo=bar&bak=baz"), "bar/bing?foo=bar&bak=baz", "prevents addition of many sets of query params");
same( mua( "http://jqm.com/?foo=1&bar=2", p1 ), "http://jqm.com/?foo=1&bar=2", "absolute root with query - absolute root" );
same( mua( "//jqm.com/?foo=1&bar=2", p1 ), "http://jqm.com/?foo=1&bar=2", "protocol relative root with query - absolute root" );
same( mua( "/?foo=1&bar=2", p1 ), "http://jqm.com/?foo=1&bar=2", "site relative root with query - absolute root" );
same( mua( "?foo=1&bar=2", p1 ), "http://jqm.com/?foo=1&bar=2", "query relative - absolute root" );
same( mua( "http://jqm.com/#spaz", p1 ), "http://jqm.com/#spaz", "absolute root with fragment - absolute root" );
same( mua( "//jqm.com/#spaz", p1 ), "http://jqm.com/#spaz", "protocol relative root with fragment - absolute root" );
same( mua( "/#spaz", p1 ), "http://jqm.com/#spaz", "site relative root with fragment - absolute root" );
same( mua( "#spaz", p1 ), "http://jqm.com/#spaz", "fragment relative - absolute root" );
same( mua( "http://jqm.com/?foo=1&bar=2#spaz", p1 ), "http://jqm.com/?foo=1&bar=2#spaz", "absolute root with query and fragment - absolute root" );
same( mua( "//jqm.com/?foo=1&bar=2#spaz", p1 ), "http://jqm.com/?foo=1&bar=2#spaz", "protocol relative root with query and fragment - absolute root" );
same( mua( "/?foo=1&bar=2#spaz", p1 ), "http://jqm.com/?foo=1&bar=2#spaz", "site relative root with query and fragment - absolute root" );
same( mua( "?foo=1&bar=2#spaz", p1 ), "http://jqm.com/?foo=1&bar=2#spaz", "query relative and fragment - absolute root" );
// file tests
same( mua( "http://jqm.com/test.php", p1 ), "http://jqm.com/test.php", "absolute file at root - absolute root" );
same( mua( "//jqm.com/test.php", p1 ), "http://jqm.com/test.php", "protocol relative file at root - absolute root" );
same( mua( "/test.php", p1 ), "http://jqm.com/test.php", "site relative file at root - absolute root" );
same( mua( "test.php", p1 ), "http://jqm.com/test.php", "document relative file at root - absolute root" );
same( mua( "http://jqm.com/test.php?foo=1&bar=2", p1 ), "http://jqm.com/test.php?foo=1&bar=2", "absolute file at root with query - absolute root" );
same( mua( "//jqm.com/test.php?foo=1&bar=2", p1 ), "http://jqm.com/test.php?foo=1&bar=2", "protocol relative file at root with query - absolute root" );
same( mua( "/test.php?foo=1&bar=2", p1 ), "http://jqm.com/test.php?foo=1&bar=2", "site relative file at root with query - absolute root" );
same( mua( "test.php?foo=1&bar=2", p1 ), "http://jqm.com/test.php?foo=1&bar=2", "document relative file at root with query - absolute root" );
same( mua( "http://jqm.com/test.php#spaz", p1 ), "http://jqm.com/test.php#spaz", "absolute file at root with fragment - absolute root" );
same( mua( "//jqm.com/test.php#spaz", p1 ), "http://jqm.com/test.php#spaz", "protocol relative file at root with fragment - absolute root" );
same( mua( "/test.php#spaz", p1 ), "http://jqm.com/test.php#spaz", "site relative file at root with fragment - absolute root" );
same( mua( "test.php#spaz", p1 ), "http://jqm.com/test.php#spaz", "file at root with fragment - absolute root" );
same( mua( "http://jqm.com/test.php?foo=1&bar=2#spaz", p1 ), "http://jqm.com/test.php?foo=1&bar=2#spaz", "absolute file at root with query and fragment - absolute root" );
same( mua( "//jqm.com/test.php?foo=1&bar=2#spaz", p1 ), "http://jqm.com/test.php?foo=1&bar=2#spaz", "protocol relative file at root with query and fragment - absolute root" );
same( mua( "/test.php?foo=1&bar=2#spaz", p1 ), "http://jqm.com/test.php?foo=1&bar=2#spaz", "site relative file at root with query and fragment - absolute root" );
same( mua( "test.php?foo=1&bar=2#spaz", p1 ), "http://jqm.com/test.php?foo=1&bar=2#spaz", "query relative file at root fragment - absolute root" );
// Test URL conversion against an absolute URL to a file at the site root.
same( mua( "http://jqm.com/", p5 ), "http://jqm.com/", "absolute root - absolute root" );
same( mua( "//jqm.com/", p5 ), "http://jqm.com/", "protocol relative root - absolute root" );
same( mua( "/", p5 ), "http://jqm.com/", "site relative root - absolute root" );
same( mua( "http://jqm.com/?foo=1&bar=2", p5 ), "http://jqm.com/?foo=1&bar=2", "absolute root with query - absolute root" );
same( mua( "//jqm.com/?foo=1&bar=2", p5 ), "http://jqm.com/?foo=1&bar=2", "protocol relative root with query - absolute root" );
same( mua( "/?foo=1&bar=2", p5 ), "http://jqm.com/?foo=1&bar=2", "site relative root with query - absolute root" );
same( mua( "?foo=1&bar=2", p5 ), "http://jqm.com/?foo=1&bar=2", "query relative - absolute root" );
same( mua( "http://jqm.com/#spaz", p5 ), "http://jqm.com/#spaz", "absolute root with fragment - absolute root" );
same( mua( "//jqm.com/#spaz", p5 ), "http://jqm.com/#spaz", "protocol relative root with fragment - absolute root" );
same( mua( "/#spaz", p5 ), "http://jqm.com/#spaz", "site relative root with fragment - absolute root" );
same( mua( "#spaz", p5 ), "http://jqm.com/test.php#spaz", "fragment relative - absolute root" );
same( mua( "http://jqm.com/?foo=1&bar=2#spaz", p5 ), "http://jqm.com/?foo=1&bar=2#spaz", "absolute root with query and fragment - absolute root" );
same( mua( "//jqm.com/?foo=1&bar=2#spaz", p5 ), "http://jqm.com/?foo=1&bar=2#spaz", "protocol relative root with query and fragment - absolute root" );
same( mua( "/?foo=1&bar=2#spaz", p5 ), "http://jqm.com/?foo=1&bar=2#spaz", "site relative root with query and fragment - absolute root" );
same( mua( "?foo=1&bar=2#spaz", p5 ), "http://jqm.com/test.php?foo=1&bar=2#spaz", "query relative and fragment - absolute root" );
});
test( "path.clean is working properly", function(){
@ -103,11 +168,6 @@
same($.mobile.path.isExternal("#foo"), false, "local id reference");
});
test( "path.isQuery is working properly", function(){
ok( $.mobile.path.isQuery( "?foo=bar" ), "string prefixed with ?");
ok( !$.mobile.path.isQuery( "anything else" ), "string not prefixed with ?");
});
test( "path.cleanHash", function(){
same( $.mobile.path.cleanHash( "#anything/atall?akjfdjjf" ), "anything/atall", "removes query param");
same( $.mobile.path.cleanHash( "#nothing/atall" ), "nothing/atall", "removes query param");