8
0

utils.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import ViewContainerElement from '@ckeditor/ckeditor5-engine/src/view/containerelement';
  6. import ViewDowncastWriter from '@ckeditor/ckeditor5-engine/src/view/downcastwriter';
  7. import { createViewListItemElement } from '../src/utils';
  8. describe( 'utils', () => {
  9. let writer;
  10. beforeEach( () => {
  11. writer = new ViewDowncastWriter( {} );
  12. } );
  13. describe( 'createViewListItemElement()', () => {
  14. it( 'should create ViewContainerElement', () => {
  15. const item = createViewListItemElement( writer );
  16. expect( item ).to.be.instanceof( ViewContainerElement );
  17. } );
  18. it( 'should have li name', () => {
  19. const item = createViewListItemElement( writer );
  20. expect( item.name ).to.equal( 'li' );
  21. } );
  22. describe( 'getFillerOffset', () => {
  23. it( 'should return 0 if item is empty', () => {
  24. const item = createViewListItemElement( writer );
  25. expect( item.getFillerOffset() ).to.equal( 0 );
  26. } );
  27. it( 'should return 0 if item has only lists as children', () => {
  28. const innerListItem1 = createViewListItemElement( writer );
  29. writer.insert(
  30. writer.createPositionAt( innerListItem1, 0 ),
  31. writer.createText( 'foo' )
  32. );
  33. const innerListItem2 = createViewListItemElement( writer );
  34. writer.insert(
  35. writer.createPositionAt( innerListItem2, 0 ),
  36. writer.createText( 'bar' )
  37. );
  38. const innerList = writer.createContainerElement( 'ul' );
  39. writer.insert( writer.createPositionAt( innerList, 0 ), innerListItem1 );
  40. writer.insert( writer.createPositionAt( innerList, 0 ), innerListItem2 );
  41. const outerListItem = createViewListItemElement( writer );
  42. writer.insert( writer.createPositionAt( outerListItem, 0 ), innerList );
  43. expect( outerListItem.getFillerOffset() ).to.equal( 0 );
  44. } );
  45. it( 'should return null if item has non-list contents', () => {
  46. const item = createViewListItemElement( writer );
  47. writer.insert(
  48. writer.createPositionAt( item, 0 ),
  49. writer.createText( 'foo' )
  50. );
  51. expect( item.getFillerOffset() ).to.be.null;
  52. } );
  53. } );
  54. } );
  55. } );