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

Side by Side Diff: runtime/observatory/tests/observatory_ui/vm_connect_target_test.dart

Issue 2119733003: Wrapping leaf nodes in non polymer elements (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4 import 'dart:html';
5 import 'dart:async';
6 import 'package:unittest/unittest.dart';
7 import 'package:observatory/service_html.dart';
8 import 'package:observatory/src/elements/vm_connect_target.dart';
9
10 main() {
11 WebSocketVMTarget t;
12 setUp(() {
13 VmConnectTargetElement.tag.ensureRegistration();
14 t = new WebSocketVMTarget("a network address");
15 });
16 group('instantiation', () {
17 test('no parameters', () {
18 final VmConnectTargetElement e = new VmConnectTargetElement();
19 expect(e, isNotNull, reason: 'element correctly created');
20 expect(e.target, isNull, reason: 'target not setted');
21 expect(e.isCurrent, isFalse, reason: 'default to not current');
22 });
23 test('isCurrent: false', () {
24 final VmConnectTargetElement e =
25 new VmConnectTargetElement(isCurrent:false);
26 expect(e, isNotNull, reason: 'element correctly created');
27 expect(e.target, isNull, reason: 'target not setted');
28 expect(e.isCurrent, isFalse, reason: 'is not current');
29 });
30 test('isCurrent: true', () {
31 final VmConnectTargetElement e =
32 new VmConnectTargetElement(isCurrent:true);
33 expect(e, isNotNull, reason: 'element correctly created');
34 expect(e.target, isNull, reason: 'target not setted');
35 expect(e.isCurrent, isTrue, reason: 'is current');
36 });
37 group('target: valid', () {
38 test('no other parameters', () {
39 final VmConnectTargetElement e = new VmConnectTargetElement(target: t);
40 expect(e, isNotNull, reason: 'element correctly created');
41 expect(e.target, t, reason: 'target not setted');
42 expect(e.isCurrent, isFalse, reason: 'default to not current');
43 });
44 test('isCurrent: false', () {
45 final VmConnectTargetElement e =
46 new VmConnectTargetElement(target: t, isCurrent:false);
47 expect(e, isNotNull, reason: 'element correctly created');
48 expect(e.target, t, reason: 'target not setted');
49 expect(e.isCurrent, isFalse, reason: 'default to not current');
50 });
51 test('isCurrent: true', () {
52 final VmConnectTargetElement e =
53 new VmConnectTargetElement(target: t, isCurrent:true);
54 expect(e, isNotNull, reason: 'element correctly created');
55 expect(e.target, t, reason: 'target not setted');
56 expect(e.isCurrent, isTrue, reason: 'default to not current');
57 });
58 });
59 });
60 test('elements not created after attachment if no target', () {
61 final VmConnectTargetElement e = new VmConnectTargetElement();
62 expect(e.shadowRoot, isNotNull, reason: 'shadowRoot is created');
63 expect(e.shadowRoot.children.length, isZero,
64 reason: 'shadowRoot is empty');
65 document.body.append(e);
66 expect(e.shadowRoot.children.length, isZero,
67 reason: 'shadowRoot is empty');
68 e.remove();
69 });
70 test('elements created after attachment', () {
71 final VmConnectTargetElement e = new VmConnectTargetElement(target: t);
72 expect(e.shadowRoot, isNotNull, reason: 'shadowRoot is created');
73 expect(e.shadowRoot.children.length, isZero,
74 reason: 'shadowRoot is empty');
75 document.body.append(e);
76 expect(e.shadowRoot.children.length, isNonZero,
77 reason: 'shadowRoot has elements');
78 e.remove();
79 });
80 group('events are fired', () {
81 VmConnectTargetElement e;
82 setUp(() {
83 e = new VmConnectTargetElement(target: t);
84 document.body.append(e);
85 });
86 tearDown(() {
87 e.remove();
88 });
89 test('onConnect events (DOM)', () async {
90 final Completer c = new Completer();
91 bool fired = false;
92 e.onConnect.listen((WebSocketVMTargetEvent event) {
93 expect(event, isNotNull, reason: 'event is passed');
94 expect(event.target, isNotNull, reason: 'event is not passed passed');
95 expect(event.target, t, reason: 'target is the same');
96 fired = true;
97 c.complete();
98 });
99 e.shadowRoot.querySelector('a').click();
100 await c.future;
101 expect(fired, isTrue, reason: 'event is fired');
102 });
103 test('onConnect events (code)', () async {
104 final Completer c = new Completer();
105 bool fired = false;
106 e.onConnect.listen((WebSocketVMTargetEvent event) {
107 expect(event, isNotNull, reason: 'event is passed');
108 expect(event.target, isNotNull, reason: 'event is not passed passed');
109 expect(event.target, t, reason: 'target is the same');
110 fired = true;
111 c.complete();
112 });
113 e.connect();
114 await c.future;
115 expect(fired, isTrue, reason: 'event is fired');
116 });
117 test('onRemove events (DOM)', () async {
118 final Completer c = new Completer();
119 bool fired = false;
120 e.onDelete.listen((WebSocketVMTargetEvent event) {
121 expect(event, isNotNull, reason: 'event is passed');
122 expect(event.target, isNotNull, reason: 'event is not passed passed');
123 expect(event.target, t, reason: 'target is the same');
124 fired = true;
125 c.complete();
126 });
127 e.shadowRoot.querySelector('button').click();
128 await c.future;
129 expect(fired, isTrue, reason: 'event is fired');
130 });
131 test('onRemove events (code)', () async {
132 final Completer c = new Completer();
133 bool fired = false;
134 e.onDelete.listen((WebSocketVMTargetEvent event) {
135 expect(event, isNotNull, reason: 'event is passed');
136 expect(event.target, isNotNull, reason: 'event is not passed passed');
137 expect(event.target, t, reason: 'target is the same');
138 fired = true;
139 c.complete();
140 });
141 e.delete();
142 await c.future;
143 expect(fired, isTrue, reason: 'event is fired');
144 });
145 });
146 test('navigation after connect', () async {
147 final VmConnectTargetElement e = new VmConnectTargetElement(target: t);
148 final Completer c = new Completer();
149 bool fired = false;
150 window.onPopState.listen((_) {
151 fired = true;
152 c.complete();
153 });
154 document.body.append(e);
155 e.shadowRoot.querySelector('a').click();
156 await c.future;
157 expect(fired, isTrue, reason: 'event is fired');
158 e.remove();
159 });
160 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698