diff --git a/src/ngScenario/dsl.js b/src/ngScenario/dsl.js index 2f3ca18e3d08..81d74233499d 100644 --- a/src/ngScenario/dsl.js +++ b/src/ngScenario/dsl.js @@ -198,13 +198,13 @@ angular.scenario.dsl('binding', function() { */ angular.scenario.dsl('input', function() { var chain = {}; - var supportInputEvent = 'oninput' in document.createElement('div'); + var supportInputEvent = 'oninput' in document.createElement('div') && msie != 9; chain.enter = function(value, event) { return this.addFutureAction("input '" + this.name + "' enter '" + value + "'", function($window, $document, done) { var input = $document.elements('[ng\\:model="$1"]', this.name).filter(':input'); input.val(value); - input.trigger(event || supportInputEvent && 'input' || 'change'); + input.trigger(event || (supportInputEvent ? 'input' : 'change')); done(); }); }; diff --git a/test/ngScenario/dslSpec.js b/test/ngScenario/dslSpec.js index 2db2771c8b51..e955b017101d 100644 --- a/test/ngScenario/dslSpec.js +++ b/test/ngScenario/dslSpec.js @@ -269,7 +269,7 @@ describe("angular.scenario.dsl", function() { $root.dsl.select('test').options('A', 'B'); expect($root.futureError).toMatch(/did not match/); }); - + it('should fail to select an option that does not exist', function(){ doc.append( ''); - var chain = $root.dsl.input('test.input'); - chain.enter('foo'); - expect(_jQuery('input[ng-model="test.input"]').val()).toEqual('foo'); - }); + it('should change value in text input', inject(function($compile) { + runs(function() { + element = $compile('')($root); + doc.append(element); + var chain = $root.dsl.input('test.input'); + chain.enter('foo'); + expect(_jQuery('input[ng-model="test.input"]').val()).toEqual('foo'); + }); + + // cleanup the event queue + waits(0); + + runs(function() { + expect($root.test.input).toBe('foo'); + }); + })); it('should change value in text input in dash form', function() { doc.append('');