diff options
| author | Johann-S <[email protected]> | 2017-11-30 10:54:27 +0100 |
|---|---|---|
| committer | Johann-S <[email protected]> | 2018-12-05 16:02:59 +0100 |
| commit | b16127fc105f159ebd06b02df2853941b2aba67c (patch) | |
| tree | 45f5a0138c633e0e3aa6bd5357ffef4d14c8bc6f /js/tests/unit | |
| parent | 850d99bb13b895b83a860c38092755253ceb5b4a (diff) | |
| download | bootstrap-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.js | 38 |
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() + } + }) }) |
