// Copyright 2014 The Chromium 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';
tvcm.require('ui.spy');
tvcm.require('tvcm.event_target');
tvcm.unittest.testSuite('ui.spy_test', function() {
/**
* @constructor
*/
function FakeChannel() {
tvcm.EventTarget.call(this);
}
FakeChannel.prototype = {
__proto__: tvcm.EventTarget.prototype,
send: function(msg) {
},
dispatchMessage: function(msg) {
var event = new Event('message', false, false);
event.data = msg;
this.dispatchEvent(event);
}
};
test('basic', function() {
var channel = new FakeChannel();
var spy = new ui.Spy();
spy.style.width = '600px';
spy.style.height = '400px';
spy.style.border = '1px solid black';
this.addHTMLOutput(spy);
spy.channel = channel;
channel.dispatchMessage({data: 'alo there'});
// Fake out echo reply
channel.send = function(msg) {
setTimeout(function() {
channel.dispatchMessage({data: {type: 'reply', msg: msg}});
}, 10);
}
});
});