| Index: third_party/pkg/angular/test/directive/input_select_spec.dart
|
| diff --git a/third_party/pkg/angular/test/directive/input_select_spec.dart b/third_party/pkg/angular/test/directive/input_select_spec.dart
|
| index 2490df1e590f1d02f674346e23c03272b998dc64..7fe66c8c7059ff96358635a2ddfb4d0a55589cfb 100644
|
| --- a/third_party/pkg/angular/test/directive/input_select_spec.dart
|
| +++ b/third_party/pkg/angular/test/directive/input_select_spec.dart
|
| @@ -14,18 +14,18 @@ main() {
|
| it('should retrieve using ng-value', () {
|
| _.compile(
|
| '<select ng-model="robot" probe="p">'
|
| - '<option ng-repeat="r in robots" ng-value="r">{{r.name}}</option>'
|
| + '<option ng-repeat="r in robots" ng-value="r">{{r.name}}</option>'
|
| '</select>');
|
| - var r2d2 = { "name":"r2d2"};
|
| + var r2d2 = {"name":"r2d2"};
|
| var c3p0 = {"name":"c3p0"};
|
| - _.rootScope.robots = [ r2d2, c3p0 ];
|
| - _.rootScope.$digest();
|
| + _.rootScope.context['robots'] = [ r2d2, c3p0 ];
|
| + _.rootScope.apply();
|
| _.selectOption(_.rootElement, 'c3p0');
|
| - expect(_.rootScope.robot).toEqual(c3p0);
|
| + expect(_.rootScope.context['robot']).toEqual(c3p0);
|
|
|
| - _.rootScope.robot = r2d2;
|
| - _.rootScope.$digest();
|
| - expect(_.rootScope.robot).toEqual(r2d2);
|
| + _.rootScope.context['robot'] = r2d2;
|
| + _.rootScope.apply();
|
| + expect(_.rootScope.context['robot']).toEqual(r2d2);
|
| expect(_.rootElement).toEqualSelect([['r2d2'], 'c3p0']);
|
| });
|
|
|
| @@ -36,14 +36,14 @@ main() {
|
| '</select>');
|
| var r2d2 = { "name":"r2d2"};
|
| var c3p0 = {"name":"c3p0"};
|
| - _.rootScope.robots = [ r2d2, c3p0 ];
|
| - _.rootScope.$digest();
|
| + _.rootScope.context['robots'] = [ r2d2, c3p0 ];
|
| + _.rootScope.apply();
|
| _.selectOption(_.rootElement, 'c3p0');
|
| - expect(_.rootScope.robot).toEqual([c3p0]);
|
| + expect(_.rootScope.context['robot']).toEqual([c3p0]);
|
|
|
| - _.rootScope.robot = [r2d2];
|
| - _.rootScope.$digest();
|
| - expect(_.rootScope.robot).toEqual([r2d2]);
|
| + _.rootScope.context['robot'] = [r2d2];
|
| + _.rootScope.apply();
|
| + expect(_.rootScope.context['robot']).toEqual([r2d2]);
|
| expect(_.rootElement).toEqualSelect([['r2d2'], 'c3p0']);
|
| });
|
| });
|
| @@ -61,9 +61,9 @@ main() {
|
| '<option value="">{{b}}</option>'
|
| '<option>C</option>'
|
| '</select>');
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['a'] = 'foo';
|
| - _.rootScope['b'] = 'bar';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['a'] = 'foo';
|
| + _.rootScope.context['b'] = 'bar';
|
| });
|
|
|
| expect(_.rootElement.text).toEqual('foobarC');
|
| @@ -77,7 +77,7 @@ main() {
|
| '<option selected>me!</option>'
|
| '<option>nah</option>'
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
|
|
| expect(_.rootElement).toEqualSelect(['not me', ['me!'], 'nah']);
|
| });
|
| @@ -88,11 +88,11 @@ main() {
|
| '<option ng-repeat="r in robots">{{r}}</option>'
|
| '</select>');
|
|
|
| - _.rootScope['robots'] = ['c3p0', 'r2d2'];
|
| - _.rootScope['robot'] = 'r2d2';
|
| - _.rootScope.$apply();
|
| + _.rootScope.context['robots'] = ['c3p0', 'r2d2'];
|
| + _.rootScope.context['robot'] = 'r2d2';
|
| + _.rootScope.apply();
|
|
|
| - var select = _.rootScope['p'].directive(InputSelectDirective);
|
| + var select = _.rootScope.context['p'].directive(InputSelectDirective);
|
| expect(_.rootElement).toEqualSelect(['c3p0', ['r2d2']]);
|
|
|
| _.rootElement.querySelectorAll('option')[0].selected = true;
|
| @@ -100,21 +100,21 @@ main() {
|
|
|
|
|
| expect(_.rootElement).toEqualSelect([['c3p0'], 'r2d2']);
|
| - expect(_.rootScope['robot']).toEqual('c3p0');
|
| + expect(_.rootScope.context['robot']).toEqual('c3p0');
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'].insert(0, 'wallee');
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'].insert(0, 'wallee');
|
| });
|
| expect(_.rootElement).toEqualSelect(['wallee', ['c3p0'], 'r2d2']);
|
| - expect(_.rootScope['robot']).toEqual('c3p0');
|
| + expect(_.rootScope.context['robot']).toEqual('c3p0');
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = ['c3p0+', 'r2d2+'];
|
| - _.rootScope['robot'] = 'r2d2+';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = ['c3p0+', 'r2d2+'];
|
| + _.rootScope.context['robot'] = 'r2d2+';
|
| });
|
|
|
| expect(_.rootElement).toEqualSelect(['c3p0+', ['r2d2+']]);
|
| - expect(_.rootScope['robot']).toEqual('r2d2+');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2+');
|
| });
|
|
|
| describe('empty option', () {
|
| @@ -125,7 +125,7 @@ main() {
|
| '<option value="x">robot x</option>' +
|
| '<option value="y">robot y</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
|
|
| expect(_.rootElement).toEqualSelect([[''], 'x', 'y']);
|
| });
|
| @@ -137,61 +137,61 @@ main() {
|
| '<option value="">--select--</option>' +
|
| '<option value="y">robot y</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
|
|
| expect(_.rootElement).toEqualSelect(['x', [''], 'y']);
|
| });
|
|
|
| it('should set the model to empty string when empty option is selected', () {
|
| - _.rootScope['robot'] = 'x';
|
| + _.rootScope.context['robot'] = 'x';
|
| _.compile(
|
| '<select ng-model="robot" probe="p">' +
|
| '<option value="">--select--</option>' +
|
| '<option value="x">robot x</option>' +
|
| '<option value="y">robot y</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
|
|
| - var select = _.rootScope['p'].directive(InputSelectDirective);
|
| + var select = _.rootScope.context['p'].directive(InputSelectDirective);
|
|
|
| expect(_.rootElement).toEqualSelect(['', ['x'], 'y']);
|
|
|
| _.selectOption(_.rootElement, '--select--');
|
|
|
| expect(_.rootElement).toEqualSelect([[''], 'x', 'y']);
|
| - expect(_.rootScope['robot']).toEqual(null);
|
| + expect(_.rootScope.context['robot']).toEqual(null);
|
| });
|
|
|
| describe('interactions with repeated options', () {
|
| it('should select empty option when model is undefined', () {
|
| - _.rootScope['robots'] = ['c3p0', 'r2d2'];
|
| + _.rootScope.context['robots'] = ['c3p0', 'r2d2'];
|
| _.compile(
|
| '<select ng-model="robot">' +
|
| '<option value="">--select--</option>' +
|
| '<option ng-repeat="r in robots">{{r}}</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
| expect(_.rootElement).toEqualSelect([[''], 'c3p0', 'r2d2']);
|
| });
|
|
|
| it('should set model to empty string when selected', () {
|
| - _.rootScope['robots'] = ['c3p0', 'r2d2'];
|
| + _.rootScope.context['robots'] = ['c3p0', 'r2d2'];
|
| _.compile(
|
| '<select ng-model="robot" probe="p">' +
|
| '<option value="">--select--</option>' +
|
| '<option ng-repeat="r in robots">{{r}}</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| - var select = _.rootScope['p'].directive(InputSelectDirective);
|
| + _.rootScope.apply();
|
| + var select = _.rootScope.context['p'].directive(InputSelectDirective);
|
|
|
| _.selectOption(_.rootElement, 'c3p0');
|
| expect(_.rootElement).toEqualSelect(['', ['c3p0'], 'r2d2']);
|
| - expect( _.rootScope['robot']).toEqual('c3p0');
|
| + expect( _.rootScope.context['robot']).toEqual('c3p0');
|
|
|
| _.selectOption(_.rootElement, '--select--');
|
|
|
| expect(_.rootElement).toEqualSelect([[''], 'c3p0', 'r2d2']);
|
| - expect( _.rootScope['robot']).toEqual(null);
|
| + expect( _.rootScope.context['robot']).toEqual(null);
|
| });
|
|
|
| it('should not break if both the select and repeater models change at once', () {
|
| @@ -200,16 +200,16 @@ main() {
|
| '<option value="">--select--</option>' +
|
| '<option ng-repeat="r in robots">{{r}}</option>' +
|
| '</select>');
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = ['c3p0', 'r2d2'];
|
| - _.rootScope['robot'] = 'c3p0';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = ['c3p0', 'r2d2'];
|
| + _.rootScope.context['robot'] = 'c3p0';
|
| });
|
|
|
| expect(_.rootElement).toEqualSelect(['', ['c3p0'], 'r2d2']);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = ['wallee'];
|
| - _.rootScope['robot'] = '';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = ['wallee'];
|
| + _.rootScope.context['robot'] = '';
|
| });
|
|
|
| expect(_.rootElement).toEqualSelect([[''], 'wallee']);
|
| @@ -224,17 +224,17 @@ main() {
|
| '<option>c3p0</option>' +
|
| '<option>r2d2</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
| expect(_.rootElement).toEqualSelect([['?'], 'c3p0', 'r2d2']);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = 'r2d2';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = 'r2d2';
|
| });
|
| expect(_.rootElement).toEqualSelect(['c3p0', ['r2d2']]);
|
|
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = "wallee";
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = "wallee";
|
| });
|
| expect(_.rootElement).toEqualSelect([['?'], 'c3p0', 'r2d2']);
|
| });
|
| @@ -247,71 +247,71 @@ main() {
|
| '<option>c3p0</option>' +
|
| '<option>r2d2</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
|
|
| expect(_.rootElement).toEqualSelect([[''], 'c3p0', 'r2d2']);
|
| - expect(_.rootScope['robot']).toEqual(null);
|
| + expect(_.rootScope.context['robot']).toEqual(null);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = 'wallee';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = 'wallee';
|
| });
|
| expect(_.rootElement).toEqualSelect([['?'], '', 'c3p0', 'r2d2']);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = 'r2d2';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = 'r2d2';
|
| });
|
| expect(_.rootElement).toEqualSelect(['', 'c3p0', ['r2d2']]);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = null;
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = null;
|
| });
|
| expect(_.rootElement).toEqualSelect([[''], 'c3p0', 'r2d2']);
|
| });
|
|
|
| it("should insert&select temporary unknown option when no options-model match, empty " +
|
| "option is present and model is defined", () {
|
| - _.rootScope['robot'] = 'wallee';
|
| + _.rootScope.context['robot'] = 'wallee';
|
| _.compile(
|
| '<select ng-model="robot">' +
|
| '<option value="">--select--</option>' +
|
| '<option>c3p0</option>' +
|
| '<option>r2d2</option>' +
|
| '</select>');
|
| - _.rootScope.$digest();
|
| + _.rootScope.apply();
|
|
|
| expect(_.rootElement).toEqualSelect([['?'], '', 'c3p0', 'r2d2']);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = 'r2d2';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = 'r2d2';
|
| });
|
| expect(_.rootElement).toEqualSelect(['', 'c3p0', ['r2d2']]);
|
| });
|
|
|
| describe('interactions with repeated options', () {
|
| it('should work with repeated options', () {
|
| - _.rootScope['robots'] = [];
|
| + _.rootScope.context['robots'] = [];
|
| _.compile(
|
| '<select ng-model="robot">' +
|
| '<option ng-repeat="r in robots">{{r}}</option>' +
|
| '</select>');
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = [];
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = [];
|
| });
|
|
|
| expect(_.rootElement).toEqualSelect([['?']]);
|
| - expect(_.rootScope['robot']).toEqual(null);
|
| + expect(_.rootScope.context['robot']).toEqual(null);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = 'r2d2';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = 'r2d2';
|
| });
|
| expect(_.rootElement).toEqualSelect([['?']]);
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = ['c3p0', 'r2d2'];
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = ['c3p0', 'r2d2'];
|
| });
|
| expect(_.rootElement).toEqualSelect(['c3p0', ['r2d2']]);
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
| });
|
|
|
| it('should work with empty option and repeated options', () {
|
| @@ -320,24 +320,24 @@ main() {
|
| '<option value="">--select--</option>' +
|
| '<option ng-repeat="r in robots">{{r}}</option>' +
|
| '</select>');
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = [];
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = [];
|
| });
|
|
|
| expect(_.rootElement).toEqualSelect([['']]);
|
| - expect(_.rootScope['robot']).toEqual(null);
|
| + expect(_.rootScope.context['robot']).toEqual(null);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robot'] = 'r2d2';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robot'] = 'r2d2';
|
| });
|
| expect(_.rootElement).toEqualSelect([['?'], '']);
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = ['c3p0', 'r2d2'];
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = ['c3p0', 'r2d2'];
|
| });
|
| expect(_.rootElement).toEqualSelect(['', 'c3p0', ['r2d2']]);
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
| });
|
|
|
| it('should insert unknown element when repeater shrinks and selected option is ' +
|
| @@ -347,31 +347,31 @@ main() {
|
| '<select ng-model="robot">' +
|
| '<option ng-repeat="r in robots">{{r}}</option>' +
|
| '</select>');
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'] = ['c3p0', 'r2d2'];
|
| - _.rootScope['robot'] = 'r2d2';
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'] = ['c3p0', 'r2d2'];
|
| + _.rootScope.context['robot'] = 'r2d2';
|
| });
|
| expect(_.rootElement).toEqualSelect(['c3p0', ['r2d2']]);
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'].remove('r2d2');
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'].remove('r2d2');
|
| });
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
| expect(_.rootElement).toEqualSelect([['?'], 'c3p0']);
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'].insert(0, 'r2d2');
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'].insert(0, 'r2d2');
|
| });
|
| expect(_.rootElement).toEqualSelect([['r2d2'], 'c3p0']);
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
|
|
| - _.rootScope.$apply(() {
|
| - _.rootScope['robots'].clear();
|
| + _.rootScope.apply(() {
|
| + _.rootScope.context['robots'].clear();
|
| });
|
|
|
| expect(_.rootElement).toEqualSelect([['?']]);
|
| - expect(_.rootScope['robot']).toEqual('r2d2');
|
| + expect(_.rootScope.context['robot']).toEqual('r2d2');
|
| });
|
| });
|
| });
|
| @@ -387,16 +387,39 @@ main() {
|
| '</select>' +
|
| '</div>' +
|
| '</div>');
|
| - _.rootScope.model = 'a';
|
| - _.rootScope.attached = true;
|
| - _.rootScope.$apply();
|
| - expect(_.rootElement).toEqualSelect([['a'], 'b']);
|
| - _.rootScope.attached = false;
|
| - _.rootScope.$apply();
|
| + _.rootScope.context['model'] = 'b';
|
| + _.rootScope.context['attached'] = true;
|
| + _.rootScope.apply();
|
| + expect(_.rootElement).toEqualSelect(['a', ['b']]);
|
| + _.rootScope.context['attached'] = false;
|
| + _.rootScope.apply();
|
| + expect(_.rootElement).toEqualSelect([]);
|
| + _.rootScope.context['attached'] = true;
|
| + _.rootScope.apply();
|
| + expect(_.rootElement).toEqualSelect(['a', ['b']]);
|
| + });
|
| +
|
| +
|
| + it('issue #428', () {
|
| + _.compile(
|
| + '<div>' +
|
| + '<div ng-if="attached">' +
|
| + '<select ng-model="model" multiple>' +
|
| + '<option value="a">foo</option>' +
|
| + '<option value="b">bar</option>' +
|
| + '</select>' +
|
| + '</div>' +
|
| + '</div>');
|
| + _.rootScope.context['model'] = ['b'];
|
| + _.rootScope.context['attached'] = true;
|
| + _.rootScope.apply();
|
| + expect(_.rootElement).toEqualSelect(['a', ['b']]);
|
| + _.rootScope.context['attached'] = false;
|
| + _.rootScope.apply();
|
| expect(_.rootElement).toEqualSelect([]);
|
| - _.rootScope.attached = true;
|
| - _.rootScope.$apply();
|
| - expect(_.rootElement).toEqualSelect([['a'], 'b']);
|
| + _.rootScope.context['attached'] = true;
|
| + _.rootScope.apply();
|
| + expect(_.rootElement).toEqualSelect(['a', ['b']]);
|
| });
|
| });
|
|
|
| @@ -410,7 +433,7 @@ main() {
|
| compile(html) {
|
| _.compile('<form name="form">' + html + '</form>');
|
| element = _.rootElement.querySelector('select');
|
| - scope.$apply();
|
| + scope.apply();
|
| }
|
|
|
| beforeEach(inject((Scope rootScope) {
|
| @@ -420,7 +443,7 @@ main() {
|
|
|
|
|
| afterEach(() {
|
| - scope.$destroy(); //disables unknown option work during destruction
|
| + scope.destroy(); //disables unknown option work during destruction
|
| });
|
|
|
|
|
| @@ -433,9 +456,9 @@ main() {
|
| '<option value="">{{b}}</option>' +
|
| '<option>C</option>' +
|
| '</select>');
|
| - scope.$apply(() {
|
| - scope.a = 'foo';
|
| - scope.b = 'bar';
|
| + scope.apply(() {
|
| + scope.context['a'] = 'foo';
|
| + scope.context['b'] = 'bar';
|
| });
|
|
|
| expect(element.text).toEqual('foobarC');
|
| @@ -452,6 +475,27 @@ main() {
|
| expect(element).toEqualSelect(['not me', ['me!'], 'nah']);
|
| });
|
|
|
| + it('should fire ng-change event.', () {
|
| + var log = '';
|
| + compile(
|
| + '<select name="select" ng-model="selection" ng-change="change()">' +
|
| + '<option value=""></option>' +
|
| + '<option value="c">C</option>' +
|
| + '</select>');
|
| +
|
| + scope.context['change'] = () {
|
| + log += 'change:${scope.context['selection']};';
|
| + };
|
| +
|
| + scope.apply(() {
|
| + scope.context['selection'] = 'c';
|
| + });
|
| +
|
| + element.value = 'c';
|
| + _.triggerEvent(element, 'change');
|
| + expect(log).toEqual('change:c;');
|
| + });
|
| +
|
|
|
| xit('should require', () {
|
| compile(
|
| @@ -460,33 +504,33 @@ main() {
|
| '<option value="c">C</option>' +
|
| '</select>');
|
|
|
| - scope.change = () {
|
| + scope.context['change'] = () {
|
| scope.log += 'change;';
|
| };
|
|
|
| - scope.$apply(() {
|
| - scope.log = '';
|
| - scope.selection = 'c';
|
| + scope.apply(() {
|
| + scope.context['log'] = '';
|
| + scope.context['selection'] = 'c';
|
| });
|
|
|
| - expect(scope.form.select.$error.required).toEqual(false);;
|
| + expect(scope.context['form'].select.$error.required).toEqual(false);;
|
| expect(element).toEqualValid();
|
| expect(element).toEqualPristine();
|
|
|
| - scope.$apply(() {
|
| - scope.selection = '';
|
| + scope.apply(() {
|
| + scope.context['selection'] = '';
|
| });
|
|
|
| - expect(scope.form.select.$error.required).toEqual(true);;
|
| + expect(scope.context['form'].select.$error.required).toEqual(true);;
|
| expect(element).toEqualInvalid();
|
| expect(element).toEqualPristine();
|
| - expect(scope.log).toEqual('');
|
| + expect(scope.context['log']).toEqual('');
|
|
|
| element[0].value = 'c';
|
| _.triggerEvent(element, 'change');
|
| expect(element).toEqualValid();
|
| expect(element).toEqualDirty();
|
| - expect(scope.log).toEqual('change;');
|
| + expect(scope.context['log']).toEqual('change;');
|
| });
|
|
|
|
|
| @@ -537,14 +581,14 @@ main() {
|
| '<option>B</option>' +
|
| '</select>');
|
|
|
| - scope.$apply(() {
|
| - scope.selection = ['A'];
|
| + scope.apply(() {
|
| + scope.context['selection'] = ['A'];
|
| });
|
|
|
| expect(element).toEqualSelect([['A'], 'B']);
|
|
|
| - scope.$apply(() {
|
| - scope.selection.add('B');
|
| + scope.apply(() {
|
| + scope.context['selection'].add('B');
|
| });
|
|
|
| expect(element).toEqualSelect([['A'], ['B']]);
|
| @@ -559,15 +603,15 @@ main() {
|
| '</select>');
|
|
|
| expect(element).toEqualSelect(['A', 'B']);
|
| - expect(scope.selection).toEqual(null);
|
| + expect(scope.context['selection']).toEqual(null);
|
|
|
| - scope.$apply(() {
|
| - scope.selection = ['A'];
|
| + scope.apply(() {
|
| + scope.context['selection'] = ['A'];
|
| });
|
| expect(element).toEqualSelect([['A'], 'B']);
|
|
|
| - scope.$apply(() {
|
| - scope.selection.add('B');
|
| + scope.apply(() {
|
| + scope.context['selection'].add('B');
|
| });
|
| expect(element).toEqualSelect([['A'], ['B']]);
|
| });
|
| @@ -579,16 +623,16 @@ main() {
|
| '<option>B</option>' +
|
| '</select>');
|
|
|
| - scope.$apply(() {
|
| - scope.selection = [];
|
| + scope.apply(() {
|
| + scope.context['selection'] = [];
|
| });
|
|
|
| - expect(scope.form.select.$error.required).toEqual(true);;
|
| + expect(scope.context['form'].select.$error.required).toEqual(true);;
|
| expect(element).toEqualInvalid();
|
| expect(element).toEqualPristine();
|
|
|
| - scope.$apply(() {
|
| - scope.selection = ['A'];
|
| + scope.apply(() {
|
| + scope.context['selection'] = ['A'];
|
| });
|
|
|
| expect(element).toEqualValid();
|
| @@ -638,9 +682,9 @@ main() {
|
| it('should render a list', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}, {'name': 'C'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}, {'name': 'C'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| var options = element.querySelectorAll('option');
|
| @@ -651,9 +695,9 @@ main() {
|
| it('should render zero as a valid display value', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': '0'}, {'name': '1'}, {'name': '2'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': '0'}, {'name': '1'}, {'name': '2'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| var options = element.querySelectorAll('option');
|
| @@ -664,24 +708,24 @@ main() {
|
| it('should grow list', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [];
|
| + scope.apply(() {
|
| + scope.context['values'] = [];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(1); // because we add special empty option
|
| expect(element.querySelectorAll('option')[0].text).toEqual('');
|
| expect(element.querySelectorAll('option')[0].value).toEqual('?');
|
|
|
| - scope.$apply(() {
|
| - scope.values.add({'name':'A'});
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'].add({'name':'A'});
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(1);
|
| expect(element).toEqualSelect([['A']]);
|
|
|
| - scope.$apply(() {
|
| - scope.values.add({'name':'B'});
|
| + scope.apply(() {
|
| + scope.context['values'].add({'name':'B'});
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| @@ -692,30 +736,30 @@ main() {
|
| it('should shrink list', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name':'A'}, {'name':'B'}, {'name':'C'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name':'A'}, {'name':'B'}, {'name':'C'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(3);
|
|
|
| - scope.$apply(() {
|
| - scope.values.removeLast();
|
| + scope.apply(() {
|
| + scope.context['values'].removeLast();
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| expect(element).toEqualSelect([['A'], 'B']);
|
|
|
| - scope.$apply(() {
|
| - scope.values.removeLast();
|
| + scope.apply(() {
|
| + scope.context['values'].removeLast();
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(1);
|
| expect(element).toEqualSelect([['A']]);
|
|
|
| - scope.$apply(() {
|
| - scope.values.removeLast();
|
| - scope.selected = null;
|
| + scope.apply(() {
|
| + scope.context['values'].removeLast();
|
| + scope.context['selected'] = null;
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(1); // we add back the special empty option
|
| @@ -725,23 +769,23 @@ main() {
|
| it('should shrink and then grow list', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name':'A'}, {'name':'B'}, {'name':'C'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name':'A'}, {'name':'B'}, {'name':'C'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(3);
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': '1'}, {'name': '2'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': '1'}, {'name': '2'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}, {'name': 'C'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}, {'name': 'C'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(3);
|
| @@ -751,14 +795,14 @@ main() {
|
| it('should update list', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}, {'name': 'C'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}, {'name': 'C'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
| expect(element).toEqualSelect([['A'], 'B', 'C']);
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'B'}, {'name': 'C'}, {'name': 'D'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'B'}, {'name': 'C'}, {'name': 'D'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| var options = element.querySelectorAll('option');
|
| @@ -770,24 +814,24 @@ main() {
|
| it('should preserve existing options', () {
|
| createSingleSelect(true);
|
|
|
| - scope.$apply(() {
|
| - scope.values = [];
|
| + scope.apply(() {
|
| + scope.context['values'] = [];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(1);
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| expect(element.querySelectorAll('option')[0].text).toEqual('blank');
|
| expect(element.querySelectorAll('option')[1].text).toEqual('A');
|
|
|
| - scope.$apply(() {
|
| - scope.values = [];
|
| - scope.selected = null;
|
| + scope.apply(() {
|
| + scope.context['values'] = [];
|
| + scope.context['selected'] = null;
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(1);
|
| @@ -799,15 +843,15 @@ main() {
|
| it('should bind to scope value', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element).toEqualSelect([['A'], 'B']);
|
|
|
| - scope.$apply(() {
|
| - scope.selected = scope.values[1];
|
| + scope.apply(() {
|
| + scope.context['selected'] = scope.context['values'][1];
|
| });
|
|
|
| expect(element).toEqualSelect(['A', ['B']]);
|
| @@ -821,13 +865,13 @@ main() {
|
| 'ng-options': 'item.name group by item.group for item in values'
|
| });
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'},
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'},
|
| {'name': 'B', group: 'first'},
|
| {'name': 'C', group: 'second'},
|
| {'name': 'D', group: 'first'},
|
| {'name': 'E', group: 'second'}];
|
| - scope.selected = scope.values[3];
|
| + scope.context['selected'] = scope.context['values'][3];
|
| });
|
|
|
| expect(element).toEqualSelect(['A', 'B', ['D'], 'C', 'E']);
|
| @@ -846,8 +890,8 @@ main() {
|
| expect(c.text).toEqual('C');
|
| expect(e.text).toEqual('E');
|
|
|
| - scope.$apply(() {
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.value).toEqual('0');
|
| @@ -857,15 +901,15 @@ main() {
|
| it('should bind to scope value through experession', () {
|
| createSelect({'ng-model': 'selected'}, null, null, 'item in values', 'item.name', 'item.id');
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'id': 10, 'name': 'A'}, {'id': 20, 'name': 'B'}];
|
| - scope.selected = scope.values[0]['id'];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'id': 10, 'name': 'A'}, {'id': 20, 'name': 'B'}];
|
| + scope.context['selected'] = scope.context['values'][0]['id'];
|
| });
|
|
|
| expect(element).toEqualSelect([['A'], 'B']);
|
|
|
| - scope.$apply(() {
|
| - scope.selected = scope.values[1]['id'];
|
| + scope.apply(() {
|
| + scope.context['selected'] = scope.context['values'][1]['id'];
|
| });
|
|
|
| expect(element).toEqualSelect(['A', ['B']]);
|
| @@ -875,17 +919,17 @@ main() {
|
| it('should insert a blank option if bound to null', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}];
|
| - scope.selected = null;
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}];
|
| + scope.context['selected'] = null;
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| expect(element).toEqualSelect([['?'], 'A']);
|
| expect(element.querySelectorAll('option')[0].value).toEqual('?');
|
|
|
| - scope.$apply(() {
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element).toEqualSelect([['A']]);
|
| @@ -896,17 +940,17 @@ main() {
|
| it('should reuse blank option if bound to null', () {
|
| createSingleSelect(true);
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}];
|
| - scope.selected = null;
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}];
|
| + scope.context['selected'] = null;
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| expect(element.value).toEqual('');
|
| expect(element.querySelectorAll('option')[0].value).toEqual('');
|
|
|
| - scope.$apply(() {
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element).toEqualSelect(['', ['A']]);
|
| @@ -917,17 +961,17 @@ main() {
|
| it('should insert a unknown option if bound to something not in the list', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}];
|
| - scope.selected = {};
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}];
|
| + scope.context['selected'] = {};
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| expect(element.value).toEqual('?');
|
| expect(element.querySelectorAll('option')[0].value).toEqual('?');
|
|
|
| - scope.$apply(() {
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element).toEqualSelect([['A']]);
|
| @@ -938,9 +982,9 @@ main() {
|
| it('should select correct input if previously selected option was "?"', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}];
|
| - scope.selected = {};
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}];
|
| + scope.context['selected'] = {};
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(3);
|
| @@ -948,7 +992,7 @@ main() {
|
| expect(element.querySelectorAll('option')[0].value).toEqual('?');
|
|
|
| _.selectOption(element, 'A');
|
| - expect(scope.selected).toBe(scope.values[0]);
|
| + expect(scope.context['selected']).toBe(scope.context['values'][0]);
|
| expect(element.querySelectorAll('option')[0].selected).toEqual(true);
|
| expect(element.querySelectorAll('option')[0].selected).toEqual(true);;
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| @@ -962,9 +1006,9 @@ main() {
|
| var option;
|
| createSingleSelect('<option value="">blank is {{blankVal}}</option>');
|
|
|
| - scope.$apply(() {
|
| - scope.blankVal = 'so blank';
|
| - scope.values = [{'name': 'A'}];
|
| + scope.apply(() {
|
| + scope.context['blankVal'] = 'so blank';
|
| + scope.context['values'] = [{'name': 'A'}];
|
| });
|
|
|
| // check blank option is first and is compiled
|
| @@ -973,8 +1017,8 @@ main() {
|
| expect(option.value).toEqual('');
|
| expect(option.text).toEqual('blank is so blank');
|
|
|
| - scope.$apply(() {
|
| - scope.blankVal = 'not so blank';
|
| + scope.apply(() {
|
| + scope.context['blankVal'] = 'not so blank';
|
| });
|
|
|
| // check blank option is first and is compiled
|
| @@ -989,9 +1033,9 @@ main() {
|
| var option;
|
| createSingleSelect('<option value="" ng-bind="\'blank is \' + blankVal"></option>');
|
|
|
| - scope.$apply(() {
|
| - scope.blankVal = 'so blank';
|
| - scope.values = [{'name': 'A'}];
|
| + scope.apply(() {
|
| + scope.context['blankVal'] = 'so blank';
|
| + scope.context['values'] = [{'name': 'A'}];
|
| });
|
|
|
| // check blank option is first and is compiled
|
| @@ -1006,9 +1050,9 @@ main() {
|
| var option;
|
| createSingleSelect('<option value="" ng-bind="blankVal"></option>');
|
|
|
| - scope.$apply(() {
|
| - scope.blankVal = 'is blank';
|
| - scope.values = [{'name': 'A'}];
|
| + scope.apply(() {
|
| + scope.context['blankVal'] = 'is blank';
|
| + scope.context['values'] = [{'name': 'A'}];
|
| });
|
|
|
| // check blank option is first and is compiled
|
| @@ -1024,8 +1068,8 @@ main() {
|
| createSingleSelect('<option value="" class="coyote" id="road-runner" ' +
|
| 'custom-attr="custom-attr">{{blankVal}}</option>');
|
|
|
| - scope.$apply(() {
|
| - scope.blankVal = 'is blank';
|
| + scope.apply(() {
|
| + scope.context['blankVal'] = 'is blank';
|
| });
|
|
|
| // check blank option is first and is compiled
|
| @@ -1037,13 +1081,13 @@ main() {
|
|
|
| it('should be selected, if it is available and no other option is selected', () {
|
| // selectedIndex is used here because $ incorrectly reports element.value
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}];
|
| });
|
| createSingleSelect(true);
|
| // ensure the first option (the blank option) is selected
|
| expect(element.selectedIndex).toEqual(0);
|
| - scope.$digest();
|
| + scope.apply();
|
| // ensure the option has not changed following the digest
|
| expect(element.selectedIndex).toEqual(0);
|
| });
|
| @@ -1055,16 +1099,16 @@ main() {
|
| it('should update model on change', () {
|
| createSingleSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| });
|
|
|
| expect(element.querySelectorAll('option')[0].selected).toEqual(true);
|
|
|
| element.querySelectorAll('option')[1].selected = true;
|
| _.triggerEvent(element, 'change');
|
| - expect(scope.selected).toEqual(scope.values[1]);
|
| + expect(scope.context['selected']).toEqual(scope.context['values'][1]);
|
| });
|
|
|
|
|
| @@ -1072,32 +1116,32 @@ main() {
|
| createSelect({'ng-model': 'selected'}, null, null,
|
| 'item in values', 'item.name', 'item.id');
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'id': 10, 'name': 'A'}, {'id': 20, 'name': 'B'}];
|
| - scope.selected = scope.values[0]['id'];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'id': 10, 'name': 'A'}, {'id': 20, 'name': 'B'}];
|
| + scope.context['selected'] = scope.context['values'][0]['id'];
|
| });
|
|
|
| expect(element).toEqualSelect([['A'], 'B']);
|
|
|
| element.querySelectorAll('option')[1].selected = true;
|
| _.triggerEvent(element, 'change');
|
| - expect(scope.selected).toEqual(scope.values[1]['id']);
|
| + expect(scope.context['selected']).toEqual(scope.context['values'][1]['id']);
|
| });
|
|
|
|
|
| it('should update model to null on change', () {
|
| createSingleSelect(true);
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}];
|
| - scope.selected = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}];
|
| + scope.context['selected'] = scope.context['values'][0];
|
| element.value = '0';
|
| });
|
|
|
| _.selectOption(element, 'blank');
|
| expect(element).toEqualSelect([[''], 'A', 'B']);
|
|
|
| - expect(scope.selected).toEqual(null);
|
| + expect(scope.context['selected']).toEqual(null);
|
| });
|
| });
|
|
|
| @@ -1107,25 +1151,25 @@ main() {
|
| it('should read multiple selection', () {
|
| createMultiSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}];
|
| - scope.selected = [];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}];
|
| + scope.context['selected'] = [];
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| expect(element.querySelectorAll('option')[0].selected).toEqual(false);;
|
| expect(element.querySelectorAll('option')[1].selected).toEqual(false);;
|
|
|
| - scope.$apply(() {
|
| - scope.selected.add(scope.values[1]);
|
| + scope.apply(() {
|
| + scope.context['selected'].add(scope.context['values'][1]);
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| expect(element.querySelectorAll('option')[0].selected).toEqual(false);;
|
| expect(element.querySelectorAll('option')[1].selected).toEqual(true);;
|
|
|
| - scope.$apply(() {
|
| - scope.selected.add(scope.values[0]);
|
| + scope.apply(() {
|
| + scope.context['selected'].add(scope.context['values'][0]);
|
| });
|
|
|
| expect(element.querySelectorAll('option').length).toEqual(2);
|
| @@ -1137,28 +1181,28 @@ main() {
|
| it('should update model on change', () {
|
| createMultiSelect();
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}];
|
| - scope.selected = [];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}];
|
| + scope.context['selected'] = [];
|
| });
|
|
|
| element.querySelectorAll('option')[0].selected = true;
|
|
|
| _.triggerEvent(element, 'change');
|
| - expect(scope.selected).toEqual([scope.values[0]]);
|
| + expect(scope.context['selected']).toEqual([scope.context['values'][0]]);
|
| });
|
|
|
|
|
| it('should deselect all options when model is emptied', () {
|
| createMultiSelect();
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A'}, {'name': 'B'}];
|
| - scope.selected = [scope.values[0]];
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A'}, {'name': 'B'}];
|
| + scope.context['selected'] = [scope.context['values'][0]];
|
| });
|
| expect(element.querySelectorAll('option')[0].selected).toEqual(true);
|
|
|
| - scope.$apply(() {
|
| - scope.selected.removeLast();
|
| + scope.apply(() {
|
| + scope.context['selected'].removeLast();
|
| });
|
|
|
| expect(element.querySelectorAll('option')[0].selected).toEqual(false);
|
| @@ -1176,22 +1220,22 @@ main() {
|
| }, true);
|
|
|
|
|
| - scope.$apply(() {
|
| - scope.values = [{'name': 'A', 'id': 1}, {'name': 'B', 'id': 2}];
|
| - scope.required = false;
|
| + scope.apply(() {
|
| + scope.context['values'] = [{'name': 'A', 'id': 1}, {'name': 'B', 'id': 2}];
|
| + scope.context['required'] = false;
|
| });
|
|
|
| element.value = '';
|
| _.triggerEvent(element, 'change');
|
| expect(element).toEqualValid();
|
|
|
| - scope.$apply(() {
|
| - scope.required = true;
|
| + scope.apply(() {
|
| + scope.context['required'] = true;
|
| });
|
| expect(element).toEqualInvalid();
|
|
|
| - scope.$apply(() {
|
| - scope.value = scope.values[0];
|
| + scope.apply(() {
|
| + scope.context['value'] = scope.context['values'][0];
|
| });
|
| expect(element).toEqualValid();
|
|
|
| @@ -1199,8 +1243,8 @@ main() {
|
| _.triggerEvent(element, 'change');
|
| expect(element).toEqualInvalid();
|
|
|
| - scope.$apply(() {
|
| - scope.required = false;
|
| + scope.apply(() {
|
| + scope.context['required'] = false;
|
| });
|
| expect(element).toEqualValid();
|
| });
|
| @@ -1221,7 +1265,7 @@ main() {
|
| });
|
|
|
| it('should set value even if self closing HTML', () {
|
| - scope.x = 'hello';
|
| + scope.context['x'] = 'hello';
|
| compile('<select ng-model="x"><option>hello</select>');
|
| expect(element).toEqualSelect([['hello']]);
|
| });
|
| @@ -1233,8 +1277,8 @@ main() {
|
| '<span>{{foo}}</span>' +
|
| '</div>');
|
|
|
| - _.rootScope.foo = 'success';
|
| - _.rootScope.$digest();
|
| + _.rootScope.context['foo'] = 'success';
|
| + _.rootScope.apply();
|
| expect(_.rootElement.querySelector('span').text).toEqual('success');
|
| });
|
| });
|
|
|