diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/BinderSpec.js | 14 | ||||
| -rw-r--r-- | test/ng/directive/formSpec.js | 15 | ||||
| -rw-r--r-- | test/ng/directive/inputSpec.js | 57 | 
3 files changed, 24 insertions, 62 deletions
diff --git a/test/BinderSpec.js b/test/BinderSpec.js index 306cbc43..6d5dd91e 100644 --- a/test/BinderSpec.js +++ b/test/BinderSpec.js @@ -142,20 +142,6 @@ describe('Binder', function() {      expect(html.indexOf('action="foo();"')).toBeGreaterThan(0);    }); -  it('RepeaterAdd', inject(function($rootScope, $compile) { -    element = $compile('<div><input type="text" ng-model="item.x" ng-repeat="item in items"></div>')($rootScope); -    $rootScope.items = [{x:'a'}, {x:'b'}]; -    $rootScope.$apply(); -    var first = childNode(element, 1); -    var second = childNode(element, 2); -    expect(first.val()).toEqual('a'); -    expect(second.val()).toEqual('b'); - -    first.val('ABC'); -    browserTrigger(first, 'blur'); -    expect($rootScope.items[0].x).toEqual('ABC'); -  })); -    it('ItShouldRemoveExtraChildrenWhenIteratingOverHash', inject(function($rootScope, $compile) {      element = $compile('<div><div ng-repeat="i in items">{{i}}</div></div>')($rootScope);      var items = {}; diff --git a/test/ng/directive/formSpec.js b/test/ng/directive/formSpec.js index 5c34b5ad..491a31db 100644 --- a/test/ng/directive/formSpec.js +++ b/test/ng/directive/formSpec.js @@ -1,7 +1,7 @@  'use strict';  describe('form', function() { -  var doc, control, scope, $compile; +  var doc, control, scope, $compile, changeInputValue;    beforeEach(module(function($compileProvider) {      $compileProvider.directive('storeModelCtrl', function() { @@ -14,9 +14,14 @@ describe('form', function() {      });    })); -  beforeEach(inject(function($injector) { +  beforeEach(inject(function($injector, $sniffer) {      $compile = $injector.get('$compile');      scope = $injector.get('$rootScope'); + +    changeInputValue = function(elm, value) { +      elm.val(value); +      browserTrigger(elm, $sniffer.hasEvent('input') ? 'input' : 'change'); +    };    }));    afterEach(function() { @@ -126,10 +131,8 @@ describe('form', function() {      var inputA = doc.find('input').eq(0),          inputB = doc.find('input').eq(1); -    inputA.val('val1'); -    browserTrigger(inputA, 'blur'); -    inputB.val('val2'); -    browserTrigger(inputB, 'blur'); +    changeInputValue(inputA, 'val1'); +    changeInputValue(inputB, 'val2');      expect(scope.firstName).toBe('val1');      expect(scope.lastName).toBe('val2'); diff --git a/test/ng/directive/inputSpec.js b/test/ng/directive/inputSpec.js index 734cb34d..395f37c3 100644 --- a/test/ng/directive/inputSpec.js +++ b/test/ng/directive/inputSpec.js @@ -236,7 +236,7 @@ describe('NgModelController', function() {  describe('ng-model', function() {    it('should set css classes (ng-valid, ng-invalid, ng-pristine, ng-dirty)', -      inject(function($compile, $rootScope) { +      inject(function($compile, $rootScope, $sniffer) {      var element = $compile('<input type="email" ng-model="value" />')($rootScope);      $rootScope.$digest(); @@ -254,14 +254,14 @@ describe('ng-model', function() {      expect(element.hasClass('ng-invalid-email')).toBe(true);      element.val('invalid-again'); -    browserTrigger(element, 'blur'); +    browserTrigger(element, $sniffer.hasEvent('input') ? 'input' : 'change');      expect(element).toBeInvalid();      expect(element).toBeDirty();      expect(element.hasClass('ng-valid-email')).toBe(false);      expect(element.hasClass('ng-invalid-email')).toBe(true);      element.val('vojta@google.com'); -    browserTrigger(element, 'blur'); +    browserTrigger(element, $sniffer.hasEvent('input') ? 'input' : 'change');      expect(element).toBeValid();      expect(element).toBeDirty();      expect(element.hasClass('ng-valid-email')).toBe(true); @@ -282,7 +282,7 @@ describe('ng-model', function() {  describe('input', function() { -  var formElm, inputElm, scope, $compile; +  var formElm, inputElm, scope, $compile, changeInputValueTo;    function compileInput(inputHtml) {      formElm = jqLite('<form name="form">' + inputHtml + '</form>'); @@ -290,14 +290,14 @@ describe('input', function() {      $compile(formElm)(scope);    } -  function changeInputValueTo(value) { -    inputElm.val(value); -    browserTrigger(inputElm, 'blur'); -  } - -  beforeEach(inject(function($injector) { +  beforeEach(inject(function($injector, $sniffer) {      $compile = $injector.get('$compile');      scope = $injector.get('$rootScope'); + +    changeInputValueTo = function(value) { +      inputElm.val(value); +      browserTrigger(inputElm, $sniffer.hasEvent('input') ? 'input' : 'change'); +    };    }));    afterEach(function() { @@ -379,7 +379,7 @@ describe('input', function() {    it('should ignore input without ng-model attr', function() {      compileInput('<input type="text" name="whatever" required />'); -    browserTrigger(inputElm, 'blur'); +    changeInputValueTo('');      expect(inputElm.hasClass('ng-valid')).toBe(false);      expect(inputElm.hasClass('ng-invalid')).toBe(false);      expect(inputElm.hasClass('ng-pristine')).toBe(false); @@ -715,7 +715,7 @@ describe('input', function() {        expect(inputElm[1].checked).toBe(true);        expect(inputElm[2].checked).toBe(false); -      browserTrigger(inputElm[2]); +      browserTrigger(inputElm[2], 'click');        expect(scope.color).toBe('blue');      }); @@ -735,7 +735,7 @@ describe('input', function() {        expect(inputElm[0].checked).toBe(true);        expect(inputElm[1].checked).toBe(false); -      browserTrigger(inputElm[1]); +      browserTrigger(inputElm[1], 'click');        expect(scope.value).toBe('red');        scope.$apply(function() { @@ -753,7 +753,7 @@ describe('input', function() {      it('should ignore checkbox without ng-model attr', function() {        compileInput('<input type="checkbox" name="whatever" required />'); -      browserTrigger(inputElm, 'blur'); +      changeInputValueTo('');        expect(inputElm.hasClass('ng-valid')).toBe(false);        expect(inputElm.hasClass('ng-invalid')).toBe(false);        expect(inputElm.hasClass('ng-pristine')).toBe(false); @@ -851,7 +851,7 @@ describe('input', function() {        compileInput('<textarea name="whatever" required></textarea>');        inputElm = formElm.find('textarea'); -      browserTrigger(inputElm, 'blur'); +      changeInputValueTo('');        expect(inputElm.hasClass('ng-valid')).toBe(false);        expect(inputElm.hasClass('ng-invalid')).toBe(false);        expect(inputElm.hasClass('ng-pristine')).toBe(false); @@ -1053,33 +1053,6 @@ describe('input', function() {    }); -  describe('ng-model-instant', function() { - -    it('should bind keydown, change, input events', inject(function($browser) { -      compileInput('<input type="text" ng-model="value" ng-model-instant />'); - -      inputElm.val('value1'); -      browserTrigger(inputElm, 'keydown'); - -      // should be async (because of keydown) -      expect(scope.value).toBeUndefined(); - -      $browser.defer.flush(); -      expect(scope.value).toBe('value1'); - -      inputElm.val('value2'); -      browserTrigger(inputElm, 'change'); -      expect(scope.value).toBe('value2'); - -      if (msie < 9) return; - -      inputElm.val('value3'); -      browserTrigger(inputElm, 'input'); -      expect(scope.value).toBe('value3'); -    })); -  }); - -    describe('ng-value', function() {      it('should evaluate and set constant expressions', function() {  | 
