Chromium Code Reviews| Index: pkg/polymer/test/mirror_loader_test.dart |
| diff --git a/pkg/polymer/test/mirror_loader_test.dart b/pkg/polymer/test/mirror_loader_test.dart |
| index b54e5e2ed77e9dbef835782937b77249d90dceb3..0de5500b944c3de22bb601949a9e69312c7214a5 100644 |
| --- a/pkg/polymer/test/mirror_loader_test.dart |
| +++ b/pkg/polymer/test/mirror_loader_test.dart |
| @@ -5,45 +5,47 @@ |
| import 'dart:async'; |
| import 'dart:html'; |
| +import 'dart:mirrors'; |
| + |
| import 'package:unittest/unittest.dart'; |
| import 'package:unittest/html_config.dart'; |
| -import 'package:polymer/polymer.dart'; |
| - |
| -@CustomTag('x-a') |
| -class XA extends PolymerElement { |
| - final String x = "a"; |
| - XA.created() : super.created(); |
| -} |
| +import 'package:path/path.dart' show url; |
| -// The next classes are here as a regression test for darbug.com/17929. Our |
| -// loader was incorrectly trying to retrieve the reflectiveType of these |
| -// classes. |
| -class Foo<T> {} |
| - |
| -@CustomTag('x-b') |
| -class XB<T> extends PolymerElement { |
| - final String x = "a"; |
| - XB.created() : super.created(); |
| -} |
| +import 'package:polymer/src/mirror_loader.dart'; |
|
Siggi Cherem (dart-lang)
2014/04/04 02:54:14
this test can no longer be written as an end-to-en
|
| +import 'mirror_loader_1.dart' as m1; |
| +import 'mirror_loader_2.dart' as m2; |
| +import 'mirror_loader_3.dart' as m3; |
| +import 'mirror_loader_4.dart' as m4; |
| main() { |
| useHtmlConfiguration(); |
| - runZoned(() { |
| - initPolymer().run(() { |
| - setUp(() => Polymer.onReady); |
| + test('registered correctly', () { |
| + expect(_discover(#mirror_loader_test1).length, 1); |
| + expect(_discover(#mirror_loader_test2).length, 1); |
| + }); |
| - test('XA was registered correctly', () { |
| - expect(querySelector('x-a').shadowRoot.nodes.first.text, 'a'); |
| - }); |
| + test('parameterized custom tags are not registered', () { |
| + runZoned(() { |
| + expect(_discover(#mirror_loader_test3).length, 0); |
| + }, onError: (e) { |
| + expect(e is UnsupportedError, isTrue); |
| + expect('$e', contains( |
| + 'Custom element classes cannot have type-parameters: XB')); |
| + }); |
| + }); |
| - test('XB was not registered', () { |
| - expect(querySelector('x-b').shadowRoot, null); |
| - }); |
| + test('registers correct types even when errors are found', () { |
| + runZoned(() { |
| + expect(_discover(#mirror_loader_test4).length, 1); |
| + }, onError: (e) { |
| + expect(e is UnsupportedError, isTrue); |
| + expect('$e', contains( |
| + 'Custom element classes cannot have type-parameters: XB')); |
| }); |
| - }, onError: (e) { |
| - expect(e is UnsupportedError, isTrue); |
| - expect('$e', contains( |
| - 'Custom element classes cannot have type-parameters: XB')); |
| }); |
| } |
| + |
| +final mirrors = currentMirrorSystem(); |
| +_discover(Symbol name) => |
| + discoverInitializers([mirrors.findLibrary(name).uri.toString()]); |