1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
/*!
* VisualEditor DataModel LinkAnnotation tests.
*
* @copyright See AUTHORS.txt
*/
QUnit.module( 've.dm.LinkAnnotation' );
QUnit.test( 'getFragment', ( assert ) => {
const cases = [
{
msg: 'No fragment returns null',
annotation: new ve.dm.LinkAnnotation( {
type: 'link',
attributes: { href: 'https://www.example.org/' }
} ),
expected: null
},
{
msg: 'Blank fragment returns empty string',
annotation: new ve.dm.LinkAnnotation( {
type: 'link',
attributes: { href: 'https://www.example.org/#' }
} ),
expected: ''
},
{
msg: 'Extant fragment returns same string',
annotation: new ve.dm.LinkAnnotation( {
type: 'link',
attributes: { href: 'https://www.example.org/#foo' }
} ),
expected: 'foo'
},
{
msg: 'Hash-bang works returns full string',
annotation: new ve.dm.LinkAnnotation( {
type: 'link',
attributes: { href: 'https://www.example.org/#!foo' }
} ),
expected: '!foo'
},
{
msg: 'Double-hash returns everything after the first hash',
annotation: new ve.dm.LinkAnnotation( {
type: 'link',
attributes: { href: 'https://www.example.org/##foo' }
} ),
expected: '#foo'
},
{
msg: 'Multi-fragment returns everything after the first hash',
annotation: new ve.dm.LinkAnnotation( {
type: 'link',
attributes: { href: 'https://www.example.org/#foo#bar#baz' }
} ),
expected: 'foo#bar#baz'
}
];
cases.forEach( ( caseItem ) => {
assert.strictEqual( caseItem.annotation.getFragment(), caseItem.expected, caseItem.msg );
} );
} );
|