File: ve.dm.LinkAnnotation.test.js

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (64 lines) | stat: -rw-r--r-- 1,571 bytes parent folder | download | duplicates (2)
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 );
	} );
} );