aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/tests/unit/popover.js11
-rw-r--r--js/tests/unit/tooltip.js10
-rw-r--r--js/tooltip.js8
3 files changed, 28 insertions, 1 deletions
diff --git a/js/tests/unit/popover.js b/js/tests/unit/popover.js
index 2c3fd0cb0..a25df3a58 100644
--- a/js/tests/unit/popover.js
+++ b/js/tests/unit/popover.js
@@ -259,6 +259,16 @@ $(function () {
assert.strictEqual($popover.data('bs.popover'), undefined, 'should not initialize the popover')
})
+ QUnit.test('should throw an error when template contains multiple top-level elements', function (assert) {
+ assert.expect(1)
+ assert.throws(function () {
+ $('<span data-toggle="popover" data-title="some title" data-content="some content">some text</span>')
+ .appendTo('#qunit-fixture')
+ .bootstrapPopover({ template: '<div>Foo</div><div>Bar</div>' })
+ .bootstrapPopover('show')
+ }, new Error('popover `template` option must consist of exactly 1 top-level element!'))
+ })
+
QUnit.test('should fire inserted event', function (assert) {
assert.expect(2)
var done = assert.async()
@@ -276,4 +286,5 @@ $(function () {
})
.bootstrapPopover('show')
})
+
})
diff --git a/js/tests/unit/tooltip.js b/js/tests/unit/tooltip.js
index 0cb964e9b..2c492a92b 100644
--- a/js/tests/unit/tooltip.js
+++ b/js/tests/unit/tooltip.js
@@ -1225,4 +1225,14 @@ $(function () {
assert.strictEqual($tooltip.data('bs.tooltip'), undefined, 'should not initialize the tooltip')
})
+ QUnit.test('should throw an error when template contains multiple top-level elements', function (assert) {
+ assert.expect(1)
+ assert.throws(function () {
+ $('<a href="#" data-toggle="tooltip" title="Another tooltip"></a>')
+ .appendTo('#qunit-fixture')
+ .bootstrapTooltip({ template: '<div>Foo</div><div>Bar</div>' })
+ .bootstrapTooltip('show')
+ }, new Error('tooltip `template` option must consist of exactly 1 top-level element!'))
+ })
+
})
diff --git a/js/tooltip.js b/js/tooltip.js
index b2d775938..2d42cab24 100644
--- a/js/tooltip.js
+++ b/js/tooltip.js
@@ -404,7 +404,13 @@
}
Tooltip.prototype.tip = function () {
- return (this.$tip = this.$tip || $(this.options.template))
+ if (!this.$tip) {
+ this.$tip = $(this.options.template)
+ if (this.$tip.length != 1) {
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
+ }
+ }
+ return this.$tip
}
Tooltip.prototype.arrow = function () {