This is an automated email from the ASF dual-hosted git repository. gerben pushed a commit to branch import-dom-seek in repository https://gitbox.apache.org/repos/asf/incubator-annotator.git
commit ec53350d56e55dbd67981d43ed2204d90080d40c Author: Gerben <[email protected]> AuthorDate: Wed Nov 18 19:40:18 2020 +0100 Create basic tests for describe text position --- packages/dom/test/text-position/describe.test.ts | 55 ++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/packages/dom/test/text-position/describe.test.ts b/packages/dom/test/text-position/describe.test.ts new file mode 100644 index 0000000..2eefd38 --- /dev/null +++ b/packages/dom/test/text-position/describe.test.ts @@ -0,0 +1,55 @@ +/** + * @license + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { assert } from 'chai'; +import { describeTextPosition } from '../../src/text-position/describe'; +import { hydrateRange } from '../utils'; +import { testCases } from './match-cases'; + +const domParser = new window.DOMParser(); + +describe('createTextPositionSelectorMatcher', () => { + describe('inverts test cases of text position matcher', () => { + for (const [name, { html, selector, expected }] of Object.entries( + testCases, + )) { + const range = expected[0]; + it(`case: '${name}'`, async () => { + const doc = domParser.parseFromString(html, 'text/html'); + const scope = doc.createRange(); + scope.selectNodeContents(doc); + const result = await describeTextPosition(hydrateRange(range, doc), scope); + assert.deepEqual(result, selector); + }); + } + }); + + it('works with a scope', () => { + // TODO + }); + + it('works with split text nodes', () => { + // TODO + }); + + it('works with code points split across text nodes', () => { + // TODO + }); +});
