diff options
| author | Misko Hevery | 2011-09-08 13:56:29 -0700 | 
|---|---|---|
| committer | Igor Minar | 2011-10-11 11:01:45 -0700 | 
| commit | 4f78fd692c0ec51241476e6be9a4df06cd62fdd6 (patch) | |
| tree | 91f70bb89b9c095126fbc093f51cedbac5cb0c78 /test/BinderSpec.js | |
| parent | df6d2ba3266de405ad6c2f270f24569355706e76 (diff) | |
| download | angular.js-4f78fd692c0ec51241476e6be9a4df06cd62fdd6.tar.bz2 | |
feat(forms): new and improved forms
Diffstat (limited to 'test/BinderSpec.js')
| -rw-r--r-- | test/BinderSpec.js | 135 | 
1 files changed, 14 insertions, 121 deletions
| diff --git a/test/BinderSpec.js b/test/BinderSpec.js index 224c449f..fa7fde60 100644 --- a/test/BinderSpec.js +++ b/test/BinderSpec.js @@ -28,56 +28,12 @@ describe('Binder', function(){      }    }); - -  it('text-field should default to value attribute', function(){ -    var scope = this.compile('<input type="text" name="model.price" value="abc">'); -    scope.$apply(); -    assertEquals('abc', scope.model.price); -  }); - -  it('ChangingTextareaUpdatesModel', function(){ -    var scope = this.compile('<textarea name="model.note">abc</textarea>'); -    scope.$apply(); -    assertEquals(scope.model.note, 'abc'); -  }); - -  it('ChangingRadioUpdatesModel', function(){ -    var scope = this.compile('<div><input type="radio" name="model.price" value="A" checked>' + -          '<input type="radio" name="model.price" value="B"></div>'); -    scope.$apply(); -    assertEquals(scope.model.price, 'A'); -  }); - -  it('ChangingCheckboxUpdatesModel', function(){ -    var scope = this.compile('<input type="checkbox" name="model.price" value="true" checked ng:format="boolean"/>'); -    assertEquals(true, scope.model.price); -  }); -    it('BindUpdate', function(){      var scope = this.compile('<div ng:init="a=123"/>');      scope.$digest();      assertEquals(123, scope.a);    }); -  it('ChangingSelectNonSelectedUpdatesModel', function(){ -    var scope = this.compile('<select name="model.price"><option value="A">A</option><option value="B">B</option></select>'); -    assertEquals('A', scope.model.price); -  }); - -  it('ChangingMultiselectUpdatesModel', function(){ -    var scope = this.compile('<select name="Invoice.options" multiple="multiple">' + -            '<option value="A" selected>Gift wrap</option>' + -            '<option value="B" selected>Extra padding</option>' + -            '<option value="C">Expedite</option>' + -            '</select>'); -    assertJsonEquals(["A", "B"], scope.Invoice.options); -  }); - -  it('ChangingSelectSelectedUpdatesModel', function(){ -    var scope = this.compile('<select name="model.price"><option>A</option><option selected value="b">B</option></select>'); -    assertEquals(scope.model.price, 'b'); -  }); -    it('ExecuteInitialization', function(){      var scope = this.compile('<div ng:init="a=123">');      assertEquals(scope.a, 123); @@ -236,14 +192,13 @@ describe('Binder', function(){    });    it('RepeaterAdd', function(){ -    var scope = this.compile('<div><input type="text" name="item.x" ng:repeat="item in items"></div>'); +    var scope = this.compile('<div><input type="text" ng:model="item.x" ng:repeat="item in items"></div>');      scope.items = [{x:'a'}, {x:'b'}];      scope.$apply();      var first = childNode(scope.$element, 1);      var second = childNode(scope.$element, 2);      expect(first.val()).toEqual('a');      expect(second.val()).toEqual('b'); -    return      first.val('ABC');      browserTrigger(first, 'keydown'); @@ -440,15 +395,6 @@ describe('Binder', function(){      assertEquals('123{{a}}{{b}}{{c}}', scope.$element.text());    }); -  it('RepeaterShouldBindInputsDefaults', function () { -    var scope = this.compile('<div><input value="123" name="item.name" ng:repeat="item in items"></div>'); -    scope.items = [{}, {name:'misko'}]; -    scope.$apply(); - -    expect(scope.$eval('items[0].name')).toEqual("123"); -    expect(scope.$eval('items[1].name')).toEqual("misko"); -  }); -    it('ShouldTemplateBindPreElements', function () {      var scope = this.compile('<pre>Hello {{name}}!</pre>');      scope.name = "World"; @@ -459,7 +405,11 @@ describe('Binder', function(){    it('FillInOptionValueWhenMissing', function(){      var scope = this.compile( -        '<select name="foo"><option selected="true">{{a}}</option><option value="">{{b}}</option><option>C</option></select>'); +        '<select ng:model="foo">' + +          '<option selected="true">{{a}}</option>' + +          '<option value="">{{b}}</option>' + +          '<option>C</option>' + +        '</select>');      scope.a = 'A';      scope.b = 'B';      scope.$apply(); @@ -477,52 +427,14 @@ describe('Binder', function(){      expect(optionC.text()).toEqual('C');    }); -  it('ValidateForm', function(){ -    var scope = this.compile('<div id="test"><input name="name" ng:required>' + -            '<input ng:repeat="item in items" name="item.name" ng:required/></div>', -            jqLite(document.body)); -    var items = [{}, {}]; -    scope.items = items; -    scope.$apply(); -    assertEquals(3, scope.$service('$invalidWidgets').length); - -    scope.name = ''; -    scope.$apply(); -    assertEquals(3, scope.$service('$invalidWidgets').length); - -    scope.name = ' '; -    scope.$apply(); -    assertEquals(3, scope.$service('$invalidWidgets').length); - -    scope.name = 'abc'; -    scope.$apply(); -    assertEquals(2, scope.$service('$invalidWidgets').length); - -    items[0].name = 'abc'; -    scope.$apply(); -    assertEquals(1, scope.$service('$invalidWidgets').length); - -    items[1].name = 'abc'; -    scope.$apply(); -    assertEquals(0, scope.$service('$invalidWidgets').length); -  }); - -  it('ValidateOnlyVisibleItems', function(){ -    var scope = this.compile('<div><input name="name" ng:required><input ng:show="show" name="name" ng:required></div>', jqLite(document.body)); -    scope.show = true; -    scope.$apply(); -    assertEquals(2, scope.$service('$invalidWidgets').length); - -    scope.show = false; -    scope.$apply(); -    assertEquals(1, scope.$service('$invalidWidgets').visible()); -  }); -    it('DeleteAttributeIfEvaluatesFalse', function(){      var scope = this.compile('<div>' + -        '<input name="a0" ng:bind-attr="{disabled:\'{{true}}\'}"><input name="a1" ng:bind-attr="{disabled:\'{{false}}\'}">' + -        '<input name="b0" ng:bind-attr="{disabled:\'{{1}}\'}"><input name="b1" ng:bind-attr="{disabled:\'{{0}}\'}">' + -        '<input name="c0" ng:bind-attr="{disabled:\'{{[0]}}\'}"><input name="c1" ng:bind-attr="{disabled:\'{{[]}}\'}"></div>'); +        '<input ng:model="a0" ng:bind-attr="{disabled:\'{{true}}\'}">' + +        '<input ng:model="a1" ng:bind-attr="{disabled:\'{{false}}\'}">' + +        '<input ng:model="b0" ng:bind-attr="{disabled:\'{{1}}\'}">' + +        '<input ng:model="b1" ng:bind-attr="{disabled:\'{{0}}\'}">' + +        '<input ng:model="c0" ng:bind-attr="{disabled:\'{{[0]}}\'}">' + +        '<input ng:model="c1" ng:bind-attr="{disabled:\'{{[]}}\'}"></div>');      scope.$apply();      function assertChild(index, disabled) {        var child = childNode(scope.$element, index); @@ -556,8 +468,8 @@ describe('Binder', function(){    it('ItShouldSelectTheCorrectRadioBox', function(){      var scope = this.compile('<div>' + -        '<input type="radio" name="sex" value="female"/>' + -        '<input type="radio" name="sex" value="male"/></div>'); +        '<input type="radio" ng:model="sex" value="female">' + +        '<input type="radio" ng:model="sex" value="male"></div>');      var female = jqLite(scope.$element[0].childNodes[0]);      var male = jqLite(scope.$element[0].childNodes[1]); @@ -603,23 +515,4 @@ describe('Binder', function(){      assertEquals("3", scope.$element.text());    }); -  it('ItBindHiddenInputFields', function(){ -    var scope = this.compile('<input type="hidden" name="myName" value="abc" />'); -    scope.$apply(); -    assertEquals("abc", scope.myName); -  }); - -  it('ItShouldUseFormaterForText', function(){ -    var scope = this.compile('<input name="a" ng:format="list" value="a,b">'); -    scope.$apply(); -    assertEquals(['a','b'], scope.a); -    var input = scope.$element; -    input[0].value = ' x,,yz'; -    browserTrigger(input, 'change'); -    assertEquals(['x','yz'], scope.a); -    scope.a = [1 ,2, 3]; -    scope.$apply(); -    assertEquals('1, 2, 3', input[0].value); -  }); -  }); | 
