| Index: third_party/pkg/angular/test/directive/ng_class_spec.dart
 | 
| diff --git a/third_party/pkg/angular/test/directive/ng_class_spec.dart b/third_party/pkg/angular/test/directive/ng_class_spec.dart
 | 
| deleted file mode 100644
 | 
| index 9d6914a46324f05348426e5c9e35b843a64dca7a..0000000000000000000000000000000000000000
 | 
| --- a/third_party/pkg/angular/test/directive/ng_class_spec.dart
 | 
| +++ /dev/null
 | 
| @@ -1,312 +0,0 @@
 | 
| -library ng_class_spec;
 | 
| -
 | 
| -import '../_specs.dart';
 | 
| -
 | 
| -main() {
 | 
| -  describe('ngClass', () {
 | 
| -    TestBed _;
 | 
| -
 | 
| -    beforeEach(inject((TestBed tb) => _ = tb));
 | 
| -
 | 
| -    it('should add new and remove old classes dynamically', () {
 | 
| -      var element = _.compile('<div class="existing" ng-class="dynClass"></div>');
 | 
| -      _.rootScope.context['dynClass'] = 'A';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('existing')).toBe(true);
 | 
| -      expect(element.classes.contains('A')).toBe(true);
 | 
| -
 | 
| -      _.rootScope.context['dynClass'] = 'B';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('existing')).toBe(true);
 | 
| -      expect(element.classes.contains('A')).toBe(false);
 | 
| -      expect(element.classes.contains('B')).toBe(true);
 | 
| -
 | 
| -      _.rootScope.context['dynClass'] = null;
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('existing')).toBe(true);
 | 
| -      expect(element.classes.contains('A')).toBe(false);
 | 
| -      expect(element.classes.contains('B')).toBe(false);
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should support adding multiple classes via an array', () {
 | 
| -      _.rootScope.context['a'] = 'a';
 | 
| -      _.rootScope.context['b'] = '';
 | 
| -      _.rootScope.context['c'] = null;
 | 
| -      var element = _.compile('<div class="existing" ng-class="[\'literalA\', a, b, c]"></div>');
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('existing')).toBeTruthy();
 | 
| -      expect(element.classes.contains('a')).toBeTruthy();
 | 
| -      expect(element.classes.contains('b')).toBeFalsy();
 | 
| -      expect(element.classes.contains('c')).toBeFalsy();
 | 
| -      expect(element.classes.contains('null')).toBeFalsy();
 | 
| -      _.rootScope.context['a']  = null;
 | 
| -      _.rootScope.context['b']  = 'b';
 | 
| -      _.rootScope.context['c']  = 'c';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('a')).toBeFalsy();
 | 
| -      expect(element.classes.contains('b')).toBeTruthy();
 | 
| -      expect(element.classes.contains('c')).toBeTruthy();
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should support adding multiple classes conditionally via a map of class names to boolean' +
 | 
| -        'expressions', () {
 | 
| -          var element = _.compile(
 | 
| -              '<div class="existing" ' +
 | 
| -              'ng-class="{A: conditionA, B: conditionB(), AnotB: conditionA&&!conditionB()}">' +
 | 
| -          '</div>');
 | 
| -          _.rootScope.context['conditionA'] = true;
 | 
| -          _.rootScope.context['conditionB'] = () { return false; };
 | 
| -          _.rootScope.apply();
 | 
| -          expect(element.classes.contains('existing')).toBeTruthy();
 | 
| -          expect(element.classes.contains('A')).toBeTruthy();
 | 
| -          expect(element.classes.contains('B')).toBeFalsy();
 | 
| -          expect(element.classes.contains('AnotB')).toBeTruthy();
 | 
| -
 | 
| -          _.rootScope.context['conditionB'] = () { return true; };
 | 
| -          _.rootScope.apply();
 | 
| -          expect(element.classes.contains('existing')).toBeTruthy();
 | 
| -          expect(element.classes.contains('A')).toBeTruthy();
 | 
| -          expect(element.classes.contains('B')).toBeTruthy();
 | 
| -          expect(element.classes.contains('AnotB')).toBeFalsy();
 | 
| -        });
 | 
| -
 | 
| -
 | 
| -    it('should remove classes when the referenced object is the same but its property is changed',
 | 
| -        () {
 | 
| -          var element = _.compile('<div ng-class="classes"></div>');
 | 
| -          _.rootScope.context['classes'] = { 'A': true, 'B': true };
 | 
| -          _.rootScope.apply();
 | 
| -          expect(element.classes.contains('A')).toBeTruthy();
 | 
| -          expect(element.classes.contains('B')).toBeTruthy();
 | 
| -          _.rootScope.context['classes']['A'] = false;
 | 
| -          _.rootScope.apply();
 | 
| -          expect(element.classes.contains('A')).toBeFalsy();
 | 
| -          expect(element.classes.contains('B')).toBeTruthy();
 | 
| -        });
 | 
