player widget now sends a special message when the mouse is hovering it.
--- a/src/js/widgets/playerWidget.js Fri Nov 25 10:40:08 2011 +0100
+++ b/src/js/widgets/playerWidget.js Fri Nov 25 11:10:19 2011 +0100
@@ -38,6 +38,9 @@
var searchBox = Mustache.to_html(IriSP.search_template, {margin_left : searchButtonPos.left + "px"});
this.selector.append(searchBox);
+ // trigger an IriSP.PlayerWidget.MouseOver to the widgets that are interested (i.e : sliderWidget)
+ this.selector.hover(function() { self._Popcorn.trigger("IriSP.PlayerWidget.MouseOver"); },
+ function() { self._Popcorn.trigger("IriSP.PlayerWidget.MouseOut"); });
};
/* Update the elasped time div */
--- a/unittests/tests/widgets/playerWidget.js Fri Nov 25 10:40:08 2011 +0100
+++ b/unittests/tests/widgets/playerWidget.js Fri Nov 25 11:10:19 2011 +0100
@@ -100,5 +100,36 @@
ok(spy_closed.called, "closed signal has been sent");
});
-
-};
\ No newline at end of file
+
+ test("test mouseover handler", function() {
+ var player = new IriSP.PlayerWidget(this.Popcorn, this.config, this.ser);
+
+ var spy_callback = this.spy();
+ this.Popcorn.listen("IriSP.PlayerWidget.MouseOver", spy_callback);
+ this.Popcorn.listen("IriSP.PlayerWidget.MouseOut", spy_callback);
+
+ player.draw();
+ var elem = player.selector.get(0);
+
+ if( document.createEvent ) {
+ var evObj = document.createEvent('MouseEvents');
+ evObj.initEvent( 'mouseover', true, false );
+ elem.dispatchEvent(evObj);
+ } else if( document.createEventObject ) {
+ elem.fireEvent('onmouseover');
+ }
+
+ ok(spy_callback.called, "the MouseOver event has been fired");
+
+ if( document.createEvent ) {
+ var evObj = document.createEvent('MouseEvents');
+ evObj.initEvent( 'mouseout', true, false );
+ elem.dispatchEvent(evObj);
+ } else if( document.createEventObject ) {
+ elem.fireEvent('onmouseout');
+ }
+
+ ok(spy_callback.calledTwice, "the MouseOver event has been fired");
+ });
+
+};