|
|
@@ -7,16 +7,17 @@ import ViewAttributeElement from '../../src/view/attributeelement';
|
|
|
import ViewContainerElement from '../../src/view/containerelement';
|
|
|
import ViewText from '../../src/view/text';
|
|
|
|
|
|
-import { getTouchingTextNode } from '../../src/view/utils';
|
|
|
+import { getTouchingTextNode } from '../../src/view/treewalker-utils';
|
|
|
|
|
|
describe( 'getTouchingTextNode()', () => {
|
|
|
- let a, b, x, y;
|
|
|
+ let a, b, x, y, z;
|
|
|
|
|
|
beforeEach( () => {
|
|
|
a = new ViewText( 'a' );
|
|
|
b = new ViewText( 'b' );
|
|
|
x = new ViewText( 'x' );
|
|
|
y = new ViewText( 'y' );
|
|
|
+ z = new ViewText( 'z' );
|
|
|
|
|
|
// <div><p>ab</p><p><em><strong>x</strong></em>y</p></div>
|
|
|
/* eslint-disable no-new */
|
|
|
@@ -26,33 +27,46 @@ describe( 'getTouchingTextNode()', () => {
|
|
|
new ViewContainerElement( 'p', null, [
|
|
|
new ViewAttributeElement( 'em', null, new ViewAttributeElement( 'strong', null, x ) ),
|
|
|
y
|
|
|
- ] )
|
|
|
+ ] ),
|
|
|
+
|
|
|
+ z,
|
|
|
+
|
|
|
+ new ViewContainerElement( 'p', null, [ new ViewText( '_' ) ] )
|
|
|
] );
|
|
|
} );
|
|
|
|
|
|
+ it( 'should return next touching view text node when direction is not specified', () => {
|
|
|
+ expect( getTouchingTextNode( a ) ).to.equal( b );
|
|
|
+ } );
|
|
|
+
|
|
|
it( 'should return next touching view text node', () => {
|
|
|
- expect( getTouchingTextNode( a, true ) ).to.equal( b );
|
|
|
+ expect( getTouchingTextNode( a, 'forward' ) ).to.equal( b );
|
|
|
} );
|
|
|
|
|
|
it( 'should return previous touching view text node', () => {
|
|
|
- expect( getTouchingTextNode( b, false ) ).to.equal( a );
|
|
|
+ expect( getTouchingTextNode( b, 'backward' ) ).to.equal( a );
|
|
|
} );
|
|
|
|
|
|
it( 'should go outside of attribute element looking for text nodes', () => {
|
|
|
- expect( getTouchingTextNode( x, true ) ).to.equal( y );
|
|
|
+ expect( getTouchingTextNode( x, 'forward' ) ).to.equal( y );
|
|
|
} );
|
|
|
|
|
|
it( 'should go inside attribute element looking for text nodes', () => {
|
|
|
- expect( getTouchingTextNode( y, false ) ).to.equal( x );
|
|
|
+ expect( getTouchingTextNode( y, 'backward' ) ).to.equal( x );
|
|
|
} );
|
|
|
|
|
|
it( 'should return null if there is no next text node in given container element', () => {
|
|
|
- expect( getTouchingTextNode( b, true ) ).to.be.null;
|
|
|
- expect( getTouchingTextNode( y, true ) ).to.be.null;
|
|
|
+ expect( getTouchingTextNode( b, 'forward' ) ).to.be.null;
|
|
|
+ expect( getTouchingTextNode( y, 'forward' ) ).to.be.null;
|
|
|
} );
|
|
|
|
|
|
it( 'should return null if there is no previous text node in given container element', () => {
|
|
|
- expect( getTouchingTextNode( a, false ) ).to.be.null;
|
|
|
- expect( getTouchingTextNode( x, false ) ).to.be.null;
|
|
|
+ expect( getTouchingTextNode( a, 'backward' ) ).to.be.null;
|
|
|
+ expect( getTouchingTextNode( x, 'backward' ) ).to.be.null;
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should not enter container element when looking for touching text node', () => {
|
|
|
+ expect( getTouchingTextNode( z ) ).to.be.null;
|
|
|
+ expect( getTouchingTextNode( z, 'backward' ) ).to.be.null;
|
|
|
} );
|
|
|
} );
|