'use strict'; /*! * VisualEditor Cite specific test cases for the Converter. The cases in here use the document's * store to store originalDomElements. The cases are ideally executed by calling modelFromDom * tests first to load the store and domFromModel afterward so the store items can be retrived. * * @copyright 2011-2025 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt * @license MIT */ ve.dm.ConverterStoreTestCases = {}; ve.dm.ConverterStoreTestCases.cases = { 'Simple reference with stored original content': { // T400052 // Given the following wikitext: // Foo data: [ { type: 'paragraph', internal: { whitespace: [ undefined, undefined, undefined, '\n' ] } }, { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: {}, body: { id: 'mw-reference-text-cite_note-1' } }, originalMw: '{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}', listIndex: 0, listGroup: 'mwReference/', listKey: 'auto/0', refGroup: '', contentsUsed: true, refListItemId: 'mw-reference-text-cite_note-1' }, originalDomElementsHash: 'hca9b910d9d8a6fd3' }, { type: '/mwReference' }, { type: '/paragraph' }, { type: 'mwReferencesList', attributes: { mw: { name: 'references', attrs: {}, autoGenerated: true }, originalMw: '{"name":"references","attrs":{},"autoGenerated":true}', refGroup: '', listGroup: 'mwReference/', isResponsive: true, templateGenerated: false }, originalDomElementsHash: 'h6fe86bb317c3b124', internal: { whitespace: [ '\n' ] } }, { type: '/mwReferencesList' }, { type: 'internalList' }, { type: 'internalItem', attributes: { originalHtml: 'Foo' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'F', 'o', 'o', { type: '/paragraph' }, { type: '/internalItem' }, { type: '/internalList' } ], modify: undefined, body: ve.dm.example.singleLine`

[1]

  1. Foo
`, clipboardBody: ve.dm.example.singleLine`

[1]

  1. Foo

`, previewBody: ve.dm.example.singleLine`

[1]

  1. Foo

`, storeItems: { // Footnote hca9b910d9d8a6fd3: $.parseHTML( ve.dm.example.singleLine` [1] ` ), // Reflist h6fe86bb317c3b124: $.parseHTML( ve.dm.example.singleLine`
  1. Foo
` ) } } }; // T400052 // Wikitext: // Default // // // Main // // Foo // Bar // ve.dm.ConverterStoreTestCases.listDefinedAndDetails = { data: [ { type: 'paragraph', originalDomElementsHash: 'hffd4a3529e6f1d18', internal: { whitespace: [ undefined, undefined, undefined, '\n' ] } }, { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: {}, body: { id: 'mw-reference-text-cite_note-1' } }, originalMw: '{"name":"ref","attrs":{},"body":{"id":"mw-reference-text-cite_note-1"}}', listIndex: 0, listGroup: 'mwReference/', listKey: 'auto/0', refGroup: '', contentsUsed: true, refListItemId: 'mw-reference-text-cite_note-1' }, originalDomElementsHash: 'h50aef2fb0481d319' }, { type: '/mwReference' }, '\n', { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: { name: 'ldrOne' } }, originalMw: '{"name":"ref","attrs":{"name":"ldrOne"}}', listIndex: 1, listGroup: 'mwReference/', listKey: 'literal/ldrOne', refGroup: '', contentsUsed: false }, originalDomElementsHash: 'h81fd802c428ead14' }, { type: '/mwReference' }, '\n', { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: { name: 'ldrTwo' } }, originalMw: '{"name":"ref","attrs":{"name":"ldrTwo"}}', listIndex: 2, listGroup: 'mwReference/', listKey: 'literal/ldrTwo', refGroup: '', contentsUsed: false }, originalDomElementsHash: 'h6e9838f4538f4359' }, { type: '/mwReference' }, '\n', { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: { details: 'page 123' }, body: { id: 'mw-reference-text-cite_note-5' }, mainBody: 'mw-reference-text-cite_note-book-4', isSubRefWithMainBody: 1, mainRef: 'book' }, originalMw: '{"name":"ref","attrs":{"details":"page 123"},"body":{"id":"mw-reference-text-cite_note-5"},"mainBody":"mw-reference-text-cite_note-book-4","isSubRefWithMainBody":1,"mainRef":"book"}', listIndex: 3, listGroup: 'mwReference/', listKey: 'auto/1', refGroup: '', contentsUsed: true, mainRefKey: 'literal/book', refListItemId: 'mw-reference-text-cite_note-5' }, originalDomElementsHash: 'hee459d01aef341ad' }, { type: '/mwReference' }, { type: '/paragraph' }, { type: 'mwReferencesList', attributes: { mw: { name: 'references', attrs: {}, body: { html: "\n[2]\n[3]\nMain" } }, originalMw: "{\"name\":\"references\",\"attrs\":{},\"body\":{\"html\":\"\\n[2]\\n[3]\\nMain\"}}", refGroup: '', listGroup: 'mwReference/', isResponsive: true, templateGenerated: false }, originalDomElementsHash: 'h24725d7c524ddef6', internal: { whitespace: [ '\n' ] } }, { type: 'paragraph', internal: { generated: 'wrapper', whitespace: [ '\n' ] } }, { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: { name: 'ldrOne' }, body: { id: 'mw-reference-text-cite_note-ldrOne-2' } }, originalMw: '{"name":"ref","attrs":{"name":"ldrOne"},"body":{"id":"mw-reference-text-cite_note-ldrOne-2"}}', listIndex: 1, listGroup: 'mwReference/', listKey: 'literal/ldrOne', refGroup: '', contentsUsed: true, refListItemId: 'mw-reference-text-cite_note-ldrOne-2' }, originalDomElementsHash: 'h3521d3c4331d59a8' }, { type: '/mwReference' }, '\n', { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: { name: 'ldrTwo' }, body: { id: 'mw-reference-text-cite_note-ldrTwo-3' } }, originalMw: '{"name":"ref","attrs":{"name":"ldrTwo"},"body":{"id":"mw-reference-text-cite_note-ldrTwo-3"}}', listIndex: 2, listGroup: 'mwReference/', listKey: 'literal/ldrTwo', refGroup: '', contentsUsed: true, refListItemId: 'mw-reference-text-cite_note-ldrTwo-3' }, originalDomElementsHash: 'h2810f2a2f08070d3' }, { type: '/mwReference' }, '\n', { type: 'mwReference', attributes: { mw: { name: 'ref', attrs: { name: 'book', group: '' }, body: { id: 'mw-reference-text-cite_note-book-4' }, isSyntheticMainRef: 1 }, originalMw: '{"name":"ref","attrs":{"name":"book","group":""},"body":{"id":"mw-reference-text-cite_note-book-4"},"isSyntheticMainRef":1}', listIndex: 4, listGroup: 'mwReference/', listKey: 'literal/book', refGroup: '', contentsUsed: true, refListItemId: 'mw-reference-text-cite_note-book-4' }, originalDomElementsHash: 'ha285b4de1e944435' }, { type: '/mwReference' }, { type: '/paragraph' }, { type: '/mwReferencesList' }, { type: 'internalList' }, { type: 'internalItem', attributes: { originalHtml: 'Default' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'D', 'e', 'f', 'a', 'u', 'l', 't', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Foo' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'F', 'o', 'o', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Bar' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'B', 'a', 'r', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'page 123' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'p', 'a', 'g', 'e', ' ', '1', '2', '3', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Main' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'M', 'a', 'i', 'n', { type: '/paragraph' }, { type: '/internalItem' }, { type: '/internalList' } ], body: "

[1]\n[2]\n[3]\n[4.1]

\n
  1. Default
  2. \n
  3. Foo
  4. \n
  5. Bar
  6. \n
  7. Main
    1. page 123
    2. \n
  8. \n
", storeItems: { hffd4a3529e6f1d18: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( '

[1]\n[2]\n[3]\n[4.1]

' ), h50aef2fb0481d319: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( '[1]' ), h81fd802c428ead14: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( '[2]' ), h6e9838f4538f4359: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( '[3]' ), hee459d01aef341ad: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( '[4.1]' ), h3521d3c4331d59a8: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( '[2]' ), h2810f2a2f08070d3: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( '[3]' ), ha285b4de1e944435: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( 'Main' ), h24725d7c524ddef6: // eslint-disable-next-line no-jquery/no-parse-html-literal $.parseHTML( "
  1. Default
  2. \n
  3. Foo
  4. \n
  5. Bar
  6. \n
  7. Main
    1. page 123
    2. \n
  8. \n
" ) } }; ve.dm.ConverterStoreTestCases.cases[ 'List defined references and details' ] = { data: ve.dm.ConverterStoreTestCases.listDefinedAndDetails.data, body: ve.dm.ConverterStoreTestCases.listDefinedAndDetails.body, storeItems: ve.dm.ConverterStoreTestCases.listDefinedAndDetails.storeItems, fromDataBody: '

[1]\n[2]\n[3]\n[4.1]

\n
  1. Default
  2. Foo
  3. Bar
  4. Main
    1. page 123
', normalizedBody: '

[1]\n[2]\n[3]\n[4.1]

\n
  1. Default
  2. Foo
  3. Bar
  4. Main
    1. page 123
', clipboardBody: '

[1]\n[2]\n[3]\n[4.1]

\n
  1. Default

  2. Foo

  3. Bar

  4. Main

    1. page 123

', previewBody: '

[1][2][3][4.1]

\n
  1. Default

  2. Foo

  3. Bar

  4. Main

    1. page 123

', innerWhitespace: [ undefined, undefined ], preserveAnnotationDomElements: true }; // Wikitext after: // Default // // // Main NEW // // Foo // Bar // ve.dm.ConverterStoreTestCases.cases[ 'List defined references and details ( editing main and details )' ] = { data: ve.dm.ConverterStoreTestCases.listDefinedAndDetails.data, body: ve.dm.ConverterStoreTestCases.listDefinedAndDetails.body, storeItems: ve.dm.ConverterStoreTestCases.listDefinedAndDetails.storeItems, modify: ( model ) => { model.commit( ve.dm.Transaction.static.deserialize( [ 52, [ [ { type: 'paragraph', internal: { generated: 'wrapper', metaItems: [] } }, 'p', 'a', 'g', 'e', ' ', '1', '2', '3', { type: '/paragraph' } ], '' ], 10 ] ) ); model.commit( ve.dm.Transaction.static.deserialize( [ 26, [ [ { type: 'internalItem', attributes: { originalHtml: 'Default' } }, { type: 'paragraph', internal: { generated: 'wrapper', metaItems: [] } }, 'D', 'e', 'f', 'a', 'u', 'l', 't', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Foo' } }, { type: 'paragraph', internal: { generated: 'wrapper', metaItems: [] } }, 'F', 'o', 'o', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Bar' } }, { type: 'paragraph', internal: { generated: 'wrapper', metaItems: [] } }, 'B', 'a', 'r', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'page 123' } }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Main' } }, { type: 'paragraph', internal: { generated: 'wrapper', metaItems: [] } }, 'M', 'a', 'i', 'n', { type: '/paragraph' }, { type: '/internalItem' } ], [ { type: 'internalItem', attributes: { originalHtml: 'Default' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'D', 'e', 'f', 'a', 'u', 'l', 't', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Foo' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'F', 'o', 'o', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Bar' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'B', 'a', 'r', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'page 123' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'p', 'a', 'g', 'e', ' ', '1', '2', '3', ' ', 'N', 'E', 'W', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Main' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'M', 'a', 'i', 'n', { type: '/paragraph' }, { type: '/internalItem' } ] ], 1 ] ) ); model.commit( ve.dm.Transaction.static.deserialize( [ 68, [ [ { type: 'paragraph', internal: { generated: 'wrapper' } }, 'M', 'a', 'i', 'n', { type: '/paragraph' } ], '' ], 2 ] ) ); model.commit( ve.dm.Transaction.static.deserialize( [ 26, [ [ { type: 'internalItem', attributes: { originalHtml: 'Default' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'D', 'e', 'f', 'a', 'u', 'l', 't', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Foo' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'F', 'o', 'o', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Bar' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'B', 'a', 'r', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'page 123' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'p', 'a', 'g', 'e', ' ', '1', '2', '3', ' ', 'N', 'E', 'W', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Main' } }, { type: '/internalItem' } ], [ { type: 'internalItem', attributes: { originalHtml: 'Default' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'D', 'e', 'f', 'a', 'u', 'l', 't', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Foo' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'F', 'o', 'o', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Bar' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'B', 'a', 'r', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'page 123' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'p', 'a', 'g', 'e', ' ', '1', '2', '3', ' ', 'N', 'E', 'W', { type: '/paragraph' }, { type: '/internalItem' }, { type: 'internalItem', attributes: { originalHtml: 'Main' } }, { type: 'paragraph', internal: { generated: 'wrapper' } }, 'M', 'a', 'i', 'n', ' ', 'N', 'E', 'W', { type: '/paragraph' }, { type: '/internalItem' } ] ], 1 ] ) ); }, fromDataBody: '

[1]\n[2]\n[3]\n[4.1]

\n
  1. Default
  2. Foo
  3. Bar
  4. Main NEW
    1. page 123 NEW
', normalizedBody: '

[1]\n[2]\n[3]\n[4.1]

\n
  1. Default
  2. Foo
  3. Bar
  4. Main NEW
    1. page 123 NEW
', clipboardBody: '

[1]\n[2]\n[3]\n[4.1]

\n
  1. Default

  2. Foo

  3. Bar

  4. Main NEW

    1. page 123 NEW

', previewBody: '

[1][2][3][4.1]

\n
  1. Default

  2. Foo

  3. Bar

  4. Main NEW

    1. page 123 NEW

', innerWhitespace: [ undefined, undefined ], preserveAnnotationDomElements: true };