blob: b9814d2a9dde9ca38dcfcc0637a564020b092ff3 [file] [log] [blame]
/*
* Copyright (c) 2014, 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.
*/
/**
* @assertion
* @description
*/
import "dart:html";
import "../../testharness.dart";
const String htmlEL1 = r'''
''';
const String htmlEL2 = r'''
<div style="-webkit-columns:3; columns:3;" id="mc">
<div id="elm1" class="rodent">elm1</div>
<br>
<div>
<div id="elm2" class="rodent">elm2</div>
<div id="elm3" class="rodent">elm3</div>
</div>
<div id="elm4" class="rodent">elm4</div>
<div id="elm5" class="rodent">elm5</div>
</div>
<p id="console"></p>
''';
void main() {
document.body.attributes["style"]="margin-left:10px; margin-top:15px;";
document.head.appendHtml(htmlEL1, treeSanitizer: new NullTreeSanitizer());
document.body.appendHtml(htmlEL2, treeSanitizer: new NullTreeSanitizer());
var mc = document.getElementById('mc');
var elm1 = document.getElementById('elm1');
var elm2 = document.getElementById('elm2');
var elm3 = document.getElementById('elm3');
var elm4 = document.getElementById('elm4');
var elm5 = document.getElementById('elm5');
shouldBe(mc.offsetLeft, 10, "mc.offsetLeft");
shouldBe(mc.offsetTop, 15, "mc.offsetTop");
shouldBe(elm1.offsetLeft, mc.offsetLeft, "elm1.offsetLeft");
shouldBe(elm1.offsetTop, mc.offsetTop, "");
shouldBeTrue(elm2.offsetLeft > elm1.offsetLeft, "elm2.offsetLeft");
shouldBe(elm2.offsetTop, elm1.offsetTop, "elm2.offsetTop");
shouldBe(elm3.offsetLeft, elm2.offsetLeft, "elm3.offsetLeft");
shouldBeTrue(elm3.offsetTop > elm2.offsetTop, "elm3.offsetTop");
shouldBeTrue(elm4.offsetLeft > elm3.offsetLeft, "elm4.offsetLeft");
shouldBe(elm4.offsetTop, elm1.offsetTop, "elm4.offsetTop");
shouldBe(elm5.offsetLeft, elm4.offsetLeft, "elm5.offsetLeft");
shouldBe(elm5.offsetTop, elm3.offsetTop, "elm5.offsetTop");
var elements = document.getElementsByClassName('rodent');
for (var i = 0; i < elements.length; i++) {
var rects = elements[i].getClientRects();
shouldBe(rects.length, 1, "i=$i,rects.length");
shouldBe(rects[0].left, elements[i].offsetLeft, "$i,rects[0].left");
shouldBe(rects[0].top, elements[i].offsetTop, "$i,rects[0].top");
}
checkTestFailures();
}