character.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* bender-tags: treemodel */
  6. /* bender-include: ../_tools/tools.js */
  7. 'use strict';
  8. const getIteratorCount = bender.tools.core.getIteratorCount;
  9. const modules = bender.amd.require(
  10. 'core/treemodel/character',
  11. 'core/treemodel/node',
  12. 'core/treemodel/element',
  13. 'core/treemodel/attribute'
  14. );
  15. describe( 'Character', () => {
  16. let Element, Character, Node, Attribute;
  17. before( () => {
  18. Element = modules[ 'core/treemodel/element' ];
  19. Character = modules[ 'core/treemodel/character' ];
  20. Node = modules[ 'core/treemodel/node' ];
  21. Attribute = modules[ 'core/treemodel/attribute' ];
  22. } );
  23. describe( 'constructor', () => {
  24. it( 'should create character without attributes', () => {
  25. let character = new Character( 'f' );
  26. let parent = new Element( 'parent', [], character );
  27. expect( character ).to.be.an.instanceof( Node );
  28. expect( character ).to.have.property( 'character' ).that.equals( 'f' );
  29. expect( character ).to.have.property( 'parent' ).that.equals( parent );
  30. expect( getIteratorCount( character.getAttrs() ) ).to.equal( 0 );
  31. } );
  32. it( 'should create character with attributes', () => {
  33. let attr = new Attribute( 'foo', 'bar' );
  34. let character = new Character( 'f', [ attr ] );
  35. let parent = new Element( 'parent', [], character );
  36. expect( character ).to.be.an.instanceof( Node );
  37. expect( character ).to.have.property( 'character' ).that.equals( 'f' );
  38. expect( character ).to.have.property( 'parent' ).that.equals( parent );
  39. expect( getIteratorCount( character.getAttrs() ) ).to.equal( 1 );
  40. expect( character.getAttr( attr.key ) ).to.equal( attr.value );
  41. } );
  42. } );
  43. } );