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

Unified Diff: test/transformer_test.dart

Issue 865293002: support basic identifiers in constructors (Closed) Base URL: git@github.com:dart-lang/static-init.git@master
Patch Set: add support for list and map literals Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« test/common.dart ('K') | « test/common.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/transformer_test.dart
diff --git a/test/transformer_test.dart b/test/transformer_test.dart
index b27069a5423e34a12176bdc8a1f05733946cc532..0a35a3ecdc9b4c9c661b54cc141c2f28c1425523 100644
--- a/test/transformer_test.dart
+++ b/test/transformer_test.dart
@@ -13,84 +13,121 @@ main() {
var transformer =
new InitializeTransformer('web/index.dart', 'web/index.bootstrap.dart');
- testPhases('transformer', [[transformer]], {
+ testPhases('basic', [[transformer]], {
'a|web/index.dart': '''
- library web_foo;
+ library web_foo;
- import 'foo.dart';
- ''',
+ import 'foo.dart';
+ ''',
'a|web/foo.dart': '''
- @constInit
- library foo;
+ @constInit
+ library foo;
- import 'package:initialize/initialize.dart';
- import 'package:bar/bar.dart';
+ import 'package:initialize/initialize.dart';
+ import 'package:bar/bar.dart';
- @constInit
- class Foo extends Bar {}
+ @constInit
+ class Foo extends Bar {}
- @initMethod
- foo() {}
- ''',
+ @initMethod
+ foo() {}
+ ''',
'bar|lib/bar.dart': '''
- @DynamicInit('bar')
- @DynamicInit('bar2')
- library bar;
+ @DynamicInit('bar')
+ @DynamicInit('bar2')
+ library bar;
- import 'package:initialize/initialize.dart';
+ import 'package:initialize/initialize.dart';
- @DynamicInit('Bar')
- @DynamicInit('Bar2')
- class Bar {}
+ @DynamicInit('Bar')
+ @DynamicInit('Bar2')
+ class Bar {}
- @DynamicInit('bar()')
- @initMethod
- bar() {}
- ''',
+ @DynamicInit('bar()')
+ @initMethod
+ bar() {}
+ ''',
// Mock out the Initialize package plus some initializers.
- 'initialize|lib/initialize.dart': '''
- library initialize;
-
- abstract class Initializer<T> {}
-
- class _ConstInit extends Initializer<dynamic> {
- const ConstInit();
- }
- const _ConstInit constInit = const _ConstInit();
-
- class DynamicInit extends Initializer<dynamic> {
- final String _name;
- const DynamicInit(this._name);
- }
-
- class _InitMethod implements Initializer<Function> {
- const _InitMethod();
- }
- const _InitMethod initMethod = const _InitMethod();
- '''
+ 'initialize|lib/initialize.dart': mockInitialize
}, {
'a|web/index.bootstrap.dart': '''
- import 'package:initialize/src/static_loader.dart';
- import 'index.dart' as i0;
- import 'package:bar/bar.dart' as i1;
- import 'package:initialize/initialize.dart' as i2;
- import 'foo.dart' as i3;
-
- main() {
- initializers.addAll([
- new InitEntry(const i2.DynamicInit('bar'), #bar),
- new InitEntry(const i2.DynamicInit('bar2'), #bar),
- new InitEntry(const i2.DynamicInit('bar()'), i1.bar),
- new InitEntry(i2.initMethod, i1.bar),
- new InitEntry(const i2.DynamicInit('Bar'), i1.Bar),
- new InitEntry(const i2.DynamicInit('Bar2'), i1.Bar),
- new InitEntry(i2.constInit, #foo),
- new InitEntry(i2.initMethod, i3.foo),
- new InitEntry(i2.constInit, i3.Foo),
- ]);
-
- i0.main();
- }
- '''.replaceAll(' ', '')
+ import 'package:initialize/src/static_loader.dart';
+ import 'index.dart' as i0;
+ import 'package:bar/bar.dart' as i1;
+ import 'package:initialize/initialize.dart' as i2;
+ import 'foo.dart' as i3;
+
+ main() {
+ initializers.addAll([
+ new InitEntry(const i2.DynamicInit('bar'), #bar),
+ new InitEntry(const i2.DynamicInit('bar2'), #bar),
+ new InitEntry(const i2.DynamicInit('bar()'), i1.bar),
+ new InitEntry(i2.initMethod, i1.bar),
+ new InitEntry(const i2.DynamicInit('Bar'), i1.Bar),
+ new InitEntry(const i2.DynamicInit('Bar2'), i1.Bar),
+ new InitEntry(i2.constInit, #foo),
+ new InitEntry(i2.initMethod, i3.foo),
+ new InitEntry(i2.constInit, i3.Foo),
+ ]);
+
+ i0.main();
+ }
+ '''.replaceAll(' ', '')
+ });
+
+ testPhases('constructor arguments', [[transformer]], {
+ 'a|web/index.dart': '''
+ @DynamicInit(foo)
+ @DynamicInit(Foo.foo)
+ @DynamicInit([foo, Foo.foo, 'foo'])
Siggi Cherem (dart-lang) 2015/01/23 17:56:28 this would become invalid :)
jakemac 2015/01/23 21:34:39 Done.
+ @DynamicInit(const [foo, Foo.foo, 'foo'])
Siggi Cherem (dart-lang) 2015/01/23 17:56:28 DynamicInit takes a String argument, maybe change
jakemac 2015/01/23 21:34:38 Done.
+ @DynamicInit({'foo': foo, 'Foo.foo': Foo.foo, 'bar': 'bar'})
+ @DynamicInit(const {'foo': foo, 'Foo.foo': Foo.foo, 'bar': 'bar'})
+ @DynamicInit('foo')
+ @DynamicInit(true)
+ @DynamicInit(null)
+ @DynamicInit(1)
+ @DynamicInit(1.1)
+ library web_foo;
+
+ import 'package:initialize/initialize.dart';
+ import 'foo.dart';
+ ''',
+ 'a|web/foo.dart': '''
+ library foo;
+
+ const String foo = 'foo';
+
+ class Foo {
+ static foo = 'Foo.foo';
+ }
+ ''',
+ // Mock out the Initialize package plus some initializers.
+ 'initialize|lib/initialize.dart': mockInitialize
+ }, {
+ 'a|web/index.bootstrap.dart': '''
+ import 'package:initialize/src/static_loader.dart';
+ import 'index.dart' as i0;
+ import 'package:initialize/initialize.dart' as i1;
+ import 'foo.dart' as i2;
+
+ main() {
+ initializers.addAll([
+ new InitEntry(const i1.DynamicInit(i2.foo), #web_foo),
+ new InitEntry(const i1.DynamicInit(i2.Foo.foo), #web_foo),
+ new InitEntry(const i1.DynamicInit([i2.foo, i2.Foo.foo, 'foo']), #web_foo),
+ new InitEntry(const i1.DynamicInit(const [i2.foo, i2.Foo.foo, 'foo']), #web_foo),
+ new InitEntry(const i1.DynamicInit({'foo': i2.foo, 'Foo.foo': i2.Foo.foo, 'bar': 'bar'}), #web_foo),
+ new InitEntry(const i1.DynamicInit(const {'foo': i2.foo, 'Foo.foo': i2.Foo.foo, 'bar': 'bar'}), #web_foo),
+ new InitEntry(const i1.DynamicInit('foo'), #web_foo),
+ new InitEntry(const i1.DynamicInit(true), #web_foo),
+ new InitEntry(const i1.DynamicInit(null), #web_foo),
+ new InitEntry(const i1.DynamicInit(1), #web_foo),
+ new InitEntry(const i1.DynamicInit(1.1), #web_foo),
+ ]);
+
+ i0.main();
+ }
+ '''.replaceAll(' ', '')
});
}
« test/common.dart ('K') | « test/common.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698