f8086c81ae
Collects files from `package:async_helper` and `tests/language` that are generally useful, so that all test-related helpers are in `package:expect`. Moves the two libraries from `package:async_helper` into `package:expect`, and the `tests/language/static_type_helper.dart` file too. Deprecates `async_minitest.dart`, to follow `minitest.dart`, expecting the Flutter use of it to have been fixed to not break on deprecation (I believe Flutter no longer breaks builds on deprecations at all). Patch 1 is the actual change. Patch 2+4+8 is changing all existing references to the files. Patch 6 ignores deprecation in files still using `async_minitest.dart`. 3+5+7+9 are updating this text to make the numbers match. Then it's just test-expectations and small tweaks from there. Change-Id: I1b665135b5fef9b9a0c3b340ffe9daf874d0174c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/373120 Reviewed-by: Nate Bosch <nbosch@google.com> Reviewed-by: Devon Carew <devoncarew@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com>
91 lines
2.6 KiB
Dart
91 lines
2.6 KiB
Dart
// Copyright (c) 2013, 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.
|
|
|
|
// Tests the functionality of js_util with HTML objects.
|
|
|
|
@JS()
|
|
library js_util_test;
|
|
|
|
import 'dart:html';
|
|
|
|
import 'package:js/js.dart';
|
|
import 'package:js/js_util.dart' as js_util;
|
|
import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package
|
|
|
|
@JS()
|
|
external void eval(String code);
|
|
|
|
@JS('Node')
|
|
external get JSNodeType;
|
|
|
|
@JS('Element')
|
|
external get JSElementType;
|
|
|
|
@JS('Text')
|
|
external get JSTextType;
|
|
|
|
@JS('HTMLCanvasElement')
|
|
external get JSHtmlCanvasElementType;
|
|
|
|
@JS()
|
|
class Foo {
|
|
external Foo();
|
|
}
|
|
|
|
main() {
|
|
eval(r""" function Foo() {} """);
|
|
|
|
test('hasProperty', () {
|
|
var textElement = new Text('foo');
|
|
expect(js_util.hasProperty(textElement, 'data'), isTrue);
|
|
});
|
|
|
|
test('getProperty', () {
|
|
var textElement = new Text('foo');
|
|
expect(js_util.getProperty(textElement, 'data'), equals('foo'));
|
|
});
|
|
|
|
test('setProperty', () {
|
|
var textElement = new Text('foo');
|
|
js_util.setProperty(textElement, 'data', 'bar');
|
|
expect(textElement.text, equals('bar'));
|
|
});
|
|
|
|
test('callMethod', () {
|
|
var canvas = new CanvasElement();
|
|
expect(
|
|
identical(canvas.getContext('2d'),
|
|
js_util.callMethod(canvas, 'getContext', ['2d'])),
|
|
isTrue);
|
|
});
|
|
|
|
test('instanceof', () {
|
|
var canvas = new Element.tag('canvas');
|
|
expect(js_util.instanceof(canvas, JSNodeType), isTrue);
|
|
expect(js_util.instanceof(canvas, JSTextType), isFalse);
|
|
expect(js_util.instanceof(canvas, JSElementType), isTrue);
|
|
expect(js_util.instanceof(canvas, JSHtmlCanvasElementType), isTrue);
|
|
var div = new Element.tag('div');
|
|
expect(js_util.instanceof(div, JSNodeType), isTrue);
|
|
expect(js_util.instanceof(div, JSTextType), isFalse);
|
|
expect(js_util.instanceof(div, JSElementType), isTrue);
|
|
expect(js_util.instanceof(div, JSHtmlCanvasElementType), isFalse);
|
|
|
|
var text = new Text('foo');
|
|
expect(js_util.instanceof(text, JSNodeType), isTrue);
|
|
expect(js_util.instanceof(text, JSTextType), isTrue);
|
|
expect(js_util.instanceof(text, JSElementType), isFalse);
|
|
|
|
var f = new Foo();
|
|
expect(js_util.instanceof(f, JSNodeType), isFalse);
|
|
});
|
|
|
|
test('callConstructor', () {
|
|
var textNode = js_util.callConstructor(JSTextType, ['foo']);
|
|
expect(js_util.instanceof(textNode, JSTextType), isTrue);
|
|
expect(textNode is Text, isTrue);
|
|
expect(textNode.text, equals('foo'));
|
|
});
|
|
}
|