diff --git a/src/ngScenario/dsl.js b/src/ngScenario/dsl.js index 81d74233499d..9d46e0cf2f7b 100644 --- a/src/ngScenario/dsl.js +++ b/src/ngScenario/dsl.js @@ -327,6 +327,7 @@ angular.scenario.dsl('select', function() { * Usage: * element(selector, label).count() get the number of elements that match selector * element(selector, label).click() clicks an element + * element(selector, label).mouseover() mouseover an element * element(selector, label).query(fn) executes fn(selectedElements, done) * element(selector, label).{method}() gets the value (as defined by jQuery, ex. val) * element(selector, label).{method}(value) sets the value (as defined by jQuery, ex. val) @@ -383,6 +384,14 @@ angular.scenario.dsl('element', function() { }); }; + chain.mouseover = function() { + return this.addFutureAction("element '" + this.label + "' mouseover", function($window, $document, done) { + var elements = $document.elements(); + elements.trigger('mouseover'); + done(); + }); + }; + chain.query = function(fn) { return this.addFutureAction('element ' + this.label + ' custom query', function($window, $document, done) { fn.call(this, $document.elements(), done); diff --git a/test/ngScenario/dslSpec.js b/test/ngScenario/dslSpec.js index e955b017101d..28c9ffdc5464 100644 --- a/test/ngScenario/dslSpec.js +++ b/test/ngScenario/dslSpec.js @@ -347,6 +347,26 @@ describe("angular.scenario.dsl", function() { dealoc(elm); }); + it('should execute mouseover', function() { + var mousedOver; + doc.append('
'); + doc.find('div').mouseover(function() { + mousedOver = true; + }); + $root.dsl.element('div').mouseover(); + expect(mousedOver).toBe(true); + }); + + it('should bubble up the mouseover event', function() { + var mousedOver; + doc.append('
'); + doc.find('#outer').mouseover(function() { + mousedOver = true; + }); + $root.dsl.element('#inner').mouseover(); + expect(mousedOver).toBe(true); + }); + it('should count matching elements', function() { doc.append(''); $root.dsl.element('span').count();