1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 'use strict'; 6 7 tvcm.require('ui.spy'); 8 tvcm.require('tvcm.event_target'); 9 10 tvcm.unittest.testSuite('ui.spy_test', function() { 11 /** 12 * @constructor 13 */ 14 function FakeChannel() { 15 tvcm.EventTarget.call(this); 16 } 17 18 FakeChannel.prototype = { 19 __proto__: tvcm.EventTarget.prototype, 20 21 send: function(msg) { 22 }, 23 24 dispatchMessage: function(msg) { 25 var event = new Event('message', false, false); 26 event.data = msg; 27 this.dispatchEvent(event); 28 } 29 }; 30 31 test('basic', function() { 32 var channel = new FakeChannel(); 33 34 var spy = new ui.Spy(); 35 spy.style.width = '600px'; 36 spy.style.height = '400px'; 37 spy.style.border = '1px solid black'; 38 this.addHTMLOutput(spy); 39 spy.channel = channel; 40 41 channel.dispatchMessage({data: 'alo there'}); 42 43 // Fake out echo reply 44 channel.send = function(msg) { 45 setTimeout(function() { 46 channel.dispatchMessage({data: {type: 'reply', msg: msg}}); 47 }, 10); 48 } 49 }); 50 51 }); 52