| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /**
- * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- /* globals console */
- import fullWidthIcon from '@ckeditor/ckeditor5-core/theme/icons/object-full-width.svg';
- import leftIcon from '@ckeditor/ckeditor5-core/theme/icons/object-left.svg';
- import centerIcon from '@ckeditor/ckeditor5-core/theme/icons/object-center.svg';
- import rightIcon from '@ckeditor/ckeditor5-core/theme/icons/object-right.svg';
- import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
- import { normalizeImageStyles } from '../../src/imagestyle/utils';
- describe( 'ImageStyle utils', () => {
- let imageStyles;
- testUtils.createSinonSandbox();
- describe( 'normalizeImageStyles()', () => {
- // Since this function is all about normalizing the config object, make sure it doesn't throw
- // if the config is empty (which may happen e.g. if only ImageStyleUI was loaded).
- it( 'does not throw when given undefined', () => {
- expect( normalizeImageStyles() ).to.deep.equal( [] );
- } );
- describe( 'object format', () => {
- beforeEach( () => {
- imageStyles = normalizeImageStyles( [
- { name: 'foo', title: 'foo', icon: 'custom', isDefault: true, className: 'foo-class' },
- { name: 'bar', title: 'bar', icon: 'right', className: 'bar-class' },
- { name: 'baz', title: 'Side image', icon: 'custom', className: 'baz-class' },
- // Customized default styles.
- { name: 'full', icon: 'left', title: 'Custom title' }
- ] );
- } );
- it( 'should pass through if #name not found in default styles', () => {
- expect( imageStyles[ 0 ] ).to.deep.equal( {
- name: 'foo',
- title: 'foo',
- icon: 'custom',
- isDefault: true,
- className: 'foo-class'
- } );
- } );
- it( 'should use one of default icons if #icon matches', () => {
- expect( imageStyles[ 1 ].icon ).to.equal( rightIcon );
- } );
- it( 'should extend one of default styles if #name matches', () => {
- expect( imageStyles[ 3 ] ).to.deep.equal( {
- name: 'full',
- title: 'Custom title',
- icon: leftIcon,
- isDefault: true
- } );
- } );
- } );
- describe( 'string format', () => {
- it( 'should use one of default styles if #name matches', () => {
- expect( normalizeImageStyles( [ 'full' ] ) ).to.deep.equal( [ {
- name: 'full',
- title: 'Full size image',
- icon: fullWidthIcon,
- isDefault: true
- } ] );
- expect( normalizeImageStyles( [ 'side' ] ) ).to.deep.equal( [ {
- name: 'side',
- title: 'Side image',
- icon: rightIcon,
- className: 'image-style-side'
- } ] );
- expect( normalizeImageStyles( [ 'alignLeft' ] ) ).to.deep.equal( [ {
- name: 'alignLeft',
- title: 'Left aligned image',
- icon: leftIcon,
- className: 'image-style-align-left'
- } ] );
- expect( normalizeImageStyles( [ 'alignCenter' ] ) ).to.deep.equal( [ {
- name: 'alignCenter',
- title: 'Centered image',
- icon: centerIcon,
- className: 'image-style-align-center'
- } ] );
- expect( normalizeImageStyles( [ 'alignRight' ] ) ).to.deep.equal( [ {
- name: 'alignRight',
- title: 'Right aligned image',
- icon: rightIcon,
- className: 'image-style-align-right'
- } ] );
- } );
- it( 'should warn if a #name not found in default styles', () => {
- testUtils.sinon.stub( console, 'warn' );
- expect( normalizeImageStyles( [ 'foo' ] ) ).to.deep.equal( [ {
- name: 'foo'
- } ] );
- sinon.assert.calledOnce( console.warn );
- sinon.assert.calledWithExactly( console.warn,
- sinon.match( /^image-style-not-found/ ),
- { name: 'foo' },
- sinon.match.string // Link to the documentation
- );
- } );
- } );
- } );
- } );
|