diff options
Diffstat (limited to 'netwerk/test/unit/test_large_port.js')
-rw-r--r-- | netwerk/test/unit/test_large_port.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_large_port.js b/netwerk/test/unit/test_large_port.js new file mode 100644 index 000000000..d2480582f --- /dev/null +++ b/netwerk/test/unit/test_large_port.js @@ -0,0 +1,36 @@ +/* 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/. */ + +// Ensure that non-16-bit URIs are rejected + +"use strict"; + +var Cc = Components.classes; +var Ci = Components.interfaces; + +const StandardURL = Components.Constructor("@mozilla.org/network/standard-url;1", + "nsIStandardURL", + "init"); +function run_test() +{ + // Bug 1301621 makes invalid ports throw + Assert.throws(() => { + new StandardURL(Ci.nsIStandardURL.URLTYPE_AUTHORITY, 65536, + "http://localhost", "UTF-8", null) + }, "invalid port during creation"); + let url = new StandardURL(Ci.nsIStandardURL.URLTYPE_AUTHORITY, 65535, + "http://localhost", "UTF-8", null) + .QueryInterface(Ci.nsIStandardURL) + + Assert.throws(() => { + url.setDefaultPort(65536); + }, "invalid port in setDefaultPort"); + Assert.throws(() => { + url.port = 65536; + }, "invalid port in port setter"); + + do_check_eq(url.QueryInterface(Ci.nsIURI).port, -1); + do_test_finished(); +} + |