Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: third_party/pkg/angular/test/directive/ng_bind_html_spec.dart

Issue 176943008: Update the Angular/DI tests to latest from github. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/pkg/angular/test/directive/ng_bind_html_spec.dart
diff --git a/third_party/pkg/angular/test/directive/ng_bind_html_spec.dart b/third_party/pkg/angular/test/directive/ng_bind_html_spec.dart
index 5dc161d8f362a29dba7176dc773ecbd1bdce3956..791bc7df01e643b9f73f8853f06a93c915e41d72 100644
--- a/third_party/pkg/angular/test/directive/ng_bind_html_spec.dart
+++ b/third_party/pkg/angular/test/directive/ng_bind_html_spec.dart
@@ -1,21 +1,42 @@
library ng_bind_html_spec;
+import 'dart:html' as dom;
import '../_specs.dart';
main() {
describe('BindHtmlDirective', () {
- TestBed _;
-
- beforeEach(inject((TestBed tb) => _ = tb));
it('should sanitize and set innerHtml and sanitize and set html',
- inject((Scope scope, Injector injector, Compiler compiler) {
+ inject((Scope scope, Injector injector, Compiler compiler, DirectiveMap directives) {
var element = $('<div ng-bind-html="htmlVar"></div>');
- compiler(element)(injector, element);
- scope.htmlVar = '<a href="http://www.google.com"><b>Google!</b></a>';
- scope.$digest();
+ compiler(element, directives)(injector, element);
+ scope.context['htmlVar'] = '<a href="http://www.google.com"><b>Google!</b></a>';
+ scope.apply();
// Sanitization removes the href attribute on the <a> tag.
expect(element.html()).toEqual('<a><b>Google!</b></a>');
}));
+
+ it('should use injected NodeValidator and override default sanitize behavior',
+ module((Module module) {
+ module.factory(dom.NodeValidator, (_) {
+ final validator = new NodeValidatorBuilder();
+ validator.allowNavigation(new AnyUriPolicy());
+ validator.allowTextElements();
+ return validator;
+ });
+
+ inject((Scope scope, Injector injector, Compiler compiler, DirectiveMap directives) {
+ var element = $('<div ng-bind-html="htmlVar"></div>');
+ compiler(element, directives)(injector, element);
+ scope.context['htmlVar'] = '<a href="http://www.google.com"><b>Google!</b></a>';
+ scope.apply();
+ // Sanitation allows href attributes per injected sanitizer.
+ expect(element.html()).toEqual('<a href="http://www.google.com"><b>Google!</b></a>');
+ });
+ }));
});
}
+
+class AnyUriPolicy implements UriPolicy {
+ bool allowsUri(String uri) => true;
+}

Powered by Google App Engine
This is Rietveld 408576698