1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/netwerk/test/unit/test_ping_aboutnetworking.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,76 @@ 1.4 +/* -*- Mode: Javasript; indent-tab-mode: nil; js-indent-level: 2 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +const gDashboard = Cc['@mozilla.org/network/dashboard;1'] 1.10 + .getService(Ci.nsIDashboard); 1.11 + 1.12 +function connectionFailed(status) { 1.13 + let status_ok = [ 1.14 + "NS_NET_STATUS_RESOLVING_HOST" 1.15 + ,"NS_NET_STATUS_RESOLVED_HOST" 1.16 + ,"NS_NET_STATUS_CONNECTING_TO" 1.17 + ,"NS_NET_STATUS_CONNECTED_TO" 1.18 + ]; 1.19 + for (let i = 0; i < status_ok.length; i++) { 1.20 + if (status == status_ok[i]) { 1.21 + return false; 1.22 + } 1.23 + } 1.24 + 1.25 + return true; 1.26 +} 1.27 + 1.28 +function test_sockets(serverSocket) { 1.29 + do_test_pending(); 1.30 + gDashboard.requestSockets(function(data) { 1.31 + let index = -1; 1.32 + do_print("requestSockets: " + JSON.stringify(data.sockets)); 1.33 + for (let i = 0; i < data.sockets.length; i++) { 1.34 + if (data.sockets[i].host == "127.0.0.1") { 1.35 + index = i; 1.36 + break; 1.37 + } 1.38 + } 1.39 + do_check_neq(index, -1); 1.40 + do_check_eq(data.sockets[index].port, serverSocket.port); 1.41 + do_check_eq(data.sockets[index].tcp, 1); 1.42 + 1.43 + do_test_finished(); 1.44 + }); 1.45 +} 1.46 + 1.47 +function run_test() { 1.48 + let serverSocket = Components.classes["@mozilla.org/network/server-socket;1"] 1.49 + .createInstance(Ci.nsIServerSocket); 1.50 + serverSocket.init(-1, true, -1); 1.51 + 1.52 + do_test_pending(); 1.53 + gDashboard.requestConnection("localhost", serverSocket.port, 1.54 + "tcp", 15, function(connInfo) { 1.55 + if (connInfo.status == "NS_NET_STATUS_CONNECTED_TO") { 1.56 + do_test_pending(); 1.57 + gDashboard.requestDNSInfo(function(data) { 1.58 + let found = false; 1.59 + do_print("requestDNSInfo: " + JSON.stringify(data.entries)); 1.60 + for (let i = 0; i < data.entries.length; i++) { 1.61 + if (data.entries[i].hostname == "localhost") { 1.62 + found = true; 1.63 + break; 1.64 + } 1.65 + } 1.66 + do_check_eq(found, true); 1.67 + 1.68 + do_test_finished(); 1.69 + test_sockets(serverSocket); 1.70 + }); 1.71 + 1.72 + do_test_finished(); 1.73 + } 1.74 + if (connectionFailed(connInfo.status)) { 1.75 + do_throw(connInfo.status); 1.76 + } 1.77 + }); 1.78 +} 1.79 +