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

Side by Side Diff: dart/tests/lib/mirrors/mixin_test.dart

Issue 23180004: Change simpleName of anonymous mixin applications. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged with r27073 and merged tests. Created 7 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 | « dart/tests/lib/mirrors/mixin_dart2js_test.dart ('k') | no next file » | 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 test.mixin_test; 5 library test.mixin_test;
6 6
7 import 'dart:mirrors'; 7 import 'dart:mirrors';
8 8
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 10
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 Expect.equals(a, b); 54 Expect.equals(a, b);
55 expect(stringify(a), b); 55 expect(stringify(a), b);
56 expect(stringify(b), a); 56 expect(stringify(b), a);
57 } 57 }
58 58
59 testMixin() { 59 testMixin() {
60 checkClass(Mixin, [ 60 checkClass(Mixin, [
61 'Class(s(Mixin) in s(test.mixin_test), top-level)', 61 'Class(s(Mixin) in s(test.mixin_test), top-level)',
62 'Class(s(Object) in s(dart.core), top-level)', 62 'Class(s(Object) in s(dart.core), top-level)',
63 ]); 63 ]);
64
ahe 2013/09/03 22:42:27 Ryan's whitespace changes made it hard for me to m
64 expect( 65 expect(
65 '{i: Variable(s(i) in s(Mixin)),' 66 '{i: Variable(s(i) in s(Mixin)),'
66 ' m: Method(s(m) in s(Mixin))}', 67 ' m: Method(s(m) in s(Mixin))}',
67 reflectClass(Mixin).members); 68 reflectClass(Mixin).members);
68 expect( 69
69 '{Mixin: Method(s(Mixin) in s(Mixin), constructor)}', 70 expect('{Mixin: Method(s(Mixin) in s(Mixin), constructor)}',
70 reflectClass(Mixin).constructors); 71 reflectClass(Mixin).constructors);
71 } 72 }
72 73
73 testMixin2() { 74 testMixin2() {
74 checkClass(Mixin2, [ 75 checkClass(Mixin2, [
75 'Class(s(Mixin2) in s(test.mixin_test), top-level)', 76 'Class(s(Mixin2) in s(test.mixin_test), top-level)',
76 'Class(s(Object) in s(dart.core), top-level)', 77 'Class(s(Object) in s(dart.core), top-level)',
77 ]); 78 ]);
79
78 expect( 80 expect(
79 '{i2: Variable(s(i2) in s(Mixin2)),' 81 '{i2: Variable(s(i2) in s(Mixin2)),'
80 ' m2: Method(s(m2) in s(Mixin2))}', 82 ' m2: Method(s(m2) in s(Mixin2))}',
81 reflectClass(Mixin2).members); 83 reflectClass(Mixin2).members);
82 expect( 84
83 '{Mixin2: Method(s(Mixin2) in s(Mixin2), constructor)}', 85 expect('{Mixin2: Method(s(Mixin2) in s(Mixin2), constructor)}',
84 reflectClass(Mixin2).constructors); 86 reflectClass(Mixin2).constructors);
85 } 87 }
86 88
87 testMixinApplication() { 89 testMixinApplication() {
88 checkClass(MixinApplication, [ 90 checkClass(MixinApplication, [
89 'Class(s(MixinApplication) in s(test.mixin_test), top-level)', 91 'Class(s(MixinApplication) in s(test.mixin_test), top-level)',
90 'Class(s(C) in s(test.model), top-level)', 92 'Class(s(C) in s(test.model), top-level)',
91 'Class(s(B) in s(test.model), top-level)', 93 'Class(s(B) in s(test.model), top-level)',
92 'Class(s(A) in s(test.model), top-level)', 94 'Class(s(A) in s(test.model), top-level)',
93 'Class(s(Object) in s(dart.core), top-level)', 95 'Class(s(Object) in s(dart.core), top-level)',
94 ]); 96 ]);
95 97
98 String owner = 'Mixin';
99 owner = 'MixinApplication'; /// 01: ok
ngeoffray 2013/09/04 06:59:21 Does that mean the base file is a negative test?
ahe 2013/09/04 10:17:07 Not exactly. It means that you have two positive t
ngeoffray 2013/09/04 10:23:50 OK, could you please add a top-level comment on th
ahe 2013/09/04 13:31:40 Done.
96 expect( 100 expect(
97 '{i: Variable(s(i) in s(Mixin)),' 101 '{i: Variable(s(i) in s($owner)),'
98 ' m: Method(s(m) in s(Mixin))}', 102 ' m: Method(s(m) in s($owner))}',
99 reflectClass(MixinApplication).members); 103 reflectClass(MixinApplication).members);
100 expect( 104
101 '{MixinApplication: Method(s(MixinApplication) in s(MixinApplication),' 105 expect('{MixinApplication: Method(s(MixinApplication) in s(MixinApplication),'
102 ' constructor)}', 106 ' constructor)}',
103 reflectClass(MixinApplication).constructors); 107 reflectClass(MixinApplication).constructors);
104 108
105 expectSame(reflectClass(C), reflectClass(MixinApplication).superclass); 109 expectSame(reflectClass(C), reflectClass(MixinApplication).superclass);
106 } 110 }
107 111
108 testMixinApplicationA() { 112 testMixinApplicationA() {
113 // TODO(ahe): I don't think an anonymous mixin has an owner.
114 String owner = ' in s(test.mixin_test)';
115 owner = ''; /// 01: ok
109 checkClass(MixinApplicationA, [ 116 checkClass(MixinApplicationA, [
110 'Class(s(MixinApplicationA) in s(test.mixin_test), top-level)', 117 'Class(s(MixinApplicationA) in s(test.mixin_test), top-level)',
111 'Class(s(test.model.C with test.mixin_test.Mixin) in s(test.mixin_test),' 118 'Class(s(test.model.C with test.mixin_test.Mixin)$owner, top-level)',
112 ' top-level)',
113 'Class(s(C) in s(test.model), top-level)', 119 'Class(s(C) in s(test.model), top-level)',
114 'Class(s(B) in s(test.model), top-level)', 120 'Class(s(B) in s(test.model), top-level)',
115 'Class(s(A) in s(test.model), top-level)', 121 'Class(s(A) in s(test.model), top-level)',
116 'Class(s(Object) in s(dart.core), top-level)', 122 'Class(s(Object) in s(dart.core), top-level)',
117 ]); 123 ]);
118 124
125 owner = 'Mixin2';
126 owner = 'MixinApplicationA'; /// 01: ok
119 expect( 127 expect(
120 '{i2: Variable(s(i2) in s(Mixin2)),' 128 '{i2: Variable(s(i2) in s($owner)),'
121 ' m2: Method(s(m2) in s(Mixin2))}', 129 ' m2: Method(s(m2) in s($owner))}',
122 reflectClass(MixinApplicationA).members); 130 reflectClass(MixinApplicationA).members);
131
123 expect( 132 expect(
124 '{MixinApplicationA: Method(s(MixinApplicationA) in s(MixinApplicationA),' 133 '{MixinApplicationA: Method(s(MixinApplicationA) in s(MixinApplicationA),'
125 ' constructor)}', 134 ' constructor)}',
126 reflectClass(MixinApplicationA).constructors); 135 reflectClass(MixinApplicationA).constructors);
127 136
128 expect( 137 expect(
129 '{i: Variable(s(i) in s(Mixin)),' 138 '{i: Variable(s(i) in s(Mixin)),'
130 ' m: Method(s(m) in s(Mixin))}', 139 ' m: Method(s(m) in s(Mixin))}',
131 reflectClass(MixinApplicationA).superclass.members); 140 reflectClass(MixinApplicationA).superclass.members);
141
142 String name = 'test.model.C with test.mixin_test.Mixin';
143 name = 'Mixin'; /// 01: ok
132 expect( 144 expect(
133 '{test.model.C with test.mixin_test.Mixin:' 145 '{$name:'
134 ' Method(s(test.model.C with test.mixin_test.Mixin)' 146 ' Method(s($name)'
135 ' in s(test.model.C with test.mixin_test.Mixin), constructor)}', 147 ' in s($name), constructor)}',
136 reflectClass(MixinApplicationA).superclass.constructors); 148 reflectClass(MixinApplicationA).superclass.constructors);
137 149
138 expectSame( 150 expectSame(
139 reflectClass(C), 151 reflectClass(C),
140 reflectClass(MixinApplicationA).superclass.superclass); 152 reflectClass(MixinApplicationA).superclass.superclass);
141 } 153 }
142 154
143 testUnusedMixinApplication() { 155 testUnusedMixinApplication() {
144 checkClass(UnusedMixinApplication, [ 156 checkClass(UnusedMixinApplication, [
145 'Class(s(UnusedMixinApplication) in s(test.mixin_test), top-level)', 157 'Class(s(UnusedMixinApplication) in s(test.mixin_test), top-level)',
146 'Class(s(C) in s(test.model), top-level)', 158 'Class(s(C) in s(test.model), top-level)',
147 'Class(s(B) in s(test.model), top-level)', 159 'Class(s(B) in s(test.model), top-level)',
148 'Class(s(A) in s(test.model), top-level)', 160 'Class(s(A) in s(test.model), top-level)',
149 'Class(s(Object) in s(dart.core), top-level)', 161 'Class(s(Object) in s(dart.core), top-level)',
150 ]); 162 ]);
151 163
164 String owner = 'Mixin';
165 owner = 'UnusedMixinApplication'; /// 01: ok
152 expect( 166 expect(
153 '{i: Variable(s(i) in s(Mixin)),' 167 '{i: Variable(s(i) in s($owner)),'
154 ' m: Method(s(m) in s(Mixin))}', 168 ' m: Method(s(m) in s($owner))}',
155 reflectClass(UnusedMixinApplication).members); 169 reflectClass(UnusedMixinApplication).members);
170
156 expect( 171 expect(
157 '{UnusedMixinApplication: Method(s(UnusedMixinApplication)' 172 '{UnusedMixinApplication: Method(s(UnusedMixinApplication)'
158 ' in s(UnusedMixinApplication), constructor)}', 173 ' in s(UnusedMixinApplication), constructor)}',
159 reflectClass(UnusedMixinApplication).constructors); 174 reflectClass(UnusedMixinApplication).constructors);
160 175
161 expectSame(reflectClass(C), reflectClass(UnusedMixinApplication).superclass); 176 expectSame(reflectClass(C), reflectClass(UnusedMixinApplication).superclass);
162 } 177 }
163 178
164 testSubclass() { 179 testSubclass() {
180 String owner = ' in s(test.mixin_test)';
181 owner = ''; /// 01: ok
165 checkClass(Subclass, [ 182 checkClass(Subclass, [
166 'Class(s(Subclass) in s(test.mixin_test), top-level)', 183 'Class(s(Subclass) in s(test.mixin_test), top-level)',
167 'Class(s(test.model.C with test.mixin_test.Mixin) in s(test.mixin_test),' 184 'Class(s(test.model.C with test.mixin_test.Mixin)$owner, top-level)',
168 ' top-level)',
169 'Class(s(C) in s(test.model), top-level)', 185 'Class(s(C) in s(test.model), top-level)',
170 'Class(s(B) in s(test.model), top-level)', 186 'Class(s(B) in s(test.model), top-level)',
171 'Class(s(A) in s(test.model), top-level)', 187 'Class(s(A) in s(test.model), top-level)',
172 'Class(s(Object) in s(dart.core), top-level)', 188 'Class(s(Object) in s(dart.core), top-level)',
173 ]); 189 ]);
174 190
175 expect( 191 expect(
176 '{f: Method(s(f) in s(Subclass))}', 192 '{f: Method(s(f) in s(Subclass))}',
177 reflectClass(Subclass).members); 193 reflectClass(Subclass).members);
194
178 expect( 195 expect(
179 '{Subclass: Method(s(Subclass) in s(Subclass), constructor)}', 196 '{Subclass: Method(s(Subclass) in s(Subclass), constructor)}',
180 reflectClass(Subclass).constructors); 197 reflectClass(Subclass).constructors);
181 198
182 expect( 199 expect(
183 '{i: Variable(s(i) in s(Mixin)),' 200 '{i: Variable(s(i) in s(Mixin)),'
184 ' m: Method(s(m) in s(Mixin))}', 201 ' m: Method(s(m) in s(Mixin))}',
185 reflectClass(Subclass).superclass.members); 202 reflectClass(Subclass).superclass.members);
203
204 String name = 'test.model.C with test.mixin_test.Mixin';
205 name = 'Mixin'; /// 01: ok
186 expect( 206 expect(
187 '{test.model.C with test.mixin_test.Mixin:' 207 '{$name:'
188 ' Method(s(test.model.C with test.mixin_test.Mixin)' 208 ' Method(s($name)'
189 ' in s(test.model.C with test.mixin_test.Mixin), constructor)}', 209 ' in s($name), constructor)}',
190 reflectClass(Subclass).superclass.constructors); 210 reflectClass(Subclass).superclass.constructors);
191 211
192 expectSame( 212 expectSame(
193 reflectClass(C), 213 reflectClass(C),
194 reflectClass(Subclass).superclass.superclass); 214 reflectClass(Subclass).superclass.superclass);
195 } 215 }
196 216
197 testSubclass2() { 217 testSubclass2() {
198 checkClass(Subclass2, [ 218 checkClass(Subclass2, [
199 'Class(s(Subclass2) in s(test.mixin_test), top-level)', 219 'Class(s(Subclass2) in s(test.mixin_test), top-level)',
200 'Class(s(MixinApplication) in s(test.mixin_test), top-level)', 220 'Class(s(MixinApplication) in s(test.mixin_test), top-level)',
201 'Class(s(C) in s(test.model), top-level)', 221 'Class(s(C) in s(test.model), top-level)',
202 'Class(s(B) in s(test.model), top-level)', 222 'Class(s(B) in s(test.model), top-level)',
203 'Class(s(A) in s(test.model), top-level)', 223 'Class(s(A) in s(test.model), top-level)',
204 'Class(s(Object) in s(dart.core), top-level)', 224 'Class(s(Object) in s(dart.core), top-level)',
205 ]); 225 ]);
206 226
207 expect( 227 expect(
208 '{g: Method(s(g) in s(Subclass2))}', 228 '{g: Method(s(g) in s(Subclass2))}',
209 reflectClass(Subclass2).members); 229 reflectClass(Subclass2).members);
230
210 expect( 231 expect(
211 '{Subclass2: Method(s(Subclass2) in s(Subclass2), constructor)}', 232 '{Subclass2: Method(s(Subclass2) in s(Subclass2), constructor)}',
212 reflectClass(Subclass2).constructors); 233 reflectClass(Subclass2).constructors);
213 234
214 expectSame( 235 expectSame(
215 reflectClass(MixinApplication), 236 reflectClass(MixinApplication),
216 reflectClass(Subclass2).superclass); 237 reflectClass(Subclass2).superclass);
217 } 238 }
218 239
219 testSubclassA() { 240 testSubclassA() {
241 // TODO(ahe): I don't think an anonymous mixin has an owner.
242 String owner = ' in s(test.mixin_test)';
243 owner = ''; /// 01: ok
220 checkClass(SubclassA, [ 244 checkClass(SubclassA, [
221 'Class(s(SubclassA) in s(test.mixin_test), top-level)', 245 'Class(s(SubclassA) in s(test.mixin_test), top-level)',
222 'Class(s(test.model.C with test.mixin_test.Mixin, test.mixin_test.Mixin2)' 246 'Class(s(test.model.C with test.mixin_test.Mixin, test.mixin_test.Mixin2)'
223 ' in s(test.mixin_test), top-level)', 247 '$owner, top-level)',
224 'Class(s(test.model.C with test.mixin_test.Mixin) in s(test.mixin_test),' 248 'Class(s(test.model.C with test.mixin_test.Mixin)$owner, top-level)',
225 ' top-level)',
226 'Class(s(C) in s(test.model), top-level)', 249 'Class(s(C) in s(test.model), top-level)',
227 'Class(s(B) in s(test.model), top-level)', 250 'Class(s(B) in s(test.model), top-level)',
228 'Class(s(A) in s(test.model), top-level)', 251 'Class(s(A) in s(test.model), top-level)',
229 'Class(s(Object) in s(dart.core), top-level)', 252 'Class(s(Object) in s(dart.core), top-level)',
230 ]); 253 ]);
231 254
232 expect( 255 expect(
233 '{fa: Method(s(fa) in s(SubclassA))}', 256 '{fa: Method(s(fa) in s(SubclassA))}',
234 reflectClass(SubclassA).members); 257 reflectClass(SubclassA).members);
258
235 expect( 259 expect(
236 '{SubclassA: Method(s(SubclassA) in s(SubclassA), constructor)}', 260 '{SubclassA: Method(s(SubclassA) in s(SubclassA), constructor)}',
237 reflectClass(SubclassA).constructors); 261 reflectClass(SubclassA).constructors);
238 262
239 expect( 263 expect(
240 '{i2: Variable(s(i2) in s(Mixin2)),' 264 '{i2: Variable(s(i2) in s(Mixin2)),'
241 ' m2: Method(s(m2) in s(Mixin2))}', 265 ' m2: Method(s(m2) in s(Mixin2))}',
242 reflectClass(SubclassA).superclass.members); 266 reflectClass(SubclassA).superclass.members);
267
268 String name =
269 'test.model.C with test.mixin_test.Mixin, test.mixin_test.Mixin2';
270 name = 'Mixin2'; /// 01: ok
243 expect( 271 expect(
244 '{test.model.C with test.mixin_test.Mixin, test.mixin_test.Mixin2:' 272 '{$name: Method(s($name) in s($name), constructor)}',
245 ' Method(s(test.model.C with test.mixin_test.Mixin,'
246 ' test.mixin_test.Mixin2) in s(test.model.C with test.mixin_test.Mixin,'
247 ' test.mixin_test.Mixin2), constructor)}',
248 reflectClass(SubclassA).superclass.constructors); 273 reflectClass(SubclassA).superclass.constructors);
249 274
250 expect( 275 expect(
251 '{i: Variable(s(i) in s(Mixin)),' 276 '{i: Variable(s(i) in s(Mixin)),'
252 ' m: Method(s(m) in s(Mixin))}', 277 ' m: Method(s(m) in s(Mixin))}',
253 reflectClass(SubclassA).superclass.superclass.members); 278 reflectClass(SubclassA).superclass.superclass.members);
279
280 name = 'test.model.C with test.mixin_test.Mixin';
281 name = 'Mixin'; /// 01: ok
254 expect( 282 expect(
255 '{test.model.C with test.mixin_test.Mixin:' 283 '{$name:'
256 ' Method(s(test.model.C with test.mixin_test.Mixin)' 284 ' Method(s($name)'
257 ' in s(test.model.C with test.mixin_test.Mixin), constructor)}', 285 ' in s($name), constructor)}',
258 reflectClass(SubclassA).superclass.superclass.constructors); 286 reflectClass(SubclassA).superclass.superclass.constructors);
259 287
260 expectSame( 288 expectSame(
261 reflectClass(C), 289 reflectClass(C),
262 reflectClass(SubclassA).superclass.superclass.superclass); 290 reflectClass(SubclassA).superclass.superclass.superclass);
263 } 291 }
264 292
265 testSubclass2A() { 293 testSubclass2A() {
294 // TODO(ahe): I don't think an anonymous mixin has an owner.
295 String owner = ' in s(test.mixin_test)';
296 owner = ''; /// 01: ok
266 checkClass(Subclass2A, [ 297 checkClass(Subclass2A, [
267 'Class(s(Subclass2A) in s(test.mixin_test), top-level)', 298 'Class(s(Subclass2A) in s(test.mixin_test), top-level)',
268 'Class(s(MixinApplicationA) in s(test.mixin_test), top-level)', 299 'Class(s(MixinApplicationA) in s(test.mixin_test), top-level)',
269 'Class(s(test.model.C with test.mixin_test.Mixin) in s(test.mixin_test),' 300 'Class(s(test.model.C with test.mixin_test.Mixin)$owner,'
270 ' top-level)', 301 ' top-level)',
271 'Class(s(C) in s(test.model), top-level)', 302 'Class(s(C) in s(test.model), top-level)',
272 'Class(s(B) in s(test.model), top-level)', 303 'Class(s(B) in s(test.model), top-level)',
273 'Class(s(A) in s(test.model), top-level)', 304 'Class(s(A) in s(test.model), top-level)',
274 'Class(s(Object) in s(dart.core), top-level)', 305 'Class(s(Object) in s(dart.core), top-level)',
275 ]); 306 ]);
276 307
277 expect( 308 expect(
278 '{ga: Method(s(ga) in s(Subclass2A))}', 309 '{ga: Method(s(ga) in s(Subclass2A))}',
279 reflectClass(Subclass2A).members); 310 reflectClass(Subclass2A).members);
311
280 expect( 312 expect(
281 '{Subclass2A: Method(s(Subclass2A) in s(Subclass2A), constructor)}', 313 '{Subclass2A: Method(s(Subclass2A) in s(Subclass2A), constructor)}',
282 reflectClass(Subclass2A).constructors); 314 reflectClass(Subclass2A).constructors);
283 315
284 expectSame(reflectClass(MixinApplicationA), 316 expectSame(reflectClass(MixinApplicationA),
285 reflectClass(Subclass2A).superclass); 317 reflectClass(Subclass2A).superclass);
286 } 318 }
287 319
288 main() { 320 main() {
289 testMixin(); 321 testMixin();
290 testMixin2(); 322 testMixin2();
291 testMixinApplication(); 323 testMixinApplication();
292 testMixinApplicationA(); 324 testMixinApplicationA();
293 testUnusedMixinApplication(); 325 testUnusedMixinApplication();
294 testSubclass(); 326 testSubclass();
295 testSubclass2(); 327 testSubclass2();
296 testSubclassA(); 328 testSubclassA();
297 testSubclass2A(); 329 testSubclass2A();
298 } 330 }
OLDNEW
« no previous file with comments | « dart/tests/lib/mirrors/mixin_dart2js_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698