utils.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 ViewPosition from '@ckeditor/ckeditor5-engine/src/view/position';
  7. import ViewDowncastWriter from '@ckeditor/ckeditor5-engine/src/view/downcastwriter';
  8. import { createViewListItemElement } from '../src/utils';
  9. describe( 'utils', () => {
  10. let writer;
  11. beforeEach( () => {
  12. writer = new ViewDowncastWriter( {} );
  13. } );
  14. describe( 'createViewListItemElement()', () => {
  15. it( 'should create ViewContainerElement', () => {
  16. const item = createViewListItemElement( writer );
  17. expect( item ).to.be.instanceof( ViewContainerElement );
  18. } );
  19. it( 'should have li name', () => {
  20. const item = createViewListItemElement( writer );
  21. expect( item.name ).to.equal( 'li' );
  22. } );
  23. describe( 'getFillerOffset', () => {
  24. it( 'should return 0 if item is empty', () => {
  25. const item = createViewListItemElement( writer );
  26. expect( item.getFillerOffset() ).to.equal( 0 );
  27. } );
  28. it( 'should return 0 if item has only lists as children', () => {
  29. const innerListItem1 = createViewListItemElement( writer );
  30. writer.insert(
  31. ViewPosition.createAt( innerListItem1 ),
  32. writer.createText( 'foo' )
  33. );
  34. const innerListItem2 = createViewListItemElement( writer );
  35. writer.insert(
  36. ViewPosition.createAt( innerListItem2 ),
  37. writer.createText( 'bar' )
  38. );
  39. const innerList = writer.createContainerElement( 'ul' );
  40. writer.insert( ViewPosition.createAt( innerList ), innerListItem1 );
  41. writer.insert( ViewPosition.createAt( innerList ), innerListItem2 );
  42. const outerListItem = createViewListItemElement( writer );
  43. writer.insert( ViewPosition.createAt( outerListItem ), innerList );
  44. expect( outerListItem.getFillerOffset() ).to.equal( 0 );
  45. } );
  46. it( 'should return null if item has non-list contents', () => {
  47. const item = createViewListItemElement( writer );
  48. writer.insert(
  49. ViewPosition.createAt( item ),
  50. writer.createText( 'foo' )
  51. );
  52. expect( item.getFillerOffset() ).to.be.null;
  53. } );
  54. } );
  55. } );
  56. } );