| -
 | 
| -    it('should support adding multiple classes via a space delimited string', () {
 | 
| -      var element = _.compile('<div class="existing" ng-class="\'A B\'"></div>');
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('existing')).toBeTruthy();
 | 
| -      expect(element.classes.contains('A')).toBeTruthy();
 | 
| -      expect(element.classes.contains('B')).toBeTruthy();
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should preserve class added post compilation with pre-existing classes', () {
 | 
| -      var element = _.compile('<div class="existing" ng-class="dynClass"></div>');
 | 
| -      _.rootScope.context['dynClass'] = 'A';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('existing')).toBe(true);
 | 
| -
 | 
| -      // add extra class, change model and eval
 | 
| -      element.classes.add('newClass');
 | 
| -      _.rootScope.context['dynClass'] = 'B';
 | 
| -      _.rootScope.apply();
 | 
| -
 | 
| -      expect(element.classes.contains('existing')).toBe(true);
 | 
| -      expect(element.classes.contains('B')).toBe(true);
 | 
| -      expect(element.classes.contains('newClass')).toBe(true);
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should preserve class added post compilation without pre-existing classes"', () {
 | 
| -      var element = _.compile('<div ng-class="dynClass"></div>');
 | 
| -      _.rootScope.context['dynClass'] = 'A';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('A')).toBe(true);
 | 
| -
 | 
| -      // add extra class, change model and eval
 | 
| -      element.classes.add('newClass');
 | 
| -      _.rootScope.context['dynClass'] = 'B';
 | 
| -      _.rootScope.apply();
 | 
| -
 | 
| -      expect(element.classes.contains('B')).toBe(true);
 | 
| -      expect(element.classes.contains('newClass')).toBe(true);
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should preserve other classes with similar name"', () {
 | 
| -      var element = _.compile('<div class="ui-panel ui-selected" ng-class="dynCls"></div>');
 | 
| -      _.rootScope.context['dynCls'] = 'panel';
 | 
| -      _.rootScope.apply();
 | 
| -      _.rootScope.context['dynCls'] = 'foo';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.className).toEqual('ui-panel ui-selected foo');
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should not add duplicate classes', () {
 | 
| -      var element = _.compile('<div class="panel bar" ng-class="dynCls"></div>');
 | 
| -      _.rootScope.context['dynCls'] = 'panel';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.className).toEqual('panel bar');
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should remove classes even if it was specified via class attribute', () {
 | 
| -      var element = _.compile('<div class="panel bar" ng-class="dynCls"></div>');
 | 
| -      _.rootScope.context['dynCls'] = 'panel';
 | 
| -      _.rootScope.apply();
 | 
| -      _.rootScope.context['dynCls'] = 'window';
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.className).toEqual('bar window');
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should remove classes even if they were added by another code', () {
 | 
| -      var element = _.compile('<div ng-class="dynCls"></div>');
 | 
| -      _.rootScope.context['dynCls'] = 'foo';
 | 
| -      _.rootScope.apply();
 | 
| -      element.classes.add('foo');
 | 
| -      _.rootScope.context['dynCls'] = '';
 | 
| -      _.rootScope.apply();
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should ngClass odd/even', () {
 | 
| -      var element = _.compile('<ul><li ng-repeat="i in [0,1]" class="existing" ng-class-odd="\'odd\'" ng-class-even="\'even\'"></li><ul>');
 | 
| -      _.rootScope.apply();
 | 
| -      var e1 = element.nodes[1];
 | 
| -      var e2 = element.nodes[2];
 | 
| -      expect(e1.classes.contains('existing')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('odd')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('existing')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('even')).toBeTruthy();
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should allow both ngClass and ngClassOdd/Even on the same element', () {
 | 
| -      var element = _.compile('<ul>' +
 | 
| -          '<li ng-repeat="i in [0,1]" ng-class="\'plainClass\'" ' +
 | 
| -          'ng-class-odd="\'odd\'" ng-class-even="\'even\'">{{\$index}}</li>' +
 | 
| -      '<ul>');
 | 
| -      _.rootScope.apply();
 | 
| -      var e1 = element.nodes[1];
 | 
| -      var e2 = element.nodes[2];
 | 
| -
 | 
| -      expect(e1.classes.contains('plainClass')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('odd')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('even')).toBeFalsy();
 | 
| -      expect(e2.classes.contains('plainClass')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('even')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('odd')).toBeFalsy();
 | 
| -    });
 | 
| -
 | 
