OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 @JS() |
| 6 library js_typed_interop_rename_static_test; |
| 7 |
| 8 import 'dart:html'; |
| 9 |
| 10 import 'package:js/js.dart'; |
| 11 import 'package:js/js_util.dart' as js_util; |
| 12 import 'package:expect/minitest.dart'; |
| 13 |
| 14 @JS('JSTopLevelField') |
| 15 external set topLevelFieldOnlySetter(v); |
| 16 |
| 17 @JS('JSTopLevelField') |
| 18 external get topLevelFieldOnlyGetter; |
| 19 |
| 20 @JS() |
| 21 external get topLevelFieldNoRename; |
| 22 |
| 23 @JS() |
| 24 external set topLevelSetterNoRename(v); |
| 25 |
| 26 @JS() |
| 27 external topLevelMethod(v); |
| 28 |
| 29 @JS('topLevelMethod') |
| 30 external renamedTopLevelMethod(v); |
| 31 |
| 32 @JS('JSFoo') |
| 33 class Foo { |
| 34 @JS('JSBar') |
| 35 external static get bar; |
| 36 |
| 37 @JS('JSBar') |
| 38 external static set bar(v); |
| 39 |
| 40 @JS('JSBar2') |
| 41 external static get bar2; |
| 42 |
| 43 @JS('JSBaz') |
| 44 external static set baz(v); |
| 45 |
| 46 @JS('JSMethodAddBar') |
| 47 external static addBar(a); |
| 48 } |
| 49 |
| 50 main() { |
| 51 document.body.append(new ScriptElement() |
| 52 ..type = 'text/javascript' |
| 53 ..innerHtml = r""" |
| 54 window.JSFoo = { |
| 55 'JSBar': 42, |
| 56 'JSBar2': 80, |
| 57 'JSMethodAddBar': function(a,b) { return a + this.JSBar; } |
| 58 }; |
| 59 window.JSTopLevelField = 91; |
| 60 window.topLevelFieldNoRename = 8; |
| 61 window.topLevelMethod = function(a) { return a * 2; }; |
| 62 """); |
| 63 |
| 64 group('rename static', () { |
| 65 test('getter', () { |
| 66 expect(Foo.bar, equals(42)); |
| 67 expect(Foo.bar2, equals(80)); |
| 68 expect(topLevelFieldOnlyGetter, 91); |
| 69 expect(topLevelFieldNoRename, 8); |
| 70 }); |
| 71 |
| 72 test('setter', () { |
| 73 Foo.baz = 100; |
| 74 expect(js_util.getProperty(js_util.getProperty(window, 'JSFoo'), 'JSBaz'), |
| 75 equals(100)); |
| 76 Foo.bar = 30; |
| 77 expect(Foo.bar, equals(30)); |
| 78 expect(js_util.getProperty(js_util.getProperty(window, 'JSFoo'), 'JSBar'), |
| 79 equals(30)); |
| 80 topLevelFieldOnlySetter = 83; |
| 81 expect(topLevelFieldOnlyGetter, 83); |
| 82 topLevelSetterNoRename = 10; |
| 83 expect(js_util.getProperty(window, 'topLevelSetterNoRename'), 10); |
| 84 }); |
| 85 |
| 86 test('method', () { |
| 87 Foo.bar = 100; |
| 88 expect(Foo.addBar(10), equals(110)); |
| 89 Foo.bar = 200; |
| 90 expect(Foo.addBar(10), equals(210)); |
| 91 expect(topLevelMethod(10), equals(20)); |
| 92 expect(renamedTopLevelMethod(10), equals(20)); |
| 93 }); |
| 94 }); |
| 95 } |
OLD | NEW |