aboutsummaryrefslogtreecommitdiff
path: root/js/tests/unit
diff options
context:
space:
mode:
authorJohann-S <[email protected]>2017-11-30 10:54:27 +0100
committerJohann-S <[email protected]>2018-12-05 16:02:59 +0100
commitb16127fc105f159ebd06b02df2853941b2aba67c (patch)
tree45f5a0138c633e0e3aa6bd5357ffef4d14c8bc6f /js/tests/unit
parent850d99bb13b895b83a860c38092755253ceb5b4a (diff)
downloadbootstrap-b16127fc105f159ebd06b02df2853941b2aba67c.tar.xz
bootstrap-b16127fc105f159ebd06b02df2853941b2aba67c.zip
Allow Tooltips/Popovers to work in shadow DOM
Diffstat (limited to 'js/tests/unit')
-rw-r--r--js/tests/unit/util.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/js/tests/unit/util.js b/js/tests/unit/util.js
index 61727304d..2fd6f6b7c 100644
--- a/js/tests/unit/util.js
+++ b/js/tests/unit/util.js
@@ -124,4 +124,42 @@ $(function () {
assert.expect(1)
assert.ok(Util.supportsTransitionEnd())
})
+
+ QUnit.test('Util.findShadowRoot should find the shadow DOM root', function (assert) {
+ // Only for newer browsers
+ if (!document.documentElement.attachShadow) {
+ assert.expect(0)
+ return
+ }
+
+ assert.expect(2)
+ var $div = $('<div id="test"></div>').appendTo($('#qunit-fixture'))
+ var shadowRoot = $div[0].attachShadow({
+ mode: 'open'
+ })
+ console.warn($div[0].attachShadow, shadowRoot)
+
+ assert.equal(shadowRoot, Util.findShadowRoot(shadowRoot))
+ shadowRoot.innerHTML = '<button>Shadow Button</button>'
+ assert.equal(shadowRoot, Util.findShadowRoot(shadowRoot.firstChild))
+ })
+
+ QUnit.test('Util.findShadowRoot should return null when attachShadow is not available', function (assert) {
+ assert.expect(1)
+
+ var $div = $('<div id="test"></div>').appendTo($('#qunit-fixture'))
+ if (!document.documentElement.attachShadow) {
+ assert.equal(null, Util.findShadowRoot($div[0]))
+ } else {
+ var sandbox = sinon.createSandbox()
+
+ sandbox.replace(document.documentElement, 'attachShadow', function () {
+ // to avoid empty function
+ return $div
+ })
+
+ assert.equal(null, Util.findShadowRoot($div[0]))
+ sandbox.restore()
+ }
+ })
})