| OLD | NEW |
| 1 library ng_bind_html_spec; | 1 library ng_bind_html_spec; |
| 2 | 2 |
| 3 import 'dart:html' as dom; | 3 import 'dart:html' as dom; |
| 4 import '../_specs.dart'; | 4 import '../_specs.dart'; |
| 5 | 5 |
| 6 main() { | 6 main() { |
| 7 describe('BindHtmlDirective', () { | 7 describe('BindHtmlDirective', () { |
| 8 | 8 |
| 9 it('should sanitize and set innerHtml and sanitize and set html', | 9 it('should sanitize and set innerHtml and sanitize and set html', |
| 10 inject((Scope scope, Injector injector, Compiler compiler, DirectiveMa
p directives) { | 10 (Scope scope, Injector injector, Compiler compiler, DirectiveMap direc
tives) { |
| 11 var element = $('<div ng-bind-html="htmlVar"></div>'); | 11 var element = es('<div ng-bind-html="htmlVar"></div>'); |
| 12 compiler(element, directives)(injector, element); | 12 compiler(element, directives)(injector, element); |
| 13 scope.context['htmlVar'] = '<a href="http://www.google.com"><b>Google!</b>
</a>'; | 13 scope.context['htmlVar'] = '<a href="http://www.google.com"><b>Google!</b>
</a>'; |
| 14 scope.apply(); | 14 scope.apply(); |
| 15 // Sanitization removes the href attribute on the <a> tag. | 15 // Sanitization removes the href attribute on the <a> tag. |
| 16 expect(element.html()).toEqual('<a><b>Google!</b></a>'); | 16 expect(element).toHaveHtml('<a><b>Google!</b></a>'); |
| 17 })); | 17 }); |
| 18 | 18 |
| 19 it('should use injected NodeValidator and override default sanitize behavior
', | 19 describe('injected NodeValidator', () { |
| 20 module((Module module) { | 20 beforeEachModule((Module module) { |
| 21 module.factory(dom.NodeValidator, (_) { | 21 module.factory(dom.NodeValidator, (_) { |
| 22 final validator = new NodeValidatorBuilder(); | 22 final validator = new NodeValidatorBuilder(); |
| 23 validator.allowNavigation(new AnyUriPolicy()); | 23 validator.allowNavigation(new AnyUriPolicy()); |
| 24 validator.allowTextElements(); | 24 validator.allowTextElements(); |
| 25 return validator; | 25 return validator; |
| 26 }); |
| 26 }); | 27 }); |
| 27 | 28 |
| 28 inject((Scope scope, Injector injector, Compiler compiler, DirectiveMap di
rectives) { | 29 it('should use injected NodeValidator and override default sanitize behavi
or', (Scope scope, Injector injector, Compiler compiler, DirectiveMap directives
) { |
| 29 var element = $('<div ng-bind-html="htmlVar"></div>'); | 30 var element = es('<div ng-bind-html="htmlVar"></div>'); |
| 30 compiler(element, directives)(injector, element); | 31 compiler(element, directives)(injector, element); |
| 31 scope.context['htmlVar'] = '<a href="http://www.google.com"><b>Google!</
b></a>'; | 32 scope.context['htmlVar'] = '<a href="http://www.google.com"><b>Google!</
b></a>'; |
| 32 scope.apply(); | 33 scope.apply(); |
| 33 // Sanitation allows href attributes per injected sanitizer. | 34 // Sanitation allows href attributes per injected sanitizer. |
| 34 expect(element.html()).toEqual('<a href="http://www.google.com"><b>Googl
e!</b></a>'); | 35 expect(element).toHaveHtml('<a href="http://www.google.com"><b>Google!</
b></a>'); |
| 35 }); | 36 }); |
| 36 })); | 37 }); |
| 37 }); | 38 }); |
| 38 } | 39 } |
| 39 | 40 |
| 40 class AnyUriPolicy implements UriPolicy { | 41 class AnyUriPolicy implements UriPolicy { |
| 41 bool allowsUri(String uri) => true; | 42 bool allowsUri(String uri) => true; |
| 42 } | 43 } |
| OLD | NEW |