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

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

Issue 293023008: Bring back initPolymer, allow boot.js only if using "polymer_experimental.html". (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 // 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.linter_test; 5 library polymer.test.linter_test;
6 6
7 import 'package:polymer/src/build/common.dart'; 7 import 'package:polymer/src/build/common.dart';
8 import 'package:polymer/src/build/linter.dart'; 8 import 'package:polymer/src/build/linter.dart';
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 10
11 import 'common.dart'; 11 import 'common.dart';
12 12
13 void main() { 13 void main() {
14 _testLinter('nothing to report', { 14 _testLinter('nothing to report', {
15 'a|lib/test.html': '<!DOCTYPE html><html></html>', 15 'a|lib/test.html': '<!DOCTYPE html><html></html>',
16 }, []); 16 }, []);
17 17
18 group('must have import to polymer.html', () { 18 group('must have proper initialization imports', () {
19 _testLinter('nothing to report', { 19 _testLinter('nothing to report', {
20 'a|web/test.html': '<!DOCTYPE html><html>' 20 'a|web/test.html': '<!DOCTYPE html><html>'
21 '<link rel="import" href="packages/polymer/polymer.html">' 21 '<link rel="import" href="packages/polymer/polymer.html">'
22 '<script type="application/dart" src="foo.dart">' 22 '<script type="application/dart" src="foo.dart">'
23 '</script>' 23 '</script>'
24 '<script src="packages/browser/dart.js"></script>' 24 '<script src="packages/browser/dart.js"></script>'
25 '</html>', 25 '</html>',
26 }, []); 26 }, []);
27 27
28 _testLinter('missing everything', { 28 _testLinter('missing polymer.html', {
29 'a|web/test.html': '<!DOCTYPE html><html></html>', 29 'a|web/test.html': '<!DOCTYPE html><html>'
30 }, [
31 'warning: $USE_POLYMER_HTML',
32 ]);
33
34 _testLinter('using deprecated boot.js', {
35 'a|web/test.html': '<!DOCTYPE html><html>\n'
36 '<script src="packages/polymer/boot.js"></script>'
37 '<script type="application/dart" src="foo.dart">' 30 '<script type="application/dart" src="foo.dart">'
38 '</script>' 31 '</script>'
39 '<script src="packages/browser/dart.js"></script>' 32 '<script src="packages/browser/dart.js"></script>'
40 '</html>', 33 '</html>',
41 }, [ 34 }, [
42 'warning: $USE_POLYMER_HTML', 35 'warning: $USE_POLYMER_HTML',
43 ]); 36 ]);
37
38 _testLinter('missing Dart code', {
39 'a|web/test.html': '<!DOCTYPE html><html>'
40 '<link rel="import" href="packages/polymer/polymer.html">'
41 '<script src="packages/browser/dart.js"></script>'
42 '</html>',
43 }, [
44 'warning: $USE_INIT_DART',
45 ]);
46
47 _testLinter('nothing to report, experimental with no Dart code', {
48 'a|web/test.html': '<!DOCTYPE html><html>'
49 '<link rel="import" '
50 'href="packages/polymer/polymer_experimental.html">'
51 '<script src="packages/browser/dart.js"></script>'
52 '</html>',
53 }, []);
54
55 _testLinter('experimental cannot have Dart code in main document', {
56 'a|web/test.html': '<!DOCTYPE html><html>'
57 '<link rel="import" '
58 'href="packages/polymer/polymer_experimental.html">\n'
59 '<script type="application/dart" src="foo.dart">'
60 '</script>'
61 '<script src="packages/browser/dart.js"></script>'
62 '</html>',
63 }, [
64 'warning: $NO_DART_SCRIPT_AND_EXPERIMENTAL (web/test.html 1 0)',
65 ]);
66
67 _testLinter('missing Dart code and polymer.html', {
68 'a|web/test.html': '<!DOCTYPE html><html></html>',
69 }, [
70 'warning: $USE_POLYMER_HTML',
71 'warning: $USE_INIT_DART',
72 ]);
44 }); 73 });
45 group('multiple script tag per document allowed', () { 74
75 group('single script tag per document', () {
46 _testLinter('two top-level tags', { 76 _testLinter('two top-level tags', {
47 'a|web/test.html': '<!DOCTYPE html><html>' 77 'a|web/test.html': '<!DOCTYPE html><html>'
48 '<link rel="import" href="packages/polymer/polymer.html">' 78 '<link rel="import" href="packages/polymer/polymer.html">'
49 '<script type="application/dart" src="a.dart">' 79 '<script type="application/dart" src="a.dart">'
50 '</script>\n' 80 '</script>\n'
51 '<script type="application/dart" src="b.dart">' 81 '<script type="application/dart" src="b.dart">'
52 '</script>' 82 '</script>'
83 '<script src="packages/browser/dart.js"></script>',
84 }, [
85 'warning: Only one "application/dart" script tag per document is'
86 ' allowed. (web/test.html 1 0)',
87 ]);
88
89 _testLinter('two top-level tags, non entrypoint', {
90 'a|lib/test.html': '<!DOCTYPE html><html>'
91 '<script type="application/dart" src="a.dart">'
92 '</script>\n'
93 '<script type="application/dart" src="b.dart">'
94 '</script>'
53 '<script src="packages/browser/dart.js"></script>' 95 '<script src="packages/browser/dart.js"></script>'
54 }, []); 96 }, [
97 'warning: Only one "application/dart" script tag per document is'
98 ' allowed. (lib/test.html 1 0)',
99 ]);
55 100
56 _testLinter('tags inside elements', { 101 _testLinter('tags inside elements', {
57 'a|web/test.html': '<!DOCTYPE html><html>' 102 'a|web/test.html': '<!DOCTYPE html><html>'
58 '<link rel="import" href="packages/polymer/polymer.html">' 103 '<link rel="import" href="packages/polymer/polymer.html">'
59 '<polymer-element name="x-a">' 104 '<polymer-element name="x-a">'
60 '<script type="application/dart" src="a.dart">' 105 '<script type="application/dart" src="a.dart">'
61 '</script>' 106 '</script>'
62 '</polymer-element>\n' 107 '</polymer-element>\n'
63 '<script type="application/dart" src="b.dart">' 108 '<script type="application/dart" src="b.dart">'
64 '</script>' 109 '</script>'
65 '<script src="packages/browser/dart.js"></script>' 110 '<script src="packages/browser/dart.js"></script>',
66 }, []); 111 }, [
112 'warning: Only one "application/dart" script tag per document is'
113 ' allowed. (web/test.html 1 0)',
114 ]);
67 }); 115 });
68 116
69 group('doctype warning', () { 117 group('doctype warning', () {
70 _testLinter('in web', { 118 _testLinter('in web', {
71 'a|web/test.html': '<html></html>', 119 'a|web/test.html': '<html></html>',
72 }, [ 120 }, [
73 'warning: Unexpected start tag (html). Expected DOCTYPE. ' 121 'warning: Unexpected start tag (html). Expected DOCTYPE. '
74 '(web/test.html 0 0)', 122 '(web/test.html 0 0)',
75 'warning: $USE_POLYMER_HTML', 123 'warning: $USE_POLYMER_HTML',
124 'warning: $USE_INIT_DART',
76 ]); 125 ]);
77 126
78 _testLinter('in lib', { 127 _testLinter('in lib', {
79 'a|lib/test.html': '<html></html>', 128 'a|lib/test.html': '<html></html>',
80 }, []); 129 }, []);
81 }); 130 });
82 131
83 group('duplicate polymer-elements,', () { 132 group('duplicate polymer-elements,', () {
84 _testLinter('same file', { 133 _testLinter('same file', {
85 'a|lib/test.html': '''<html> 134 'a|lib/test.html': '''<html>
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 'warning: custom element with name "x-b" not found. (lib/test.html 1 0)' 252 'warning: custom element with name "x-b" not found. (lib/test.html 1 0)'
204 ]); 253 ]);
205 254
206 255
207 group('script type matches code', () { 256 group('script type matches code', () {
208 _testLinter('top-level, .dart url', { 257 _testLinter('top-level, .dart url', {
209 'a|lib/test.html': '''<html> 258 'a|lib/test.html': '''<html>
210 <script src="foo.dart"></script> 259 <script src="foo.dart"></script>
211 </html>'''.replaceAll(' ', ''), 260 </html>'''.replaceAll(' ', ''),
212 }, [ 261 }, [
213 'warning: Wrong script type, expected type="application/dart" or' 262 'warning: Wrong script type, expected type="application/dart".'
214 ' type="application/dart;component=1". (lib/test.html 1 0)' 263 ' (lib/test.html 1 0)'
215 ]); 264 ]);
216 265
217 _testLinter('in polymer-element, .dart url', { 266 _testLinter('in polymer-element, .dart url', {
218 'a|lib/test.html': '''<html> 267 'a|lib/test.html': '''<html>
219 <polymer-element name="x-a"> 268 <polymer-element name="x-a">
220 <script src="foo.dart"></script> 269 <script src="foo.dart"></script>
221 </polymer-element> 270 </polymer-element>
222 </html>'''.replaceAll(' ', ''), 271 </html>'''.replaceAll(' ', ''),
223 }, [ 272 }, [
224 'warning: Wrong script type, expected type="application/dart" or' 273 'warning: Wrong script type, expected type="application/dart".'
225 ' type="application/dart;component=1". (lib/test.html 2 0)' 274 ' (lib/test.html 2 0)'
226 ]); 275 ]);
227 276
228 _testLinter('in polymer-element, .js url', { 277 _testLinter('in polymer-element, .js url', {
229 'a|lib/test.html': '''<html> 278 'a|lib/test.html': '''<html>
230 <polymer-element name="x-a"> 279 <polymer-element name="x-a">
231 <script src="foo.js"></script> 280 <script src="foo.js"></script>
232 </polymer-element> 281 </polymer-element>
233 </html>'''.replaceAll(' ', ''), 282 </html>'''.replaceAll(' ', ''),
234 }, []); 283 }, []);
235 284
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 491
443 _testLinter(String name, Map inputFiles, List outputMessages, 492 _testLinter(String name, Map inputFiles, List outputMessages,
444 [bool solo = false]) { 493 [bool solo = false]) {
445 var linter = new Linter(new TransformOptions()); 494 var linter = new Linter(new TransformOptions());
446 var outputFiles = {}; 495 var outputFiles = {};
447 if (outputMessages.every((m) => m.startsWith('warning:'))) { 496 if (outputMessages.every((m) => m.startsWith('warning:'))) {
448 inputFiles.forEach((k, v) => outputFiles[k] = v); 497 inputFiles.forEach((k, v) => outputFiles[k] = v);
449 } 498 }
450 testPhases(name, [[linter]], inputFiles, outputFiles, outputMessages, solo); 499 testPhases(name, [[linter]], inputFiles, outputFiles, outputMessages, solo);
451 } 500 }
OLDNEW
« no previous file with comments | « pkg/polymer/test/build/import_inliner_test.dart ('k') | pkg/polymer/test/build/script_compactor_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698