Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Unified Diff: tests/html/js_typed_interop_test.dart

Issue 1209093005: Revert "Enhance dart:js interop in a backwards compatible manner." (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/html/js_array_test.dart ('k') | tools/dom/templates/html/dartium/html_dartium.darttemplate » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/html/js_typed_interop_test.dart
diff --git a/tests/html/js_typed_interop_test.dart b/tests/html/js_typed_interop_test.dart
deleted file mode 100644
index c8c02600743cdb4c345d992d4f709891ccfc16f7..0000000000000000000000000000000000000000
--- a/tests/html/js_typed_interop_test.dart
+++ /dev/null
@@ -1,139 +0,0 @@
-// 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.
-
-library jsArrayTest;
-
-import 'dart:html';
-import 'dart:js';
-
-import 'package:unittest/unittest.dart';
-import 'package:unittest/html_config.dart';
-
-_injectJs() {
- document.body.append(new ScriptElement()
- ..type = 'text/javascript'
- ..innerHtml = r"""
- var foo = {
- x: 3,
- z: 40, // Not specified in typed Dart API so should fail in checked mode.
- multiplyByX: function(arg) { return arg * this.x; },
- // This function can be torn off without having to bind this.
- multiplyBy2: function(arg) { return arg * 2; }
- };
-
- var foob = {
- x: 8,
- y: "why",
- multiplyByX: function(arg) { return arg * this.x; }
- };
-
- var bar = {
- x: "foo",
- multiplyByX: true
- };
-
- var selection = ["a", "b", "c", foo, bar];
- selection.doubleLength = function() { return this.length * 2; };
-""");
-}
-
-abstract class Foo {
- int get x;
- set x(int v);
- num multiplyByX(num y);
- num multiplyBy2(num y);
-}
-
-abstract class Foob extends Foo {
- final String y;
-}
-
-abstract class Bar {
- String get x;
- bool get multiplyByX;
-}
-
-class Baz {}
-
-// This class shows the pattern used by APIs such as jQuery that add methods
-// to Arrays.
-abstract class Selection implements List {
- num doubleLength();
-}
-
-Foo get foo => context['foo'];
-Foob get foob => context['foob'];
-Bar get bar => context['bar'];
-Selection get selection => context['selection'];
-
-main() {
- // Call experimental API to register Dart interfaces implemented by
- // JavaScript classes.
- registerJsInterfaces([Foo, Foob, Bar, Selection]);
-
- _injectJs();
-
- useHtmlConfiguration();
-
- group('property', () {
- test('get', () {
- expect(foo.x, equals(3));
- expect(foob.x, equals(8));
- expect(foob.y, equals("why"));
-
- // Exists in JS but not in API.
- expect(() => foo.z, throws);
- expect(bar.multiplyByX, isTrue);
- });
- test('set', () {
- foo.x = 42;
- expect(foo.x, equals(42));
- // Property tagged as read only in typed API.
- expect(() => foob.y = "bla", throws);
- expect(() => foo.unknownName = 42, throws);
- });
- });
-
- group('method', () {
- test('call', () {
- foo.x = 100;
- expect(foo.multiplyByX(4), equals(400));
- foob.x = 10;
- expect(foob.multiplyByX(4), equals(40));
- });
-
- test('tearoff', () {
- foo.x = 10;
- // TODO(jacobr): should we automatically bind "this" for tearoffs of JS
- // objects?
- JsFunction multiplyBy2 = foo.multiplyBy2;
- expect(multiplyBy2(5), equals(10));
- });
- });
-
- group('type check', () {
- test('js interfaces', () {
- expect(foo is JsObject, isTrue);
- // Cross-casts are allowed.
- expect(foo is Bar, isTrue);
- expect(selection is JsArray, isTrue);
-
- // We do know at runtime whether something is a JsArray or not.
- expect(foo is JsArray, isFalse);
- });
-
- test('dart interfaces', () {
- expect(foo is Function, isFalse);
- expect(selection is List, isTrue);
- });
- });
-
- group("registration", () {
- test('repeated fails', () {
- // The experimental registerJsInterfaces API has already been called so
- // it cannot be called a second time.
- expect(() => registerJsInterfaces([Baz]), throws);
- });
- });
-}
« no previous file with comments | « tests/html/js_array_test.dart ('k') | tools/dom/templates/html/dartium/html_dartium.darttemplate » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698