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

Side by Side Diff: pkg/polymer/test/build/import_inliner_test.dart

Issue 575503002: When inlining imports from head, put them inside a hidden div (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: move/clarify comment Created 6 years, 3 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
« no previous file with comments | « pkg/polymer/test/build/all_phases_test.dart ('k') | pkg/polymer/test/build/linter_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library polymer.test.build.import_inliner_test; 5 library polymer.test.build.import_inliner_test;
6 6
7 import 'dart:convert'; 7 import 'dart:convert';
8 import 'package:polymer/src/build/common.dart'; 8 import 'package:polymer/src/build/common.dart';
9 import 'package:polymer/src/build/import_inliner.dart'; 9 import 'package:polymer/src/build/import_inliner.dart';
10 import 'package:unittest/compact_vm_config.dart'; 10 import 'package:unittest/compact_vm_config.dart';
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 '<!DOCTYPE html><html><head>' 77 '<!DOCTYPE html><html><head>'
78 '<link rel="import" href="test2.html">' 78 '<link rel="import" href="test2.html">'
79 '</head></html>', 79 '</head></html>',
80 'a|web/test2.html': 80 'a|web/test2.html':
81 '<!DOCTYPE html><html><head>' 81 '<!DOCTYPE html><html><head>'
82 '</head><body><polymer-element>2</polymer-element></html>', 82 '</head><body><polymer-element>2</polymer-element></html>',
83 }, { 83 }, {
84 'a|web/test.html': 84 'a|web/test.html':
85 '<!DOCTYPE html><html><head>' 85 '<!DOCTYPE html><html><head>'
86 '</head><body>' 86 '</head><body>'
87 '<div hidden="">'
87 '<polymer-element>2</polymer-element>' 88 '<polymer-element>2</polymer-element>'
89 '</div>'
88 '</body></html>', 90 '</body></html>',
89 'a|web/test.html._data': EMPTY_DATA, 91 'a|web/test.html._data': EMPTY_DATA,
90 'a|web/test2.html': 92 'a|web/test2.html':
91 '<!DOCTYPE html><html><head>' 93 '<!DOCTYPE html><html><head>'
92 '</head><body><polymer-element>2</polymer-element></html>', 94 '</head><body><polymer-element>2</polymer-element></html>',
93 'a|web/test2.html._data': EMPTY_DATA, 95 'a|web/test2.html._data': EMPTY_DATA,
94 }); 96 });
95 97
96 testPhases('preserves order of scripts', phases, 98 testPhases('preserves order of scripts', phases,
97 { 99 {
98 'a|web/test.html': 100 'a|web/test.html':
99 '<!DOCTYPE html><html><head>' 101 '<!DOCTYPE html><html><head>'
100 '<script type="text/javascript">/*first*/</script>' 102 '<script type="text/javascript">/*first*/</script>'
101 '<script src="second.js"></script>' 103 '<script src="second.js"></script>'
102 '<link rel="import" href="test2.html">' 104 '<link rel="import" href="test2.html">'
103 '<script>/*forth*/</script>' 105 '<script>/*forth*/</script>'
104 '</head></html>', 106 '</head></html>',
105 'a|web/test2.html': 107 'a|web/test2.html':
106 '<!DOCTYPE html><html><head><script>/*third*/</script>' 108 '<!DOCTYPE html><html><head><script>/*third*/</script>'
107 '</head><body><polymer-element>2</polymer-element></html>', 109 '</head><body><polymer-element>2</polymer-element></html>',
108 'a|web/second.js': '/*second*/' 110 'a|web/second.js': '/*second*/'
109 }, { 111 }, {
110 'a|web/test.html': 112 'a|web/test.html':
111 '<!DOCTYPE html><html><head>' 113 '<!DOCTYPE html><html><head>'
112 '</head><body>' 114 '</head><body>'
115 '<div hidden="">'
113 '<script type="text/javascript">/*first*/</script>' 116 '<script type="text/javascript">/*first*/</script>'
114 '<script src="second.js"></script>' 117 '<script src="second.js"></script>'
115 '<script>/*third*/</script>' 118 '<script>/*third*/</script>'
116 '<polymer-element>2</polymer-element>' 119 '<polymer-element>2</polymer-element>'
117 '<script>/*forth*/</script>' 120 '<script>/*forth*/</script>'
121 '</div>'
118 '</body></html>', 122 '</body></html>',
119 'a|web/test.html._data': EMPTY_DATA, 123 'a|web/test.html._data': EMPTY_DATA,
120 'a|web/test2.html': 124 'a|web/test2.html':
121 '<!DOCTYPE html><html><head><script>/*third*/</script>' 125 '<!DOCTYPE html><html><head><script>/*third*/</script>'
122 '</head><body><polymer-element>2</polymer-element></html>', 126 '</head><body><polymer-element>2</polymer-element></html>',
123 'a|web/test2.html._data': EMPTY_DATA, 127 'a|web/test2.html._data': EMPTY_DATA,
124 'a|web/second.js': '/*second*/' 128 'a|web/second.js': '/*second*/'
125 }); 129 });
126 130
127 testPhases('preserves order of scripts, extract Dart scripts', phases, 131 testPhases('preserves order of scripts, extract Dart scripts', phases,
128 { 132 {
129 'a|web/test.html': 133 'a|web/test.html':
130 '<!DOCTYPE html><html><head>' 134 '<!DOCTYPE html><html><head>'
131 '<script type="text/javascript">/*first*/</script>' 135 '<script type="text/javascript">/*first*/</script>'
132 '<script src="second.js"></script>' 136 '<script src="second.js"></script>'
133 '<link rel="import" href="test2.html">' 137 '<link rel="import" href="test2.html">'
134 '<script type="application/dart">/*fifth*/</script>' 138 '<script type="application/dart">/*fifth*/</script>'
135 '</head></html>', 139 '</head></html>',
136 'a|web/test2.html': 140 'a|web/test2.html':
137 '<!DOCTYPE html><html><head><script>/*third*/</script>' 141 '<!DOCTYPE html><html><head><script>/*third*/</script>'
138 '<script type="application/dart">/*forth*/</script>' 142 '<script type="application/dart">/*forth*/</script>'
139 '</head><body><polymer-element>2</polymer-element></html>', 143 '</head><body><polymer-element>2</polymer-element></html>',
140 'a|web/second.js': '/*second*/' 144 'a|web/second.js': '/*second*/'
141 }, { 145 }, {
142 'a|web/test.html': 146 'a|web/test.html':
143 '<!DOCTYPE html><html><head>' 147 '<!DOCTYPE html><html><head>'
144 '</head><body>' 148 '</head><body>'
149 '<div hidden="">'
145 '<script type="text/javascript">/*first*/</script>' 150 '<script type="text/javascript">/*first*/</script>'
146 '<script src="second.js"></script>' 151 '<script src="second.js"></script>'
147 '<script>/*third*/</script>' 152 '<script>/*third*/</script>'
148 '<polymer-element>2</polymer-element>' 153 '<polymer-element>2</polymer-element>'
154 '</div>'
149 '</body></html>', 155 '</body></html>',
150 'a|web/test.html._data': expectedData([ 156 'a|web/test.html._data': expectedData([
151 'web/test.html.1.dart','web/test.html.0.dart']), 157 'web/test.html.1.dart','web/test.html.0.dart']),
152 'a|web/test.html.1.dart': 'library a.web.test2_html_0;\n/*forth*/', 158 'a|web/test.html.1.dart': 'library a.web.test2_html_0;\n/*forth*/',
153 'a|web/test.html.0.dart': 'library a.web.test_html_0;\n/*fifth*/', 159 'a|web/test.html.0.dart': 'library a.web.test_html_0;\n/*fifth*/',
154 'a|web/test2.html': 160 'a|web/test2.html':
155 '<!DOCTYPE html><html><head></head><body><script>/*third*/</script>' 161 '<!DOCTYPE html><html><head></head><body>'
156 '<polymer-element>2</polymer-element></body></html>', 162 '<div hidden="">'
163 '<script>/*third*/</script>'
164 '</div>'
165 '<polymer-element>2</polymer-element>'
166 '</body></html>',
157 'a|web/test2.html._data': expectedData(['web/test2.html.0.dart']), 167 'a|web/test2.html._data': expectedData(['web/test2.html.0.dart']),
158 'a|web/test2.html.0.dart': 'library a.web.test2_html_0;\n/*forth*/', 168 'a|web/test2.html.0.dart': 'library a.web.test2_html_0;\n/*forth*/',
159 'a|web/second.js': '/*second*/' 169 'a|web/second.js': '/*second*/'
160 }); 170 });
161 171
162 final cspPhases = [[new ImportInliner( 172 final cspPhases = [[new ImportInliner(
163 new TransformOptions(contentSecurityPolicy: true))]]; 173 new TransformOptions(contentSecurityPolicy: true))]];
164 testPhases('extract Js scripts in CSP mode', cspPhases, 174 testPhases('extract Js scripts in CSP mode', cspPhases,
165 { 175 {
166 'a|web/test.html': 176 'a|web/test.html':
167 '<!DOCTYPE html><html><head>' 177 '<!DOCTYPE html><html><head>'
168 '<script type="text/javascript">/*first*/</script>' 178 '<script type="text/javascript">/*first*/</script>'
169 '<script src="second.js"></script>' 179 '<script src="second.js"></script>'
170 '<link rel="import" href="test2.html">' 180 '<link rel="import" href="test2.html">'
171 '<script type="application/dart">/*fifth*/</script>' 181 '<script type="application/dart">/*fifth*/</script>'
172 '</head></html>', 182 '</head></html>',
173 'a|web/test2.html': 183 'a|web/test2.html':
174 '<!DOCTYPE html><html><head><script>/*third*/</script>' 184 '<!DOCTYPE html><html><head><script>/*third*/</script>'
175 '<script type="application/dart">/*forth*/</script>' 185 '<script type="application/dart">/*forth*/</script>'
176 '</head><body><polymer-element>2</polymer-element></html>', 186 '</head><body><polymer-element>2</polymer-element></html>',
177 'a|web/second.js': '/*second*/' 187 'a|web/second.js': '/*second*/'
178 }, { 188 }, {
179 'a|web/test.html': 189 'a|web/test.html':
180 '<!DOCTYPE html><html><head>' 190 '<!DOCTYPE html><html><head>'
181 '</head><body>' 191 '</head><body>'
192 '<div hidden="">'
182 '<script type="text/javascript" src="test.html.0.js"></script>' 193 '<script type="text/javascript" src="test.html.0.js"></script>'
183 '<script src="second.js"></script>' 194 '<script src="second.js"></script>'
184 '<script src="test.html.2.js"></script>' 195 '<script src="test.html.2.js"></script>'
185 '<polymer-element>2</polymer-element>' 196 '<polymer-element>2</polymer-element>'
197 '</div>'
186 '</body></html>', 198 '</body></html>',
187 'a|web/test.html._data': expectedData([ 199 'a|web/test.html._data': expectedData([
188 'web/test.html.3.dart','web/test.html.1.dart']), 200 'web/test.html.3.dart','web/test.html.1.dart']),
189 'a|web/test.html.3.dart': 'library a.web.test2_html_0;\n/*forth*/', 201 'a|web/test.html.3.dart': 'library a.web.test2_html_0;\n/*forth*/',
190 'a|web/test.html.1.dart': 'library a.web.test_html_0;\n/*fifth*/', 202 'a|web/test.html.1.dart': 'library a.web.test_html_0;\n/*fifth*/',
191 'a|web/test.html.0.js': '/*first*/', 203 'a|web/test.html.0.js': '/*first*/',
192 'a|web/test.html.2.js': '/*third*/', 204 'a|web/test.html.2.js': '/*third*/',
193 'a|web/test2.html': 205 'a|web/test2.html':
194 '<!DOCTYPE html><html><head></head><body>' 206 '<!DOCTYPE html><html><head></head><body>'
207 '<div hidden="">'
195 '<script src="test2.html.0.js"></script>' 208 '<script src="test2.html.0.js"></script>'
209 '</div>'
196 '<polymer-element>2</polymer-element></body></html>', 210 '<polymer-element>2</polymer-element></body></html>',
197 'a|web/test2.html._data': expectedData(['web/test2.html.1.dart']), 211 'a|web/test2.html._data': expectedData(['web/test2.html.1.dart']),
198 'a|web/test2.html.0.js': '/*third*/', 212 'a|web/test2.html.0.js': '/*third*/',
199 'a|web/test2.html.1.dart': 'library a.web.test2_html_0;\n/*forth*/', 213 'a|web/test2.html.1.dart': 'library a.web.test2_html_0;\n/*forth*/',
200 'a|web/second.js': '/*second*/' 214 'a|web/second.js': '/*second*/'
201 }); 215 });
202 216
203 testPhases('Cleans library names generated from file paths.', phases, 217 testPhases('Cleans library names generated from file paths.', phases,
204 { 218 {
205 'a|web/01_test.html': 219 'a|web/01_test.html':
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 'a|web/test2.html': 278 'a|web/test2.html':
265 '<!DOCTYPE html><html><head>' 279 '<!DOCTYPE html><html><head>'
266 '</head><body><polymer-element>2</polymer-element></html>', 280 '</head><body><polymer-element>2</polymer-element></html>',
267 'a|web/test3.html': 281 'a|web/test3.html':
268 '<!DOCTYPE html><html><head>' 282 '<!DOCTYPE html><html><head>'
269 '</head><body><polymer-element>3</polymer-element></html>', 283 '</head><body><polymer-element>3</polymer-element></html>',
270 }, { 284 }, {
271 'a|web/test.html': 285 'a|web/test.html':
272 '<!DOCTYPE html><html><head>' 286 '<!DOCTYPE html><html><head>'
273 '</head><body>' 287 '</head><body>'
288 '<div hidden="">'
274 '<polymer-element>2</polymer-element>' 289 '<polymer-element>2</polymer-element>'
275 '<polymer-element>3</polymer-element>' 290 '<polymer-element>3</polymer-element>'
291 '</div>'
276 '</body></html>', 292 '</body></html>',
277 'a|web/test2.html': 293 'a|web/test2.html':
278 '<!DOCTYPE html><html><head>' 294 '<!DOCTYPE html><html><head>'
279 '</head><body><polymer-element>2</polymer-element></html>', 295 '</head><body><polymer-element>2</polymer-element></html>',
280 'a|web/test3.html': 296 'a|web/test3.html':
281 '<!DOCTYPE html><html><head>' 297 '<!DOCTYPE html><html><head>'
282 '</head><body><polymer-element>3</polymer-element></html>', 298 '</head><body><polymer-element>3</polymer-element></html>',
283 }); 299 });
284 300
285 testPhases('deep, elements, one per file', phases, { 301 testPhases('deep, elements, one per file', phases, {
286 'a|web/test.html': 302 'a|web/test.html':
287 '<!DOCTYPE html><html><head>' 303 '<!DOCTYPE html><html><head>'
288 '<link rel="import" href="test2.html">' 304 '<link rel="import" href="test2.html">'
289 '</head></html>', 305 '</head></html>',
290 'a|web/test2.html': 306 'a|web/test2.html':
291 '<!DOCTYPE html><html><head>' 307 '<!DOCTYPE html><html><head>'
292 '<link rel="import" href="assets/b/test3.html">' 308 '<link rel="import" href="assets/b/test3.html">'
293 '</head><body><polymer-element>2</polymer-element></html>', 309 '</head><body><polymer-element>2</polymer-element></html>',
294 'b|asset/test3.html': 310 'b|asset/test3.html':
295 '<!DOCTYPE html><html><head>' 311 '<!DOCTYPE html><html><head>'
296 '<link rel="import" href="../../packages/c/test4.html">' 312 '<link rel="import" href="../../packages/c/test4.html">'
297 '</head><body><polymer-element>3</polymer-element></html>', 313 '</head><body><polymer-element>3</polymer-element></html>',
298 'c|lib/test4.html': 314 'c|lib/test4.html':
299 '<!DOCTYPE html><html><head>' 315 '<!DOCTYPE html><html><head>'
300 '</head><body><polymer-element>4</polymer-element></html>', 316 '</head><body><polymer-element>4</polymer-element></html>',
301 }, { 317 }, {
302 'a|web/test.html': 318 'a|web/test.html':
303 '<!DOCTYPE html><html><head>' 319 '<!DOCTYPE html><html><head>'
304 '</head><body>' 320 '</head><body>'
321 '<div hidden="">'
305 '<polymer-element>4</polymer-element>' 322 '<polymer-element>4</polymer-element>'
306 '<polymer-element>3</polymer-element>' 323 '<polymer-element>3</polymer-element>'
307 '<polymer-element>2</polymer-element></body></html>', 324 '<polymer-element>2</polymer-element>'
325 '</div>'
326 '</body></html>',
308 'a|web/test2.html': 327 'a|web/test2.html':
309 '<!DOCTYPE html><html><head>' 328 '<!DOCTYPE html><html><head>'
310 '</head><body>' 329 '</head><body>'
330 '<div hidden="">'
311 '<polymer-element>4</polymer-element>' 331 '<polymer-element>4</polymer-element>'
312 '<polymer-element>3</polymer-element>' 332 '<polymer-element>3</polymer-element>'
313 '<polymer-element>2</polymer-element></body></html>', 333 '</div>'
334 '<polymer-element>2</polymer-element>'
335 '</body></html>',
314 'b|asset/test3.html': 336 'b|asset/test3.html':
315 '<!DOCTYPE html><html><head>' 337 '<!DOCTYPE html><html><head>'
316 '<link rel="import" href="../../packages/c/test4.html">' 338 '<link rel="import" href="../../packages/c/test4.html">'
317 '</head><body><polymer-element>3</polymer-element></html>', 339 '</head><body><polymer-element>3</polymer-element></html>',
318 'c|lib/test4.html': 340 'c|lib/test4.html':
319 '<!DOCTYPE html><html><head>' 341 '<!DOCTYPE html><html><head>'
320 '</head><body><polymer-element>4</polymer-element></html>', 342 '</head><body><polymer-element>4</polymer-element></html>',
321 }); 343 });
322 344
323 testPhases('deep, elements, many imports', phases, { 345 testPhases('deep, elements, many imports', phases, {
(...skipping 21 matching lines...) Expand all
345 'a|web/test4a.html': 367 'a|web/test4a.html':
346 '<!DOCTYPE html><html><head>' 368 '<!DOCTYPE html><html><head>'
347 '</head><body><polymer-element>4a</polymer-element></body></html>', 369 '</head><body><polymer-element>4a</polymer-element></body></html>',
348 'a|web/test4b.html': 370 'a|web/test4b.html':
349 '<!DOCTYPE html><html><head>' 371 '<!DOCTYPE html><html><head>'
350 '</head><body><polymer-element>4b</polymer-element></body></html>', 372 '</head><body><polymer-element>4b</polymer-element></body></html>',
351 }, { 373 }, {
352 'a|web/test.html': 374 'a|web/test.html':
353 '<!DOCTYPE html><html><head>' 375 '<!DOCTYPE html><html><head>'
354 '</head><body>' 376 '</head><body>'
377 '<div hidden="">'
355 '<polymer-element>3a</polymer-element>' 378 '<polymer-element>3a</polymer-element>'
356 '<polymer-element>3b</polymer-element>' 379 '<polymer-element>3b</polymer-element>'
357 '<polymer-element>2a</polymer-element>' 380 '<polymer-element>2a</polymer-element>'
358 '<polymer-element>4a</polymer-element>' 381 '<polymer-element>4a</polymer-element>'
359 '<polymer-element>4b</polymer-element>' 382 '<polymer-element>4b</polymer-element>'
360 '<polymer-element>2b</polymer-element>' 383 '<polymer-element>2b</polymer-element>'
384 '</div>'
361 '</body></html>', 385 '</body></html>',
362 'a|web/test2a.html': 386 'a|web/test2a.html':
363 '<!DOCTYPE html><html><head>' 387 '<!DOCTYPE html><html><head>'
364 '</head><body>' 388 '</head><body>'
389 '<div hidden="">'
365 '<polymer-element>3a</polymer-element>' 390 '<polymer-element>3a</polymer-element>'
366 '<polymer-element>3b</polymer-element>' 391 '<polymer-element>3b</polymer-element>'
392 '</div>'
367 '<polymer-element>2a</polymer-element>' 393 '<polymer-element>2a</polymer-element>'
368 '</body></html>', 394 '</body></html>',
369 'a|web/test2b.html': 395 'a|web/test2b.html':
370 '<!DOCTYPE html><html><head>' 396 '<!DOCTYPE html><html><head>'
371 '</head><body>' 397 '</head><body>'
398 '<div hidden="">'
372 '<polymer-element>4a</polymer-element>' 399 '<polymer-element>4a</polymer-element>'
373 '<polymer-element>4b</polymer-element>' 400 '<polymer-element>4b</polymer-element>'
401 '</div>'
374 '<polymer-element>2b</polymer-element>' 402 '<polymer-element>2b</polymer-element>'
375 '</body></html>', 403 '</body></html>',
376 'a|web/test3a.html': 404 'a|web/test3a.html':
377 '<!DOCTYPE html><html><head>' 405 '<!DOCTYPE html><html><head>'
378 '</head><body>' 406 '</head><body>'
379 '<polymer-element>3a</polymer-element>' 407 '<polymer-element>3a</polymer-element>'
380 '</body></html>', 408 '</body></html>',
381 'a|web/test3b.html': 409 'a|web/test3b.html':
382 '<!DOCTYPE html><html><head>' 410 '<!DOCTYPE html><html><head>'
383 '</head><body>' 411 '</head><body>'
(...skipping 21 matching lines...) Expand all
405 '<link rel="import" href="test_2.html">' 433 '<link rel="import" href="test_2.html">'
406 '</head><body><polymer-element>1</polymer-element></html>', 434 '</head><body><polymer-element>1</polymer-element></html>',
407 'a|web/test_2.html': 435 'a|web/test_2.html':
408 '<!DOCTYPE html><html><head>' 436 '<!DOCTYPE html><html><head>'
409 '<link rel="import" href="test_1.html">' 437 '<link rel="import" href="test_1.html">'
410 '</head><body><polymer-element>2</polymer-element></html>', 438 '</head><body><polymer-element>2</polymer-element></html>',
411 }, { 439 }, {
412 'a|web/test.html': 440 'a|web/test.html':
413 '<!DOCTYPE html><html><head>' 441 '<!DOCTYPE html><html><head>'
414 '</head><body>' 442 '</head><body>'
443 '<div hidden="">'
415 '<polymer-element>2</polymer-element>' 444 '<polymer-element>2</polymer-element>'
416 '<polymer-element>1</polymer-element></body></html>', 445 '<polymer-element>1</polymer-element>'
446 '</div>'
447 '</body></html>',
417 'a|web/test_1.html': 448 'a|web/test_1.html':
418 '<!DOCTYPE html><html><head>' 449 '<!DOCTYPE html><html><head>'
419 '</head><body>' 450 '</head><body>'
451 '<div hidden="">'
420 '<polymer-element>2</polymer-element>' 452 '<polymer-element>2</polymer-element>'
453 '</div>'
421 '<polymer-element>1</polymer-element></body></html>', 454 '<polymer-element>1</polymer-element></body></html>',
422 'a|web/test_2.html': 455 'a|web/test_2.html':
423 '<!DOCTYPE html><html><head>' 456 '<!DOCTYPE html><html><head>'
424 '</head><body>' 457 '</head><body>'
458 '<div hidden="">'
425 '<polymer-element>1</polymer-element>' 459 '<polymer-element>1</polymer-element>'
460 '</div>'
426 '<polymer-element>2</polymer-element></body></html>', 461 '<polymer-element>2</polymer-element></body></html>',
427 }); 462 });
428 463
429 testPhases('imports cycle, 1-step lasso, scripts too', phases, { 464 testPhases('imports cycle, 1-step lasso, scripts too', phases, {
430 'a|web/test.html': 465 'a|web/test.html':
431 '<!DOCTYPE html><html><head>' 466 '<!DOCTYPE html><html><head>'
432 '<link rel="import" href="test_1.html">' 467 '<link rel="import" href="test_1.html">'
433 '</head></html>', 468 '</head></html>',
434 'a|web/test_1.html': 469 'a|web/test_1.html':
435 '<!DOCTYPE html><html><head>' 470 '<!DOCTYPE html><html><head>'
436 '<link rel="import" href="test_2.html">' 471 '<link rel="import" href="test_2.html">'
437 '</head><body><polymer-element>1</polymer-element>' 472 '</head><body><polymer-element>1</polymer-element>'
438 '<script src="s1"></script></html>', 473 '<script src="s1"></script></html>',
439 'a|web/test_2.html': 474 'a|web/test_2.html':
440 '<!DOCTYPE html><html><head>' 475 '<!DOCTYPE html><html><head>'
441 '<link rel="import" href="test_1.html">' 476 '<link rel="import" href="test_1.html">'
442 '</head><body><polymer-element>2</polymer-element>' 477 '</head><body><polymer-element>2</polymer-element>'
443 '<script src="s2"></script></html>', 478 '<script src="s2"></script></html>',
444 }, { 479 }, {
445 'a|web/test.html': 480 'a|web/test.html':
446 '<!DOCTYPE html><html><head>' 481 '<!DOCTYPE html><html><head>'
447 '</head><body>' 482 '</head><body>'
483 '<div hidden="">'
448 '<polymer-element>2</polymer-element>' 484 '<polymer-element>2</polymer-element>'
449 '<script src="s2"></script>' 485 '<script src="s2"></script>'
450 '<polymer-element>1</polymer-element>' 486 '<polymer-element>1</polymer-element>'
451 '<script src="s1"></script></body></html>', 487 '<script src="s1"></script>'
488 '</div>'
489 '</body></html>',
452 'a|web/test.html._data': EMPTY_DATA, 490 'a|web/test.html._data': EMPTY_DATA,
453 'a|web/test_1.html': 491 'a|web/test_1.html':
454 '<!DOCTYPE html><html><head>' 492 '<!DOCTYPE html><html><head>'
455 '</head><body>' 493 '</head><body>'
494 '<div hidden="">'
456 '<polymer-element>2</polymer-element>' 495 '<polymer-element>2</polymer-element>'
457 '<script src="s2"></script>' 496 '<script src="s2"></script>'
497 '</div>'
458 '<polymer-element>1</polymer-element>' 498 '<polymer-element>1</polymer-element>'
459 '<script src="s1"></script></body></html>', 499 '<script src="s1"></script></body></html>',
460 'a|web/test_1.html._data': EMPTY_DATA, 500 'a|web/test_1.html._data': EMPTY_DATA,
461 'a|web/test_2.html': 501 'a|web/test_2.html':
462 '<!DOCTYPE html><html><head>' 502 '<!DOCTYPE html><html><head>'
463 '</head><body>' 503 '</head><body>'
504 '<div hidden="">'
464 '<polymer-element>1</polymer-element>' 505 '<polymer-element>1</polymer-element>'
465 '<script src="s1"></script>' 506 '<script src="s1"></script>'
507 '</div>'
466 '<polymer-element>2</polymer-element>' 508 '<polymer-element>2</polymer-element>'
467 '<script src="s2"></script></body></html>', 509 '<script src="s2"></script></body></html>',
468 'a|web/test_2.html._data': EMPTY_DATA, 510 'a|web/test_2.html._data': EMPTY_DATA,
469 }); 511 });
470 512
471 testPhases('imports cycle, 1-step lasso, Dart scripts too', phases, { 513 testPhases('imports cycle, 1-step lasso, Dart scripts too', phases, {
472 'a|web/test.html': 514 'a|web/test.html':
473 '<!DOCTYPE html><html><head>' 515 '<!DOCTYPE html><html><head>'
474 '<link rel="import" href="test_1.html">' 516 '<link rel="import" href="test_1.html">'
475 '</head></html>', 517 '</head></html>',
476 'a|web/test_1.html': 518 'a|web/test_1.html':
477 '<!DOCTYPE html><html><head>' 519 '<!DOCTYPE html><html><head>'
478 '<link rel="import" href="test_2.html">' 520 '<link rel="import" href="test_2.html">'
479 '</head><body><polymer-element>1</polymer-element>' 521 '</head><body><polymer-element>1</polymer-element>'
480 '<script type="application/dart" src="s1.dart">' 522 '<script type="application/dart" src="s1.dart">'
481 '</script></html>', 523 '</script></html>',
482 'a|web/test_2.html': 524 'a|web/test_2.html':
483 '<!DOCTYPE html><html><head>' 525 '<!DOCTYPE html><html><head>'
484 '<link rel="import" href="test_1.html">' 526 '<link rel="import" href="test_1.html">'
485 '</head><body><polymer-element>2' 527 '</head><body><polymer-element>2'
486 '<script type="application/dart" src="s2.dart"></script>' 528 '<script type="application/dart" src="s2.dart"></script>'
487 '</polymer-element>' 529 '</polymer-element>'
488 '</html>', 530 '</html>',
489 'a|web/s1.dart': '', 531 'a|web/s1.dart': '',
490 'a|web/s2.dart': '', 532 'a|web/s2.dart': '',
491 }, { 533 }, {
492 'a|web/test.html': 534 'a|web/test.html':
493 '<!DOCTYPE html><html><head>' 535 '<!DOCTYPE html><html><head>'
494 '</head><body>' 536 '</head><body>'
537 '<div hidden="">'
495 '<polymer-element>2</polymer-element>' 538 '<polymer-element>2</polymer-element>'
496 '<polymer-element>1</polymer-element>' 539 '<polymer-element>1</polymer-element>'
540 '</div>'
497 '</body></html>', 541 '</body></html>',
498 'a|web/test.html._data': expectedData(['web/s2.dart', 'web/s1.dart']), 542 'a|web/test.html._data': expectedData(['web/s2.dart', 'web/s1.dart']),
499 'a|web/test_1.html': 543 'a|web/test_1.html':
500 '<!DOCTYPE html><html><head>' 544 '<!DOCTYPE html><html><head>'
501 '</head><body>' 545 '</head><body>'
546 '<div hidden="">'
502 '<polymer-element>2</polymer-element>' 547 '<polymer-element>2</polymer-element>'
548 '</div>'
503 '<polymer-element>1</polymer-element>' 549 '<polymer-element>1</polymer-element>'
504 '</body></html>', 550 '</body></html>',
505 'a|web/test_1.html._data': expectedData(['web/s2.dart', 'web/s1.dart']), 551 'a|web/test_1.html._data': expectedData(['web/s2.dart', 'web/s1.dart']),
506 'a|web/test_2.html': 552 'a|web/test_2.html':
507 '<!DOCTYPE html><html><head>' 553 '<!DOCTYPE html><html><head>'
508 '</head><body>' 554 '</head><body>'
555 '<div hidden="">'
509 '<polymer-element>1</polymer-element>' 556 '<polymer-element>1</polymer-element>'
557 '</div>'
510 '<polymer-element>2' 558 '<polymer-element>2'
511 '</polymer-element>' 559 '</polymer-element>'
512 '</body></html>', 560 '</body></html>',
513 'a|web/test_2.html._data': expectedData(['web/s1.dart', 'web/s2.dart']), 561 'a|web/test_2.html._data': expectedData(['web/s1.dart', 'web/s2.dart']),
514 }); 562 });
515 563
516 testPhases('imports with Dart script after JS script', phases, { 564 testPhases('imports with Dart script after JS script', phases, {
517 'a|web/test.html': 565 'a|web/test.html':
518 '<!DOCTYPE html><html><head>' 566 '<!DOCTYPE html><html><head>'
519 '<link rel="import" href="test_1.html">' 567 '<link rel="import" href="test_1.html">'
520 '</head></html>', 568 '</head></html>',
521 'a|web/test_1.html': 569 'a|web/test_1.html':
522 '<!DOCTYPE html><html><head>' 570 '<!DOCTYPE html><html><head>'
523 '<link rel="import" href="test_1.html">' 571 '<link rel="import" href="test_1.html">'
524 '</head><body>' 572 '</head><body>'
525 '<foo>42</foo><bar-baz></bar-baz>' 573 '<foo>42</foo><bar-baz></bar-baz>'
526 '<polymer-element>1' 574 '<polymer-element>1'
527 '<script src="s1.js"></script>' 575 '<script src="s1.js"></script>'
528 '<script type="application/dart" src="s1.dart"></script>' 576 '<script type="application/dart" src="s1.dart"></script>'
529 '</polymer-element>' 577 '</polymer-element>'
530 'FOO</body></html>', 578 'FOO</body></html>',
531 'a|web/s1.dart': '', 579 'a|web/s1.dart': '',
532 }, { 580 }, {
533 'a|web/test.html': 581 'a|web/test.html':
534 '<!DOCTYPE html><html><head>' 582 '<!DOCTYPE html><html><head>'
535 '</head><body>' 583 '</head><body>'
584 '<div hidden="">'
536 '<foo>42</foo><bar-baz></bar-baz>' 585 '<foo>42</foo><bar-baz></bar-baz>'
537 '<polymer-element>1' 586 '<polymer-element>1'
538 '<script src="s1.js"></script>' 587 '<script src="s1.js"></script>'
539 '</polymer-element>' 588 '</polymer-element>'
540 'FOO</body></html>', 589 'FOO'
590 '</div>'
591 '</body></html>',
541 'a|web/test.html._data': expectedData(['web/s1.dart']), 592 'a|web/test.html._data': expectedData(['web/s1.dart']),
542 'a|web/test_1.html': 593 'a|web/test_1.html':
543 '<!DOCTYPE html><html><head>' 594 '<!DOCTYPE html><html><head>'
544 '</head><body>' 595 '</head><body>'
545 '<foo>42</foo><bar-baz></bar-baz>' 596 '<foo>42</foo><bar-baz></bar-baz>'
546 '<polymer-element>1' 597 '<polymer-element>1'
547 '<script src="s1.js"></script>' 598 '<script src="s1.js"></script>'
548 '</polymer-element>' 599 '</polymer-element>'
549 'FOO</body></html>', 600 'FOO</body></html>',
550 'a|web/test_1.html._data': expectedData(['web/s1.dart']), 601 'a|web/test_1.html._data': expectedData(['web/s1.dart']),
(...skipping 13 matching lines...) Expand all
564 '<link rel="import" href="test_3.html">' 615 '<link rel="import" href="test_3.html">'
565 '</head><body><polymer-element>2</polymer-element></html>', 616 '</head><body><polymer-element>2</polymer-element></html>',
566 'a|web/test_3.html': 617 'a|web/test_3.html':
567 '<!DOCTYPE html><html><head>' 618 '<!DOCTYPE html><html><head>'
568 '<link rel="import" href="test_1.html">' 619 '<link rel="import" href="test_1.html">'
569 '</head><body><polymer-element>3</polymer-element></html>', 620 '</head><body><polymer-element>3</polymer-element></html>',
570 }, { 621 }, {
571 'a|web/test.html': 622 'a|web/test.html':
572 '<!DOCTYPE html><html><head>' 623 '<!DOCTYPE html><html><head>'
573 '</head><body>' 624 '</head><body>'
625 '<div hidden="">'
574 '<polymer-element>3</polymer-element>' 626 '<polymer-element>3</polymer-element>'
575 '<polymer-element>2</polymer-element>' 627 '<polymer-element>2</polymer-element>'
576 '<polymer-element>1</polymer-element></body></html>', 628 '<polymer-element>1</polymer-element>'
629 '</div>'
630 '</body></html>',
577 'a|web/test_1.html': 631 'a|web/test_1.html':
578 '<!DOCTYPE html><html><head>' 632 '<!DOCTYPE html><html><head>'
579 '</head><body>' 633 '</head><body>'
634 '<div hidden="">'
580 '<polymer-element>3</polymer-element>' 635 '<polymer-element>3</polymer-element>'
581 '<polymer-element>2</polymer-element>' 636 '<polymer-element>2</polymer-element>'
637 '</div>'
582 '<polymer-element>1</polymer-element></body></html>', 638 '<polymer-element>1</polymer-element></body></html>',
583 'a|web/test_2.html': 639 'a|web/test_2.html':
584 '<!DOCTYPE html><html><head>' 640 '<!DOCTYPE html><html><head>'
585 '</head><body>' 641 '</head><body>'
642 '<div hidden="">'
586 '<polymer-element>1</polymer-element>' 643 '<polymer-element>1</polymer-element>'
587 '<polymer-element>3</polymer-element>' 644 '<polymer-element>3</polymer-element>'
645 '</div>'
588 '<polymer-element>2</polymer-element></body></html>', 646 '<polymer-element>2</polymer-element></body></html>',
589 'a|web/test_3.html': 647 'a|web/test_3.html':
590 '<!DOCTYPE html><html><head>' 648 '<!DOCTYPE html><html><head>'
591 '</head><body>' 649 '</head><body>'
650 '<div hidden="">'
592 '<polymer-element>2</polymer-element>' 651 '<polymer-element>2</polymer-element>'
593 '<polymer-element>1</polymer-element>' 652 '<polymer-element>1</polymer-element>'
653 '</div>'
594 '<polymer-element>3</polymer-element></body></html>', 654 '<polymer-element>3</polymer-element></body></html>',
595 }); 655 });
596 656
597 testPhases('imports cycle, self cycle', phases, { 657 testPhases('imports cycle, self cycle', phases, {
598 'a|web/test.html': 658 'a|web/test.html':
599 '<!DOCTYPE html><html><head>' 659 '<!DOCTYPE html><html><head>'
600 '<link rel="import" href="test_1.html">' 660 '<link rel="import" href="test_1.html">'
601 '</head></html>', 661 '</head></html>',
602 'a|web/test_1.html': 662 'a|web/test_1.html':
603 '<!DOCTYPE html><html><head>' 663 '<!DOCTYPE html><html><head>'
604 '<link rel="import" href="test_1.html">' 664 '<link rel="import" href="test_1.html">'
605 '</head><body><polymer-element>1</polymer-element></html>', 665 '</head><body><polymer-element>1</polymer-element></html>',
606 }, { 666 }, {
607 'a|web/test.html': 667 'a|web/test.html':
608 '<!DOCTYPE html><html><head>' 668 '<!DOCTYPE html><html><head>'
609 '</head><body>' 669 '</head><body>'
610 '<polymer-element>1</polymer-element></body></html>', 670 '<div hidden="">'
671 '<polymer-element>1</polymer-element>'
672 '</div>'
673 '</body></html>',
611 'a|web/test_1.html': 674 'a|web/test_1.html':
612 '<!DOCTYPE html><html><head>' 675 '<!DOCTYPE html><html><head>'
613 '</head><body>' 676 '</head><body>'
614 '<polymer-element>1</polymer-element></body></html>', 677 '<polymer-element>1</polymer-element></body></html>',
615 }); 678 });
616 679
617 testPhases('imports DAG', phases, { 680 testPhases('imports DAG', phases, {
618 'a|web/test.html': 681 'a|web/test.html':
619 '<!DOCTYPE html><html><head>' 682 '<!DOCTYPE html><html><head>'
620 '<link rel="import" href="test_1.html">' 683 '<link rel="import" href="test_1.html">'
621 '<link rel="import" href="test_2.html">' 684 '<link rel="import" href="test_2.html">'
622 '</head></html>', 685 '</head></html>',
623 'a|web/test_1.html': 686 'a|web/test_1.html':
624 '<!DOCTYPE html><html><head>' 687 '<!DOCTYPE html><html><head>'
625 '<link rel="import" href="test_3.html">' 688 '<link rel="import" href="test_3.html">'
626 '</head><body><polymer-element>1</polymer-element></body></html>', 689 '</head><body><polymer-element>1</polymer-element></body></html>',
627 'a|web/test_2.html': 690 'a|web/test_2.html':
628 '<!DOCTYPE html><html><head>' 691 '<!DOCTYPE html><html><head>'
629 '<link rel="import" href="test_3.html">' 692 '<link rel="import" href="test_3.html">'
630 '</head><body><polymer-element>2</polymer-element></body></html>', 693 '</head><body><polymer-element>2</polymer-element></body></html>',
631 'a|web/test_3.html': 694 'a|web/test_3.html':
632 '<!DOCTYPE html><html><head>' 695 '<!DOCTYPE html><html><head>'
633 '</head><body><polymer-element>3</polymer-element></body></html>', 696 '</head><body><polymer-element>3</polymer-element></body></html>',
634 }, { 697 }, {
635 'a|web/test.html': 698 'a|web/test.html':
636 '<!DOCTYPE html><html><head>' 699 '<!DOCTYPE html><html><head>'
637 '</head><body>' 700 '</head><body>'
701 '<div hidden="">'
638 '<polymer-element>3</polymer-element>' 702 '<polymer-element>3</polymer-element>'
639 '<polymer-element>1</polymer-element>' 703 '<polymer-element>1</polymer-element>'
640 '<polymer-element>2</polymer-element></body></html>', 704 '<polymer-element>2</polymer-element>'
705 '</div>'
706 '</body></html>',
641 'a|web/test_1.html': 707 'a|web/test_1.html':
642 '<!DOCTYPE html><html><head>' 708 '<!DOCTYPE html><html><head>'
643 '</head><body>' 709 '</head><body>'
710 '<div hidden="">'
644 '<polymer-element>3</polymer-element>' 711 '<polymer-element>3</polymer-element>'
712 '</div>'
645 '<polymer-element>1</polymer-element></body></html>', 713 '<polymer-element>1</polymer-element></body></html>',
646 'a|web/test_2.html': 714 'a|web/test_2.html':
647 '<!DOCTYPE html><html><head>' 715 '<!DOCTYPE html><html><head>'
648 '</head><body>' 716 '</head><body>'
717 '<div hidden="">'
649 '<polymer-element>3</polymer-element>' 718 '<polymer-element>3</polymer-element>'
719 '</div>'
650 '<polymer-element>2</polymer-element></body></html>', 720 '<polymer-element>2</polymer-element></body></html>',
651 'a|web/test_3.html': 721 'a|web/test_3.html':
652 '<!DOCTYPE html><html><head>' 722 '<!DOCTYPE html><html><head>'
653 '</head><body>' 723 '</head><body>'
654 '<polymer-element>3</polymer-element></body></html>', 724 '<polymer-element>3</polymer-element></body></html>',
655 }); 725 });
656 726
657 testLogOutput( 727 testLogOutput(
658 (options) => new ImportInliner(options), 728 (options) => new ImportInliner(options),
659 "missing styles don't throw errors and are not inlined", { 729 "missing styles don't throw errors and are not inlined", {
660 'a|web/test.html': 730 'a|web/test.html':
661 '<!DOCTYPE html><html><head>' 731 '<!DOCTYPE html><html><head>'
662 '<link rel="stylesheet" href="foo.css">' 732 '<link rel="stylesheet" href="foo.css">'
663 '</head></html>', 733 '</head></html>',
664 }, { 734 }, {
665 'a|web/test.html': 735 'a|web/test.html':
666 '<!DOCTYPE html><html><head></head><body>' 736 '<!DOCTYPE html><html><head></head><body>'
737 '<div hidden="">'
667 '<link rel="stylesheet" href="foo.css">' 738 '<link rel="stylesheet" href="foo.css">'
739 '</div>'
668 '</body></html>', 740 '</body></html>',
669 }, [ 741 }, [
670 'warning: Failed to inline stylesheet: ' 742 'warning: Failed to inline stylesheet: '
671 'Could not find asset a|web/foo.css. (web/test.html 0 27)', 743 'Could not find asset a|web/foo.css. (web/test.html 0 27)',
672 ]); 744 ]);
673 745
674 testLogOutput( 746 testLogOutput(
675 (options) => new ImportInliner(options), 747 (options) => new ImportInliner(options),
676 "missing html imports throw errors", { 748 "missing html imports throw errors", {
677 'a|web/test.html': 749 'a|web/test.html':
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
758 testPhases('shallow, inlines css', phases, { 830 testPhases('shallow, inlines css', phases, {
759 'a|web/test.html': 831 'a|web/test.html':
760 '<!DOCTYPE html><html><head>' 832 '<!DOCTYPE html><html><head>'
761 '<link rel="stylesheet" href="test2.css">' 833 '<link rel="stylesheet" href="test2.css">'
762 '</head></html>', 834 '</head></html>',
763 'a|web/test2.css': 835 'a|web/test2.css':
764 'h1 { font-size: 70px; }', 836 'h1 { font-size: 70px; }',
765 }, { 837 }, {
766 'a|web/test.html': 838 'a|web/test.html':
767 '<!DOCTYPE html><html><head></head><body>' 839 '<!DOCTYPE html><html><head></head><body>'
840 '<div hidden="">'
768 '<style>h1 { font-size: 70px; }</style>' 841 '<style>h1 { font-size: 70px; }</style>'
842 '</div>'
769 '</body></html>', 843 '</body></html>',
770 'a|web/test.html._data': EMPTY_DATA, 844 'a|web/test.html._data': EMPTY_DATA,
771 'a|web/test2.css': 845 'a|web/test2.css':
772 'h1 { font-size: 70px; }', 846 'h1 { font-size: 70px; }',
773 }); 847 });
774 848
775 testPhases('deep, inlines css', phases, { 849 testPhases('deep, inlines css', phases, {
776 'a|web/test.html': 850 'a|web/test.html':
777 '<!DOCTYPE html><html><head>' 851 '<!DOCTYPE html><html><head>'
778 '<link rel="import" href="test2.html">' 852 '<link rel="import" href="test2.html">'
779 '</head></html>', 853 '</head></html>',
780 'a|web/test2.html': 854 'a|web/test2.html':
781 '<polymer-element>2' 855 '<polymer-element>2'
782 '<link rel="stylesheet" href="assets/b/test3.css">' 856 '<link rel="stylesheet" href="assets/b/test3.css">'
783 '</polymer-element>', 857 '</polymer-element>',
784 'b|asset/test3.css': 858 'b|asset/test3.css':
785 'body {\n background: #eaeaea url("../../assets/b/test4.png");\n}\n' 859 'body {\n background: #eaeaea url("../../assets/b/test4.png");\n}\n'
786 '.foo {\n background: url("../../packages/c/test5.png");\n}', 860 '.foo {\n background: url("../../packages/c/test5.png");\n}',
787 'b|asset/test4.png': 'PNG', 861 'b|asset/test4.png': 'PNG',
788 'c|lib/test5.png': 'PNG', 862 'c|lib/test5.png': 'PNG',
789 }, { 863 }, {
790 'a|web/test.html': 864 'a|web/test.html':
791 '<!DOCTYPE html><html><head></head><body>' 865 '<!DOCTYPE html><html><head></head><body>'
866 '<div hidden="">'
792 '<polymer-element>2' 867 '<polymer-element>2'
793 '<style>' 868 '<style>'
794 'body {\n background: #eaeaea url(assets/b/test4.png);\n}\n' 869 'body {\n background: #eaeaea url(assets/b/test4.png);\n}\n'
795 '.foo {\n background: url(packages/c/test5.png);\n}' 870 '.foo {\n background: url(packages/c/test5.png);\n}'
796 '</style>' 871 '</style>'
797 '</polymer-element>' 872 '</polymer-element>'
873 '</div>'
798 '</body></html>', 874 '</body></html>',
799 'a|web/test2.html': 875 'a|web/test2.html':
800 '<html><head></head><body>' 876 '<html><head></head><body>'
801 '<polymer-element>2' 877 '<polymer-element>2'
802 '<style>' 878 '<style>'
803 'body {\n background: #eaeaea url(assets/b/test4.png);\n}\n' 879 'body {\n background: #eaeaea url(assets/b/test4.png);\n}\n'
804 '.foo {\n background: url(packages/c/test5.png);\n}' 880 '.foo {\n background: url(packages/c/test5.png);\n}'
805 '</style>' 881 '</style>'
806 '</polymer-element>' 882 '</polymer-element>'
807 '</body></html>', 883 '</body></html>',
808 'b|asset/test3.css': 884 'b|asset/test3.css':
809 'body {\n background: #eaeaea url("../../assets/b/test4.png");\n}\n' 885 'body {\n background: #eaeaea url("../../assets/b/test4.png");\n}\n'
810 '.foo {\n background: url("../../packages/c/test5.png");\n}', 886 '.foo {\n background: url("../../packages/c/test5.png");\n}',
811 'b|asset/test4.png': 'PNG', 887 'b|asset/test4.png': 'PNG',
812 'c|lib/test5.png': 'PNG', 888 'c|lib/test5.png': 'PNG',
813 }); 889 });
814 890
815 testPhases('deep, inlines css, multiple nesting', phases, { 891 testPhases('deep, inlines css, multiple nesting', phases, {
816 'a|web/test.html': 892 'a|web/test.html':
817 '<!DOCTYPE html><html><head>' 893 '<!DOCTYPE html><html><head>'
818 '<link rel="import" href="foo/test2.html">' 894 '<link rel="import" href="foo/test2.html">'
819 '</head></html>', 895 '</head></html>',
820 'a|web/foo/test2.html': 896 'a|web/foo/test2.html':
897 // When parsed, this is in the <head>.
821 '<link rel="import" href="bar/test3.html">' 898 '<link rel="import" href="bar/test3.html">'
899 // This is where the parsed <body> starts.
822 '<polymer-element>2' 900 '<polymer-element>2'
823 '<link rel="stylesheet" href="test.css">' 901 '<link rel="stylesheet" href="test.css">'
824 '</polymer-element>', 902 '</polymer-element>',
825 'a|web/foo/bar/test3.html': 903 'a|web/foo/bar/test3.html':
826 '<img src="qux.png">', 904 '<img src="qux.png">',
827 'a|web/foo/test.css': 905 'a|web/foo/test.css':
828 'body {\n background: #eaeaea url("test4.png");\n}\n' 906 'body {\n background: #eaeaea url("test4.png");\n}\n'
829 '.foo {\n background: url("test5.png");\n}', 907 '.foo {\n background: url("test5.png");\n}',
830 }, { 908 }, {
831 'a|web/test.html': 909 'a|web/test.html':
832 '<!DOCTYPE html><html><head></head><body>' 910 '<!DOCTYPE html><html><head></head><body>'
911 '<div hidden="">'
833 '<img src="foo/bar/qux.png">' 912 '<img src="foo/bar/qux.png">'
834 '<polymer-element>2' 913 '<polymer-element>2'
835 '<style>' 914 '<style>'
836 'body {\n background: #eaeaea url(foo/test4.png);\n}\n' 915 'body {\n background: #eaeaea url(foo/test4.png);\n}\n'
837 '.foo {\n background: url(foo/test5.png);\n}' 916 '.foo {\n background: url(foo/test5.png);\n}'
838 '</style></polymer-element></body></html>', 917 '</style></polymer-element>'
918 '</div>'
919 '</body></html>',
839 'a|web/foo/test2.html': 920 'a|web/foo/test2.html':
840 '<html><head></head><body>' 921 '<html><head></head><body>'
922 '<div hidden="">'
841 '<img src="bar/qux.png">' 923 '<img src="bar/qux.png">'
924 '</div>'
842 '<polymer-element>2' 925 '<polymer-element>2'
843 '<style>' 926 '<style>'
844 'body {\n background: #eaeaea url(test4.png);\n}\n' 927 'body {\n background: #eaeaea url(test4.png);\n}\n'
845 '.foo {\n background: url(test5.png);\n}' 928 '.foo {\n background: url(test5.png);\n}'
846 '</style></polymer-element></body></html>', 929 '</style></polymer-element>'
930 '</body></html>',
847 'a|web/foo/bar/test3.html': 931 'a|web/foo/bar/test3.html':
848 '<img src="qux.png">', 932 '<img src="qux.png">',
849 'a|web/foo/test.css': 933 'a|web/foo/test.css':
850 'body {\n background: #eaeaea url("test4.png");\n}\n' 934 'body {\n background: #eaeaea url("test4.png");\n}\n'
851 '.foo {\n background: url("test5.png");\n}', 935 '.foo {\n background: url("test5.png");\n}',
852 }); 936 });
853 937
854 testPhases('shallow, inlines css and preserves order', phases, { 938 testPhases('shallow, inlines css and preserves order', phases, {
855 'a|web/test.html': 939 'a|web/test.html':
856 '<!DOCTYPE html><html><head>' 940 '<!DOCTYPE html><html><head>'
857 '<style>.first { color: black }</style>' 941 '<style>.first { color: black }</style>'
858 '<link rel="stylesheet" href="test2.css">' 942 '<link rel="stylesheet" href="test2.css">'
859 '<style>.second { color: black }</style>' 943 '<style>.second { color: black }</style>'
860 '</head></html>', 944 '</head></html>',
861 'a|web/test2.css': 945 'a|web/test2.css':
862 'h1 { font-size: 70px; }', 946 'h1 { font-size: 70px; }',
863 }, { 947 }, {
864 'a|web/test.html': 948 'a|web/test.html':
865 '<!DOCTYPE html><html><head></head><body>' 949 '<!DOCTYPE html><html><head></head><body>'
950 '<div hidden="">'
866 '<style>.first { color: black }</style>' 951 '<style>.first { color: black }</style>'
867 '<style>h1 { font-size: 70px; }</style>' 952 '<style>h1 { font-size: 70px; }</style>'
868 '<style>.second { color: black }</style>' 953 '<style>.second { color: black }</style>'
954 '</div>'
869 '</body></html>', 955 '</body></html>',
870 'a|web/test.html._data': EMPTY_DATA, 956 'a|web/test.html._data': EMPTY_DATA,
871 'a|web/test2.css': 957 'a|web/test2.css':
872 'h1 { font-size: 70px; }', 958 'h1 { font-size: 70px; }',
873 }); 959 });
874 960
875 testPhases('inlined tags keep original attributes', phases, { 961 testPhases('inlined tags keep original attributes', phases, {
876 'a|web/test.html': 962 'a|web/test.html':
877 '<!DOCTYPE html><html><head>' 963 '<!DOCTYPE html><html><head>'
878 '<link rel="stylesheet" href="foo.css" no-shim>' 964 '<link rel="stylesheet" href="foo.css" no-shim>'
879 '<link rel="stylesheet" href="bar.css" shim-shadow foo>' 965 '<link rel="stylesheet" href="bar.css" shim-shadow foo>'
880 '</head></html>', 966 '</head></html>',
881 'a|web/foo.css': 967 'a|web/foo.css':
882 'h1 { font-size: 70px; }', 968 'h1 { font-size: 70px; }',
883 'a|web/bar.css': 969 'a|web/bar.css':
884 'h2 { font-size: 35px; }', 970 'h2 { font-size: 35px; }',
885 }, { 971 }, {
886 'a|web/test.html': 972 'a|web/test.html':
887 '<!DOCTYPE html><html><head></head><body>' 973 '<!DOCTYPE html><html><head></head><body>'
974 '<div hidden="">'
888 '<style no-shim="">h1 { font-size: 70px; }</style>' 975 '<style no-shim="">h1 { font-size: 70px; }</style>'
889 '<style shim-shadow="" foo="">h2 { font-size: 35px; }</style>' 976 '<style shim-shadow="" foo="">h2 { font-size: 35px; }</style>'
977 '</div>'
890 '</body></html>', 978 '</body></html>',
891 'a|web/foo.css': 979 'a|web/foo.css':
892 'h1 { font-size: 70px; }', 980 'h1 { font-size: 70px; }',
893 'a|web/bar.css': 981 'a|web/bar.css':
894 'h2 { font-size: 35px; }', 982 'h2 { font-size: 35px; }',
895 }); 983 });
896 984
897 testPhases( 985 testPhases(
898 'can configure default stylesheet inlining', 986 'can configure default stylesheet inlining',
899 [[new ImportInliner(new TransformOptions( 987 [[new ImportInliner(new TransformOptions(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 '<link rel="import" href="foo/test_1.html">' 1042 '<link rel="import" href="foo/test_1.html">'
955 '<link rel="import" href="foo/test_2.html">' 1043 '<link rel="import" href="foo/test_2.html">'
956 '</head></html>', 1044 '</head></html>',
957 'a|web/foo/test_1.html': 1045 'a|web/foo/test_1.html':
958 '<script src="baz.jpg"></script>', 1046 '<script src="baz.jpg"></script>',
959 'a|web/foo/test_2.html': 1047 'a|web/foo/test_2.html':
960 '<foo-element src="baz.jpg"></foo-element>' 1048 '<foo-element src="baz.jpg"></foo-element>'
961 }, { 1049 }, {
962 'a|web/test.html': 1050 'a|web/test.html':
963 '<!DOCTYPE html><html><head></head><body>' 1051 '<!DOCTYPE html><html><head></head><body>'
1052 '<div hidden="">'
964 '<script src="foo/baz.jpg"></script>' // normalized 1053 '<script src="foo/baz.jpg"></script>' // normalized
965 '<foo-element src="baz.jpg"></foo-element>' // left alone (custom) 1054 '<foo-element src="baz.jpg"></foo-element>' // left alone (custom)
1055 '</div>'
966 '</body></html>', 1056 '</body></html>',
967 'a|web/foo/test_1.html': 1057 'a|web/foo/test_1.html':
968 '<script src="baz.jpg"></script>', 1058 '<script src="baz.jpg"></script>',
969 'a|web/foo/test_2.html': 1059 'a|web/foo/test_2.html':
970 '<foo-element src="baz.jpg"></foo-element>', 1060 '<foo-element src="baz.jpg"></foo-element>',
971 }); 1061 });
972 1062
973 testPhases('paths with a binding prefix are not normalized', phases, { 1063 testPhases('paths with a binding prefix are not normalized', phases, {
974 'a|web/test.html': 1064 'a|web/test.html':
975 '<!DOCTYPE html><html><head>' 1065 '<!DOCTYPE html><html><head>'
976 '<link rel="import" href="foo/test.html">' 1066 '<link rel="import" href="foo/test.html">'
977 '</head></html>', 1067 '</head></html>',
978 'a|web/foo/test.html': 1068 'a|web/foo/test.html':
979 '<img src="{{bar}}">' 1069 '<img src="{{bar}}">'
980 '<img src="[[bar]]">', 1070 '<img src="[[bar]]">',
981 }, { 1071 }, {
982 'a|web/test.html': 1072 'a|web/test.html':
983 '<!DOCTYPE html><html><head></head><body>' 1073 '<!DOCTYPE html><html><head></head><body>'
1074 '<div hidden="">'
984 '<img src="{{bar}}">' 1075 '<img src="{{bar}}">'
985 '<img src="[[bar]]">' 1076 '<img src="[[bar]]">'
1077 '</div>'
986 '</body></html>', 1078 '</body></html>',
987 'a|web/foo/test.html': 1079 'a|web/foo/test.html':
988 '<img src="{{bar}}">' 1080 '<img src="{{bar}}">'
989 '<img src="[[bar]]">', 1081 '<img src="[[bar]]">',
990 }); 1082 });
991 1083
992 testPhases('relative paths followed by bindings are normalized', phases, { 1084 testPhases('relative paths followed by bindings are normalized', phases, {
993 'a|web/test.html': 1085 'a|web/test.html':
994 '<!DOCTYPE html><html><head>' 1086 '<!DOCTYPE html><html><head>'
995 '<link rel="import" href="foo/test.html">' 1087 '<link rel="import" href="foo/test.html">'
996 '</head></html>', 1088 '</head></html>',
997 'a|web/foo/test.html': 1089 'a|web/foo/test.html':
998 '<img src="baz/{{bar}}">' 1090 '<img src="baz/{{bar}}">'
999 '<img src="./{{bar}}">', 1091 '<img src="./{{bar}}">',
1000 }, { 1092 }, {
1001 'a|web/test.html': 1093 'a|web/test.html':
1002 '<!DOCTYPE html><html><head></head><body>' 1094 '<!DOCTYPE html><html><head></head><body>'
1095 '<div hidden="">'
1003 '<img src="foo/baz/{{bar}}">' 1096 '<img src="foo/baz/{{bar}}">'
1004 '<img src="foo/{{bar}}">' 1097 '<img src="foo/{{bar}}">'
1098 '</div>'
1005 '</body></html>', 1099 '</body></html>',
1006 }); 1100 });
1007 1101
1008 testPhases('relative paths in _* attributes are normalized', phases, { 1102 testPhases('relative paths in _* attributes are normalized', phases, {
1009 'a|web/test.html': 1103 'a|web/test.html':
1010 '<!DOCTYPE html><html><head>' 1104 '<!DOCTYPE html><html><head>'
1011 '<link rel="import" href="foo/test.html">' 1105 '<link rel="import" href="foo/test.html">'
1012 '</head></html>', 1106 '</head></html>',
1013 'a|web/foo/test.html': 1107 'a|web/foo/test.html':
1014 '<img _src="./{{bar}}">' 1108 '<img _src="./{{bar}}">'
1015 '<a _href="./{{bar}}">test</a>', 1109 '<a _href="./{{bar}}">test</a>',
1016 }, { 1110 }, {
1017 'a|web/test.html': 1111 'a|web/test.html':
1018 '<!DOCTYPE html><html><head></head><body>' 1112 '<!DOCTYPE html><html><head></head><body>'
1113 '<div hidden="">'
1019 '<img _src="foo/{{bar}}">' 1114 '<img _src="foo/{{bar}}">'
1020 '<a _href="foo/{{bar}}">test</a>' 1115 '<a _href="foo/{{bar}}">test</a>'
1116 '</div>'
1021 '</body></html>', 1117 '</body></html>',
1022 }); 1118 });
1023 1119
1024 1120
1025 testLogOutput( 1121 testLogOutput(
1026 (options) => new ImportInliner(options), 1122 (options) => new ImportInliner(options),
1027 'warnings are given about _* attributes', { 1123 'warnings are given about _* attributes', {
1028 'a|web/test.html': 1124 'a|web/test.html':
1029 '<!DOCTYPE html><html><head></head><body>' 1125 '<!DOCTYPE html><html><head></head><body>'
1030 '<img src="foo/{{bar}}">' 1126 '<img src="foo/{{bar}}">'
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1074 '<link rel="import" href="../../packages/a/foo/foo.html">' 1170 '<link rel="import" href="../../packages/a/foo/foo.html">'
1075 '</head></html>', 1171 '</head></html>',
1076 'a|lib/foo/foo.html': 1172 'a|lib/foo/foo.html':
1077 '<script rel="import" href="../../../packages/b/bar/bar.js">' 1173 '<script rel="import" href="../../../packages/b/bar/bar.js">'
1078 '</script>', 1174 '</script>',
1079 'b|lib/bar/bar.js': 1175 'b|lib/bar/bar.js':
1080 'console.log("here");', 1176 'console.log("here");',
1081 }, { 1177 }, {
1082 'a|web/test/test.html': 1178 'a|web/test/test.html':
1083 '<!DOCTYPE html><html><head></head><body>' 1179 '<!DOCTYPE html><html><head></head><body>'
1180 '<div hidden="">'
1084 '<script rel="import" href="../packages/b/bar/bar.js"></script>' 1181 '<script rel="import" href="../packages/b/bar/bar.js"></script>'
1182 '</div>'
1085 '</body></html>', 1183 '</body></html>',
1086 }); 1184 });
1087 1185
1088 testPhases('includes in entry points normalize correctly', phases, { 1186 testPhases('includes in entry points normalize correctly', phases, {
1089 'a|web/test/test.html': 1187 'a|web/test/test.html':
1090 '<!DOCTYPE html><html><head>' 1188 '<!DOCTYPE html><html><head>'
1091 '<script src="packages/a/foo/bar.js"></script>' 1189 '<script src="packages/a/foo/bar.js"></script>'
1092 '</head></html>', 1190 '</head></html>',
1093 'a|lib/foo/bar.js': 1191 'a|lib/foo/bar.js':
1094 'console.log("here");', 1192 'console.log("here");',
1095 }, { 1193 }, {
1096 'a|web/test/test.html': 1194 'a|web/test/test.html':
1097 '<!DOCTYPE html><html><head></head><body>' 1195 '<!DOCTYPE html><html><head></head><body>'
1196 '<div hidden="">'
1098 '<script src="../packages/a/foo/bar.js"></script>' 1197 '<script src="../packages/a/foo/bar.js"></script>'
1198 '</div>'
1099 '</body></html>', 1199 '</body></html>',
1100 }); 1200 });
1101 1201
1102 testPhases('two level deep entry points normalize correctly', phases, { 1202 testPhases('two level deep entry points normalize correctly', phases, {
1103 'a|web/test/well/test.html': 1203 'a|web/test/well/test.html':
1104 '<!DOCTYPE html><html><head>' 1204 '<!DOCTYPE html><html><head>'
1105 '<link rel="import" href="../../../packages/a/foo/foo.html">' 1205 '<link rel="import" href="../../../packages/a/foo/foo.html">'
1106 '</head></html>', 1206 '</head></html>',
1107 'a|lib/foo/foo.html': 1207 'a|lib/foo/foo.html':
1108 '<script rel="import" href="../../../packages/b/bar/bar.js"></script>', 1208 '<script rel="import" href="../../../packages/b/bar/bar.js"></script>',
1109 'b|lib/bar/bar.js': 1209 'b|lib/bar/bar.js':
1110 'console.log("here");', 1210 'console.log("here");',
1111 }, { 1211 }, {
1112 'a|web/test/well/test.html': 1212 'a|web/test/well/test.html':
1113 '<!DOCTYPE html><html><head></head><body>' 1213 '<!DOCTYPE html><html><head></head><body>'
1214 '<div hidden="">'
1114 '<script rel="import" href="../../packages/b/bar/bar.js"></script>' 1215 '<script rel="import" href="../../packages/b/bar/bar.js"></script>'
1216 '</div>'
1115 '</body></html>', 1217 '</body></html>',
1116 }); 1218 });
1117 } 1219 }
OLDNEW
« no previous file with comments | « pkg/polymer/test/build/all_phases_test.dart ('k') | pkg/polymer/test/build/linter_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698