Index: pkg/smoke/test/codegen/generator_test.dart |
diff --git a/pkg/smoke/test/codegen/generator_test.dart b/pkg/smoke/test/codegen/generator_test.dart |
index ca8b000bd2beb4e72117eab4dae92da65b9ff872..a115ed9729319fbad4a353679ec482f0bdb5a34f 100644 |
--- a/pkg/smoke/test/codegen/generator_test.dart |
+++ b/pkg/smoke/test/codegen/generator_test.dart |
@@ -54,15 +54,41 @@ main() { |
var generator = new SmokeCodeGenerator(); |
generator.addSymbol('i'); |
generator.addSymbol('foo'); |
+ generator.addSymbol('a.b.c'); |
+ generator.addSymbol('a.b.[]'); |
+ generator.addSymbol('[]'); |
+ generator.addSymbol('+'); |
checkResults(generator, initCall: |
'useGeneratedCode(new StaticConfiguration(\n' |
' checkedMode: false,\n' |
' names: {\n' |
+ ' const Symbol(\'+\'): r\'+\',\n' |
+ ' const Symbol(\'[]\'): r\'[]\',\n' |
+ ' const Symbol(\'a.b.[]\'): r\'a.b.[]\',\n' |
+ ' #a.b.c: r\'a.b.c\',\n' |
' #foo: r\'foo\',\n' |
' #i: r\'i\',\n' |
' }));\n'); |
}); |
+ group('invalid symbols', () { |
+ var invalidError = |
+ predicate((e) => e is StateError && '$e'.contains("invalid symbol")); |
+ test('traling period', () { |
+ var generator = new SmokeCodeGenerator(); |
+ generator.addSymbol('a.'); |
+ var sb = new StringBuffer(); |
+ expect(() => generator.writeInitCall(sb), throwsA(invalidError)); |
+ }); |
+ |
+ test('operator in the middle', () { |
+ var generator = new SmokeCodeGenerator(); |
+ generator.addSymbol('a.[].b'); |
+ var sb = new StringBuffer(); |
+ expect(() => generator.writeInitCall(sb), throwsA(invalidError)); |
+ }); |
+ }); |
+ |
test('getters, setters, and names', () { |
var generator = new SmokeCodeGenerator(); |
generator.addGetter('i'); |