Chromium Code Reviews| Index: runtime/vm/dart_api_impl_test.cc |
| =================================================================== |
| --- runtime/vm/dart_api_impl_test.cc (revision 25291) |
| +++ runtime/vm/dart_api_impl_test.cc (working copy) |
| @@ -8213,4 +8213,52 @@ |
| EXPECT_EQ(8, value); |
| } |
| + |
| +TEST_CASE(AmbiguousReference) { |
| + const char* kImportedScript1Chars = |
| + "library library1.dart;\n" |
| + "var foo;\n" |
| + "bar() => 'library1.dart bar()';\n" |
| + "baz() => 'library1.dart baz()';\n" |
| + "var bay;\n" |
| + "typedef int bax(int a, int b);\n" |
| + "class baw {}\n"; |
| + const char* kImportedScript2Chars = |
| + "library library2.dart;\n" |
| + "var foo;\n" |
| + "bar() => 'library2.dart bar()';\n" |
| + "var baz;\n" |
| + "bay() => 'library2.dart bay()';\n" |
| + "typedef double bax(int a, int b);\n" |
| + "var baw;\n"; |
| + const char* kScriptChars = |
| + "import 'library1.dart';\n" |
| + "import 'library2.dart';\n"; |
| + |
| + // Load imported libs. |
| + Dart_Handle url1 = NewString("library1.dart"); |
| + Dart_Handle source1 = NewString(kImportedScript1Chars); |
| + Dart_Handle imported_lib1 = Dart_LoadLibrary(url1, source1); |
| + EXPECT_VALID(imported_lib1); |
| + Dart_Handle url2 = NewString("library2.dart"); |
| + Dart_Handle source2 = NewString(kImportedScript2Chars); |
| + Dart_Handle imported_lib2 = Dart_LoadLibrary(url2, source2); |
| + EXPECT_VALID(imported_lib2); |
| + // Load main script. |
| + Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); |
| + EXPECT_VALID(lib); |
| + Dart_Handle prefix = NewString(""); |
| + Dart_Handle result; |
| + result = Dart_LibraryImportLibrary(lib, imported_lib1, prefix); |
| + EXPECT_VALID(result); |
| + result = Dart_LibraryImportLibrary(lib, imported_lib2, prefix); |
| + EXPECT_VALID(result); |
| + EXPECT(Dart_IsError(Dart_LookupVariable(lib, NewString("foo")))); |
| + EXPECT(Dart_IsError(Dart_LookupFunction(lib, NewString("bar")))); |
| + EXPECT(Dart_IsError(Dart_LookupFunction(lib, NewString("baz")))); |
| + EXPECT(Dart_IsError(Dart_LookupVariable(lib, NewString("bay")))); |
| + EXPECT(Dart_IsError(Dart_GetClass(lib, NewString("bax")))); |
| + EXPECT(Dart_IsError(Dart_GetClass(lib, NewString("baw")))); |
|
siva
2013/07/22 22:21:46
Would be good to have a positive test here too.
Sa
regis
2013/07/22 23:51:27
Done.
|
| +} |
| + |
| } // namespace dart |