fix(transformer): Add getters for events.

closes https://github.com/angular/angular/issues/2725
This commit is contained in:
Jacob MacDonald
2015-06-25 07:29:20 -07:00
parent d037c082fb
commit 5a21dc5340
6 changed files with 118 additions and 18 deletions
@@ -9,6 +9,8 @@ import '../common/read_file.dart';
var formatter = new DartFormatter();
main() => allTests();
void allTests() {
var reader = new TestAssetReader();
@@ -18,8 +20,8 @@ void allTests() {
var expected = formatter.format(
readFile('bind_generator/basic_bind_files/expected/bar.ng_deps.dart'));
var output = formatter
.format(await createNgSetters(reader, new AssetId('a', inputPath)));
var output = formatter.format(
await createNgSettersAndGetters(reader, new AssetId('a', inputPath)));
expect(output).toEqual(expected);
});
@@ -30,8 +32,19 @@ void allTests() {
var expected = formatter.format(readFile(
'bind_generator/duplicate_bind_name_files/expected/soup.ng_deps.dart'));
var output = formatter
.format(await createNgSetters(reader, new AssetId('a', inputPath)));
var output = formatter.format(
await createNgSettersAndGetters(reader, new AssetId('a', inputPath)));
expect(output).toEqual(expected);
});
it('should generate a getter for a `events` property in an annotation.',
() async {
var inputPath = 'bind_generator/events_files/bar.ng_deps.dart';
var expected = formatter.format(
readFile('bind_generator/events_files/expected/bar.ng_deps.dart'));
var output = formatter.format(
await createNgSettersAndGetters(reader, new AssetId('a', inputPath)));
expect(output).toEqual(expected);
});
}
@@ -0,0 +1,19 @@
library bar.ng_deps.dart;
import 'bar.dart';
import 'package:angular2/src/core/annotations_impl/annotations.dart';
var _visited = false;
void initReflector(reflector) {
if (_visited) return;
_visited = true;
reflector
..registerType(ToolTip, {
'factory': () => new ToolTip(),
'parameters': const [],
'annotations': const [
const Directive(
selector: '[tool-tip]', events: ['onOpen', 'close: onClose'])
]
});
}
@@ -0,0 +1,20 @@
library bar.ng_deps.dart;
import 'bar.dart';
import 'package:angular2/src/core/annotations_impl/annotations.dart';
var _visited = false;
void initReflector(reflector) {
if (_visited) return;
_visited = true;
reflector
..registerType(ToolTip, {
'factory': () => new ToolTip(),
'parameters': const [],
'annotations': const [
const Directive(
selector: '[tool-tip]', events: ['onOpen', 'close: onClose'])
]
})
..registerGetters({'onOpen': (o) => o.onOpen, 'onClose': (o) => o.close});
}