blob: dae9e869ca773010aa9aa9e39c8fc96b9af42da5 [file] [log] [blame]
<!doctype html>
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
<title>core-overlay</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<script src="../../../webcomponentsjs/webcomponents.js"></script>
<script src="../../../polymer-test-tools/chai/chai.js"></script>
<script src="../../../polymer-test-tools/htmltest.js"></script>
<link rel="import" href="../../../core-transition/core-transition-css.html">
<link rel="import" href="../../core-overlay.html">
<style>
body {
margin: 0;
height: 100%;
}
#basic {
height: 200px;
width: 300px;
border: 1px solid black;
padding: 10px;
}
</style>
</head>
<body fit unresolved>
<core-overlay id="basic">
Basic Overlay
</core-overlay>
<div id="target">Targeted Overlay</div>
<core-overlay id="targeted"></core-overlay>
<core-overlay layered id="layered">
<style no-shim>
#layered {
height: 200px;
width: 300px;
border: 1px solid black;
padding: 10px;
}
</style>
Layered Overlay
</core-overlay>
<core-overlay layered backdrop id="backdrop">
<style no-shim>
#backdrop {
height: 200px;
width: 300px;
border: 1px solid black;
padding: 10px;
background-color: white;
}
</style>
Layered backdrop Overlay
</core-overlay>
<script>
document.addEventListener('polymer-ready', function() {
// setup
// basic
var basic = document.querySelector('#basic');
// targeted
var target = document.querySelector('#target');
var targeted = document.querySelector('#targeted');
targeted.target = target;
//
var layered = document.querySelector('#layered');
var backdrop = document.querySelector('#backdrop');
function testOpenEvents(element, next) {
var openingEvents = 0;
element.addEventListener('core-overlay-open', function() {
openingEvents++;
});
element.addEventListener('core-overlay-open-completed', function() {
openingEvents++;
element.async(function() {
this.opened = false;
}, 1);
});
element.addEventListener('core-overlay-close-completed', function() {
openingEvents++;
chai.assert.equal(openingEvents, 4, 'open and open-completed events fired');
next();
});
element.opened = true;
}
asyncSeries([
// basic overlay events
function(next) {
chai.assert.equal(basic.opened, false, 'overlay starts closed');
chai.assert.equal(getComputedStyle(basic).display, 'none', 'overlay starts hidden');
testOpenEvents(basic, next);
},
// targeted overlay events
function(next) {
chai.assert.equal(targeted.opened, false, 'targeted overlay starts closed');
chai.assert.equal(getComputedStyle(target).display, 'none', 'targeted overlay target starts hidden');
testOpenEvents(targeted, next);
},
// layered overlay events
function(next) {
testOpenEvents(layered, next);
},
// backdrop overlay events
function(next) {
testOpenEvents(backdrop, next);
}
], done);
});
</script>
</body>
</html>