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 '../descriptor.dart' as d; | |
8 import '../test_pub.dart'; | |
9 import 'utils.dart'; | |
10 | |
11 void main() { | |
12 initConfig(); | |
13 | |
14 integration("reports a dependency if a transformed local file is imported", | |
15 () { | |
16 d.dir(appPath, [ | |
17 d.pubspec({ | |
18 "name": "myapp", | |
19 "dependencies": {"foo": {"path": "../foo"}}, | |
20 "transformers": [ | |
21 {"foo": {"\$include": "lib/lib.dart"}}, | |
22 "myapp" | |
23 ] | |
24 }), | |
25 d.dir("lib", [ | |
26 d.file("myapp.dart", ""), | |
27 d.file("lib.dart", ""), | |
28 d.file("transformer.dart", transformer(["lib.dart"])) | |
29 ]) | |
30 ]).create(); | |
31 | |
32 d.dir("foo", [ | |
33 d.pubspec({"name": "foo", "version": "1.0.0"}), | |
34 d.dir("lib", [d.file("foo.dart", transformer())]) | |
35 ]).create(); | |
36 | |
37 expectDependencies({'myapp': ['foo'], 'foo': []}); | |
38 }); | |
39 | |
40 integration("reports a dependency if a transformed foreign file is imported", | |
41 () { | |
42 d.dir(appPath, [ | |
43 d.pubspec({ | |
44 "name": "myapp", | |
45 "dependencies": {"foo": {"path": "../foo"}}, | |
46 "transformers": ["myapp"] | |
47 }), | |
48 d.dir("lib", [ | |
49 d.file("myapp.dart", ""), | |
50 d.file("transformer.dart", transformer(["package:foo/foo.dart"])) | |
51 ]) | |
52 ]).create(); | |
53 | |
54 d.dir("foo", [ | |
55 d.pubspec({ | |
56 "name": "foo", | |
57 "version": "1.0.0", | |
58 "transformers": [{"foo": {"\$include": "lib/foo.dart"}}] | |
59 }), | |
60 d.dir("lib", [ | |
61 d.file("foo.dart", ""), | |
62 d.file("transformer.dart", transformer()) | |
63 ]) | |
64 ]).create(); | |
65 | |
66 expectDependencies({'myapp': ['foo'], 'foo': []}); | |
67 }); | |
68 | |
69 integration("reports a dependency if a transformed external package file is " | |
70 "imported from an export", () { | |
71 d.dir(appPath, [ | |
72 d.pubspec({ | |
73 "name": "myapp", | |
74 "dependencies": {"foo": {"path": "../foo"}}, | |
75 "transformers": ["myapp"] | |
76 }), | |
77 d.dir("lib", [ | |
78 d.file("myapp.dart", ""), | |
79 d.file("transformer.dart", transformer(["local.dart"])), | |
80 d.file("local.dart", "export 'package:foo/foo.dart';") | |
81 ]) | |
82 ]).create(); | |
83 | |
84 d.dir("foo", [ | |
85 d.pubspec({ | |
86 "name": "foo", | |
87 "version": "1.0.0", | |
88 "transformers": [{"foo": {"\$include": "lib/foo.dart"}}] | |
89 }), | |
90 d.dir("lib", [ | |
91 d.file("foo.dart", ""), | |
92 d.file("transformer.dart", transformer()) | |
93 ]) | |
94 ]).create(); | |
95 | |
96 expectDependencies({'myapp': ['foo'], 'foo': []}); | |
97 }); | |
98 | |
99 integration("reports a dependency if a transformed foreign file is " | |
100 "transitively imported", () { | |
101 d.dir(appPath, [ | |
102 d.pubspec({ | |
103 "name": "myapp", | |
104 "dependencies": {"foo": {"path": "../foo"}}, | |
105 "transformers": ["myapp"] | |
106 }), | |
107 d.dir("lib", [ | |
108 d.file("myapp.dart", ""), | |
109 d.file("transformer.dart", transformer(["local.dart"])), | |
110 d.file("local.dart", "import 'package:foo/foreign.dart';") | |
111 ]) | |
112 ]).create(); | |
113 | |
114 d.dir("foo", [ | |
115 d.pubspec({ | |
116 "name": "foo", | |
117 "version": "1.0.0", | |
118 "transformers": [{"foo": {"\$include": "lib/foo.dart"}}] | |
119 }), | |
120 d.dir("lib", [ | |
121 d.file("foo.dart", ""), | |
122 d.file("transformer.dart", transformer()), | |
123 d.file("foreign.dart", "import 'foo.dart';") | |
124 ]) | |
125 ]).create(); | |
126 | |
127 expectDependencies({'myapp': ['foo'], 'foo': []}); | |
128 }); | |
129 | |
130 integration("reports a dependency if a transformed foreign file is " | |
131 "transitively imported across packages", () { | |
132 d.dir(appPath, [ | |
133 d.pubspec({ | |
134 "name": "myapp", | |
135 "dependencies": {"foo": {"path": "../foo"}}, | |
136 "transformers": ["myapp"] | |
137 }), | |
138 d.dir("lib", [ | |
139 d.file("myapp.dart", ""), | |
140 d.file("transformer.dart", transformer(["package:foo/foo.dart"])), | |
141 ]) | |
142 ]).create(); | |
143 | |
144 d.dir("foo", [ | |
145 d.pubspec({ | |
146 "name": "foo", | |
147 "version": "1.0.0", | |
148 "dependencies": {"bar": {"path": "../bar"}} | |
149 }), | |
150 d.dir("lib", [d.file("foo.dart", "import 'package:bar/bar.dart';")]) | |
151 ]).create(); | |
152 | |
153 d.dir("bar", [ | |
154 d.pubspec({ | |
155 "name": "bar", | |
156 "version": "1.0.0", | |
157 "transformers": [{"bar": {"\$include": "lib/bar.dart"}}] | |
158 }), | |
159 d.dir("lib", [ | |
160 d.file("bar.dart", ""), | |
161 d.file("transformer.dart", transformer()) | |
162 ]) | |
163 ]).create(); | |
164 | |
165 expectDependencies({'myapp': ['bar'], 'bar': []}); | |
166 }); | |
167 | |
168 integration("reports a dependency if an imported file is transformed by a " | |
169 "different package", () { | |
170 d.dir(appPath, [ | |
171 d.pubspec({ | |
172 "name": "myapp", | |
173 "dependencies": {"foo": {"path": "../foo"}}, | |
174 "transformers": [ | |
175 {"foo": {'\$include': 'lib/local.dart'}}, | |
176 "myapp" | |
177 ] | |
178 }), | |
179 d.dir("lib", [ | |
180 d.file("myapp.dart", ""), | |
181 d.file("transformer.dart", transformer(["local.dart"])), | |
182 d.file("local.dart", "") | |
183 ]) | |
184 ]).create(); | |
185 | |
186 d.dir("foo", [ | |
187 d.pubspec({"name": "foo", "version": "1.0.0"}), | |
188 d.dir("lib", [d.file("transformer.dart", transformer())]) | |
189 ]).create(); | |
190 | |
191 expectDependencies({'myapp': ['foo'], 'foo': []}); | |
192 }); | |
193 } | |
OLD | NEW |