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

Unified Diff: third_party/pkg/angular/test/introspection_spec.dart

Issue 257423008: Update all Angular libs (run update_all.sh). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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/introspection_spec.dart
diff --git a/third_party/pkg/angular/test/introspection_spec.dart b/third_party/pkg/angular/test/introspection_spec.dart
index df8892b14599b060ae93c22e4f980e45e178966b..a4ea5811ea160dce5d447b7a88079dba96c118fe 100644
--- a/third_party/pkg/angular/test/introspection_spec.dart
+++ b/third_party/pkg/angular/test/introspection_spec.dart
@@ -1,37 +1,60 @@
library introspection_spec;
import '_specs.dart';
+import 'dart:js' as js;
+import 'package:angular/application_factory.dart';
+
+void main() {
+ describe('introspection', () {
+ it('should retrieve ElementProbe', (TestBed _) {
+ _.compile('<div ng-bind="true"></div>');
+ ElementProbe probe = ngProbe(_.rootElement);
+ expect(probe.injector.parent).toBe(_.injector);
+ expect(ngInjector(_.rootElement).parent).toBe(_.injector);
+ expect(probe.directives[0] is NgBind).toBe(true);
+ expect(ngDirectives(_.rootElement)[0] is NgBind).toBe(true);
+ expect(probe.scope).toBe(_.rootScope);
+ expect(ngScope(_.rootElement)).toBe(_.rootScope);
+ });
+
+ toHtml(List list) => list.map((e) => e.outerHtml).join('');
+
+ it('should select elements using CSS selector', () {
+ var div = new Element.html('<div><p><span></span></p></div>');
+ var span = div.querySelector('span');
+ var shadowRoot = span.createShadowRoot();
+ shadowRoot.innerHtml = '<ul><li>stash</li><li>secret</li><ul>';
+
+ expect(toHtml(ngQuery(div, 'li'))).toEqual('<li>stash</li><li>secret</li>');
+ expect(toHtml(ngQuery(div, 'li', 'stash'))).toEqual('<li>stash</li>');
+ expect(toHtml(ngQuery(div, 'li', 'secret'))).toEqual('<li>secret</li>');
+ expect(toHtml(ngQuery(div, 'li', 'xxx'))).toEqual('');
+ });
+
+ it('should select elements in the root shadow root', () {
+ var div = new Element.html('<div></div>');
+ var shadowRoot = div.createShadowRoot();
+ shadowRoot.innerHtml = '<ul><li>stash</li><li>secret</li><ul>';
+ expect(toHtml(ngQuery(div, 'li'))).toEqual('<li>stash</li><li>secret</li>');
+ });
+
+ // Does not work in dart2js. deboer is investigating.
+ it('should be available from Javascript', () {
+ // The probe only works if there is a directive.
+ var elt = e('<div ng-app id=ngtop ng-bind="\'introspection FTW\'"></div>');
+ // Make it possible to find the element from JS
+ document.body.append(elt);
+ (applicationFactory()..element = elt).run();
+
+ expect(js.context['ngProbe']).toBeDefined();
+ expect(js.context['ngScope']).toBeDefined();
+ expect(js.context['ngInjector']).toBeDefined();
+ expect(js.context['ngQuery']).toBeDefined();
-main() => describe('introspection', () {
- it('should retrieve ElementProbe', inject((TestBed _) {
- _.compile('<div ng-bind="true"></div>');
- ElementProbe probe = ngProbe(_.rootElement);
- expect(probe.injector.parent).toBe(_.injector);
- expect(ngInjector(_.rootElement).parent).toBe(_.injector);
- expect(probe.directives[0] is NgBindDirective).toBe(true);
- expect(ngDirectives(_.rootElement)[0] is NgBindDirective).toBe(true);
- expect(probe.scope).toBe(_.rootScope);
- expect(ngScope(_.rootElement)).toBe(_.rootScope);
- }));
-
- toHtml(List list) => list.map((e) => e.outerHtml).join('');
-
- it('should select elements using CSS selector', () {
- var div = new Element.html('<div><p><span></span></p></div>');
- var span = div.querySelector('span');
- var shadowRoot = span.createShadowRoot();
- shadowRoot.innerHtml = '<ul><li>stash</li><li>secret</li><ul>';
-
- expect(toHtml(ngQuery(div, 'li'))).toEqual('<li>stash</li><li>secret</li>');
- expect(toHtml(ngQuery(div, 'li', 'stash'))).toEqual('<li>stash</li>');
- expect(toHtml(ngQuery(div, 'li', 'secret'))).toEqual('<li>secret</li>');
- expect(toHtml(ngQuery(div, 'li', 'xxx'))).toEqual('');
- });
- it('should select elements in the root shadow root', () {
- var div = new Element.html('<div></div>');
- var shadowRoot = div.createShadowRoot();
- shadowRoot.innerHtml = '<ul><li>stash</li><li>secret</li><ul>';
- expect(toHtml(ngQuery(div, 'li'))).toEqual('<li>stash</li><li>secret</li>');
+ // Polymer does not support accessing named elements directly (e.g. window.ngtop)
+ // so we need to use getElementById to support Polymer's shadow DOM polyfill.
+ expect(js.context['ngProbe'].apply([document.getElementById('ngtop')])).toBeDefined();
+ });
});
-});
+}

Powered by Google App Engine
This is Rietveld 408576698