b464fc9037
This reverts commitcd2c566bcf. Reason for revert: Updating to not remove field used by Flutter engine. Original change's description: > Revert "Tweak `expect.dart` library." > > This reverts commitff5f391c0a. > > Reason for revert: The expect library is used by Flutter engine, and some of its tests use assertStatementsEnabled. There should be a migration path that doesn't require an atomic change, like adding the replacement api before removing the old one. > > Original change's description: > > Tweak `expect.dart` library. > > > > Make API more consistent for a few methods. > > Reduce the number of language features used in tests: > > * Never iterating an iterable, always converting it > > using `.toList()` first and iterating using indices > > (fx `setEquals`). > > Also require a `List` in places where an `Iterable` > > wasn't necessary. > > * Avoid doing complicated computations that are also > > used for the error message. Do simple check first, > > then recompute to get better error messages > > (fx `allDistinct`). > > > > Renamed some rarely used members for consistency > > (`stringContainsInOrder`->`containsInOrder`, > > where other string-contains functions just start > > with `contains`, and `containsOneOf` -> `containsAny` > > to match `Iterable.any` phrasing, and also it accepts > > if containing at least one, not precisely one.) > > > > Removed a function that wasn't used anywhere. > > > > Moved `assertStatementsEnabled` to `variations.dart` as `asserts`. > > Removed `typeAssertionsEnabled` and `checkedModeEnabled`. The former used in one place, where it was replaced with `checkedImplicitDowncasts` from `variations.dart`, the latter wasn't used anywhere. > > > > Deprecates `package:expect/minitest.dart`. It was never intended > > to be used for new tests, only as a help to convert existing tests > > written against `package:unit_test`. > > All existing imports marked as `// ignore: deprecated_member_use`. > > > > Change-Id: I07e21d4c0f3ccf11b82ee34af2668fdbb22264d2 > > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352360 > > Reviewed-by: Slava Egorov <vegorov@google.com> > > Reviewed-by: Ömer Ağacan <omersa@google.com> > > Reviewed-by: Nate Bosch <nbosch@google.com> > > Reviewed-by: Stephen Adams <sra@google.com> > > Commit-Queue: Lasse Nielsen <lrn@google.com> > > Change-Id: I360b4347470a0bb2b63c3108e2b83ee2a771bf3f > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362020 > Reviewed-by: Nate Bosch <nbosch@google.com> > Reviewed-by: Ömer Ağacan <omersa@google.com> > Reviewed-by: Stephen Adams <sra@google.com> > Reviewed-by: Leaf Petersen <leafp@google.com> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: William Hesse <whesse@google.com> CoreLibraryReviewExempt: Reland Change-Id: I53db40edc0733842a008839c3913d51c885e39ab Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362502 Reviewed-by: Alexander Thomas <athom@google.com> Reviewed-by: Nate Bosch <nbosch@google.com> Reviewed-by: Ömer Ağacan <omersa@google.com> Reviewed-by: Slava Egorov <vegorov@google.com> Reviewed-by: William Hesse <whesse@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com>
261 lines
9.0 KiB
Dart
261 lines
9.0 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 'package:expect/minitest.dart'; // ignore: deprecated_member_use_from_same_package
|
|
|
|
main() {
|
|
var isElement = predicate((x) => x is Element, 'is an Element');
|
|
var isCanvasElement =
|
|
predicate((x) => x is CanvasElement, 'is a CanvasElement');
|
|
var isDivElement = predicate((x) => x is DivElement, 'is a isDivElement');
|
|
|
|
var div = new DivElement();
|
|
div.id = 'test';
|
|
document.body!.nodes.add(div);
|
|
|
|
void initDiv() {
|
|
var style = div.style;
|
|
style
|
|
..padding = '4px'
|
|
..border = '0px solid #fff'
|
|
..margin = '6px'
|
|
..height = '10px'
|
|
..width = '11px'
|
|
..boxSizing = 'content-box'
|
|
..overflow = 'visible';
|
|
}
|
|
|
|
div.nodes.addAll([
|
|
new DivElement(),
|
|
new CanvasElement(),
|
|
new DivElement(),
|
|
new Text('Hello'),
|
|
new DivElement(),
|
|
new Text('World'),
|
|
new CanvasElement()
|
|
]);
|
|
|
|
group('dimensions', () {
|
|
setUp(initDiv);
|
|
|
|
test('contentEdge.height', () {
|
|
var all1 = querySelectorAll('#test');
|
|
|
|
expect(all1.contentEdge.height, 10);
|
|
expect(all1[0].getComputedStyle().getPropertyValue('height'), '10px');
|
|
|
|
all1.contentEdge.height = new Dimension.px(600);
|
|
all1.contentEdge.height = 600;
|
|
expect(all1.contentEdge.height, 600);
|
|
expect(all1[0].getComputedStyle().getPropertyValue('height'), '600px');
|
|
all1[0].style.visibility = 'hidden';
|
|
expect(all1.contentEdge.height, 600);
|
|
all1[0].style.visibility = 'visible';
|
|
|
|
// If user passes in a negative number, set height to 0.
|
|
all1.contentEdge.height = new Dimension.px(-1);
|
|
expect(all1.contentEdge.height, 0);
|
|
|
|
// Adding padding or border shouldn't affect the height for
|
|
// non-box-sizing.
|
|
div.style.padding = '20pc';
|
|
expect(all1.contentEdge.height, 0);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.contentEdge.height, 0);
|
|
});
|
|
|
|
test('contentEdge.height with border-box', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
div.style.boxSizing = 'border-box';
|
|
expect(all1.contentEdge.height, 2);
|
|
div.style.padding = '20pc';
|
|
expect(all1.contentEdge.height, 0);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.contentEdge.height, 0);
|
|
});
|
|
|
|
test('contentEdge.width', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
expect(all1.contentEdge.width, 11);
|
|
expect(all1[0].getComputedStyle().getPropertyValue('width'), '11px');
|
|
|
|
all1.contentEdge.width = new Dimension.px(600);
|
|
expect(all1.contentEdge.width, 600);
|
|
expect(all1[0].getComputedStyle().getPropertyValue('width'), '600px');
|
|
all1[0].style.visibility = 'hidden';
|
|
expect(all1.contentEdge.width, 600);
|
|
all1[0].style.visibility = 'visible';
|
|
|
|
// If user passes in a negative number, set width to 0.
|
|
all1.contentEdge.width = new Dimension.px(-1);
|
|
expect(all1.contentEdge.width, 0);
|
|
|
|
// Adding padding or border shouldn't affect the width.
|
|
div.style.padding = '20pc';
|
|
expect(all1.contentEdge.width, 0);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.contentEdge.width, 0);
|
|
});
|
|
|
|
test('contentEdge.width with border-box', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
div.style.boxSizing = 'border-box';
|
|
expect(all1.contentEdge.width, 3);
|
|
div.style.padding = '20pc';
|
|
expect(all1.contentEdge.width, 0);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.contentEdge.width, 0);
|
|
});
|
|
|
|
test('paddingEdge.height', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
expect(all1.paddingEdge.height, 18);
|
|
all1[0].style.visibility = 'hidden';
|
|
expect(all1.paddingEdge.height, 18);
|
|
all1[0].style.visibility = 'visible';
|
|
|
|
// Adding border shouldn't affect the paddingEdge.height.
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.paddingEdge.height, 18);
|
|
// Adding padding should affect the paddingEdge.height.
|
|
div.style.padding = '20pc';
|
|
expect(all1.paddingEdge.height, 650);
|
|
});
|
|
|
|
test('paddingEdge.height with border-box', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
div.style.boxSizing = 'border-box';
|
|
expect(all1.paddingEdge.height, 10);
|
|
div.style.padding = '20pc';
|
|
expect(all1.paddingEdge.height, 640);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.paddingEdge.height, 640);
|
|
});
|
|
|
|
test('paddingEdge.width', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
expect(all1.paddingEdge.width, 19);
|
|
all1[0].style.visibility = 'hidden';
|
|
expect(all1.paddingEdge.width, 19);
|
|
all1[0].style.visibility = 'visible';
|
|
|
|
// Adding border shouldn't affect the width.
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.paddingEdge.width, 19);
|
|
|
|
// Adding padding should affect the paddingEdge.width.
|
|
div.style.padding = '20pc';
|
|
expect(all1.paddingEdge.width, 651);
|
|
});
|
|
|
|
test('paddingEdge.width with border-box', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
div.style.boxSizing = 'border-box';
|
|
expect(all1.paddingEdge.width, 11);
|
|
div.style.padding = '20pc';
|
|
expect(all1.paddingEdge.width, 640);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.paddingEdge.width, 640);
|
|
});
|
|
|
|
test('borderEdge.height and marginEdge.height', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
expect(div.borderEdge.height, 18);
|
|
expect(div.marginEdge.height, 30);
|
|
expect(all1.borderEdge.height, 18);
|
|
expect(all1.marginEdge.height, 30);
|
|
all1[0].style.visibility = 'hidden';
|
|
expect(all1.borderEdge.height, 18);
|
|
all1[0].style.visibility = 'visible';
|
|
|
|
// Adding border should affect the borderEdge.height.
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.borderEdge.height, 22);
|
|
// Adding padding should affect the borderEdge.height.
|
|
div.style.padding = '20pc';
|
|
expect(all1.borderEdge.height, 654);
|
|
expect(all1.marginEdge.height, 666);
|
|
});
|
|
|
|
test('borderEdge.height and marginEdge.height with border-box', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
div.style.boxSizing = 'border-box';
|
|
expect(all1.borderEdge.height, 10);
|
|
expect(all1.marginEdge.height, 22);
|
|
div.style.padding = '20pc';
|
|
expect(all1.borderEdge.height, 640);
|
|
expect(all1.marginEdge.height, 652);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.borderEdge.height, 644);
|
|
expect(all1.marginEdge.height, 656);
|
|
});
|
|
|
|
test('borderEdge.width and marginEdge.width', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
expect(all1.borderEdge.width, 19);
|
|
expect(all1.marginEdge.width, 31);
|
|
|
|
// Adding border should affect the width.
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.borderEdge.width, 23);
|
|
|
|
// Adding padding should affect the borderEdge.width.
|
|
div.style.padding = '20pc';
|
|
expect(all1.borderEdge.width, 655);
|
|
expect(all1.marginEdge.width, 667);
|
|
});
|
|
|
|
test('borderEdge.width and marginEdge.width with border-box', () {
|
|
var all1 = document.querySelectorAll('#test');
|
|
div.style.boxSizing = 'border-box';
|
|
expect(all1.borderEdge.width, 11);
|
|
expect(all1.marginEdge.width, 23);
|
|
div.style.padding = '20pc';
|
|
expect(all1.borderEdge.width, 640);
|
|
expect(all1.marginEdge.width, 652);
|
|
div.style.border = '2px solid #fff';
|
|
expect(all1.borderEdge.width, 644);
|
|
expect(all1.marginEdge.width, 656);
|
|
});
|
|
|
|
test('left and top', () {
|
|
div.style.border = '1px solid #fff';
|
|
div.style.margin = '6px 7px';
|
|
div.style.padding = '4px 5px';
|
|
var all1 = document.querySelectorAll('#test');
|
|
|
|
expect(all1.borderEdge.left, all1[0].getBoundingClientRect().left);
|
|
expect(all1.borderEdge.top, all1[0].getBoundingClientRect().top);
|
|
|
|
expect(
|
|
all1.contentEdge.left, all1[0].getBoundingClientRect().left + 1 + 5);
|
|
expect(all1.contentEdge.top, all1[0].getBoundingClientRect().top + 1 + 4);
|
|
|
|
expect(all1.marginEdge.left, all1[0].getBoundingClientRect().left - 7);
|
|
expect(all1.marginEdge.top, all1[0].getBoundingClientRect().top - 6);
|
|
|
|
expect(all1.paddingEdge.left, all1[0].getBoundingClientRect().left + 1);
|
|
expect(all1.paddingEdge.top, all1[0].getBoundingClientRect().top + 1);
|
|
});
|
|
|
|
test('setHeight ElementList', () {
|
|
div.style.border = '1px solid #fff';
|
|
div.style.margin = '6px 7px';
|
|
div.style.padding = '4px 5px';
|
|
var all1 = document.querySelectorAll('div');
|
|
all1.contentEdge.height = new Dimension.px(200);
|
|
all1.contentEdge.height = 200;
|
|
for (Element elem in all1) {
|
|
expect(elem.contentEdge.height, 200);
|
|
}
|
|
all1.contentEdge.height = new Dimension.px(10);
|
|
for (Element elem in all1) {
|
|
expect(elem.contentEdge.height, 10);
|
|
}
|
|
});
|
|
});
|
|
}
|