utils.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import ViewElement from '@ckeditor/ckeditor5-engine/src/view/element';
  6. import ModelElement from '@ckeditor/ckeditor5-engine/src/model/element';
  7. import { toImageWidget, isImageWidget, isImage } from '../../src/image/utils';
  8. import { isWidget, getLabel } from '../../src/widget/utils';
  9. describe( 'image widget utils', () => {
  10. let element, image;
  11. beforeEach( () => {
  12. image = new ViewElement( 'img' );
  13. element = new ViewElement( 'figure', null, image );
  14. toImageWidget( element, 'image widget' );
  15. } );
  16. describe( 'toImageWidget()', () => {
  17. it( 'should be widgetized', () => {
  18. expect( isWidget( element ) ).to.be.true;
  19. } );
  20. it( 'should set element\'s label', () => {
  21. expect( getLabel( element ) ).to.equal( 'image widget' );
  22. } );
  23. it( 'should set element\'s label combined with alt attribute', () => {
  24. image.setAttribute( 'alt', 'foo bar baz' );
  25. expect( getLabel( element ) ).to.equal( 'foo bar baz image widget' );
  26. } );
  27. it( 'provided label creator should always return same label', () => {
  28. image.setAttribute( 'alt', 'foo bar baz' );
  29. expect( getLabel( element ) ).to.equal( 'foo bar baz image widget' );
  30. expect( getLabel( element ) ).to.equal( 'foo bar baz image widget' );
  31. } );
  32. } );
  33. describe( 'isImageWidget()', () => {
  34. it( 'should return true for elements marked with toImageWidget()', () => {
  35. expect( isImageWidget( element ) ).to.be.true;
  36. } );
  37. it( 'should return false for non-widgetized elements', () => {
  38. expect( isImageWidget( new ViewElement( 'p' ) ) ).to.be.false;
  39. } );
  40. } );
  41. describe( 'isImage', () => {
  42. it( 'should return true for image element', () => {
  43. const image = new ModelElement( 'image' );
  44. expect( isImage( image ) ).to.be.true;
  45. } );
  46. it( 'should return true false for different elements', () => {
  47. const image = new ModelElement( 'foo' );
  48. expect( isImage( image ) ).to.be.false;
  49. } );
  50. it( 'should return true false for null and undefined', () => {
  51. expect( isImage( null ) ).to.be.false;
  52. expect( isImage( undefined ) ).to.be.false;
  53. } );
  54. } );
  55. } );