Skip to content
This repository has been archived by the owner on Jun 26, 2020. It is now read-only.

Commit

Permalink
Inline is() checks in view and model elements.
Browse files Browse the repository at this point in the history
  • Loading branch information
jodator committed Apr 2, 2020
1 parent 94164bf commit 662396f
Show file tree
Hide file tree
Showing 20 changed files with 87 additions and 94 deletions.
6 changes: 2 additions & 4 deletions src/model/element.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,10 @@ export default class Element extends Node {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type.replace( /^model:/, '' );

if ( !name ) {
return cutType == 'element' || cutType == this.name || super.is( type );
return type == 'element' || type == this.name || type == 'node';
} else {
return cutType == 'element' && name == this.name;
return type == 'element' && name == this.name;
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/model/liveposition.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ export default class LivePosition extends Position {
* @returns {Boolean}
*/
is( type ) {
return type == 'livePosition' || type == 'model:livePosition' || super.is( type );
return type == 'livePosition' || type == 'model:livePosition' || type == 'position' || type == 'model:position';
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/model/liverange.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export default class LiveRange extends Range {
* @returns {Boolean}
*/
is( type ) {
return type == 'liveRange' || type == 'model:liveRange' || super.is( type );
return type == 'liveRange' || type == 'model:liveRange' || type == 'range' || type == 'model:range';
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/model/text.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ export default class Text extends Node {
* @returns {Boolean}
*/
is( type ) {
return type == 'text' || type == 'model:text' || super.is( type );
return type == 'text' || type == 'node';
}

/**
Expand Down
6 changes: 2 additions & 4 deletions src/view/attributeelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,12 +157,10 @@ export default class AttributeElement extends Element {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type && type.replace( /^view:/, '' );

if ( !name ) {
return cutType == 'attributeElement' || super.is( type );
return type == 'attributeElement' || type == 'element' || type == this.name || type == 'node';
} else {
return ( cutType == 'attributeElement' && name == this.name ) || super.is( type, name );
return ( type == 'attributeElement' && name == this.name ) || ( type == 'element' && name == this.name );
}
}

Expand Down
5 changes: 2 additions & 3 deletions src/view/containerelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,10 @@ export default class ContainerElement extends Element {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type && type.replace( /^view:/, '' );
if ( !name ) {
return cutType == 'containerElement' || super.is( type );
return type == 'containerElement' || type == 'element' || type == this.name || type == 'node';
} else {
return ( cutType == 'containerElement' && name == this.name ) || super.is( type, name );
return ( type == 'containerElement' && name == this.name ) || ( type == 'element' && name == this.name );
}
}
}
Expand Down
5 changes: 2 additions & 3 deletions src/view/editableelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,10 @@ export default class EditableElement extends ContainerElement {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type && type.replace( /^view:/, '' );
if ( !name ) {
return cutType == 'editableElement' || super.is( type );
return type == 'editableElement' || type == 'containerElement' || type == 'element' || type == this.name || type == 'node';
} else {
return ( cutType == 'editableElement' && name == this.name ) || super.is( type, name );
return name == this.name && ( type == 'editableElement' || type == 'containerElement' || type == 'element' );
}
}

Expand Down
5 changes: 2 additions & 3 deletions src/view/element.js
Original file line number Diff line number Diff line change
Expand Up @@ -176,11 +176,10 @@ export default class Element extends Node {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type.replace( /^view:/, '' );
if ( !name ) {
return cutType == 'element' || cutType == this.name || super.is( type );
return type == 'element' || type == this.name || type == 'node' || type == 'view:node';
} else {
return cutType == 'element' && name == this.name;
return type == 'element' && name == this.name;
}
}

Expand Down
5 changes: 2 additions & 3 deletions src/view/emptyelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,10 @@ export default class EmptyElement extends Element {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type.replace( /^view:/, '' );
if ( !name ) {
return cutType == 'emptyElement' || super.is( type );
return type == 'emptyElement' || type == 'element' || type == this.name || type == 'node';
} else {
return ( cutType == 'emptyElement' && name == this.name ) || super.is( type, name );
return ( type == 'emptyElement' && name == this.name ) || ( type == 'element' && name == this.name );
}
}

Expand Down
7 changes: 4 additions & 3 deletions src/view/rooteditableelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,12 @@ export default class RootEditableElement extends EditableElement {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type.replace( /^view:/, '' );
if ( !name ) {
return cutType == 'rootElement' || super.is( type );
return type == 'rootElement' || type == 'editableElement' || type == 'containerElement' || type == 'element' ||
type == this.name || type == 'node';
} else {
return ( cutType == 'rootElement' && name == this.name ) || super.is( type, name );
return name == this.name &&
( type == 'rootElement' || type == 'editableElement' || type == 'containerElement' || type == 'element' );
}
}

Expand Down
5 changes: 2 additions & 3 deletions src/view/uielement.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,10 @@ export default class UIElement extends Element {
* @returns {Boolean}
*/
is( type, name = null ) {
const cutType = type.replace( /^view:/, '' );
if ( !name ) {
return cutType == 'uiElement' || super.is( type );
return type == 'uiElement' || type == 'element' || type == this.name || type == 'node';
} else {
return ( cutType == 'uiElement' && name == this.name ) || super.is( type, name );
return ( type == 'uiElement' && name == this.name ) || ( type == 'element' && name == this.name );
}
}

Expand Down
9 changes: 5 additions & 4 deletions tests/model/element.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,14 @@ describe( 'Element', () => {

it( 'should return true for node, element, element with same name and element name', () => {
expect( element.is( 'node' ) ).to.be.true;
expect( element.is( 'model:node' ) ).to.be.true;
expect( element.is( 'element' ) ).to.be.true;
expect( element.is( 'model:element' ) ).to.be.true;
expect( element.is( 'element', 'paragraph' ) ).to.be.true;
expect( element.is( 'model:element', 'paragraph' ) ).to.be.true;
expect( element.is( 'paragraph' ) ).to.be.true;
expect( element.is( 'model:paragraph' ) ).to.be.true;

// expect( element.is( 'model:node' ) ).to.be.true;
// expect( element.is( 'model:element' ) ).to.be.true;
// expect( element.is( 'model:element', 'paragraph' ) ).to.be.true;
// expect( element.is( 'model:paragraph' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
Expand Down
8 changes: 4 additions & 4 deletions tests/model/text.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ describe( 'Text', () => {

it( 'should return true for node, text', () => {
expect( text.is( 'node' ) ).to.be.true;
expect( text.is( 'model:node' ) ).to.be.true;
expect( text.is( 'text' ) ).to.be.true;
expect( text.is( 'model:text' ) ).to.be.true;
// expect( text.is( 'model:node' ) ).to.be.true;
// expect( text.is( 'model:text' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
expect( text.is( 'textProxy' ) ).to.be.false;
expect( text.is( 'element' ) ).to.be.false;
expect( text.is( 'model:element' ) ).to.be.false;
expect( text.is( 'rootElement' ) ).to.be.false;
expect( text.is( 'documentFragment' ) ).to.be.false;
// expect( text.is( 'model:element' ) ).to.be.false;
// expect( text.is( 'documentFragment' ) ).to.be.false;
} );
} );

Expand Down
10 changes: 5 additions & 5 deletions tests/view/attributeelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ describe( 'AttributeElement', () => {

it( 'should return true for attributeElement/element, also with correct name and element name', () => {
expect( el.is( 'attributeElement' ) ).to.be.true;
expect( el.is( 'view:attributeElement' ) ).to.be.true;
// expect( el.is( 'view:attributeElement' ) ).to.be.true;
expect( el.is( 'attributeElement', 'span' ) ).to.be.true;
expect( el.is( 'view:attributeElement', 'span' ) ).to.be.true;
// expect( el.is( 'view:attributeElement', 'span' ) ).to.be.true;
expect( el.is( 'element' ) ).to.be.true;
expect( el.is( 'view:element' ) ).to.be.true;
// expect( el.is( 'view:element' ) ).to.be.true;
expect( el.is( 'element', 'span' ) ).to.be.true;
expect( el.is( 'view:element', 'span' ) ).to.be.true;
// expect( el.is( 'view:element', 'span' ) ).to.be.true;
expect( el.is( 'span' ) ).to.be.true;
expect( el.is( 'view:span' ) ).to.be.true;
// expect( el.is( 'view:span' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
Expand Down
10 changes: 5 additions & 5 deletions tests/view/containerelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ describe( 'ContainerElement', () => {

it( 'should return true for containerElement/element, also with correct name and element name', () => {
expect( el.is( 'containerElement' ) ).to.be.true;
expect( el.is( 'view:containerElement' ) ).to.be.true;
// expect( el.is( 'view:containerElement' ) ).to.be.true;
expect( el.is( 'containerElement', 'p' ) ).to.be.true;
expect( el.is( 'view:containerElement', 'p' ) ).to.be.true;
// expect( el.is( 'view:containerElement', 'p' ) ).to.be.true;
expect( el.is( 'element' ) ).to.be.true;
expect( el.is( 'view:element' ) ).to.be.true;
// expect( el.is( 'view:element' ) ).to.be.true;
expect( el.is( 'element', 'p' ) ).to.be.true;
expect( el.is( 'view:element', 'p' ) ).to.be.true;
// expect( el.is( 'view:element', 'p' ) ).to.be.true;
expect( el.is( 'p' ) ).to.be.true;
expect( el.is( 'view:p' ) ).to.be.true;
// expect( el.is( 'view:p' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
Expand Down
22 changes: 11 additions & 11 deletions tests/view/editableelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,30 +20,30 @@ describe( 'EditableElement', () => {

it( 'should return true for containerElement/editable/element, also with correct name and element name', () => {
expect( el.is( 'containerElement' ) ).to.be.true;
expect( el.is( 'view:containerElement' ) ).to.be.true;
// expect( el.is( 'view:containerElement' ) ).to.be.true;
expect( el.is( 'containerElement', 'div' ) ).to.be.true;
expect( el.is( 'view:containerElement', 'div' ) ).to.be.true;
// expect( el.is( 'view:containerElement', 'div' ) ).to.be.true;
expect( el.is( 'editableElement' ) ).to.be.true;
expect( el.is( 'view:editableElement' ) ).to.be.true;
// expect( el.is( 'view:editableElement' ) ).to.be.true;
expect( el.is( 'editableElement', 'div' ) ).to.be.true;
expect( el.is( 'view:editableElement', 'div' ) ).to.be.true;
// expect( el.is( 'view:editableElement', 'div' ) ).to.be.true;
expect( el.is( 'element' ) ).to.be.true;
expect( el.is( 'view:element' ) ).to.be.true;
// expect( el.is( 'view:element' ) ).to.be.true;
expect( el.is( 'element', 'div' ) ).to.be.true;
expect( el.is( 'view:element', 'div' ) ).to.be.true;
// expect( el.is( 'view:element', 'div' ) ).to.be.true;
expect( el.is( 'div' ) ).to.be.true;
expect( el.is( 'view:div' ) ).to.be.true;
// expect( el.is( 'view:div' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
expect( el.is( 'rootElement', 'p' ) ).to.be.false;
expect( el.is( 'view:rootElement', 'p' ) ).to.be.false;
// expect( el.is( 'view:rootElement', 'p' ) ).to.be.false;
expect( el.is( 'containerElement', 'p' ) ).to.be.false;
expect( el.is( 'view:containerElement', 'p' ) ).to.be.false;
// expect( el.is( 'view:containerElement', 'p' ) ).to.be.false;
expect( el.is( 'element', 'p' ) ).to.be.false;
expect( el.is( 'view:element', 'p' ) ).to.be.false;
// expect( el.is( 'view:element', 'p' ) ).to.be.false;
expect( el.is( 'p' ) ).to.be.false;
expect( el.is( 'view:p' ) ).to.be.false;
// expect( el.is( 'view:p' ) ).to.be.false;
expect( el.is( 'text' ) ).to.be.false;
expect( el.is( 'textProxy' ) ).to.be.false;
expect( el.is( 'attributeElement' ) ).to.be.false;
Expand Down
8 changes: 4 additions & 4 deletions tests/view/element.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,13 +98,13 @@ describe( 'Element', () => {

it( 'should return true for node, element, element with correct name and element name', () => {
expect( el.is( 'node' ) ).to.be.true;
expect( el.is( 'view:node' ) ).to.be.true;
expect( el.is( 'element' ) ).to.be.true;
expect( el.is( 'view:element' ) ).to.be.true;
expect( el.is( 'element', 'p' ) ).to.be.true;
expect( el.is( 'view:element', 'p' ) ).to.be.true;
expect( el.is( 'p' ) ).to.be.true;
expect( el.is( 'view:p' ) ).to.be.true;
// expect( el.is( 'view:node' ) ).to.be.true;
// expect( el.is( 'view:element' ) ).to.be.true;
// expect( el.is( 'view:element', 'p' ) ).to.be.true;
// expect( el.is( 'view:p' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
Expand Down
18 changes: 9 additions & 9 deletions tests/view/emptyelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,26 +32,26 @@ describe( 'EmptyElement', () => {

it( 'should return true for emptyElement/element, also with correct name and element name', () => {
expect( el.is( 'emptyElement' ) ).to.be.true;
expect( el.is( 'view:emptyElement' ) ).to.be.true;
// expect( el.is( 'view:emptyElement' ) ).to.be.true;
expect( el.is( 'emptyElement', 'p' ) ).to.be.true;
expect( el.is( 'view:emptyElement', 'p' ) ).to.be.true;
// expect( el.is( 'view:emptyElement', 'p' ) ).to.be.true;
expect( el.is( 'element' ) ).to.be.true;
expect( el.is( 'view:element' ) ).to.be.true;
// expect( el.is( 'view:element' ) ).to.be.true;
expect( el.is( 'element', 'p' ) ).to.be.true;
expect( el.is( 'view:element', 'p' ) ).to.be.true;
// expect( el.is( 'view:element', 'p' ) ).to.be.true;
expect( el.is( 'p' ) ).to.be.true;
expect( el.is( 'view:p' ) ).to.be.true;
// expect( el.is( 'view:p' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
expect( el.is( 'emptyElement', 'span' ) ).to.be.false;
expect( el.is( 'view:emptyElement', 'span' ) ).to.be.false;
// expect( el.is( 'view:emptyElement', 'span' ) ).to.be.false;
expect( el.is( 'element', 'span' ) ).to.be.false;
expect( el.is( 'view:element', 'span' ) ).to.be.false;
// expect( el.is( 'view:element', 'span' ) ).to.be.false;
expect( el.is( 'span' ) ).to.be.false;
expect( el.is( 'view:span' ) ).to.be.false;
// expect( el.is( 'view:span' ) ).to.be.false;
expect( el.is( 'text' ) ).to.be.false;
expect( el.is( 'view:text' ) ).to.be.false;
// expect( el.is( 'view:text' ) ).to.be.false;
expect( el.is( 'textProxy' ) ).to.be.false;
expect( el.is( 'containerElement' ) ).to.be.false;
expect( el.is( 'attributeElement' ) ).to.be.false;
Expand Down
28 changes: 14 additions & 14 deletions tests/view/rooteditableelement.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,36 +51,36 @@ describe( 'RootEditableElement', () => {

it( 'should return true for rootElement/containerElement/editable/element, also with correct name and element name', () => {
expect( el.is( 'rootElement' ) ).to.be.true;
expect( el.is( 'view:rootElement' ) ).to.be.true;
// expect( el.is( 'view:rootElement' ) ).to.be.true;
expect( el.is( 'rootElement', 'div' ) ).to.be.true;
expect( el.is( 'view:rootElement', 'div' ) ).to.be.true;
// expect( el.is( 'view:rootElement', 'div' ) ).to.be.true;
expect( el.is( 'containerElement' ) ).to.be.true;
expect( el.is( 'view:containerElement' ) ).to.be.true;
// expect( el.is( 'view:containerElement' ) ).to.be.true;
expect( el.is( 'containerElement', 'div' ) ).to.be.true;
expect( el.is( 'view:containerElement', 'div' ) ).to.be.true;
// expect( el.is( 'view:containerElement', 'div' ) ).to.be.true;
expect( el.is( 'editableElement' ) ).to.be.true;
expect( el.is( 'view:editableElement' ) ).to.be.true;
// expect( el.is( 'view:editableElement' ) ).to.be.true;
expect( el.is( 'editableElement', 'div' ) ).to.be.true;
expect( el.is( 'view:editableElement', 'div' ) ).to.be.true;
// expect( el.is( 'view:editableElement', 'div' ) ).to.be.true;
expect( el.is( 'element' ) ).to.be.true;
expect( el.is( 'view:element' ) ).to.be.true;
// expect( el.is( 'view:element' ) ).to.be.true;
expect( el.is( 'element', 'div' ) ).to.be.true;
expect( el.is( 'view:element', 'div' ) ).to.be.true;
// expect( el.is( 'view:element', 'div' ) ).to.be.true;
expect( el.is( 'div' ) ).to.be.true;
expect( el.is( 'view:div' ) ).to.be.true;
// expect( el.is( 'view:div' ) ).to.be.true;
} );

it( 'should return false for other accept values', () => {
expect( el.is( 'rootElement', 'p' ) ).to.be.false;
expect( el.is( 'view:rootElement', 'p' ) ).to.be.false;
// expect( el.is( 'view:rootElement', 'p' ) ).to.be.false;
expect( el.is( 'containerElement', 'p' ) ).to.be.false;
expect( el.is( 'view:containerElement', 'p' ) ).to.be.false;
// expect( el.is( 'view:containerElement', 'p' ) ).to.be.false;
expect( el.is( 'element', 'p' ) ).to.be.false;
expect( el.is( 'view:element', 'p' ) ).to.be.false;
// expect( el.is( 'view:element', 'p' ) ).to.be.false;
expect( el.is( 'p' ) ).to.be.false;
expect( el.is( 'view:p' ) ).to.be.false;
// expect( el.is( 'view:p' ) ).to.be.false;
expect( el.is( 'text' ) ).to.be.false;
expect( el.is( 'view:text' ) ).to.be.false;
// expect( el.is( 'view:text' ) ).to.be.false;
expect( el.is( 'textProxy' ) ).to.be.false;
expect( el.is( 'attributeElement' ) ).to.be.false;
expect( el.is( 'uiElement' ) ).to.be.false;
Expand Down
Loading

0 comments on commit 662396f

Please sign in to comment.