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