@@ -707,21 +707,18 @@ describe('input', function() {
707
707
} ) ;
708
708
709
709
710
- it ( 'should fire \'input\' event on \'keyup\' only on browsers that support this input type' ,
711
- function ( ) {
712
- var inputType = 'month' ;
713
-
714
- var inputEventExpectedToFire = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
715
- var inputEventActuallyFired = false ;
710
+ it ( 'should listen for \'keyup\' only on browsers that support this input type' , function ( ) {
711
+ var inputType = 'month' ;
716
712
717
- var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
718
- inputElm . on ( 'input' , function ( ) { inputEventActuallyFired = true ; } ) ;
713
+ var shouldListenForKeyup = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
714
+ var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
715
+ var ctrl = inputElm . controller ( 'ngModel' ) ;
716
+ spyOn ( ctrl , '$setViewValue' ) ;
719
717
720
- browserTrigger ( inputElm , 'keyup' ) ;
718
+ inputElm . triggerHandler ( 'keyup' ) ;
721
719
722
- expect ( inputEventActuallyFired ) . toBe ( inputEventExpectedToFire ) ;
723
- }
724
- ) ;
720
+ expect ( ctrl . $setViewValue . callCount ) . toBe ( shouldListenForKeyup ? 1 : 0 ) ;
721
+ } ) ;
725
722
726
723
727
724
describe ( 'min' , function ( ) {
@@ -989,21 +986,18 @@ describe('input', function() {
989
986
} ) ;
990
987
991
988
992
- it ( 'should fire \'input\' event on \'keyup\' only on browsers that support this input type' ,
993
- function ( ) {
994
- var inputType = 'week' ;
995
-
996
- var inputEventExpectedToFire = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
997
- var inputEventActuallyFired = false ;
989
+ it ( 'should listen for \'keyup\' only on browsers that support this input type' , function ( ) {
990
+ var inputType = 'week' ;
998
991
999
- var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
1000
- inputElm . on ( 'input' , function ( ) { inputEventActuallyFired = true ; } ) ;
992
+ var shouldListenForKeyup = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
993
+ var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
994
+ var ctrl = inputElm . controller ( 'ngModel' ) ;
995
+ spyOn ( ctrl , '$setViewValue' ) ;
1001
996
1002
- browserTrigger ( inputElm , 'keyup' ) ;
997
+ inputElm . triggerHandler ( 'keyup' ) ;
1003
998
1004
- expect ( inputEventActuallyFired ) . toBe ( inputEventExpectedToFire ) ;
1005
- }
1006
- ) ;
999
+ expect ( ctrl . $setViewValue . callCount ) . toBe ( shouldListenForKeyup ? 1 : 0 ) ;
1000
+ } ) ;
1007
1001
1008
1002
1009
1003
describe ( 'min' , function ( ) {
@@ -1306,21 +1300,18 @@ describe('input', function() {
1306
1300
} ) ;
1307
1301
1308
1302
1309
- it ( 'should fire \'input\' event on \'keyup\' only on browsers that support this input type' ,
1310
- function ( ) {
1311
- var inputType = 'datetime-local' ;
1312
-
1313
- var inputEventExpectedToFire = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
1314
- var inputEventActuallyFired = false ;
1303
+ it ( 'should listen for \'keyup\' only on browsers that support this input type' , function ( ) {
1304
+ var inputType = 'datetime-local' ;
1315
1305
1316
- var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
1317
- inputElm . on ( 'input' , function ( ) { inputEventActuallyFired = true ; } ) ;
1306
+ var shouldListenForKeyup = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
1307
+ var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
1308
+ var ctrl = inputElm . controller ( 'ngModel' ) ;
1309
+ spyOn ( ctrl , '$setViewValue' ) ;
1318
1310
1319
- browserTrigger ( inputElm , 'keyup' ) ;
1311
+ inputElm . triggerHandler ( 'keyup' ) ;
1320
1312
1321
- expect ( inputEventActuallyFired ) . toBe ( inputEventExpectedToFire ) ;
1322
- }
1323
- ) ;
1313
+ expect ( ctrl . $setViewValue . callCount ) . toBe ( shouldListenForKeyup ? 1 : 0 ) ;
1314
+ } ) ;
1324
1315
1325
1316
1326
1317
describe ( 'min' , function ( ) {
@@ -1699,21 +1690,18 @@ describe('input', function() {
1699
1690
} ) ;
1700
1691
1701
1692
1702
- it ( 'should fire \'input\' event on \'keyup\' only on browsers that support this input type' ,
1703
- function ( ) {
1704
- var inputType = 'time' ;
1705
-
1706
- var inputEventExpectedToFire = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
1707
- var inputEventActuallyFired = false ;
1693
+ it ( 'should listen for \'keyup\' only on browsers that support this input type' , function ( ) {
1694
+ var inputType = 'time' ;
1708
1695
1709
- var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
1710
- inputElm . on ( 'input' , function ( ) { inputEventActuallyFired = true ; } ) ;
1696
+ var shouldListenForKeyup = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
1697
+ var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
1698
+ var ctrl = inputElm . controller ( 'ngModel' ) ;
1699
+ spyOn ( ctrl , '$setViewValue' ) ;
1711
1700
1712
- browserTrigger ( inputElm , 'keyup' ) ;
1701
+ inputElm . triggerHandler ( 'keyup' ) ;
1713
1702
1714
- expect ( inputEventActuallyFired ) . toBe ( inputEventExpectedToFire ) ;
1715
- }
1716
- ) ;
1703
+ expect ( ctrl . $setViewValue . callCount ) . toBe ( shouldListenForKeyup ? 1 : 0 ) ;
1704
+ } ) ;
1717
1705
1718
1706
1719
1707
describe ( 'min' , function ( ) {
@@ -2067,21 +2055,18 @@ describe('input', function() {
2067
2055
} ) ;
2068
2056
2069
2057
2070
- it ( 'should fire \'input\' event on \'keyup\' only on browsers that support this input type' ,
2071
- function ( ) {
2072
- var inputType = 'date' ;
2058
+ it ( 'should listen for \'keyup\' only on browsers that support this input type' , function ( ) {
2059
+ var inputType = 'date' ;
2073
2060
2074
- var inputEventExpectedToFire = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
2075
- var inputEventActuallyFired = false ;
2061
+ var shouldListenForKeyup = browserSupportsInputTypeAndEvent ( inputType , 'input' ) ;
2062
+ var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
2063
+ var ctrl = inputElm . controller ( 'ngModel' ) ;
2064
+ spyOn ( ctrl , '$setViewValue' ) ;
2076
2065
2077
- var inputElm = helper . compileInput ( '<input type="' + inputType + '" ng-model="val" />' ) ;
2078
- inputElm . on ( 'input' , function ( ) { inputEventActuallyFired = true ; } ) ;
2066
+ inputElm . triggerHandler ( 'keyup' ) ;
2079
2067
2080
- browserTrigger ( inputElm , 'keyup' ) ;
2081
-
2082
- expect ( inputEventActuallyFired ) . toBe ( inputEventExpectedToFire ) ;
2083
- }
2084
- ) ;
2068
+ expect ( ctrl . $setViewValue . callCount ) . toBe ( shouldListenForKeyup ? 1 : 0 ) ;
2069
+ } ) ;
2085
2070
2086
2071
2087
2072
describe ( 'min' , function ( ) {
0 commit comments