| Index: pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_rename_static_test.dart
|
| diff --git a/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_rename_static_test.dart b/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_rename_static_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..99c3bac40f2c9d66867fddc3e048901dc560e7b0
|
| --- /dev/null
|
| +++ b/pkg/dev_compiler/test/codegen/lib/html/js_typed_interop_rename_static_test.dart
|
| @@ -0,0 +1,95 @@
|
| +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +@JS()
|
| +library js_typed_interop_rename_static_test;
|
| +
|
| +import 'dart:html';
|
| +
|
| +import 'package:js/js.dart';
|
| +import 'package:js/js_util.dart' as js_util;
|
| +import 'package:expect/minitest.dart';
|
| +
|
| +@JS('JSTopLevelField')
|
| +external set topLevelFieldOnlySetter(v);
|
| +
|
| +@JS('JSTopLevelField')
|
| +external get topLevelFieldOnlyGetter;
|
| +
|
| +@JS()
|
| +external get topLevelFieldNoRename;
|
| +
|
| +@JS()
|
| +external set topLevelSetterNoRename(v);
|
| +
|
| +@JS()
|
| +external topLevelMethod(v);
|
| +
|
| +@JS('topLevelMethod')
|
| +external renamedTopLevelMethod(v);
|
| +
|
| +@JS('JSFoo')
|
| +class Foo {
|
| + @JS('JSBar')
|
| + external static get bar;
|
| +
|
| + @JS('JSBar')
|
| + external static set bar(v);
|
| +
|
| + @JS('JSBar2')
|
| + external static get bar2;
|
| +
|
| + @JS('JSBaz')
|
| + external static set baz(v);
|
| +
|
| + @JS('JSMethodAddBar')
|
| + external static addBar(a);
|
| +}
|
| +
|
| +main() {
|
| + document.body.append(new ScriptElement()
|
| + ..type = 'text/javascript'
|
| + ..innerHtml = r"""
|
| +window.JSFoo = {
|
| + 'JSBar': 42,
|
| + 'JSBar2': 80,
|
| + 'JSMethodAddBar': function(a,b) { return a + this.JSBar; }
|
| +};
|
| +window.JSTopLevelField = 91;
|
| +window.topLevelFieldNoRename = 8;
|
| +window.topLevelMethod = function(a) { return a * 2; };
|
| +""");
|
| +
|
| + group('rename static', () {
|
| + test('getter', () {
|
| + expect(Foo.bar, equals(42));
|
| + expect(Foo.bar2, equals(80));
|
| + expect(topLevelFieldOnlyGetter, 91);
|
| + expect(topLevelFieldNoRename, 8);
|
| + });
|
| +
|
| + test('setter', () {
|
| + Foo.baz = 100;
|
| + expect(js_util.getProperty(js_util.getProperty(window, 'JSFoo'), 'JSBaz'),
|
| + equals(100));
|
| + Foo.bar = 30;
|
| + expect(Foo.bar, equals(30));
|
| + expect(js_util.getProperty(js_util.getProperty(window, 'JSFoo'), 'JSBar'),
|
| + equals(30));
|
| + topLevelFieldOnlySetter = 83;
|
| + expect(topLevelFieldOnlyGetter, 83);
|
| + topLevelSetterNoRename = 10;
|
| + expect(js_util.getProperty(window, 'topLevelSetterNoRename'), 10);
|
| + });
|
| +
|
| + test('method', () {
|
| + Foo.bar = 100;
|
| + expect(Foo.addBar(10), equals(110));
|
| + Foo.bar = 200;
|
| + expect(Foo.addBar(10), equals(210));
|
| + expect(topLevelMethod(10), equals(20));
|
| + expect(renamedTopLevelMethod(10), equals(20));
|
| + });
|
| + });
|
| +}
|
|
|