gecko-dev/netwerk/test/unit/test_bug429347.js
Valentin Gosu f943b98a02 Bug 1426501 - Change JS code to use nsIURIMutator instead of the nsIURI.spec setter r=mayhemer
MozReview-Commit-ID: FI6WrsQT2ke

--HG--
extra : rebase_source : 2b286c47c19ebd112a0c47fbe0a4c23bdb04755f
2018-01-08 15:20:29 +01:00

39 lines
1.6 KiB
JavaScript

function run_test() {
var ios = Cc["@mozilla.org/network/io-service;1"].
getService(Ci.nsIIOService);
var uri1 = ios.newURI("http://example.com#bar");
var uri2 = ios.newURI("http://example.com/#bar");
Assert.ok(uri1.equals(uri2));
uri1 = uri1.mutate().setSpec("http://example.com?bar").finalize();
uri2 = uri2.mutate().setSpec("http://example.com/?bar").finalize();
Assert.ok(uri1.equals(uri2));
// see https://bugzilla.mozilla.org/show_bug.cgi?id=665706
// ";" is not parsed as special anymore and thus ends up
// in the authority component (see RFC 3986)
uri1 = uri1.mutate().setSpec("http://example.com;bar").finalize();
uri2 = uri2.mutate().setSpec("http://example.com/;bar").finalize();
Assert.ok(!uri1.equals(uri2));
uri1 = uri1.mutate().setSpec("http://example.com#").finalize();
uri2 = uri2.mutate().setSpec("http://example.com/#").finalize();
Assert.ok(uri1.equals(uri2));
uri1 = uri1.mutate().setSpec("http://example.com?").finalize();
uri2 = uri2.mutate().setSpec("http://example.com/?").finalize();
Assert.ok(uri1.equals(uri2));
// see https://bugzilla.mozilla.org/show_bug.cgi?id=665706
// ";" is not parsed as special anymore and thus ends up
// in the authority component (see RFC 3986)
uri1 = uri1.mutate().setSpec("http://example.com;").finalize();
uri2 = uri2.mutate().setSpec("http://example.com/;").finalize();
Assert.ok(!uri1.equals(uri2));
uri1 = uri1.mutate().setSpec("http://example.com").finalize();
uri2 = uri2.mutate().setSpec("http://example.com/").finalize();
Assert.ok(uri1.equals(uri2));
}