character.js 1.7 KB

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