From 16f1609c4fe40348384b7ccb07614a9ce5154a85 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 10 Aug 2021 01:58:16 +0200 Subject: [PATCH] Improve table for xml parser --- src/dom_components/model/ComponentMap.js | 6 +++++- src/dom_components/model/ComponentTable.js | 17 ++++++----------- .../dom_components/model/ComponentTypes.js | 8 ++++++-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/dom_components/model/ComponentMap.js b/src/dom_components/model/ComponentMap.js index 6dd1c59de..b597d049a 100644 --- a/src/dom_components/model/ComponentMap.js +++ b/src/dom_components/model/ComponentMap.js @@ -1,5 +1,6 @@ import Component from './ComponentImage'; import OComponent from './Component'; +import { toLowerCase } from 'utils/mixins'; export default Component.extend( { @@ -100,7 +101,10 @@ export default Component.extend( */ isComponent(el) { var result = ''; - if (el.tagName == 'IFRAME' && /maps\.google\.com/.test(el.src)) { + if ( + toLowerCase(el.tagName) == 'iframe' && + /maps\.google\.com/.test(el.src) + ) { result = { type: 'map', src: el.src }; } return result; diff --git a/src/dom_components/model/ComponentTable.js b/src/dom_components/model/ComponentTable.js index 79573e56d..220d13f2c 100644 --- a/src/dom_components/model/ComponentTable.js +++ b/src/dom_components/model/ComponentTable.js @@ -1,11 +1,14 @@ import Component from './Component'; +import { toLowerCase } from 'utils/mixins'; + +const type = 'table'; export default Component.extend( { defaults: { ...Component.prototype.defaults, - type: 'table', - tagName: 'table', + type, + tagName: type, droppable: ['tbody', 'thead', 'tfoot'] }, @@ -16,14 +19,6 @@ export default Component.extend( } }, { - isComponent(el) { - let result = ''; - - if (el.tagName == 'TABLE') { - result = { type: 'table' }; - } - - return result; - } + isComponent: el => toLowerCase(el.tagName) === type } ); diff --git a/test/specs/dom_components/model/ComponentTypes.js b/test/specs/dom_components/model/ComponentTypes.js index 0cd84af34..afc4532b7 100644 --- a/test/specs/dom_components/model/ComponentTypes.js +++ b/test/specs/dom_components/model/ComponentTypes.js @@ -4,10 +4,10 @@ describe('Component Types', () => { let editor; let wrapper; - const expectedType = (input, type) => { + const expectedType = (input, type, opts = {}) => { const cmp = wrapper.append(input)[0]; expect(wrapper.components().length).toBe(1); - expect(cmp.toHTML()).toBe(input); + !opts.skipHtml && expect(cmp.toHTML()).toBe(input); expect(cmp.is(type)).toBe(true); }; @@ -40,6 +40,10 @@ describe('Component Types', () => { expectedType('link', 'link'); }); + test(' is correctly recognized', () => { + expectedType('
', 'table', { skipHtml: 1 }); + }); + test('