/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ /* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; add_test(function test_ipv4_any() { let socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); Assert.throws(() => { socket.init(-1, false, Services.scriptSecurityManager.getSystemPrincipal()); }, /NS_ERROR_OFFLINE/); run_next_test(); }); add_test(function test_ipv6_any() { let socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); Assert.throws(() => { socket.init2("::", -1, Services.scriptSecurityManager.getSystemPrincipal()); }, /NS_ERROR_OFFLINE/); run_next_test(); }); add_test(function test_ipv4() { let socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); Assert.throws(() => { socket.init2( "240.0.0.1", -1, Services.scriptSecurityManager.getSystemPrincipal() ); }, /NS_ERROR_OFFLINE/); run_next_test(); }); add_test(function test_ipv6() { let socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); Assert.throws(() => { socket.init2( "2001:db8::1", -1, Services.scriptSecurityManager.getSystemPrincipal() ); }, /NS_ERROR_OFFLINE/); run_next_test(); }); add_test(function test_ipv4_loopback() { let socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); try { socket.init2( "127.0.0.1", -1, Services.scriptSecurityManager.getSystemPrincipal(), true ); } catch (e) { Assert.ok(false, "unexpected exception: " + e); } // Now with localhost connections disabled in offline mode. Services.prefs.setBoolPref("network.disable-localhost-when-offline", true); socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); Assert.throws(() => { socket.init2( "127.0.0.1", -1, Services.scriptSecurityManager.getSystemPrincipal(), true ); }, /NS_ERROR_OFFLINE/); Services.prefs.setBoolPref("network.disable-localhost-when-offline", false); run_next_test(); }); add_test(function test_ipv6_loopback() { let socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); try { socket.init2( "::1", -1, Services.scriptSecurityManager.getSystemPrincipal(), true ); } catch (e) { Assert.ok(false, "unexpected exception: " + e); } // Now with localhost connections disabled in offline mode. Services.prefs.setBoolPref("network.disable-localhost-when-offline", true); socket = Cc["@mozilla.org/network/udp-socket;1"].createInstance( Ci.nsIUDPSocket ); Assert.throws(() => { socket.init2( "::1", -1, Services.scriptSecurityManager.getSystemPrincipal(), true ); }, /NS_ERROR_OFFLINE/); Services.prefs.setBoolPref("network.disable-localhost-when-offline", false); run_next_test(); }); function run_test() { // jshint ignore:line Services.io.offline = true; Services.prefs.setBoolPref("network.disable-localhost-when-offline", false); registerCleanupFunction(() => { Services.io.offline = false; Services.prefs.clearUserPref("network.disable-localhost-when-offline"); }); run_next_test(); }