blob: 547caf2e8eea22fbb8d790b1c158d739b67748cd [file] [log] [blame]
// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
'use strict';
wam.transport.Direct.Tests = new lib.TestManager.Suite(
'wam.transport.Direct.Tests');
wam.transport.Direct.Tests.addTest
('simple', function(result, cx) {
var ary = wam.transport.Direct.createPair();
var a = ary[0], b = ary[1];
var didMessageA = false;
var expectMessageToA = 'message to a';
var didMessageB = false;
var expectMessageToB = 'message to b';
a.onMessage.addListener(function(value) {
result.assertEQ(value, expectMessageToA);
didMessageA = true;
});
b.onMessage.addListener(function(value) {
result.assertEQ(value, expectMessageToB);
didMessageB = true;
});
a.send(expectMessageToB);
b.send(expectMessageToA);
wam.setImmediate(function() {
result.assert(didMessageA);
result.assert(didMessageB);
result.pass();
});
result.requestTime(1000);
});
wam.transport.Direct.Tests.addTest
('disconnect-a', function(result, cx) {
var ary = wam.transport.Direct.createPair();
var a = ary[0], b = ary[1];
a.disconnect();
setTimeout(function() {
result.assertEQ(a.readyBinding.readyState, 'CLOSED');
result.assertEQ(b.readyBinding.readyState, 'ERROR');
result.pass();
}, 0);
result.requestTime(1000);
});
wam.transport.Direct.Tests.addTest
('disconnect-b', function(result, cx) {
var ary = wam.transport.Direct.createPair();
var a = ary[0], b = ary[1];
b.disconnect();
setTimeout(function() {
result.assertEQ(a.readyBinding.readyState, 'ERROR');
result.assertEQ(b.readyBinding.readyState, 'CLOSED');
result.pass();
}, 0);
result.requestTime(1000);
});