diff options
| author | Chia-liang Kao | 2013-12-18 00:28:35 -0800 |
|---|---|---|
| committer | Tobias Bosch | 2013-12-18 12:28:07 -0800 |
| commit | 3dc18037e8db8766641a4d39f0fee96077db1fcb (patch) | |
| tree | 4a9ba7c7c2666eff6e9f7eb2e6957bda8f8a271c /test/ng/directive | |
| parent | 57d50582aa7213acf77b2936f70f4c2122d206d6 (diff) | |
| download | angular.js-3dc18037e8db8766641a4d39f0fee96077db1fcb.tar.bz2 | |
fix(input): do not hold input for composition on android
Workaround for chrome for android until #2129 is ready.
Closes #5308, #5323
Diffstat (limited to 'test/ng/directive')
| -rw-r--r-- | test/ng/directive/inputSpec.js | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/test/ng/directive/inputSpec.js b/test/ng/directive/inputSpec.js index c568e807..48319cfa 100644 --- a/test/ng/directive/inputSpec.js +++ b/test/ng/directive/inputSpec.js @@ -477,19 +477,37 @@ describe('input', function() { expect(scope.name).toEqual('adam'); }); - it('should not update the model between "compositionstart" and "compositionend"', function() { - compileInput('<input type="text" ng-model="name" name="alias"" />'); - changeInputValueTo('a'); - expect(scope.name).toEqual('a'); - if (!(msie < 9)) { - browserTrigger(inputElm, 'compositionstart'); - changeInputValueTo('adam'); - expect(scope.name).toEqual('a'); - browserTrigger(inputElm, 'compositionend'); - } - changeInputValueTo('adam'); - expect(scope.name).toEqual('adam'); - }); + if (!(msie < 9)) { + describe('compositionevents', function() { + it('should not update the model between "compositionstart" and "compositionend" on non android', inject(function($sniffer) { + $sniffer.android = false; + + compileInput('<input type="text" ng-model="name" name="alias"" />'); + changeInputValueTo('a'); + expect(scope.name).toEqual('a'); + browserTrigger(inputElm, 'compositionstart'); + changeInputValueTo('adam'); + expect(scope.name).toEqual('a'); + browserTrigger(inputElm, 'compositionend'); + changeInputValueTo('adam'); + expect(scope.name).toEqual('adam'); + })); + + it('should update the model between "compositionstart" and "compositionend" on android', inject(function($sniffer) { + $sniffer.android = true; + + compileInput('<input type="text" ng-model="name" name="alias"" />'); + changeInputValueTo('a'); + expect(scope.name).toEqual('a'); + browserTrigger(inputElm, 'compositionstart'); + changeInputValueTo('adam'); + expect(scope.name).toEqual('adam'); + browserTrigger(inputElm, 'compositionend'); + changeInputValueTo('adam2'); + expect(scope.name).toEqual('adam2'); + })); + }); + } describe('"change" event', function() { function assertBrowserSupportsChangeEvent(inputEventSupported) { |
