Browse Source

Improve table for xml parser

pull/3691/head
Artur Arseniev 5 years ago
parent
commit
16f1609c4f
  1. 6
      src/dom_components/model/ComponentMap.js
  2. 17
      src/dom_components/model/ComponentTable.js
  3. 8
      test/specs/dom_components/model/ComponentTypes.js

6
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;

17
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
}
);

8
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('<a href="/link">link</a>', 'link');
});
test('<table> is correctly recognized', () => {
expectedType('<table></table>', 'table', { skipHtml: 1 });
});
test('<script> is correctly recognized', () => {
// const scr = 'console.log("Inline script");'; // issues with jsdom parser
const scr = ``;

Loading…
Cancel
Save