aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Rebert <[email protected]>2014-12-22 14:02:31 -0800
committerChris Rebert <[email protected]>2014-12-29 16:09:37 -0800
commit27bfef5b35f3e12af8beb7140e3b19bb6a3b3a75 (patch)
tree9860207a91564d86f93ebadec52f90140089beff
parente4c7a92c76865545f76a84d75cfa19024d5001a5 (diff)
downloadbootstrap-27bfef5b35f3e12af8beb7140e3b19bb6a3b3a75.tar.xz
bootstrap-27bfef5b35f3e12af8beb7140e3b19bb6a3b3a75.zip
Add regression test for #14244.
Special thanks to @programcsharp [skip validator]
-rw-r--r--js/tests/unit/popover.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/js/tests/unit/popover.js b/js/tests/unit/popover.js
index 466ebace2..4b8b2a96b 100644
--- a/js/tests/unit/popover.js
+++ b/js/tests/unit/popover.js
@@ -217,4 +217,42 @@ $(function () {
$div.find('a.second').click()
equal($('.popover').length, 0, 'second popover removed')
})
+
+ test('should detach popover content rather than removing it so that event handlers are left intact', function () {
+ var $content = $('<div class="content-with-handler"><a class="btn btn-warning">Button with event handler</a></div>').appendTo('#qunit-fixture')
+
+ var handlerCalled = false;
+ $('.content-with-handler .btn').click(function () {
+ handlerCalled = true
+ });
+
+ var $div = $('<div><a href="#">Show popover</a></div>')
+ .appendTo('#qunit-fixture')
+ .bootstrapPopover({
+ html: true,
+ trigger: 'manual',
+ container: 'body',
+ content: function () {
+ return $content;
+ }
+ })
+
+ stop()
+ $div
+ .one('shown.bs.popover', function () {
+ $div
+ .one('hidden.bs.popover', function () {
+ $div
+ .one('shown.bs.popover', function () {
+ $('.content-with-handler .btn').click()
+ $div.bootstrapPopover('destroy')
+ ok(handlerCalled, 'content\'s event handler still present')
+ start()
+ })
+ .bootstrapPopover('show')
+ })
+ .bootstrapPopover('hide')
+ })
+ .bootstrapPopover('show')
+ })
})