blob: 028885e2ac5717d32b7286dd971deb02338da7af [file] [log] [blame]
description('Tests that adding a new event listener from a callback works as expected.');
var bandwidth = 10;
var metered = false;
var connection = navigator.webkitConnection;
function checkNetworkInformation() {
shouldBe("typeof connection.bandwidth", '"number"');
shouldBe("typeof connection.metered", '"boolean"');
}
var firstListenerEvents = 0;
function firstListener() {
checkNetworkInformation();
if (++firstListenerEvents == 1) {
connection.addEventListener('webkitnetworkinfochange', secondListener);
internals.setNetworkInformation('webkitnetworkinfochange', bandwidth, metered);
}
else if (firstListenerEvents > 2)
testFailed('Too many events for first listener.');
maybeFinishTest();
}
var secondListenerEvents = 0;
function secondListener() {
checkNetworkInformation();
if (++secondListenerEvents > 1)
testFailed('Too many events for second listener.');
maybeFinishTest();
}
function maybeFinishTest() {
if (firstListenerEvents == 2 && secondListenerEvents == 1)
finishJSTest();
}
connection.addEventListener('webkitnetworkinfochange', firstListener);
internals.setNetworkInformation('webkitnetworkinfochange', bandwidth, metered);
window.jsTestIsAsync = true;