File: ve.init.Target.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 (57 lines) | stat: -rw-r--r-- 2,108 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
/*!
 * VisualEditor tests for ve.init.Target.
 *
 * @copyright See AUTHORS.txt
 */

QUnit.module( 've.init.Target' );

QUnit.test( 'createModelFromDom/parseDocument (source mode)', ( assert ) => {
	const testCases = [
		{
			name: 'empty',
			sourceText: '',
			expectedParsedDocument: '',
			expectedModel: [ { type: 'paragraph' }, { type: '/paragraph' }, { type: 'internalList' }, { type: '/internalList' } ]
		},
		{
			name: 'basic',
			sourceText: 'A? B! CD.',
			expectedParsedDocument: 'A? B! CD.',
			expectedModel: [ { type: 'paragraph' }, ...'A? B! CD.', { type: '/paragraph' }, { type: 'internalList' }, { type: '/internalList' } ]
		},
		{
			name: 'complex',
			sourceText: 'A?\nB\n<!-- C! -->\n\nD.',
			expectedParsedDocument: 'A?\nB\n<!-- C! -->\n\nD.',
			expectedModel: [ { type: 'paragraph' }, ...'A?', { type: '/paragraph' }, { type: 'paragraph' }, 'B', { type: '/paragraph' }, { type: 'paragraph' }, ...'<!-- C! -->', { type: '/paragraph' }, { type: 'paragraph' }, { type: '/paragraph' }, { type: 'paragraph' }, ...'D.', { type: '/paragraph' }, { type: 'internalList' }, { type: '/internalList' } ]
		},
		{
			name: 'unicode',
			sourceText: '維基百科ㅋㅏ난다韓國語',
			expectedParsedDocument: '維基百科ㅋㅏ난다韓國語',
			expectedModel: [ { type: 'paragraph' }, ...'維基百科ㅋㅏ난다韓國語', { type: '/paragraph' }, { type: 'internalList' }, { type: '/internalList' } ]
		}
	];

	for ( const testCase of testCases ) {
		const sourceDoc = ve.init.Target.static.createModelFromDom( testCase.sourceText, 'source' );

		assert.true(
			sourceDoc instanceof ve.dm.Document,
			'Source "' + testCase.name + '" document returns a Document'
		);
		assert.deepEqual(
			sourceDoc.getData(),
			testCase.expectedModel,
			'Source "' + testCase.name + '" document has the correct content'
		);

		const parsedSourceDoc = ve.init.Target.static.parseDocument( testCase.sourceText, 'source' );
		assert.strictEqual(
			parsedSourceDoc,
			testCase.expectedParsedDocument,
			'Source "' + testCase.name + '" document is returned intact by parseDocument'
		);
	}
} );