blob: 0c3b4242684d751a6496769a6b6f06796f1b9c19 [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.
*/
/**
* @description
*/
import "dart:html";
import "../../../testcommon.dart";
main() {
document.body.setInnerHtml('''
<div id="host"></div>
<div id="blockHost"></div>
<span id="inlineBlockHost" style="display:inline-block;"></span>
<input type="submit" id="submit">
<pre id="console"></pre>
''', treeSanitizer: new NullTreeSanitizer());
createBox() {
var div = document.createElement('div');
div.style.width = '100px';
div.style.height = '10px';
return div;
}
centerX(element) {
return (element.offsetLeft + element.offsetWidth / 2).round();
}
centerY(element) {
return (element.offsetTop + element.offsetHeight / 2).round();
}
var host = document.getElementById('host');
var shadowRoot = host.createShadowRoot();
var box11 = createBox();
var box12 = createBox();
var box13 = createBox();
shadowRoot.append(box11);
shadowRoot.append(box12);
shadowRoot.append(box13);
var nestedHost = document.createElement('div');
var nestedShadowRoot = nestedHost.createShadowRoot();
var box21 = createBox();
var box22 = createBox();
var box23 = createBox();
nestedShadowRoot.append(box21);
nestedShadowRoot.append(box22);
nestedShadowRoot.append(box23);
shadowRoot.append(nestedHost);
var x12 = centerX(box12);
var y12 = centerY(box12);
var x22 = centerX(box22);
var y22 = centerY(box22);
shouldBe(shadowRoot.elementFromPoint(x12, y12), box12);
shouldBe(nestedShadowRoot.elementFromPoint(x22, y22), box22);
shouldBe(shadowRoot.elementFromPoint(x22, y22), nestedHost);
shouldBe(document.elementFromPoint(x22, y22), host);
var blockHost = document.getElementById('blockHost');
var root3 = blockHost.createShadowRoot();
root3.append(new Text('text1'));
var inlineBlockHost = document.getElementById('inlineBlockHost');
var root4 = inlineBlockHost.createShadowRoot();
root4.append(new Text('text2'));
shouldBeNull(root3.elementFromPoint(centerX(blockHost),
centerY(blockHost)));
shouldBe(document.elementFromPoint(centerX(blockHost),
centerY(blockHost)), blockHost);
shouldBeNull(root4.elementFromPoint(centerX(inlineBlockHost),
centerY(inlineBlockHost)));
shouldBe(document.elementFromPoint(centerX(inlineBlockHost),
centerY(inlineBlockHost)), inlineBlockHost);
var submit = document.getElementById('submit');
shouldBe(document.elementFromPoint(centerX(submit), centerY(submit)),
submit);
}