blob: 1c8c2a1ccb3d9d8baff36afae295cdf27f7a03c7 [file] [log] [blame]
// Worker tests need to set this for themselves in the .html file.
if (typeof window !== 'undefined')
window.jsTestIsAsync = true;
var timeoutID = null;
function endTest()
{
clearTimeout(timeoutID);
finishJSTest();
}
// There must be no TCP/IP server listening on port |port|.
// If |closeOnError| is true, then the WebSocket close method will be called
// from the onerror handler.
// if |closeOnClose| is true, then the WebSocket close method will be called
// from the onclose handler.
function doTest(port, closeOnError, closeOnClose)
{
debug("Test start (Port " + port + ")");
var url = "ws://127.0.0.1:" + port + "/"
var ws = new WebSocket(url);
ws.onopen = function()
{
testFailed("Connected");
endTest();
};
ws.onmessage = function(messageEvent)
{
testFailed("Received Message");
ws.close();
endTest();
};
ws.onclose = function()
{
testPassed("onclose was called");
if (closeOnClose) {
ws.close();
}
endTest();
}
ws.onerror = function()
{
testPassed("onerror was called");
if (closeOnError) {
ws.close();
}
};
// Each failure to connect to 127.0.0.1 takes 3 seconds on Windows.
// Allow 4 seconds for padding.
timeoutID = setTimeout(timeOutCallback, 4000);
}
function timeOutCallback()
{
debug("Timed out...");
endTest();
}