| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 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 | 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 smoke.test.codegen.generator_test; | 5 library smoke.test.codegen.generator_test; |
| 6 | 6 |
| 7 import 'package:smoke/codegen/generator.dart'; | 7 import 'package:smoke/codegen/generator.dart'; |
| 8 import 'package:unittest/unittest.dart'; | 8 import 'package:unittest/unittest.dart'; |
| 9 | 9 |
| 10 import 'common.dart' show checkResults; | 10 import 'common.dart' show checkResults; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 ' setters: {\n' | 47 ' setters: {\n' |
| 48 ' #foo: (o, v) { o.foo = v; },\n' | 48 ' #foo: (o, v) { o.foo = v; },\n' |
| 49 ' #i: (o, v) { o.i = v; },\n' | 49 ' #i: (o, v) { o.i = v; },\n' |
| 50 ' }));\n'); | 50 ' }));\n'); |
| 51 }); | 51 }); |
| 52 | 52 |
| 53 test('names/symbols', () { | 53 test('names/symbols', () { |
| 54 var generator = new SmokeCodeGenerator(); | 54 var generator = new SmokeCodeGenerator(); |
| 55 generator.addSymbol('i'); | 55 generator.addSymbol('i'); |
| 56 generator.addSymbol('foo'); | 56 generator.addSymbol('foo'); |
| 57 generator.addSymbol('a.b.c'); |
| 58 generator.addSymbol('a.b.[]'); |
| 59 generator.addSymbol('[]'); |
| 60 generator.addSymbol('+'); |
| 57 checkResults(generator, initCall: | 61 checkResults(generator, initCall: |
| 58 'useGeneratedCode(new StaticConfiguration(\n' | 62 'useGeneratedCode(new StaticConfiguration(\n' |
| 59 ' checkedMode: false,\n' | 63 ' checkedMode: false,\n' |
| 60 ' names: {\n' | 64 ' names: {\n' |
| 65 ' const Symbol(\'+\'): r\'+\',\n' |
| 66 ' const Symbol(\'[]\'): r\'[]\',\n' |
| 67 ' const Symbol(\'a.b.[]\'): r\'a.b.[]\',\n' |
| 68 ' #a.b.c: r\'a.b.c\',\n' |
| 61 ' #foo: r\'foo\',\n' | 69 ' #foo: r\'foo\',\n' |
| 62 ' #i: r\'i\',\n' | 70 ' #i: r\'i\',\n' |
| 63 ' }));\n'); | 71 ' }));\n'); |
| 64 }); | 72 }); |
| 65 | 73 |
| 74 group('invalid symbols', () { |
| 75 var invalidError = |
| 76 predicate((e) => e is StateError && '$e'.contains("invalid symbol")); |
| 77 test('traling period', () { |
| 78 var generator = new SmokeCodeGenerator(); |
| 79 generator.addSymbol('a.'); |
| 80 var sb = new StringBuffer(); |
| 81 expect(() => generator.writeInitCall(sb), throwsA(invalidError)); |
| 82 }); |
| 83 |
| 84 test('operator in the middle', () { |
| 85 var generator = new SmokeCodeGenerator(); |
| 86 generator.addSymbol('a.[].b'); |
| 87 var sb = new StringBuffer(); |
| 88 expect(() => generator.writeInitCall(sb), throwsA(invalidError)); |
| 89 }); |
| 90 }); |
| 91 |
| 66 test('getters, setters, and names', () { | 92 test('getters, setters, and names', () { |
| 67 var generator = new SmokeCodeGenerator(); | 93 var generator = new SmokeCodeGenerator(); |
| 68 generator.addGetter('i'); | 94 generator.addGetter('i'); |
| 69 generator.addSetter('i'); | 95 generator.addSetter('i'); |
| 70 generator.addSetter('foo'); | 96 generator.addSetter('foo'); |
| 71 generator.addSymbol('foo'); | 97 generator.addSymbol('foo'); |
| 72 checkResults(generator, initCall: | 98 checkResults(generator, initCall: |
| 73 'useGeneratedCode(new StaticConfiguration(\n' | 99 'useGeneratedCode(new StaticConfiguration(\n' |
| 74 ' checkedMode: false,\n' | 100 ' checkedMode: false,\n' |
| 75 ' getters: {\n' | 101 ' getters: {\n' |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 ' smoke_0.A: {\n' | 218 ' smoke_0.A: {\n' |
| 193 ' #foo: const Declaration(#foo, int, isFinal: true),\n' | 219 ' #foo: const Declaration(#foo, int, isFinal: true),\n' |
| 194 ' },\n' | 220 ' },\n' |
| 195 ' },\n' | 221 ' },\n' |
| 196 ' names: {\n' | 222 ' names: {\n' |
| 197 ' #c: r\'c\',\n' | 223 ' #c: r\'c\',\n' |
| 198 ' #d: r\'d\',\n' | 224 ' #d: r\'d\',\n' |
| 199 ' }));\n'); | 225 ' }));\n'); |
| 200 }); | 226 }); |
| 201 } | 227 } |
| OLD | NEW |