| OLD | NEW |
| 1 library angular.selector_spec; | 1 library angular.selector_spec; |
| 2 | 2 |
| 3 import 'package:angular/tools/selector.dart'; | 3 import 'package:angular/tools/selector.dart'; |
| 4 import 'package:html5lib/dom.dart'; | 4 import 'package:html5lib/dom.dart'; |
| 5 import 'package:unittest/unittest.dart'; | 5 import 'package:unittest/unittest.dart'; |
| 6 | 6 |
| 7 import '../jasmine_syntax.dart'; | 7 import '../jasmine_syntax.dart'; |
| 8 | 8 |
| 9 main() => describe('selector', () { | 9 void main() { |
| 10 describe('selector', () { |
| 10 | 11 |
| 11 it('should match directive on element', () { | 12 it('should match directive on element', () { |
| 12 var node = new Element.html('<b></b>'); | 13 var node = new Element.html('<b></b>'); |
| 13 expect(matchesNode(node, 'b'), isTrue); | 14 expect(matchesNode(node, 'b'), isTrue); |
| 14 expect(matchesNode(node, 'em'), isFalse); | 15 expect(matchesNode(node, 'em'), isFalse); |
| 15 }); | 16 }); |
| 16 | 17 |
| 17 it('should match directive on class', () { | 18 it('should match directive on class', () { |
| 18 var node = new Element.html('<div class="b"></div>'); | 19 var node = new Element.html('<div class="b"></div>'); |
| 19 expect(matchesNode(node, '.b'), isTrue); | 20 expect(matchesNode(node, '.b'), isTrue); |
| 20 expect(matchesNode(node, '.c'), isFalse); | 21 expect(matchesNode(node, '.c'), isFalse); |
| 21 }); | 22 }); |
| 22 | 23 |
| 23 | 24 |
| 24 it('should match directive on [attribute]', () { | 25 it('should match directive on [attribute]', () { |
| 25 var node = new Element.html('<div directive></div>'); | 26 var node = new Element.html('<div directive></div>'); |
| 26 expect(matchesNode(node, '[directive]'), isTrue); | 27 expect(matchesNode(node, '[directive]'), isTrue); |
| 27 expect(matchesNode(node, '[directiff]'), isFalse); | 28 expect(matchesNode(node, '[directiff]'), isFalse); |
| 28 | 29 |
| 29 node = new Element.html('<div directive="abc"></div>'); | 30 node = new Element.html('<div directive="abc"></div>'); |
| 30 expect(matchesNode(node, '[directive=abc]'), isTrue); | 31 expect(matchesNode(node, '[directive=abc]'), isTrue); |
| 31 expect(matchesNode(node, '[directive=bcd]'), isFalse); | 32 expect(matchesNode(node, '[directive=bcd]'), isFalse); |
| 32 }); | 33 }); |
| 33 | 34 |
| 34 | 35 |
| 35 it('should match directive on element[attribute]', () { | 36 it('should match directive on element[attribute]', () { |
| 36 var node = new Element.html('<b directive=abc></b>'); | 37 var node = new Element.html('<b directive=abc></b>'); |
| 37 expect(matchesNode(node, 'b[directive]'), isTrue); | 38 expect(matchesNode(node, 'b[directive]'), isTrue); |
| 38 expect(matchesNode(node, 'c[directive]'), isFalse); | 39 expect(matchesNode(node, 'c[directive]'), isFalse); |
| 39 }); | 40 }); |
| 40 | 41 |
| 41 | 42 |
| 42 it('should match directive on [attribute=value]', () { | 43 it('should match directive on [attribute=value]', () { |
| 43 var node = new Element.html('<div directive=value></div>'); | 44 var node = new Element.html('<div directive=value></div>'); |
| 44 expect(matchesNode(node, '[directive=value]'), isTrue); | 45 expect(matchesNode(node, '[directive=value]'), isTrue); |
| 45 }); | 46 }); |
| 46 | 47 |
| 47 | 48 |
| 48 it('should match directive on element[attribute=value]', () { | 49 it('should match directive on element[attribute=value]', () { |
| 49 var node = new Element.html('<b directive=value></b>'); | 50 var node = new Element.html('<b directive=value></b>'); |
| 50 expect(matchesNode(node, 'b[directive=value]'), isTrue); | 51 expect(matchesNode(node, 'b[directive=value]'), isTrue); |
| 51 expect(matchesNode(node, 'b[directive=wrongvalue]'), isFalse); | 52 expect(matchesNode(node, 'b[directive=wrongvalue]'), isFalse); |
| 53 }); |
| 54 |
| 55 it('should match attributes', () { |
| 56 var node = new Element.html('<div attr="before-xyz-after"></div>'); |
| 57 expect(matchesNode(node, '[*=/xyz/]'), isTrue); |
| 58 expect(matchesNode(node, '[*=/xyzz/]'), isFalse); |
| 59 }); |
| 60 |
| 61 it('should match whildcard attributes', () { |
| 62 var node = new Element.html('<div attr-foo="blah"></div>'); |
| 63 expect(matchesNode(node, '[attr-*]'), isTrue); |
| 64 expect(matchesNode(node, '[attr-*=blah]'), isTrue); |
| 65 expect(matchesNode(node, '[attr-*=halb]'), isFalse); |
| 66 expect(matchesNode(node, '[foo-*]'), isFalse); |
| 67 expect(matchesNode(node, '[foo-*=blah]'), isFalse); |
| 68 expect(matchesNode(node, '[foo-*=halb]'), isFalse); |
| 69 }); |
| 70 |
| 71 it('should match text', () { |
| 72 var node = new Text('before-abc-after'); |
| 73 expect(matchesNode(node, ':contains(/abc/)'), isTrue); |
| 74 expect(matchesNode(node, ':contains(/cde/)'), isFalse); |
| 75 }); |
| 76 |
| 77 it('should match on multiple directives', () { |
| 78 var node = new Element.html('<div directive="d" foo="f"></div>'); |
| 79 expect(matchesNode(node, '[directive=d][foo=f]'), isTrue); |
| 80 expect(matchesNode(node, '[directive=d][bar=baz]'), isFalse); |
| 81 }); |
| 82 |
| 52 }); | 83 }); |
| 53 | 84 } |
| 54 it('should match attributes', () { | |
| 55 var node = new Element.html('<div attr="before-xyz-after"></div>'); | |
| 56 expect(matchesNode(node, '[*=/xyz/]'), isTrue); | |
| 57 expect(matchesNode(node, '[*=/xyzz/]'), isFalse); | |
| 58 }); | |
| 59 | |
| 60 it('should match whildcard attributes', () { | |
| 61 var node = new Element.html('<div attr-foo="blah"></div>'); | |
| 62 expect(matchesNode(node, '[attr-*]'), isTrue); | |
| 63 expect(matchesNode(node, '[attr-*=blah]'), isTrue); | |
| 64 expect(matchesNode(node, '[attr-*=halb]'), isFalse); | |
| 65 expect(matchesNode(node, '[foo-*]'), isFalse); | |
| 66 expect(matchesNode(node, '[foo-*=blah]'), isFalse); | |
| 67 expect(matchesNode(node, '[foo-*=halb]'), isFalse); | |
| 68 }); | |
| 69 | |
| 70 it('should match text', () { | |
| 71 var node = new Text('before-abc-after'); | |
| 72 expect(matchesNode(node, ':contains(/abc/)'), isTrue); | |
| 73 expect(matchesNode(node, ':contains(/cde/)'), isFalse); | |
| 74 }); | |
| 75 | |
| 76 it('should match on multiple directives', () { | |
| 77 var node = new Element.html('<div directive="d" foo="f"></div>'); | |
| 78 expect(matchesNode(node, '[directive=d][foo=f]'), isTrue); | |
| 79 expect(matchesNode(node, '[directive=d][bar=baz]'), isFalse); | |
| 80 }); | |
| 81 | |
| 82 }); | |
| OLD | NEW |