6c757957db
DDC's codegen test copies those files to a local "gen" directory so that it can do stuff like splitting out the multitests before it compiles them to JS. I left all of that alone, so the rest of DDC's test infrastructure is unchanged. The very first step that builds the "gen" directory just copies from sdk/tests/..._strong/... instead and the rest is good to go. I did not move not_yet_strong_tests.dart somewhere more accessible yet because I'm not sure if kernel needs it or where it should go. I did not create any status files because DDC doesn't need them and there are no test suites for the new directories for the other platforms.
261 lines
8.7 KiB
Dart
261 lines
8.7 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';
|
|
|
|
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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('#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 = queryAll('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);
|
|
}
|
|
});
|
|
});
|
|
}
|