mirror of
https://github.com/twbs/bootstrap.git
synced 2025-01-18 10:52:19 +01:00
Adjust SAFE_URL_PATTERN
regex for use with test
method. (#33153)
The `test` method on regexes does not behave like `match` on strings for checks if the regex matches when the global modifier (g) is present. Also adds a unit test on tooltips for sanitizing the same template twice. Co-authored-by: XhmikosR <xhmikosr@gmail.com>
This commit is contained in:
parent
8ec32eec44
commit
7ad0625b8d
@ -57,7 +57,7 @@ export const DefaultWhitelist = {
|
||||
*
|
||||
* Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
|
||||
*/
|
||||
const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi
|
||||
const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i
|
||||
|
||||
/**
|
||||
* A pattern that matches safe data URLs. Only matches image, video and audio types.
|
||||
|
@ -1333,4 +1333,24 @@ $(function () {
|
||||
assert.strictEqual(tooltip.hasClass('a b'), true)
|
||||
assert.strictEqual(tooltip.hasClass('tooltip fade bs-tooltip-top show'), true)
|
||||
})
|
||||
|
||||
QUnit.test('HTML content can be passed through sanitation multiple times', function (assert) {
|
||||
assert.expect(2)
|
||||
|
||||
// Add the same tooltip twice, so the template will be sanitized twice as well.
|
||||
for (var i = 0; i <= 1; i++) {
|
||||
$('<a href="#" rel="tooltip" data-trigger="click" title="<img src=\'test.jpg\'>" />')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapTooltip({
|
||||
html: true
|
||||
})
|
||||
.bootstrapTooltip('show')
|
||||
}
|
||||
|
||||
var tooltip1Image = $('.tooltip:first img')
|
||||
var tooltip2Image = $('.tooltip:last img')
|
||||
|
||||
assert.strictEqual(tooltip1Image.attr('src'), 'test.jpg')
|
||||
assert.strictEqual(tooltip2Image.attr('src'), 'test.jpg')
|
||||
})
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user