| -    it('should allow both ngClass and ngClassOdd/Even with multiple classes', () {
 | 
| -      var element = _.compile('<ul>' +
 | 
| -        '<li ng-repeat="i in [0,1]" ng-class="[\'A\', \'B\']" ' +
 | 
| -        'ng-class-odd="[\'C\', \'D\']" ng-class-even="[\'E\', \'F\']"></li>' +
 | 
| -        '<ul>');
 | 
| -      _.rootScope.apply();
 | 
| -      var e1 = element.nodes[1];
 | 
| -      var e2 = element.nodes[2];
 | 
| -
 | 
| -      expect(e1.classes.contains('A')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('B')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('C')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('D')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('E')).toBeFalsy();
 | 
| -      expect(e1.classes.contains('F')).toBeFalsy();
 | 
| -
 | 
| -      expect(e2.classes.contains('A')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('B')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('E')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('F')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('C')).toBeFalsy();
 | 
| -      expect(e2.classes.contains('D')).toBeFalsy();
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should reapply ngClass when interpolated class attribute changes', () {
 | 
| -      var element = _.compile('<div class="one {{cls}} three" ng-class="{four: four}"></div>');
 | 
| -
 | 
| -      _.rootScope.apply(() {
 | 
| -        _.rootScope.context['cls'] = "two";
 | 
| -        _.rootScope.context['four'] = true;
 | 
| -      });
 | 
| -      expect(element).toHaveClass('one');
 | 
| -      expect(element).toHaveClass('two'); // interpolated
 | 
| -      expect(element).toHaveClass('three');
 | 
| -      expect(element).toHaveClass('four');
 | 
| -
 | 
| -      _.rootScope.apply(() {
 | 
| -        _.rootScope.context['cls'] = "too";
 | 
| -      });
 | 
| -
 | 
| -      expect(element).toHaveClass('one');
 | 
| -      expect(element).toHaveClass('too'); // interpolated
 | 
| -      expect(element).toHaveClass('three');
 | 
| -      expect(element).toHaveClass('four'); // should still be there
 | 
| -      expect(element.classes.contains('two')).toBeFalsy();
 | 
| -
 | 
| -      _.rootScope.apply(() {
 | 
| -        _.rootScope.context['cls'] = "to";
 | 
| -      });
 | 
| -
 | 
| -      expect(element).toHaveClass('one');
 | 
| -      expect(element).toHaveClass('to'); // interpolated
 | 
| -      expect(element).toHaveClass('three');
 | 
| -      expect(element).toHaveClass('four'); // should still be there
 | 
| -      expect(element.classes.contains('two')).toBeFalsy();
 | 
| -      expect(element.classes.contains('too')).toBeFalsy();
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should not mess up class value due to observing an interpolated class attribute', () {
 | 
| -      _.rootScope.context['foo'] = true;
 | 
| -      _.rootScope.watch("anything", (_0, _1) {
 | 
| -        _.rootScope.context['foo'] = false;
 | 
| -      });
 | 
| -      var element = _.compile('<div ng-class="{foo:foo}"></div>');
 | 
| -      _.rootScope.apply();
 | 
| -      expect(element.classes.contains('foo')).toBe(false);
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should update ngClassOdd/Even when model is changed by filtering', () {
 | 
| -      var element = _.compile('<ul>' +
 | 
| -        '<li ng-repeat="i in items" ' +
 | 
| -        'ng-class-odd="\'odd\'" ng-class-even="\'even\'"></li>' +
 | 
| -        '<ul>');
 | 
| -      _.rootScope.context['items'] = ['a','b','c'];
 | 
| -      _.rootScope.apply();
 | 
| -
 | 
| -      _.rootScope.context['items'] = ['a','b'];
 | 
| -      _.rootScope.apply();
 | 
| -
 | 
| -      var e1 = element.nodes[1];
 | 
| -      var e2 = element.nodes[2];
 | 
| -
 | 
| -      expect(e1.classes.contains('odd')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('even')).toBeFalsy();
 | 
| -
 | 
| -      expect(e2.classes.contains('even')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('odd')).toBeFalsy();
 | 
| -    });
 | 
| -
 | 
| -
 | 
| -    it('should update ngClassOdd/Even when model is changed by sorting', () {
 | 
| -      var element = _.compile('<ul>' +
 | 
| -        '<li ng-repeat="i in items" ' +
 | 
| -        'ng-class-odd="\'odd\'" ng-class-even="\'even\'">i</li>' +
 | 
| -        '<ul>');
 | 
| -      _.rootScope.context['items'] = ['a','b'];
 | 
| -      _.rootScope.apply();
 | 
| -
 | 
| -      _.rootScope.context['items'] = ['b','a'];
 | 
| -      _.rootScope.apply();
 | 
| -
 | 
| -      var e1 = element.nodes[1];
 | 
| -      var e2 = element.nodes[2];
 | 
| -
 | 
| -      expect(e1.classes.contains('odd')).toBeTruthy();
 | 
| -      expect(e1.classes.contains('even')).toBeFalsy();
 | 
| -
 | 
| -      expect(e2.classes.contains('even')).toBeTruthy();
 | 
| -      expect(e2.classes.contains('odd')).toBeFalsy();
 | 
| -    });
 | 
| -  });
 | 
| -}
 | 
| 
 |