From 2ae05303c2d77c5ad0639f423c6ba87ca894cea7 Mon Sep 17 00:00:00 2001 From: Jiuqing Song Date: Tue, 1 Aug 2023 12:58:30 -0700 Subject: [PATCH 1/2] Fix test cases for Firefox 116 --- package.json | 2 +- .../test/endToEndTest.ts | 3 +- .../backgroundColorFormatHandlerTest.ts | 7 ++- .../common/borderFormatHandlerTest.ts | 2 +- .../segment/textColorFormatHandlerTest.ts | 7 ++- .../modelToDom/handlers/handleListItemTest.ts | 6 +- .../modelToDom/handlers/handleListTest.ts | 60 ++++++------------- .../paste/processPastedContentFromWacTest.ts | 2 +- ...processPastedContentFromWordDesktopTest.ts | 25 +++++--- .../test/format/clearFormatTest.ts | 29 +++++---- .../test/DomTestHelper.ts | 5 ++ .../test/list/VListChainTest.ts | 45 ++++++++++---- 12 files changed, 107 insertions(+), 86 deletions(-) diff --git a/package.json b/package.json index 72516b909df..67b660708b5 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "test": "node tools/build.js normalize & karma start --chrome", "test:chrome": "node tools/build.js normalize & karma start --chrome", "test:firefox": "node tools/build.js normalize & karma start --firefox", - "test:debug": "node tools/build.js normalize & karma start --no-single-run --chrome", + "test:debug": "node tools/build.js normalize & karma start --no-single-run --firefox", "test:coverage": "node tools/build.js normalize & karma start --coverage --firefox --chrome", "test:cm": "node tools/build.js normalize & karma start --no-single-run --chrome --contentmodel", "test:cm:firefox": "node tools/build.js normalize & karma start --no-single-run --firefox --contentmodel", diff --git a/packages-content-model/roosterjs-content-model-dom/test/endToEndTest.ts b/packages-content-model/roosterjs-content-model-dom/test/endToEndTest.ts index 404f941078b..2e76b12a80a 100644 --- a/packages-content-model/roosterjs-content-model-dom/test/endToEndTest.ts +++ b/packages-content-model/roosterjs-content-model-dom/test/endToEndTest.ts @@ -2,6 +2,7 @@ import * as createGeneralBlock from '../lib/modelApi/creators/createGeneralBlock import DarkColorHandlerImpl from 'roosterjs-editor-core/lib/editor/DarkColorHandlerImpl'; import { contentModelToDom } from '../lib/modelToDom/contentModelToDom'; import { domToContentModel } from '../lib/domToModel/domToContentModel'; +import { expectHtml } from 'roosterjs-editor-api/test/TestHelper'; import { ContentModelBlockFormat, ContentModelDocument, @@ -46,7 +47,7 @@ describe('End to end test for DOM => Model', () => { expectedHTMLFirefox, //firefox ]; - expect(possibleHTML.indexOf(div2.innerHTML)).toBeGreaterThanOrEqual(0, div2.innerHTML); + expectHtml(div2.innerHTML, possibleHTML); } it('List with margin', () => { diff --git a/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/backgroundColorFormatHandlerTest.ts b/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/backgroundColorFormatHandlerTest.ts index a0b91be6abf..fe411cc63c3 100644 --- a/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/backgroundColorFormatHandlerTest.ts +++ b/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/backgroundColorFormatHandlerTest.ts @@ -2,6 +2,7 @@ import DarkColorHandlerImpl from 'roosterjs-editor-core/lib/editor/DarkColorHand import { backgroundColorFormatHandler } from '../../../lib/formatHandlers/common/backgroundColorFormatHandler'; import { createDomToModelContext } from '../../../lib/domToModel/context/createDomToModelContext'; import { createModelToDomContext } from '../../../lib/modelToDom/context/createModelToDomContext'; +import { expectHtml } from 'roosterjs-editor-dom/test/DomTestHelper'; import { BackgroundColorFormat, DomToModelContext, @@ -97,11 +98,11 @@ describe('backgroundColorFormatHandler.apply', () => { backgroundColorFormatHandler.apply(format, div, context); - const result = [ + const expectedResult = [ '
', '
', - ].indexOf(div.outerHTML); + ]; - expect(result).toBeGreaterThanOrEqual(0, div.outerHTML); + expectHtml(div.outerHTML, expectedResult); }); }); diff --git a/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/borderFormatHandlerTest.ts b/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/borderFormatHandlerTest.ts index f5f534cf9b1..c0d0fe7d493 100644 --- a/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/borderFormatHandlerTest.ts +++ b/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/common/borderFormatHandlerTest.ts @@ -51,7 +51,7 @@ describe('borderFormatHandler.parse', () => { }); }); - it('Has border width none value', () => { + itChromeOnly('Has border width none value', () => { div.style.borderWidth = '1px 2px 3px 4px'; div.style.borderStyle = 'none'; div.style.borderColor = 'red'; diff --git a/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/segment/textColorFormatHandlerTest.ts b/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/segment/textColorFormatHandlerTest.ts index 5973112beeb..dc60a6702ee 100644 --- a/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/segment/textColorFormatHandlerTest.ts +++ b/packages-content-model/roosterjs-content-model-dom/test/formatHandlers/segment/textColorFormatHandlerTest.ts @@ -1,6 +1,7 @@ import DarkColorHandlerImpl from 'roosterjs-editor-core/lib/editor/DarkColorHandlerImpl'; import { createDomToModelContext } from '../../../lib/domToModel/context/createDomToModelContext'; import { createModelToDomContext } from '../../../lib/modelToDom/context/createModelToDomContext'; +import { expectHtml } from 'roosterjs-editor-dom/test/DomTestHelper'; import { textColorFormatHandler } from '../../../lib/formatHandlers/segment/textColorFormatHandler'; import { DomToModelContext, @@ -121,12 +122,12 @@ describe('textColorFormatHandler.apply', () => { textColorFormatHandler.apply(format, div, context); - const result = [ + const expectedResult = [ '
', '
', - ].indexOf(div.outerHTML); + ]; - expect(result).toBeGreaterThanOrEqual(0, div.outerHTML); + expectHtml(div.outerHTML, expectedResult); }); it('HyperLink without color', () => { diff --git a/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListItemTest.ts b/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListItemTest.ts index 062d6e996af..f7603e99f03 100644 --- a/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListItemTest.ts +++ b/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListItemTest.ts @@ -3,6 +3,7 @@ import { createListItem } from '../../../lib/modelApi/creators/createListItem'; import { createListLevel } from '../../../lib/modelApi/creators/createListLevel'; import { createModelToDomContext } from '../../../lib/modelToDom/context/createModelToDomContext'; import { createParagraph } from '../../../lib/modelApi/creators/createParagraph'; +import { expectHtml } from 'roosterjs-editor-dom/test/DomTestHelper'; import { handleList as originalHandleList } from '../../../lib/modelToDom/handlers/handleList'; import { handleListItem } from '../../../lib/modelToDom/handlers/handleListItem'; import { listItemMetadataFormatHandler } from '../../../lib/formatHandlers/list/listItemMetadataFormatHandler'; @@ -249,10 +250,7 @@ describe('handleListItem', () => { '
', ]; - expect(expectedResult.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, expectedResult); expect(context.listFormat).toEqual({ threadItemCounts: [1], nodeStack: [ diff --git a/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListTest.ts b/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListTest.ts index c7d6f7cdd3e..6757425bace 100644 --- a/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListTest.ts +++ b/packages-content-model/roosterjs-content-model-dom/test/modelToDom/handlers/handleListTest.ts @@ -3,8 +3,8 @@ import { ContentModelListItem, ModelToDomContext } from 'roosterjs-content-model import { createListItem } from '../../../lib/modelApi/creators/createListItem'; import { createListLevel } from '../../../lib/modelApi/creators/createListLevel'; import { createModelToDomContext } from '../../../lib/modelToDom/context/createModelToDomContext'; +import { expectHtml, itChromeOnly } from 'roosterjs-editor-dom/test/DomTestHelper'; import { handleList } from '../../../lib/modelToDom/handlers/handleList'; -import { itChromeOnly } from 'roosterjs-editor-dom/test/DomTestHelper'; describe('handleList', () => { let context: ModelToDomContext; @@ -62,10 +62,7 @@ describe('handleList', () => { '
    ', //Firefox ]; - expect(possibleResults.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, possibleResults); expect(context.listFormat).toEqual({ threadItemCounts: [0], nodeStack: [ @@ -277,10 +274,8 @@ describe('handleList', () => { '
      ', //Firefox ]; - expect(possibleResults.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, possibleResults); + expect(context.listFormat).toEqual({ threadItemCounts: [1], nodeStack: [ @@ -322,10 +317,7 @@ describe('handleList', () => { '
      ', //Firefox ]; - expect(possibleResults.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, possibleResults); expect(context.listFormat).toEqual({ threadItemCounts: [1, 2], @@ -432,10 +424,8 @@ describe('handleList without format handlers', () => { '
        ', //Firefox ]; - expect(possibleResults.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, possibleResults); + expect(context.listFormat).toEqual({ threadItemCounts: [], nodeStack: [ @@ -634,10 +624,8 @@ describe('handleList without format handlers', () => { '
          ', //Firefox ]; - expect(possibleResults.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, possibleResults); + expect(context.listFormat).toEqual({ threadItemCounts: [1], nodeStack: [ @@ -726,11 +714,10 @@ describe('handleList handles metadata', () => { const possibleResults = [ '
            ', // Chrome '
              ', // Firefox + '
                ', // Firefox 116+ ]; - expect(possibleResults.indexOf(parent.innerHTML)).toBeGreaterThanOrEqual( - 0, - parent.innerHTML - ); + + expectHtml(parent.innerHTML, possibleResults); }); it('OL with metadata with simple value', () => { @@ -752,12 +739,10 @@ describe('handleList handles metadata', () => { const possibleResults = [ '
                  ', // Chrome '
                    ', // Firefox + '
                      ', // Firefox 116+ ]; - expect(possibleResults.indexOf(parent.innerHTML)).toBeGreaterThanOrEqual( - 0, - parent.innerHTML - ); + expectHtml(parent.innerHTML, possibleResults); }); it('UL with metadata with simple value', () => { @@ -780,10 +765,7 @@ describe('handleList handles metadata', () => { '', // Chrome '', // Firefox ]; - expect(possibleResults.indexOf(parent.innerHTML)).toBeGreaterThanOrEqual( - 0, - parent.innerHTML - ); + expectHtml(parent.innerHTML, possibleResults); }); it('OL with refNode', () => { @@ -796,10 +778,8 @@ describe('handleList handles metadata', () => { const possibleResults = ['

                        ']; - expect(possibleResults.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, possibleResults); + expect(context.listFormat).toEqual({ threadItemCounts: [0], nodeStack: [ @@ -834,10 +814,8 @@ describe('handleList handles metadata', () => { '

                          ', //Firefox ]; - expect(possibleResults.indexOf(parent.outerHTML)).toBeGreaterThanOrEqual( - 0, - parent.outerHTML - ); + expectHtml(parent.outerHTML, possibleResults); + expect(context.listFormat).toEqual({ threadItemCounts: [1, 0], nodeStack: [ diff --git a/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWacTest.ts b/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWacTest.ts index 524b2a079b5..5053a5dba1a 100644 --- a/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWacTest.ts +++ b/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWacTest.ts @@ -1311,7 +1311,7 @@ describe('wordOnlineHandler', () => { }); describe('Contain Word WAC Image', () => { - it('Contain Single WAC Image', () => { + itChromeOnly('Contain Single WAC Image', () => { runTest( 'Graphical user interface, text, application Description automatically generated', undefined, diff --git a/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWordDesktopTest.ts b/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWordDesktopTest.ts index 008ce2dcdf0..b8f53cbf6b3 100644 --- a/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWordDesktopTest.ts +++ b/packages-content-model/roosterjs-content-model-editor/test/editor/plugins/paste/processPastedContentFromWordDesktopTest.ts @@ -1,15 +1,20 @@ import ContentModelBeforePasteEvent from '../../../../lib/publicTypes/event/ContentModelBeforePasteEvent'; -import { Browser, moveChildNodes } from 'roosterjs-editor-dom'; import { ClipboardData, PluginEventType } from 'roosterjs-editor-types'; import { ContentModelDocument } from 'roosterjs-content-model-types'; import { contentModelToDom, domToContentModel } from 'roosterjs-content-model-dom'; +import { expectHtml } from 'roosterjs-editor-api/test/TestHelper'; +import { moveChildNodes } from 'roosterjs-editor-dom'; import { processPastedContentFromWordDesktop } from '../../../../lib/editor/plugins/PastePlugin/WordDesktop/processPastedContentFromWordDesktop'; describe('processPastedContentFromWordDesktopTest', () => { let div: HTMLElement; let fragment: DocumentFragment; - function runTest(source?: string, expected?: string, expectedModel?: ContentModelDocument) { + function runTest( + source?: string, + expected?: string | string[], + expectedModel?: ContentModelDocument + ) { //Act if (source) { div = document.createElement('div'); @@ -40,7 +45,7 @@ describe('processPastedContentFromWordDesktopTest', () => { //Assert if (expected) { - expect(div.innerHTML).toBe(expected); + expectHtml(div.innerHTML, expected); } div.parentElement?.removeChild(div); } @@ -853,9 +858,10 @@ describe('processPastedContentFromWordDesktopTest', () => { '' + '' + '', - Browser.isFirefox - ? '
                          1. 123123
                            1. 123123
                              1. 123123
                                1. 123123123
                          ' - : '
                          1. 123123
                            1. 123123
                              1. 123123
                                1. 123123123
                          ', + [ + '
                          1. 123123
                            1. 123123
                              1. 123123
                                1. 123123123
                          ', + '
                          1. 123123
                            1. 123123
                              1. 123123
                                1. 123123123
                          ', + ], { blockGroupType: 'Document', blocks: [ @@ -1164,9 +1170,10 @@ describe('processPastedContentFromWordDesktopTest', () => { it('Word doc created online but edited and copied from Desktop', () => { runTest( '

                          it went:

                          1.     Test

                          2.     Test2

                          ', - Browser.isFirefox - ? '

                          it went:

                          1. Test
                          2. Test2
                          ' - : '

                          it went:

                          1. Test
                          2. Test2
                          ', + [ + '

                          it went:

                          1. Test
                          2. Test2
                          ', + '

                          it went:

                          1. Test
                          2. Test2
                          ', + ], { blockGroupType: 'Document', blocks: [ diff --git a/packages/roosterjs-editor-api/test/format/clearFormatTest.ts b/packages/roosterjs-editor-api/test/format/clearFormatTest.ts index 5f12ea78e23..68cee8b98da 100644 --- a/packages/roosterjs-editor-api/test/format/clearFormatTest.ts +++ b/packages/roosterjs-editor-api/test/format/clearFormatTest.ts @@ -210,8 +210,10 @@ describe('clearAutodetectFormat tests', () => { () => { const originalContent = '

                          '; - const expectedFormat = - '

                          item 2 with more text

                          '; + const expectedFormat = [ + '

                          item 2 with more text

                          ', + '

                          item 2 with more text

                          ', + ]; editor.setContent(originalContent); const ul = doc.getElementsByTagName('ul')[0]; @@ -224,7 +226,7 @@ describe('clearAutodetectFormat tests', () => { clearFormat(editor, ClearFormatMode.AutoDetect); - expect(editor.getContent()).toBe(expectedFormat); + TestHelper.expectHtml(editor.getContent(), expectedFormat); } ); @@ -299,8 +301,10 @@ describe('clearAutodetectFormat Partial Tests', () => { TestHelper.itFirefoxOnly('removes format of partial selected element inside a LI', () => { const originalContent = '

                          '; - const expectedFormat = - '

                          '; + const expectedFormat = [ + '

                          ', + '

                          ', + ]; editor.setContent(originalContent); const ul = doc.getElementsByTagName('ul')[0]; @@ -313,7 +317,7 @@ describe('clearAutodetectFormat Partial Tests', () => { clearFormat(editor, ClearFormatMode.AutoDetect); - expect(editor.getContent()).toBe(expectedFormat); + TestHelper.expectHtml(editor.getContent(), expectedFormat); }); }); @@ -346,7 +350,7 @@ describe('clearAutodetectFormat tests with defaultFormat | ', () => { function runTest( ogContent: string, - expectedContent: string | undefined, + expectedContent: string | undefined | string[], selectCallback: () => void, additionalExpects?: () => void ) { @@ -355,9 +359,11 @@ describe('clearAutodetectFormat tests with defaultFormat | ', () => { selectCallback(); clearFormat(editor, ClearFormatMode.AutoDetect); + if (expectedContent) { - expect(editor.getContent()).toBe(expectedContent); + TestHelper.expectHtml(editor.getContent(), expectedContent); } + additionalExpects?.(); } @@ -421,8 +427,11 @@ describe('clearAutodetectFormat tests with defaultFormat | ', () => { () => { const originalContent = '

                          '; - const expectedFormat = - '

                          item 2 with more text

                          '; + const expectedFormat = [ + '

                          item 2 with more text

                          ', + '

                          item 2 with more text

                          ', + ]; + runTest(originalContent, expectedFormat, () => { const ul = doc.getElementsByTagName('ul')[0]; const li = ul.children[0]; diff --git a/packages/roosterjs-editor-dom/test/DomTestHelper.ts b/packages/roosterjs-editor-dom/test/DomTestHelper.ts index 6ab05327dc0..008a67edb86 100644 --- a/packages/roosterjs-editor-dom/test/DomTestHelper.ts +++ b/packages/roosterjs-editor-dom/test/DomTestHelper.ts @@ -121,3 +121,8 @@ export function itChromeOnly( const func = Browser.isChrome ? it : xit; return func(expectation, assertion, timeout); } + +export function expectHtml(actualHtml: string, expectedHtml: string | string[]) { + expectedHtml = Array.isArray(expectedHtml) ? expectedHtml : [expectedHtml]; + expect(expectedHtml.indexOf(actualHtml)).toBeGreaterThanOrEqual(0, actualHtml); +} diff --git a/packages/roosterjs-editor-dom/test/list/VListChainTest.ts b/packages/roosterjs-editor-dom/test/list/VListChainTest.ts index d164c7dbe61..e2f5b873adf 100644 --- a/packages/roosterjs-editor-dom/test/list/VListChainTest.ts +++ b/packages/roosterjs-editor-dom/test/list/VListChainTest.ts @@ -1,7 +1,7 @@ import getBlockElementAtNode from '../../lib/blockElements/getBlockElementAtNode'; import VListChain from '../../lib/list/VListChain'; import VListItem from '../../lib/list/VListItem'; -import { itFirefoxOnly } from '../DomTestHelper'; +import { expectHtml, itFirefoxOnly } from '../DomTestHelper'; import { ListType, PositionType } from 'roosterjs-editor-types'; import { Position } from 'roosterjs-editor-dom'; @@ -24,7 +24,7 @@ describe('createListChains', () => { expect(chains).toEqual([]); }); - function runTest(html: string, expectedHtml: string) { + function runTest(html: string, expectedHtml: string | string[]) { const div = document.createElement('div'); document.body.appendChild(div); div.innerHTML = html; @@ -39,7 +39,7 @@ describe('createListChains', () => { nameGenerator ); - expect(div.innerHTML).toBe(expectedHtml); + expectHtml(div.innerHTML, expectedHtml); document.body.removeChild(div); } @@ -71,42 +71,60 @@ describe('createListChains', () => { itFirefoxOnly('Two continuously lists', () => { runTest( '
                          1. item1
                          2. item2
                          test
                          1. item3
                          ', - `
                          1. item1
                          2. item2
                          test
                          1. item3
                          ` + [ + `
                          1. item1
                          2. item2
                          test
                          1. item3
                          `, + `
                          1. item1
                          2. item2
                          test
                          1. item3
                          `, + ] ); }); itFirefoxOnly('Two list chains', () => { runTest( '
                          1. item1
                          2. item2
                          3. item3
                          test
                          1. itemA
                          2. itemB
                          1. item4
                          test
                          1. itemC
                          ', - `
                          1. item1
                          2. item2
                          3. item3
                          test
                          1. itemA
                          2. itemB
                          1. item4
                          test
                          1. itemC
                          ` + [ + `
                          1. item1
                          2. item2
                          3. item3
                          test
                          1. itemA
                          2. itemB
                          1. item4
                          test
                          1. itemC
                          `, + `
                          1. item1
                          2. item2
                          3. item3
                          test
                          1. itemA
                          2. itemB
                          1. item4
                          test
                          1. itemC
                          `, + ] ); }); itFirefoxOnly('Unordered list in a chain', () => { runTest( '
                          1. item1
                          2. item2
                          test
                          test
                          1. item3
                          ', - `
                          1. item1
                          2. item2
                          test
                          test
                          1. item3
                          ` + [ + `
                          1. item1
                          2. item2
                          test
                          test
                          1. item3
                          `, + `
                          1. item1
                          2. item2
                          test
                          test
                          1. item3
                          `, + ] ); }); itFirefoxOnly('Nested list', () => { runTest( '
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          ', - `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          ` + [ + `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          `, + `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          `, + ] ); }); itFirefoxOnly('Nested list for separated lists', () => { runTest( '
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          ', - `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          ` + [ + `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          `, + `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          `, + ] ); }); itFirefoxOnly('Current node', () => { runTest( `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          `, - `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          ` + [ + `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          `, + `
                          1. item1
                            1. item1.1
                            2. item1.2
                          test
                          1. item2
                          `, + ] ); }); }); @@ -207,7 +225,7 @@ describe('VListChain.createVListAtNode', () => { function runTest( html: string, startNumber: number, - expectedHtml: string, + expectedHtml: string | string[], expectedItems: { listTypes: ListType[]; outerHTML: string }[] ) { const div = document.createElement('div'); @@ -239,7 +257,7 @@ describe('VListChain.createVListAtNode', () => { expect(vList).toBeNull(); } - expect(div.innerHTML).toBe(expectedHtml); + expectHtml(div.innerHTML, expectedHtml); document.body.removeChild(div); } @@ -257,7 +275,10 @@ describe('VListChain.createVListAtNode', () => { runTest( `
                          1. item
                          test
                          `, 2, - `
                          1. item
                          1. test
                          2. `, + [ + `
                            1. item
                            1. test
                            2. `, + `
                              1. item
                              1. test
                              2. `, + ], [ { listTypes: [ListType.None], From 537af5617d13e4061e1b11314b8aab77eb47b624 Mon Sep 17 00:00:00 2001 From: Jiuqing Song Date: Tue, 1 Aug 2023 12:59:21 -0700 Subject: [PATCH 2/2] remove unnecessary change --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 67b660708b5..72516b909df 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "test": "node tools/build.js normalize & karma start --chrome", "test:chrome": "node tools/build.js normalize & karma start --chrome", "test:firefox": "node tools/build.js normalize & karma start --firefox", - "test:debug": "node tools/build.js normalize & karma start --no-single-run --firefox", + "test:debug": "node tools/build.js normalize & karma start --no-single-run --chrome", "test:coverage": "node tools/build.js normalize & karma start --coverage --firefox --chrome", "test:cm": "node tools/build.js normalize & karma start --no-single-run --chrome --contentmodel", "test:cm:firefox": "node tools/build.js normalize & karma start --no-single-run --firefox --contentmodel",