diff options
| -rw-r--r-- | src/ngScenario/dsl.js | 4 | ||||
| -rw-r--r-- | test/ngScenario/dslSpec.js | 23 |
2 files changed, 19 insertions, 8 deletions
diff --git a/src/ngScenario/dsl.js b/src/ngScenario/dsl.js index 7939735d..85e4ed8b 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 6d87e850..80778c21 100644 --- a/test/ngScenario/dslSpec.js +++ b/test/ngScenario/dslSpec.js @@ -269,6 +269,7 @@ describe("angular.scenario.dsl", function() { $root.dsl.select('test').options('A', 'B'); expect($root.futureError).toMatch(/did not match/); }); + }); describe('Element', function() { @@ -553,12 +554,22 @@ describe("angular.scenario.dsl", function() { }); describe('Input', function() { - it('should change value in text input', function() { - doc.append('<input ng-model="test.input" value="something">'); - 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('<input ng-model="test.input" value="something">')($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('<input ng-model="test.input" value="something">'); |
