4cc31f8f4f
There are no behavioral changes here, I just ran `dart format` on the `tests/lib/html/` directory. Change-Id: I221b2a370adc393e49621db1d37aa6eeb09b3015 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/425329 Reviewed-by: Srujan Gaddam <srujzs@google.com> Auto-Submit: Bob Nystrom <rnystrom@google.com> Commit-Queue: Bob Nystrom <rnystrom@google.com>
121 lines
3.4 KiB
Dart
121 lines
3.4 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.
|
|
|
|
import 'dart:html';
|
|
import 'dart:indexed_db' show IdbFactory, KeyRange;
|
|
import 'dart:typed_data' show Int32List;
|
|
import 'dart:js';
|
|
|
|
import 'package:js/js_util.dart' as js_util;
|
|
import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package
|
|
|
|
import 'js_test_util.dart';
|
|
|
|
main() {
|
|
injectJs();
|
|
|
|
test('DateTime', () {
|
|
var date = context.callMethod('getNewDate');
|
|
expect(date is DateTime, isTrue);
|
|
});
|
|
|
|
test('window', () {
|
|
expect(context['window'] is Window, isTrue);
|
|
});
|
|
|
|
test('foreign browser objects should be proxied', () {
|
|
var iframe = new IFrameElement();
|
|
document.body!.children.add(iframe);
|
|
var proxy = new JsObject.fromBrowserObject(iframe);
|
|
|
|
// Window
|
|
var contentWindow = proxy['contentWindow'];
|
|
expect(contentWindow is! Window, isTrue);
|
|
expect(contentWindow is JsObject, isTrue);
|
|
|
|
// Node
|
|
var foreignDoc = contentWindow['document'];
|
|
expect(foreignDoc is! Node, isTrue);
|
|
expect(foreignDoc is JsObject, isTrue);
|
|
|
|
// Event
|
|
var clicked = false;
|
|
foreignDoc['onclick'] = (e) {
|
|
expect(e is! Event, isTrue);
|
|
expect(e is JsObject, isTrue);
|
|
clicked = true;
|
|
};
|
|
|
|
context.callMethod('fireClickEvent', [contentWindow]);
|
|
expect(clicked, isTrue);
|
|
});
|
|
|
|
test('foreign functions pass function is checks', () {
|
|
var iframe = new IFrameElement();
|
|
document.body!.children.add(iframe);
|
|
var proxy = new JsObject.fromBrowserObject(iframe);
|
|
|
|
var contentWindow = proxy['contentWindow'];
|
|
var foreignDoc = contentWindow['document'];
|
|
|
|
// Function
|
|
var foreignFunction = foreignDoc['createElement'];
|
|
expect(foreignFunction is JsFunction, isTrue);
|
|
|
|
// Verify that internal isChecks in callMethod work.
|
|
foreignDoc.callMethod('createElement', ['div']);
|
|
|
|
var typedContentWindow = js_util.getProperty(iframe, 'contentWindow');
|
|
var typedForeignDoc = js_util.getProperty(typedContentWindow, 'document');
|
|
|
|
var typedForeignFunction = js_util.getProperty(
|
|
typedForeignDoc,
|
|
'createElement',
|
|
);
|
|
expect(typedForeignFunction is Function, isTrue);
|
|
js_util.callMethod(typedForeignDoc, 'createElement', ['div']);
|
|
});
|
|
|
|
test('document', () {
|
|
expect(context['document'] is Document, isTrue);
|
|
});
|
|
|
|
skipIE9_test('Blob', () {
|
|
var blob = context.callMethod('getNewBlob');
|
|
expect(blob is Blob, isTrue);
|
|
expect(blob.type, equals('text/html'));
|
|
});
|
|
|
|
test('unattached DivElement', () {
|
|
var node = context.callMethod('getNewDivElement');
|
|
expect(node is DivElement, isTrue);
|
|
});
|
|
|
|
test('Event', () {
|
|
var event = context.callMethod('getNewEvent');
|
|
expect(event is Event, true);
|
|
});
|
|
|
|
test('KeyRange', () {
|
|
if (IdbFactory.supported) {
|
|
var node = context.callMethod('getNewIDBKeyRange');
|
|
expect(node is KeyRange, isTrue);
|
|
}
|
|
});
|
|
|
|
test('ImageData', () {
|
|
var node = context.callMethod('getNewImageData');
|
|
expect(node is ImageData, isTrue);
|
|
});
|
|
|
|
test('typed data: Int32Array', () {
|
|
if (Platform.supportsTypedData) {
|
|
var list = context.callMethod('getNewInt32Array');
|
|
print(list);
|
|
expect(list is Int32List, isTrue);
|
|
expect(list, equals([1, 2, 3, 4, 5, 6, 7, 8]));
|
|
}
|
|
});
|
|
}
|