83ff87e4a3
R=bkonyi@google.com Change-Id: I032f25969e75fb9966222da969e73a665bf35f44 Reviewed-on: https://dart-review.googlesource.com/12321 Reviewed-by: Bob Nystrom <rnystrom@google.com> Commit-Queue: Terry Lucas <terry@google.com>
99 lines
3.2 KiB
Dart
99 lines
3.2 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/minitest.dart';
|
|
|
|
import 'js_test_util.dart';
|
|
|
|
main() {
|
|
injectJs();
|
|
|
|
test('Date', () {
|
|
context['o'] = new DateTime(1995, 12, 17);
|
|
var dateType = context['Date'];
|
|
expect(context.callMethod('isPropertyInstanceOf', ['o', dateType]), isTrue);
|
|
context.deleteProperty('o');
|
|
});
|
|
|
|
skipIE9_test('window', () {
|
|
context['o'] = window;
|
|
var windowType = context['Window'];
|
|
expect(
|
|
context.callMethod('isPropertyInstanceOf', ['o', windowType]), isTrue);
|
|
context.deleteProperty('o');
|
|
});
|
|
|
|
skipIE9_test('document', () {
|
|
context['o'] = document;
|
|
var documentType = context['Document'];
|
|
expect(context.callMethod('isPropertyInstanceOf', ['o', documentType]),
|
|
isTrue);
|
|
context.deleteProperty('o');
|
|
});
|
|
|
|
skipIE9_test('Blob', () {
|
|
var fileParts = ['<a id="a"><b id="b">hey!</b></a>'];
|
|
context['o'] = new Blob(fileParts, 'text/html');
|
|
var blobType = context['Blob'];
|
|
expect(context.callMethod('isPropertyInstanceOf', ['o', blobType]), isTrue);
|
|
context.deleteProperty('o');
|
|
});
|
|
|
|
test('unattached DivElement', () {
|
|
context['o'] = new DivElement();
|
|
var divType = context['HTMLDivElement'];
|
|
expect(context.callMethod('isPropertyInstanceOf', ['o', divType]), isTrue);
|
|
context.deleteProperty('o');
|
|
});
|
|
|
|
test('Event', () {
|
|
context['o'] = new CustomEvent('test');
|
|
var eventType = context['Event'];
|
|
expect(
|
|
context.callMethod('isPropertyInstanceOf', ['o', eventType]), isTrue);
|
|
context.deleteProperty('o');
|
|
});
|
|
|
|
test('KeyRange', () {
|
|
if (IdbFactory.supported) {
|
|
context['o'] = new KeyRange.only(1);
|
|
var keyRangeType = context['IDBKeyRange'];
|
|
expect(context.callMethod('isPropertyInstanceOf', ['o', keyRangeType]),
|
|
isTrue);
|
|
context.deleteProperty('o');
|
|
}
|
|
});
|
|
|
|
// this test fails in IE9 for very weird, but unknown, reasons
|
|
// the expression context['ImageData'] fails if useHtmlConfiguration()
|
|
// is called, or if the other tests in this file are enabled
|
|
skipIE9_test('ImageData', () {
|
|
var canvas = new CanvasElement();
|
|
var ctx = canvas.getContext('2d') as CanvasRenderingContext2D;
|
|
context['o'] = ctx.createImageData(1, 1);
|
|
var imageDataType = context['ImageData'];
|
|
expect(context.callMethod('isPropertyInstanceOf', ['o', imageDataType]),
|
|
isTrue);
|
|
context.deleteProperty('o');
|
|
});
|
|
|
|
test('typed data: Int32List', () {
|
|
if (Platform.supportsTypedData) {
|
|
context['o'] = new Int32List.fromList([1, 2, 3, 4]);
|
|
var listType = context['Int32Array'];
|
|
// TODO(jacobr): make this test pass. Currently some type information
|
|
// is lost when typed arrays are passed between JS and Dart.
|
|
// expect(context.callMethod('isPropertyInstanceOf', ['o', listType]),
|
|
// isTrue);
|
|
context.deleteProperty('o');
|
|
}
|
|
});
|
|
}
|