OLD | NEW |
| (Empty) |
1 // Copyright (c) 2014, 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 | |
5 library pub_tests; | |
6 | |
7 import 'package:scheduled_test/scheduled_test.dart'; | |
8 | |
9 import '../descriptor.dart' as d; | |
10 import '../test_pub.dart'; | |
11 import 'utils.dart'; | |
12 | |
13 void main() { | |
14 initConfig(); | |
15 | |
16 integration("reports no dependencies if no transformers are used", () { | |
17 d.dir(appPath, [d.pubspec({ | |
18 "name": "myapp", | |
19 "dependencies": { | |
20 "foo": { | |
21 "path": "../foo" | |
22 } | |
23 } | |
24 })]).create(); | |
25 | |
26 d.dir("foo", [d.libPubspec("foo", "1.0.0")]).create(); | |
27 | |
28 expectDependencies({}); | |
29 }); | |
30 | |
31 integration( | |
32 "reports no dependencies if a transformer is used in a " | |
33 "package that doesn't expose a transformer", | |
34 () { | |
35 d.dir(appPath, [d.pubspec({ | |
36 "name": "myapp", | |
37 "dependencies": { | |
38 "foo": { | |
39 "path": "../foo" | |
40 } | |
41 }, | |
42 "transformers": ["foo"] | |
43 })]).create(); | |
44 | |
45 d.dir( | |
46 "foo", | |
47 [ | |
48 d.libPubspec("foo", "1.0.0"), | |
49 d.dir("lib", [d.file("foo.dart", transformer())])]).create(); | |
50 | |
51 expectDependencies({ | |
52 "foo": [] | |
53 }); | |
54 }); | |
55 | |
56 integration("reports no dependencies for non-file/package imports", () { | |
57 d.dir(appPath, [d.pubspec({ | |
58 "name": "myapp", | |
59 "dependencies": { | |
60 "foo": { | |
61 "path": "../foo" | |
62 } | |
63 }, | |
64 "transformers": ["myapp"] | |
65 }), | |
66 d.dir( | |
67 "lib", | |
68 [ | |
69 d.file( | |
70 "myapp.dart", | |
71 transformer( | |
72 ["dart:async", "http://dartlang.org/nonexistent.dart"]
))])]).create(); | |
73 | |
74 d.dir( | |
75 "foo", | |
76 [ | |
77 d.libPubspec("foo", "1.0.0"), | |
78 d.dir("lib", [d.file("foo.dart", transformer())])]).create(); | |
79 | |
80 expectDependencies({ | |
81 "myapp": [] | |
82 }); | |
83 }); | |
84 | |
85 integration("reports no dependencies for a single self transformer", () { | |
86 d.dir(appPath, [d.pubspec({ | |
87 "name": "myapp", | |
88 "transformers": ["myapp"] | |
89 }), d.dir("lib", [d.file("myapp.dart", transformer())])]).create(); | |
90 | |
91 expectDependencies({ | |
92 "myapp": [] | |
93 }); | |
94 }); | |
95 | |
96 integration( | |
97 "reports no dependencies if a transformer applies to files that " | |
98 "aren't used by the exposed transformer", | |
99 () { | |
100 d.dir(appPath, [d.pubspec({ | |
101 "name": "myapp", | |
102 "dependencies": { | |
103 "foo": { | |
104 "path": "../foo" | |
105 } | |
106 }, | |
107 "transformers": [{ | |
108 "foo": { | |
109 "\$include": "lib/myapp.dart" | |
110 } | |
111 }, { | |
112 "foo": { | |
113 "\$exclude": "lib/transformer.dart" | |
114 } | |
115 }, "myapp"] | |
116 }), | |
117 d.dir( | |
118 "lib", | |
119 [ | |
120 d.file("myapp.dart", ""), | |
121 d.file("transformer.dart", transformer())])]).create(); | |
122 | |
123 d.dir( | |
124 "foo", | |
125 [ | |
126 d.libPubspec("foo", "1.0.0"), | |
127 d.dir("lib", [d.file("foo.dart", transformer())])]).create(); | |
128 | |
129 expectDependencies({ | |
130 "myapp": [], | |
131 "foo": [] | |
132 }); | |
133 }); | |
134 | |
135 integration( | |
136 "reports no dependencies if a transformer applies to a " | |
137 "dependency's files that aren't used by the exposed transformer", | |
138 () { | |
139 d.dir(appPath, [d.pubspec({ | |
140 "name": "myapp", | |
141 "dependencies": { | |
142 "foo": { | |
143 "path": "../foo" | |
144 } | |
145 }, | |
146 "transformers": ["myapp"] | |
147 }), | |
148 d.dir( | |
149 "lib", | |
150 [ | |
151 d.file("myapp.dart", ""), | |
152 d.file("transformer.dart", transformer(["package:foo/foo.dart"
]))])]).create(); | |
153 | |
154 d.dir("foo", [d.pubspec({ | |
155 "name": "foo", | |
156 "version": "1.0.0", | |
157 "transformers": [{ | |
158 "foo": { | |
159 "\$exclude": "lib/foo.dart" | |
160 } | |
161 }] | |
162 }), | |
163 d.dir( | |
164 "lib", | |
165 [d.file("foo.dart", ""), d.file("transformer.dart", transformer())
])]).create(); | |
166 | |
167 expectDependencies({ | |
168 'myapp': [], | |
169 'foo': [] | |
170 }); | |
171 }); | |
172 | |
173 test("reports no dependencies on transformers in future phases", () { | |
174 d.dir(appPath, [d.pubspec({ | |
175 "name": "myapp", | |
176 "transformers": [{ | |
177 "myapp/first": { | |
178 "\$include": "lib/myapp.dart" | |
179 } | |
180 }, { | |
181 "myapp/second": { | |
182 "\$include": "lib/first.dart" | |
183 } | |
184 }, { | |
185 "myapp/third": { | |
186 "\$include": "lib/second.dart" | |
187 } | |
188 }] | |
189 }), | |
190 d.dir( | |
191 "lib", | |
192 [ | |
193 d.file("myapp.dart", ""), | |
194 d.file("first.dart", transformer()), | |
195 d.file("second.dart", transformer()), | |
196 d.file("third.dart", transformer())])]).create(); | |
197 | |
198 expectDependencies({ | |
199 'myapp/first': [], | |
200 'myapp/second': [], | |
201 'myapp/third': [] | |
202 }); | |
203 }); | |
204 } | |
OLD | NEW |