blob: 0d85b875072e2dc71628493b5e39eac4706d52da [file] [log] [blame]
// Copyright (c) 2020, 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 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package
main() {
var isRectList = predicate(
(x) => x is DomRectList,
'should be a DomRectList',
);
var isListOfRectangle = predicate(
(x) => x is List<Rectangle>,
'should be a List<Rectangle>',
);
var isRectangle = predicate((x) => x is Rectangle, 'should be a Rectangle');
var isDomRectReadOnly = predicate(
(x) => x is DomRectReadOnly,
'should be a DomRectReadOnly',
);
insertTestDiv() {
var element = new Element.tag('div');
element.innerHtml = r'''
A large block of text should go here. Click this
block of text multiple times to see each line
highlight with every click of the mouse button.
''';
document.body!.append(element);
return element;
}
test("DomRectList test", () {
insertTestDiv();
var range = new Range();
var rects = range.getClientRects();
expect(rects, isListOfRectangle);
expect(rects, isRectList);
});
test("ClientRect ==", () {
var rect1 = document.body!.getBoundingClientRect();
var rect2 = document.body!.getBoundingClientRect();
expect(rect1, isRectangle);
expect(rect1, isDomRectReadOnly);
expect(rect1, equals(rect2));
});
}