Index: LayoutTests/fast/css/large-numbers.html |
diff --git a/LayoutTests/fast/css/large-numbers.html b/LayoutTests/fast/css/large-numbers.html |
index a52a7b3f91041e5119dfaeabe4f11ee2c9e59c8c..3fcbe55c7e5eb9f320af355481e1003611f72ed7 100644 |
--- a/LayoutTests/fast/css/large-numbers.html |
+++ b/LayoutTests/fast/css/large-numbers.html |
@@ -18,19 +18,32 @@ |
function testSize(width, opt_expectedWidth) |
{ |
var expectedWidth = typeof opt_expectedWidth == 'number' ? opt_expectedWidth : width; |
- |
+ |
el.style.width = width + 'px'; |
var style = window.getComputedStyle(el, null); |
var rect = el.getBoundingClientRect(); |
+ if (el.offsetWidth == expectedWidth && rect.width == expectedWidth) |
+ testPassed('element.width = ' + width + 'px, returns offsetWidth, rect.width expected.'); |
+ else |
+ testFailed('element.width = ' + width + 'px, returns offsetWidth ' + el.offsetWidth + ', rect.width ' + rect.width + ', expected ' + expectedWidth + '.'); |
+ } |
+ |
+ function testComputedWidth(width, opt_expectedWidth) |
+ { |
+ var expectedWidth = typeof opt_expectedWidth == 'number' ? opt_expectedWidth : width; |
+ |
+ el.style.width = width + 'px'; |
+ |
+ var style = window.getComputedStyle(el, null); |
var computedWidth = Number(style.width.replace('px', '')); |
- if (el.offsetWidth == expectedWidth && rect.width == expectedWidth && computedWidth == expectedWidth) |
- testPassed('element.width = ' + width + 'px, returns offsetWidth, rect.width and computed width as expected.'); |
+ if (computedWidth == expectedWidth) |
+ testPassed('element.width = ' + width + 'px, returns computed width as expected.'); |
else |
- testFailed('element.width = ' + width + 'px, returns offsetWidth ' + el.offsetWidth + ', rect.width ' + rect.width + ' and computed width ' + computedWidth + ', expected ' + expectedWidth + '.'); |
+ testFailed('element.width = ' + width + 'px, returns computed width ' + computedWidth + ', expected ' + expectedWidth + '.'); |
} |
- |
- |
+ |
+ |
function testLeft(left, opt_expectedLeft) |
{ |
var expectedLeft = typeof opt_expectedLeft == 'number' ? opt_expectedLeft : left; |
@@ -39,13 +52,26 @@ |
var style = window.getComputedStyle(el, null); |
var rect = el.getBoundingClientRect(); |
+ if (el.offsetLeft == expectedLeft && rect.left == expectedLeft) |
+ testPassed('element.left = ' + left + 'px, returns offsetLeft, rect.left as expected.'); |
+ else |
+ testFailed('element.left = ' + left + 'px, returns offsetLeft ' + el.offsetLeft + ', rect.left ' + rect.left + ', expected ' + expectedLeft + '.'); |
+ } |
+ |
+ function testComputedLeft(left, opt_expectedLeft) |
+ { |
+ var expectedLeft = typeof opt_expectedLeft == 'number' ? opt_expectedLeft : left; |
+ |
+ el.style.left = left + 'px'; |
+ |
+ var style = window.getComputedStyle(el, null); |
var computedLeft = Number(style.left.replace('px', '')); |
- if (el.offsetLeft == expectedLeft && rect.left == expectedLeft && computedLeft == expectedLeft) |
- testPassed('element.left = ' + left + 'px, returns offsetLeft, rect.left and computed left as expected.'); |
+ if (computedLeft == expectedLeft) |
+ testPassed('element.left = ' + left + 'px, returns computed left as expected.'); |
else |
- testFailed('element.left = ' + left + 'px, returns offsetLeft ' + el.offsetLeft + ', rect.left ' + rect.left + ' and computed left ' + computedLeft + ', expected ' + expectedLeft + '.'); |
+ testFailed('element.left = ' + left + 'px, returns computedLeft, expected ' + expectedLeft + '.'); |
} |
- |
+ |
var el = document.createElement('div'); |
el.className = 'test'; |
document.body.appendChild(el); |
@@ -81,6 +107,39 @@ |
testSize(-10000000000, 0); |
testSize(-100000000000, 0); |
+ MAX_VALUE = 33554400; |
+ MIN_VALUE = -33554400; |
+ |
+ testComputedWidth(0); |
+ testComputedWidth(1); |
+ testComputedWidth(10); |
+ testComputedWidth(100); |
+ testComputedWidth(10000); |
+ testComputedWidth(100000); |
+ testComputedWidth(1000000); |
+ testComputedWidth(10000000); |
+ testComputedWidth(100000000, MAX_VALUE); |
+ testComputedWidth(1000000000, MAX_VALUE); |
+ testComputedWidth(10000000000, MAX_VALUE); |
+ testComputedWidth(100000000000, MAX_VALUE); |
+ testComputedWidth(1000000000000, MAX_VALUE); |
+ |
+ testSize(0, 0); |
+ testSize(-1, 0); |
+ testSize(-10, 0); |
+ testSize(-100, 0); |
+ testSize(-10000, 0); |
+ testSize(-100000, 0); |
+ testSize(-1000000, 0); |
+ testSize(-10000000, 0); |
+ testSize(-100000000, 0); |
+ testSize(-1000000000, 0); |
+ testSize(-10000000000, 0); |
+ testSize(-100000000000, 0); |
+ |
+ MAX_VALUE = 33554428; |
+ MIN_VALUE = -33554430; |
+ |
// Test setting style.left, negative values are considered valid. |
testLeft(0); |
testLeft(1); |
@@ -109,6 +168,36 @@ |
testLeft(-100000000000, MIN_VALUE); |
testLeft(-1000000000000, MIN_VALUE); |
+ MAX_VALUE = 33554400; |
+ MIN_VALUE = -33554400; |
+ |
+ testComputedLeft(0); |
+ testComputedLeft(1); |
+ testComputedLeft(10); |
+ testComputedLeft(100); |
+ testComputedLeft(10000); |
+ testComputedLeft(100000); |
+ testComputedLeft(1000000); |
+ testComputedLeft(10000000); |
+ testComputedLeft(100000000, MAX_VALUE); |
+ testComputedLeft(1000000000, MAX_VALUE); |
+ testComputedLeft(10000000000, MAX_VALUE); |
+ testComputedLeft(100000000000, MAX_VALUE); |
+ testComputedLeft(1000000000000, MAX_VALUE); |
+ |
+ testComputedLeft(-1); |
+ testComputedLeft(-10); |
+ testComputedLeft(-100); |
+ testComputedLeft(-10000); |
+ testComputedLeft(-100000); |
+ testComputedLeft(-1000000); |
+ testComputedLeft(-10000000); |
+ testComputedLeft(-100000000, MIN_VALUE); |
+ testComputedLeft(-1000000000, MIN_VALUE); |
+ testComputedLeft(-10000000000, MIN_VALUE); |
+ testComputedLeft(-100000000000, MIN_VALUE); |
+ testComputedLeft(-1000000000000, MIN_VALUE); |
+ |
document.body.removeChild(el); |
</script> |
</body> |