Chromium Code Reviews| Index: tests/compiler/dart2js/class_codegen_test.dart |
| diff --git a/tests/compiler/dart2js/class_codegen_test.dart b/tests/compiler/dart2js/class_codegen_test.dart |
| index 6d751f07cd60f75e9af72b8233dab16821dac61b..a682024f93d848b6a64caa73594958eff074c5be 100644 |
| --- a/tests/compiler/dart2js/class_codegen_test.dart |
| +++ b/tests/compiler/dart2js/class_codegen_test.dart |
| @@ -62,33 +62,66 @@ main() { |
| } |
| """; |
| + |
| +String getClassName(String generated, int idx) { |
|
floitsch
2012/10/25 12:58:38
index
|
| + RegExp classNameRE = new RegExp(r'\$\$.([A-Za-z]) ?= ?\{"":'); |
| + return classNameRE.allMatches(generated)[idx][1]; |
| +} |
| + |
| +String classRE(className) { |
| + return '\\\$.$className ?= ?\\{"":\\s*\\[\\],\\s*"super": ?"O(bject)?"'; |
| +} |
| + |
| +subClass() { |
| + |
| twoClasses() { |
| String generated = compileAll(TEST_ONE); |
| - Expect.isTrue(generated.contains('\$.A = {"": [],\n "super": "Object"')); |
| - Expect.isTrue(generated.contains('\$.B = {"": [],\n "super": "Object"')); |
| + String className = getClassName(generated, 0); |
| + String className2 = getClassName(generated, 1); |
| + Expect.isFalse(className == className2); |
| + Expect.isTrue(new RegExp(classRe(className)).hasMatch(generated)); |
| + Expect.isTrue(new RegExp(classRe(className2)).hasMatch(generated)); |
| } |
| subClass() { |
| - checkOutput(String generated) { |
| - Expect.isTrue(generated.contains('\$.A = {"": [],\n "super": "Object"')); |
| - Expect.isTrue(generated.contains('\$.B = {"": [],\n "super": "A"')); |
| + void checkForClass(String generated, String className, String superClass) { |
| + RegExp re = new RegExp( |
| + '\\\$\\.$className ?= ?\\{"":\\s*\\[\\],\\s*"super": ?"$superClass"'); |
|
floitsch
2012/10/25 12:58:38
Not sure if it's better, but it would get rid of s
|
| + Expect.isTrue(re.hasMatch(generated)); |
| + } |
| + |
| + checkOutput1(String generated) { |
| + String className = getClassName(generated, 0); |
| + String className2 = getClassName(generated, 1); |
| + checkForClass(generated, className, 'O(bject)?'); |
| + checkForClass(generated, className2, className); |
| + } |
| + |
| + checkOutput2(String generated) { |
| + String className = getClassName(generated, 0); |
| + String className2 = getClassName(generated, 1); |
| + checkForClass(generated, className, className2); |
| + checkForClass(generated, className2, 'O(bject)?'); |
| } |
| - checkOutput(compileAll(TEST_TWO)); |
| - checkOutput(compileAll(TEST_THREE)); |
| + checkOutput1(compileAll(TEST_TWO)); |
| + checkOutput2(compileAll(TEST_THREE)); |
| } |
| fieldTest() { |
| String generated = compileAll(TEST_FOUR); |
| - Expect.isTrue(generated.contains(r""" |
| -$.B = {"": ["y", "z", "x"], |
| + var className = getClassName(generated, 1); |
| + Expect.isTrue(generated.contains(""" |
| +\$.$className = {"": |
| + ["y", "z", "x"], |
| "super": "A" |
| }""")); |
| } |
| constructor1() { |
| String generated = compileAll(TEST_FIVE); |
| - Expect.isTrue(generated.contains(r"new $.A(a);")); |
| + Expect.isTrue(generated.contains(r"new $.A(a);") || |
| + generated.contains(r"new $.S(a);")); |
| } |
| main() { |