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

Side by Side Diff: third_party/pkg/angular/test/routing/routing_spec.dart

Issue 256553002: Revert "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, 7 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 | Annotate | Revision Log
OLDNEW
1 library routing_spec; 1 library routing_spec;
2 2
3 import '../_specs.dart'; 3 import '../_specs.dart';
4 import 'package:angular/mock/module.dart'; 4 import 'package:angular/mock/module.dart';
5 import 'package:angular/application_factory.dart';
6 import 'dart:async'; 5 import 'dart:async';
7 6
8 main() { 7 main() {
9 describe('routing', () { 8 describe('routing', () {
10 TestBed _; 9 TestBed _;
11 Router router; 10 Router router;
12 11
13 beforeEachModule((Module m) { 12 beforeEach(module((Module m) {
14 _initRoutesCalls = 0; 13 _initRoutesCalls = 0;
15 _router = null; 14 _router = null;
16 router = new Router(useFragment: false, windowImpl: new MockWindow()); 15 router = new Router(useFragment: false, windowImpl: new MockWindow());
17 m 16 m
18 ..install(new AngularMockModule()) 17 ..install(new AngularMockModule())
19 ..factory(RouteInitializerFn, (_) => initRoutes) 18 ..factory(RouteInitializerFn, (_) => initRoutes)
20 ..value(Router, router); 19 ..value(Router, router);
21 }); 20 }));
22 21
23 beforeEach((TestBed tb) { 22 beforeEach(inject((TestBed tb) {
24 _ = tb; 23 _ = tb;
25 }); 24 }));
26 25
27 it('should call init of the RouteInitializer once', async(() { 26 it('should call init of the RouteInitializer once', async(() {
28 expect(_initRoutesCalls).toEqual(0); 27 expect(_initRoutesCalls).toEqual(0);
29 28
30 // Force the routing system to initialize. 29 // Force the routing system to initialize.
31 _.compile('<ng-view></ng-view>'); 30 _.compile('<ng-view></ng-view>');
32 31
33 expect(_initRoutesCalls).toEqual(1); 32 expect(_initRoutesCalls).toEqual(1);
34 expect(_router).toBe(router); 33 expect(_router).toBe(router);
35 })); 34 }));
35
36 }); 36 });
37 37
38 describe('routing DSL', () { 38 describe('routing DSL', () {
39 Router router; 39 Router router;
40 TestBed _; 40 TestBed _;
41 41
42 afterEach(() { 42 afterEach(() {
43 router = _ = null; 43 router = _ = null;
44 }); 44 });
45 45
46 initRouter(initializer) { 46 initRouter(initializer) {
47 var injector = applicationFactory() 47 var module = new Module()
48 .addModule(new AngularMockModule()) 48 ..value(RouteInitializerFn, initializer);
49 .addModule(new Module()..value(RouteInitializerFn, initializer)) 49 var injector = new DynamicInjector(
50 .createInjector(); 50 modules: [new AngularModule(), new AngularMockModule(), module]);
51 injector.get(NgRoutingHelper); // force routing initialization 51 injector.get(NgRoutingHelper); // force routing initialization
52 router = injector.get(Router); 52 router = injector.get(Router);
53 _ = injector.get(TestBed); 53 _ = injector.get(TestBed);
54 } 54 }
55 55
56 it('should configure route hierarchy from provided config', async(() { 56 it('should configure route hierarchy from provided config', async(() {
57 var counters = { 57 var counters = {
58 'foo': 0, 58 'foo': 0,
59 'bar': 0, 59 'bar': 0,
60 'baz': 0, 60 'baz': 0,
61 'aux': 0, 61 'aux': 0,
62 }; 62 };
63 initRouter((Router router, RouteViewFactory views) { 63 initRouter((Router router, ViewFactory views) {
64 views.configure({ 64 views.configure({
65 'foo': ngRoute( 65 'foo': ngRoute(
66 path: '/foo', 66 path: '/foo',
67 enter: (_) => counters['foo']++, 67 enter: (_) => counters['foo']++,
68 mount: { 68 mount: {
69 'bar': ngRoute( 69 'bar': ngRoute(
70 path: '/bar', 70 path: '/bar',
71 enter: (_) => counters['bar']++ 71 enter: (_) => counters['bar']++
72 ), 72 ),
73 'baz': ngRoute( 73 'baz': ngRoute(
74 path: '/baz', 74 path: '/baz',
75 enter: (_) => counters['baz']++ 75 enter: (_) => counters['baz']++
76 ) 76 )
77 } 77 }
78 ), 78 ),
79 'aux': ngRoute( 79 'aux': ngRoute(
80 path: '/aux', 80 path: '/aux',
81 enter: (_) => counters['aux']++ 81 enter: (_) => counters['aux']++
82 ) 82 )
83 }); 83 });
84 }); 84 });
85 85
86 expect(router.root.findRoute('foo').name).toEqual('foo'); 86 expect(router.root.getRoute('foo').name).toEqual('foo');
87 expect(router.root.findRoute('foo.bar').name).toEqual('bar'); 87 expect(router.root.getRoute('foo.bar').name).toEqual('bar');
88 expect(router.root.findRoute('foo.baz').name).toEqual('baz'); 88 expect(router.root.getRoute('foo.baz').name).toEqual('baz');
89 expect(router.root.findRoute('aux').name).toEqual('aux'); 89 expect(router.root.getRoute('aux').name).toEqual('aux');
90 90
91 router.route('/foo'); 91 router.route('/foo');
92 microLeap(); 92 microLeap();
93 expect(counters, equals({ 93 expect(counters, equals({
94 'foo': 1, 94 'foo': 1,
95 'bar': 0, 95 'bar': 0,
96 'baz': 0, 96 'baz': 0,
97 'aux': 0, 97 'aux': 0,
98 })); 98 }));
99 99
(...skipping 21 matching lines...) Expand all
121 'foo': 1, 121 'foo': 1,
122 'bar': 1, 122 'bar': 1,
123 'baz': 1, 123 'baz': 1,
124 'aux': 1, 124 'aux': 1,
125 })); 125 }));
126 })); 126 }));
127 127
128 128
129 it('should set the default route', async(() { 129 it('should set the default route', async(() {
130 int enterCount = 0; 130 int enterCount = 0;
131 initRouter((Router router, RouteViewFactory views) { 131 initRouter((Router router, ViewFactory views) {
132 views.configure({ 132 views.configure({
133 'foo': ngRoute(path: '/foo'), 133 'foo': ngRoute(path: '/foo'),
134 'bar': ngRoute(path: '/bar', defaultRoute: true), 134 'bar': ngRoute(path: '/bar', defaultRoute: true),
135 'baz': ngRoute(path: '/baz'), 135 'baz': ngRoute(path: '/baz'),
136 }); 136 });
137 }); 137 });
138 138
139 router.route('/invalidRoute'); 139 router.route('/invalidRoute');
140 microLeap(); 140 microLeap();
141 141
142 expect(router.activePath.length).toBe(1); 142 expect(router.activePath.length).toBe(1);
143 expect(router.activePath.first.name).toBe('bar'); 143 expect(router.activePath.first.name).toBe('bar');
144 })); 144 }));
145 145
146 146
147 it('should call enter callback and show the view when routed', async(() { 147 it('should call enter callback and show the view when routed', async(() {
148 int enterCount = 0; 148 int enterCount = 0;
149 initRouter((Router router, RouteViewFactory views) { 149 initRouter((Router router, ViewFactory views) {
150 views.configure({ 150 views.configure({
151 'foo': ngRoute( 151 'foo': ngRoute(
152 path: '/foo', 152 path: '/foo',
153 enter: (_) => enterCount++, 153 enter: (_) => enterCount++,
154 view: 'foo.html' 154 view: 'foo.html'
155 ), 155 ),
156 }); 156 });
157 }); 157 });
158 _.injector.get(TemplateCache) 158 _.injector.get(TemplateCache)
159 .put('foo.html', new HttpResponse(200, '<h1>Foo</h1>')); 159 .put('foo.html', new HttpResponse(200, '<h1>Foo</h1>'));
160 160
161 Element root = _.compile('<div><ng-view></ng-view><div>'); 161 Element root = _.compile('<ng-view></ng-view>');
162 expect(root.text).toEqual(''); 162 expect(root.text).toEqual('');
163 163
164 router.route('/foo'); 164 router.route('/foo');
165 microLeap(); 165 microLeap();
166 _.rootScope.apply(); 166
167 expect(enterCount).toBe(1); 167 expect(enterCount).toBe(1);
168 expect(root.text).toEqual('Foo'); 168 expect(root.text).toEqual('Foo');
169 })); 169 }));
170 170
171 171
172 it('should call preEnter callback and load modules', async(() { 172 it('should call preEnter callback and load modules', async(() {
173 int preEnterCount = 0; 173 int preEnterCount = 0;
174 int modulesCount = 0; 174 int modulesCount = 0;
175 initRouter((Router router, RouteViewFactory views) { 175 initRouter((Router router, ViewFactory views) {
176 views.configure({ 176 views.configure({
177 'foo': ngRoute( 177 'foo': ngRoute(
178 path: '/foo', 178 path: '/foo',
179 preEnter: (_) => preEnterCount++, 179 preEnter: (_) => preEnterCount++,
180 modules: () { 180 modules: () {
181 modulesCount++; 181 modulesCount++;
182 return new Future.value(); 182 return new Future.value();
183 } 183 }
184 ), 184 ),
185 'bar': ngRoute( 185 'bar': ngRoute(
(...skipping 23 matching lines...) Expand all
209 router.route('/foo'); 209 router.route('/foo');
210 microLeap(); 210 microLeap();
211 211
212 expect(preEnterCount).toBe(2); 212 expect(preEnterCount).toBe(2);
213 expect(modulesCount).toBe(1); 213 expect(modulesCount).toBe(1);
214 })); 214 }));
215 215
216 216
217 it('should clear view on leave an call leave callback', async(() { 217 it('should clear view on leave an call leave callback', async(() {
218 int leaveCount = 0; 218 int leaveCount = 0;
219 initRouter((Router router, RouteViewFactory views) { 219 initRouter((Router router, ViewFactory views) {
220 views.configure({ 220 views.configure({
221 'foo': ngRoute( 221 'foo': ngRoute(
222 path: '/foo', 222 path: '/foo',
223 leave: (_) => leaveCount++, 223 leave: (_) => leaveCount++,
224 view: 'foo.html' 224 view: 'foo.html'
225 ), 225 ),
226 'bar': ngRoute( 226 'bar': ngRoute(
227 path: '/bar' 227 path: '/bar'
228 ), 228 ),
229 }); 229 });
230 }); 230 });
231 _.injector.get(TemplateCache) 231 _.injector.get(TemplateCache)
232 .put('foo.html', new HttpResponse(200, '<h1>Foo</h1>')); 232 .put('foo.html', new HttpResponse(200, '<h1>Foo</h1>'));
233 233
234 Element root = _.compile('<div><ng-view></ng-view><div>'); 234 Element root = _.compile('<ng-view></ng-view>');
235 expect(root.text).toEqual(''); 235 expect(root.text).toEqual('');
236 236
237 router.route('/foo'); 237 router.route('/foo');
238 microLeap(); 238 microLeap();
239 _.rootScope.apply(); 239
240 expect(root.text).toEqual('Foo'); 240 expect(root.text).toEqual('Foo');
241 expect(leaveCount).toBe(0); 241 expect(leaveCount).toBe(0);
242 242
243 router.route('/bar'); 243 router.route('/bar');
244 microLeap(); 244 microLeap();
245 _.rootScope.apply(); 245
246 expect(root.text).toEqual(''); 246 expect(root.text).toEqual('');
247 expect(leaveCount).toBe(1); 247 expect(leaveCount).toBe(1);
248 })); 248 }));
249 249
250 250
251 it('should synchronously load new directives from modules ', async(() { 251 it('should synchronously load new directives from modules ', async(() {
252 initRouter((Router router, RouteViewFactory views) { 252 initRouter((Router router, ViewFactory views) {
253 views.configure({ 253 views.configure({
254 'foo': ngRoute( 254 'foo': ngRoute(
255 path: '/foo', 255 path: '/foo',
256 modules: () => [ 256 modules: () => [
257 new Module()..type(NewDirective) 257 new Module()..type(NewDirective)
258 ], 258 ],
259 view: 'foo.html' 259 view: 'foo.html'
260 ), 260 ),
261 }); 261 });
262 }); 262 });
263 _.injector.get(TemplateCache) 263 _.injector.get(TemplateCache)
264 .put('foo.html', new HttpResponse(200, '<div make-it-new>Old!</div>')) ; 264 .put('foo.html', new HttpResponse(200, '<div make-it-new>Old!</div>')) ;
265 265
266 Element root = _.compile('<div><ng-view></ng-view><div>'); 266 Element root = _.compile('<ng-view></ng-view>');
267 expect(root.text).toEqual(''); 267 expect(root.text).toEqual('');
268 268
269 router.route('/foo'); 269 router.route('/foo');
270 microLeap(); 270 microLeap();
271 _.rootScope.apply(); 271
272 expect(root.text).toEqual('New!'); 272 expect(root.text).toEqual('New!');
273 })); 273 }));
274 274
275 275
276 it('should asynchronously load new directives from modules ', async(() { 276 it('should asynchronously load new directives from modules ', async(() {
277 initRouter((Router router, RouteViewFactory views) { 277 initRouter((Router router, ViewFactory views) {
278 views.configure({ 278 views.configure({
279 'foo': ngRoute( 279 'foo': ngRoute(
280 path: '/foo', 280 path: '/foo',
281 modules: () => new Future.value([ 281 modules: () => new Future.value([
282 new Module()..type(NewDirective) 282 new Module()..type(NewDirective)
283 ]), 283 ]),
284 view: 'foo.html' 284 view: 'foo.html'
285 ), 285 ),
286 }); 286 });
287 }); 287 });
288 _.injector.get(TemplateCache) 288 _.injector.get(TemplateCache)
289 .put('foo.html', new HttpResponse(200, '<div make-it-new>Old!</div>')) ; 289 .put('foo.html', new HttpResponse(200, '<div make-it-new>Old!</div>')) ;
290 290
291 Element root = _.compile('<div><ng-view></ng-view><div>'); 291 Element root = _.compile('<ng-view></ng-view>');
292 expect(root.text).toEqual(''); 292 expect(root.text).toEqual('');
293 293
294 router.route('/foo'); 294 router.route('/foo');
295 microLeap(); 295 microLeap();
296 _.rootScope.apply(); 296
297 expect(root.text).toEqual('New!'); 297 expect(root.text).toEqual('New!');
298 })); 298 }));
299 299
300 300
301 it('should synchronously load new formatters from modules ', async(() { 301 it('should synchronously load new filters from modules ', async(() {
302 initRouter((Router router, RouteViewFactory views) { 302 initRouter((Router router, ViewFactory views) {
303 views.configure({ 303 views.configure({
304 'foo': ngRoute( 304 'foo': ngRoute(
305 path: '/foo', 305 path: '/foo',
306 modules: () => [ 306 modules: () => [
307 new Module()..type(HelloFilter) 307 new Module()..type(HelloFilter)
308 ], 308 ],
309 view: 'foo.html' 309 view: 'foo.html'
310 ), 310 ),
311 }); 311 });
312 }); 312 });
313 _.injector.get(TemplateCache) 313 _.injector.get(TemplateCache)
314 .put('foo.html', new HttpResponse(200, '<div>{{\'World\' | hello}}</di v>')); 314 .put('foo.html', new HttpResponse(200, '<div>{{\'World\' | hello}}</di v>'));
315 315
316 Element root = _.compile('<div><ng-view></ng-view></div>'); 316 Element root = _.compile('<ng-view></ng-view>');
317 expect(root.text).toEqual(''); 317 expect(root.text).toEqual('');
318 318
319 router.route('/foo'); 319 router.route('/foo');
320 microLeap(); 320 microLeap();
321 _.rootScope.apply(); 321 _.rootScope.apply();
322
322 expect(root.text).toEqual('Hello, World!'); 323 expect(root.text).toEqual('Hello, World!');
323 })); 324 }));
324 325
325 326
326 it('should asynchronously load new formatters from modules ', async(() { 327 it('should asynchronously load new filters from modules ', async(() {
327 initRouter((Router router, RouteViewFactory views) { 328 initRouter((Router router, ViewFactory views) {
328 views.configure({ 329 views.configure({
329 'foo': ngRoute( 330 'foo': ngRoute(
330 path: '/foo', 331 path: '/foo',
331 modules: () => new Future.value([ 332 modules: () => new Future.value([
332 new Module()..type(HelloFilter) 333 new Module()..type(HelloFilter)
333 ]), 334 ]),
334 view: 'foo.html' 335 view: 'foo.html'
335 ), 336 ),
336 }); 337 });
337 }); 338 });
338 _.injector.get(TemplateCache) 339 _.injector.get(TemplateCache)
339 .put('foo.html', new HttpResponse(200, '<div>{{\'World\' | hello}}</di v>')); 340 .put('foo.html', new HttpResponse(200, '<div>{{\'World\' | hello}}</di v>'));
340 341
341 Element root = _.compile('<div><ng-view></ng-view></div>'); 342 Element root = _.compile('<ng-view></ng-view>');
342 expect(root.text).toEqual(''); 343 expect(root.text).toEqual('');
343 344
344 router.route('/foo'); 345 router.route('/foo');
345 microLeap(); 346 microLeap();
346 _.rootScope.apply(); 347 _.rootScope.apply();
348
347 expect(root.text).toEqual('Hello, World!'); 349 expect(root.text).toEqual('Hello, World!');
348 })); 350 }));
349 351
350 }); 352 });
351 } 353 }
352 354
353 var _router; 355 var _router;
354 var _initRoutesCalls = 0; 356 var _initRoutesCalls = 0;
355 357
356 void initRoutes(Router router, RouteViewFactory view) { 358 void initRoutes(Router router, ViewFactory view) {
357 _initRoutesCalls++; 359 _initRoutesCalls++;
358 _router = router; 360 _router = router;
359 } 361 }
360 362
361 @Decorator(selector: '[make-it-new]') 363 @NgDirective(selector: '[make-it-new]')
362 class NewDirective { 364 class NewDirective {
363 NewDirective(Element element) { 365 NewDirective(Element element) {
364 element.innerHtml = 'New!'; 366 element.innerHtml = 'New!';
365 } 367 }
366 } 368 }
367 369
368 @Formatter(name:'hello') 370 @NgFilter(name:'hello')
369 class HelloFilter { 371 class HelloFilter {
370 String call(String str) { 372 call(String str) {
371 return 'Hello, $str!'; 373 return 'Hello, $str!';
372 } 374 }
373 } 375 }
374 376
OLDNEW
« no previous file with comments | « third_party/pkg/angular/test/routing/ng_view_spec.dart ('k') | third_party/pkg/angular/test/tools/html_extractor_spec.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698