Index: lib/src/iron-overlay-behavior/test/iron-overlay-behavior.html |
diff --git a/lib/src/iron-overlay-behavior/test/iron-overlay-behavior.html b/lib/src/iron-overlay-behavior/test/iron-overlay-behavior.html |
index f821e5589945a7f8b31a3bac0ed4c2128e38773f..a352a4b18948fc2116b9978176cbd9339f7bfefa 100644 |
--- a/lib/src/iron-overlay-behavior/test/iron-overlay-behavior.html |
+++ b/lib/src/iron-overlay-behavior/test/iron-overlay-behavior.html |
@@ -86,7 +86,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN |
function runAfterOpen(overlay, cb) { |
overlay.addEventListener('iron-overlay-opened', function() { |
- cb(); |
+ Polymer.Base.async(cb, 1); |
}); |
overlay.open(); |
} |
@@ -181,6 +181,15 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN |
test('cancel an overlay by clicking outside', function(done) { |
runAfterOpen(overlay, function() { |
+ overlay.addEventListener('iron-overlay-canceled', function(event) { |
+ done(); |
+ }); |
+ Polymer.Base.fire.call(document, 'click'); |
+ }); |
+ }); |
+ |
+ test('close an overlay by clicking outside', function(done) { |
+ runAfterOpen(overlay, function() { |
overlay.addEventListener('iron-overlay-closed', function(event) { |
assert.isTrue(event.detail.canceled, 'overlay is canceled'); |
done(); |
@@ -189,8 +198,36 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN |
}); |
}); |
+ test('cancel event can be prevented', function(done) { |
+ runAfterOpen(overlay, function() { |
+ overlay.addEventListener('iron-overlay-canceled', function(event) { |
+ event.preventDefault(); |
+ }); |
+ var closedListener = function(event) { |
+ throw new Error('iron-overlay-closed should not fire'); |
+ }; |
+ overlay.addEventListener('iron-overlay-closed', closedListener); |
+ Polymer.Base.fire.call(document, 'click'); |
+ setTimeout(function() { |
+ overlay.removeEventListener('iron-overlay-closed', closedListener); |
+ done(); |
+ }, 10); |
+ }); |
+ }); |
+ |
test('cancel an overlay with esc key', function(done) { |
runAfterOpen(overlay, function() { |
+ overlay.addEventListener('iron-overlay-canceled', function(event) { |
+ done(); |
+ }); |
+ fireEvent('keydown', { |
+ keyCode: 27 |
+ }, document); |
+ }); |
+ }); |
+ |
+ test('close an overlay with esc key', function(done) { |
+ runAfterOpen(overlay, function() { |
overlay.addEventListener('iron-overlay-closed', function(event) { |
assert.isTrue(event.detail.canceled, 'overlay is canceled'); |
done(); |