diff -r 126de77ee73e -r 43b198dc932d unittests/tests/widgets/playerWidget.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/unittests/tests/widgets/playerWidget.js Mon Nov 14 12:26:17 2011 +0100 @@ -0,0 +1,105 @@ +/* test module for the player widget */ + +function test_player_widget() { + module("player widget testing", + {setup : function() { + this.Popcorn = Popcorn.youtube("#popcorn-div", "http://www.youtube.com/watch?v=QH2-TGUlwu4"); + + this.dt = new IriSP.DataLoader(); + this.ser = new IriSP.MockSerializer(this.dt, "/url"); /* dummy serializer */ + this.lay = new IriSP.LayoutManager('widget-div'); + + this.config = { + width:650, + height:1, + mode:'radio', + container:'widget-div', + debug:true, + css:'../src/css/LdtPlayer.css'} + }, + teardown: function() { + /* free the popcorn object because it has signal handlers attached to it */ + this.Popcorn = Popcorn.youtube("#popcorn-div", "http://www.youtube.com/watch?v=QH2-TGUlwu4"); + } + + }); + + test("test player initialisation", function() { + var player = new IriSP.PlayerWidget(this.Popcorn, this.config, this.ser); + player.draw(); + + equal(IriSP.jQuery("#widget-div").length, 1, "test if the div has been added correctly"); + }); + + test("test play button event handler", function() { + var player = new IriSP.PlayerWidget(this.Popcorn, this.config, this.ser); + + var spy_callback = this.spy(); + var spy_callback2 = this.spy(); + this.Popcorn.listen("play", spy_callback); + this.Popcorn.listen("pause", spy_callback2); + sinon.spy(player, "playHandler"); + + player.draw(); + + player.selector.find("#ldt-CtrlPlay").trigger("click"); + player.selector.find("#ldt-CtrlPlay").trigger("click"); + ok(player.playHandler.calledTwice, "play handler called"); + ok(spy_callback2.calledOnce, "test if pause callback has been called"); + }); + + test("test mute button event handler", function() { + var player = new IriSP.PlayerWidget(this.Popcorn, this.config, this.ser); + + var spy_callback = this.spy(); + var spy_handler = sinon.spy(player, "muteHandler"); + this.Popcorn.listen("volumechange", spy_callback); + + player.draw(); + + // IriSP.jQuery("#ldt-CtrlSound").trigger("click"); + player.selector.find(".Ldt-Control2 button:first").next().trigger("click"); + ok(this.Popcorn.muted(), "the player is muted"); + + player.selector.find("#ldt-CtrlSound").trigger("click"); + ok(!this.Popcorn.muted(), "the player is un muted"); + ok(spy_handler.called, "handling function has been called"); + }); + + test("test search button event handler", function() { + var player = new IriSP.PlayerWidget(this.Popcorn, this.config, this.ser); + + var searchTerm = "blah"; + + var spy_callback = this.spy(); + var spy_open = this.spy(); + var spy_closed = this.spy(); + var spy_cleared = this.spy(); + var spy_handler = sinon.spy(player, "searchButtonHandler"); + + player._Popcorn.listen("IriSP.search", spy_callback); + player._Popcorn.listen("IriSP.search.open", spy_open); + player._Popcorn.listen("IriSP.search.closed", spy_closed); + player._Popcorn.listen("IriSP.search.cleared", spy_cleared); + + player.draw(); + + player.selector.find("#ldt-CtrlSearch").trigger("click"); + player.selector.find("#LdtSearchInput").attr('value', searchTerm); + player.selector.find("#LdtSearchInput").trigger('keyup'); + + ok(spy_handler.called, "search button handling function has been called"); + ok(spy_open.called, "open signal has been sent"); + ok(spy_callback.called, "search typeahead function has been called"); + ok(spy_callback.calledWith(searchTerm), "popcorn message sent with the right parameters"); + + player.selector.find("#LdtSearchInput").attr('value', ""); + player.selector.find("#LdtSearchInput").trigger('keyup'); + ok(spy_cleared.called, "clear message has been sent"); + + player.selector.find("#ldt-CtrlSearch").trigger("click"); + ok(spy_closed.called, "closed signal has been sent"); + + }); + +}; \ No newline at end of file