OLD | NEW |
1 library ng_template_spec; | 1 library ng_template_spec; |
2 | 2 |
3 import '../_specs.dart'; | 3 import '../_specs.dart'; |
4 | 4 |
5 main() { | 5 main() { |
6 describe('NgTemplateDirective', () { | 6 describe('NgTemplateDirective', () { |
7 TestBed _; | 7 TestBed _; |
8 var element; | 8 var element; |
9 | 9 |
| 10 beforeEach((TestBed tb) => _ = tb); |
| 11 |
10 they(should, htmlForElements, callback) { | 12 they(should, htmlForElements, callback) { |
11 htmlForElements.forEach((html) { | 13 htmlForElements.forEach((html) { |
12 var tagName = html.contains('<template') ? 'template' : 'script'; | 14 var tagName = html.contains('<template') ? 'template' : 'script'; |
13 describe('$tagName[type="text/ng-template"]', () { | 15 describe('$tagName[type="text/ng-template"]', () { |
14 beforeEach(inject((TestBed tb) => _ = tb)); | 16 beforeEach(() => element = e(html)); |
15 it(should, () { | 17 it(should, callback); |
16 element = $(html); | |
17 inject(callback); | |
18 }); | |
19 }); | 18 }); |
20 }); | 19 }); |
21 } | 20 } |
22 | 21 |
23 they('should populate TemplateCache with contents of a ng-template template
element', | 22 they('should populate TemplateCache with contents of a ng-template template
element', |
24 [ // <template> | 23 [ // <template> |
25 '<div>foo' + | 24 '<div>foo' + |
26 '<template id="/ignore">ignore me</template>' + | 25 '<template id="/ignore">ignore me</template>' + |
27 '<template type="text/ng-template" id="/myTemplate.html"><x>{{y}}</x><
/template>' + | 26 '<template type="text/ng-template" id="/myTemplate.html"><x>{{y}}</x><
/template>' + |
28 '</div>', | 27 '</div>', |
29 // <script> | 28 // <script> |
30 '<div>foo' + | 29 '<div>foo' + |
31 '<script id="/ignore">ignore me</script>' + | 30 '<script id="/ignore">ignore me</script>' + |
32 '<script type="text/ng-template" id="/myTemplate.html"><x>{{y}}</x></s
cript>' + | 31 '<script type="text/ng-template" id="/myTemplate.html"><x>{{y}}</x></s
cript>' + |
33 '</div>'], | 32 '</div>'], |
34 (Injector injector, Compiler compiler, TemplateCache templateCache, Direct
iveMap directives) { | 33 (TemplateCache templateCache) { |
35 compiler(element, directives)(injector, element); | 34 _.compile(element); |
36 expect(templateCache.get('/ignore')).toBeNull(); | 35 expect(templateCache.get('/ignore')).toBeNull(); |
37 expect(templateCache.get('/myTemplate.html').responseText).toEqual('<x>{
{y}}</x>'); | 36 expect(templateCache.get('/myTemplate.html').responseText).toEqual('<x>{
{y}}</x>'); |
38 } | 37 } |
39 ); | 38 ); |
40 | 39 |
41 they('should not compile template elements', | 40 it('should not compile template elements', () { |
42 [ // <template> | 41 _.compile(element = e('<div>foo' |
43 '<div>foo' + | 42 '<template type="text/javascript">some {{binding}} <div></div></templa
te>' |
44 '<template type="text/javascript">some {{binding}} <div></div></templa
te>' + | 43 '<template type="text/ng-template" id="/some">other {{binding}} <div><
/div></template>' |
45 '<template type="text/ng-template" id="/some">other {{binding}} <div><
/div></template>' + | 44 '</div>')); |
46 '</div>', | |
47 // <script> | |
48 '<div>foo' + | |
49 '<script type="text/javascript">some {{binding}} <div></div></script>'
+ | |
50 '<script type="text/ng-template" id="/some">other {{binding}} <div></d
iv></script>' + | |
51 '</div>'], | |
52 (Injector injector, Compiler compiler, TemplateCache templateCache, Scope
scope, DirectiveMap directives) { | |
53 var templates = element.contents(); | |
54 compiler(element, directives)(injector, element); | |
55 | 45 |
56 microLeap(); | 46 microLeap(); |
57 // This binding should have been left alone (i.e. not interpolated). | 47 |
58 expect(templates[2].innerHtml).toEqual('other {{binding}} <div></div>'); | 48 expect(element.children[1] is TemplateElement).toBeTruthy(); |
59 } | 49 // This binding should have been left alone (i.e. not interpolated). |
60 ); | 50 expect(element.children[1].content).toHaveHtml('other {{binding}} <div></d
iv>'); |
| 51 }); |
| 52 |
| 53 it('should not compile script elements', () { |
| 54 _.compile(element = e('<div>foo' |
| 55 '<script type="text/javascript">some {{binding}} <div></div></script>' |
| 56 '<script type="text/ng-template" id="/some">other {{binding}} <div></d
iv></script>' |
| 57 '</div>')); |
| 58 |
| 59 microLeap(); |
| 60 |
| 61 // This binding should have been left alone (i.e. not interpolated). |
| 62 expect(element.children[1]).toHaveHtml('other {{binding}} <div></div>'); |
| 63 }); |
61 }); | 64 }); |
62 } | 65 } |
OLD | NEW |