// 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/minitest.dart'; main() { var isRectList = predicate((x) => x is DomRectList, 'should be a DomRectList'); var isListOfRectangle = predicate((x) => x is List, 'should be a List'); 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)); }); }