File: ve.ui.PreviewElement.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 (47 lines) | stat: -rw-r--r-- 1,666 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
/*!
 * VisualEditor PreviewElement tests.
 *
 * @copyright See AUTHORS.txt
 */

QUnit.module( 've.ui.PreviewElement' );

/* Tests */

QUnit.test( 'Basic tests', ( assert ) => {
	const done = assert.async(),
		doc = ve.dm.example.createExampleDocument(),
		modelNode = doc.getDocumentNode().getChildren()[ 0 ];

	const simplePreview = new ve.ui.PreviewElement();
	assert.deepEqual( simplePreview.isGenerating(), false, 'not isGenerating if constructed without model' );
	simplePreview.setModel( modelNode );
	assert.strictEqual( simplePreview.model, modelNode, 'setModel' );
	assert.strictEqual( simplePreview.isGenerating(), true, 'isGenerating after setModel' );

	simplePreview.once( 'render', () => {
		assert.deepEqual( simplePreview.isGenerating(), false, 'not isGenerating after render' );
		assert.equalDomElement(
			simplePreview.$element[ 0 ],
			$.parseHTML( '<div class="ve-ui-previewElement"><h1>a<b>b</b><i>c</i></h1></div>' )[ 0 ],
			'Simple node render'
		);
		done();
	} );

	const useViewPreview = new ve.ui.PreviewElement( modelNode, { useView: true } );
	assert.strictEqual( useViewPreview.isGenerating(), true, 'isGenerating after construction with model' );
	useViewPreview.once( 'render', () => {
		assert.deepEqual( simplePreview.isGenerating(), false, 'not isGenerating after useView render' );
		assert.equalDomElement(
			simplePreview.$element[ 0 ],
			$.parseHTML( '<div class="ve-ui-previewElement"><h1>a<b>b</b><i>c</i></h1></div>' )[ 0 ],
			'Simple useView render'
		);
	} );

	// TODO test:
	// * awaitGeneratedContent branch (useView & !useView)
	// * attribute resolution in replaceWithModelDom
	// * targetLinksToNewWindow
} );