mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Popups
synced 2024-12-12 15:55:19 +00:00
c7595e54f6
The signature mw.RegExp.escape() is deprecated since MediaWiki 1.34. By the way, this is the 4th or even 5th time in my short career this tiny, single line (!) helper function is moved around and I need to update all my code. This felt already ridiculous when it happened the 2nd time. Change-Id: I4d05a49120aff64ebc316d0af7736c62385d9307
68 lines
1.6 KiB
JavaScript
68 lines
1.6 KiB
JavaScript
import * as formatter from '../../src/formatter';
|
|
|
|
const $ = jQuery;
|
|
|
|
QUnit.module( 'ext.popups.formatter', {
|
|
beforeEach() {
|
|
mediaWiki.util = {
|
|
escapeRegExp: this.sandbox.spy( ( str ) => {
|
|
return str.replace( /([\\{}()|.?*+\-^$[\]])/g, '\\$1' );
|
|
} )
|
|
};
|
|
},
|
|
afterEach() {
|
|
mediaWiki.util = null;
|
|
}
|
|
} );
|
|
|
|
QUnit.test( 'Title is bold', ( assert ) => {
|
|
const cases = [
|
|
[
|
|
'Isaac Newton was born in', 'Isaac Newton',
|
|
'<b>Isaac Newton</b> was born in',
|
|
'Title as first word'
|
|
],
|
|
[
|
|
'The C* language not to be confused with C# or C', 'C*',
|
|
'The <b>C*</b> language not to be confused with C# or C',
|
|
'Title containing *'
|
|
],
|
|
[
|
|
'I like trains', 'Train',
|
|
'I like <b>train</b>s',
|
|
'Make the simple plural bold'
|
|
],
|
|
[
|
|
'Foo\'s pub is a pub in Bar', 'Foo\'s pub',
|
|
'<b>Foo\'s pub</b> is a pub in Bar',
|
|
'Correct escaping'
|
|
],
|
|
[
|
|
'"Heroes" is a David Bowie album', '"Heroes"',
|
|
'<b>"Heroes"</b> is a David Bowie album',
|
|
'Quotes in title'
|
|
],
|
|
[
|
|
'*Testing if Things are correctly identified', 'Things',
|
|
'*Testing if <b>Things</b> are correctly identified',
|
|
'Article that begins with asterisk'
|
|
],
|
|
[
|
|
'Testing if repeated words are not matched when repeated', 'Repeated',
|
|
'Testing if <b>repeated</b> words are not matched when repeated',
|
|
'Repeated title'
|
|
]
|
|
];
|
|
|
|
function runTest( extract, title, expected, msg ) {
|
|
const $div = $( '<div>' ).append(
|
|
formatter.formatPlainTextExtract( extract, title )
|
|
);
|
|
assert.strictEqual( $div.html(), expected, msg );
|
|
}
|
|
|
|
cases.forEach( ( case_ ) => {
|
|
runTest( case_[ 0 ], case_[ 1 ], case_[ 2 ], case_[ 3 ] );
|
|
} );
|
|
} );
|