import { RawAssertions } from '@ephox/agar'; import StyleConversions from 'tinymce/themes/mobile/util/StyleConversions'; import { UnitTest } from '@ephox/bedrock'; UnitTest.test('Atomic Test: styles.StyleConversionsTest', function () { const check = function (label, expected, input) { const output = StyleConversions.expand(input); RawAssertions.assertEq('StyleConversions.expand (' + label + ')', expected, output); }; check( 'Empty input', { menus: { }, expansions: { }, items: [ ] }, [ ] ); check( 'Input with one flat item', { menus: { }, expansions: { }, items: [ { title: 'alpha' } ] }, [ { title: 'alpha' } ] ); check( 'Input with three flat items', { menus: { }, expansions: { }, items: [ { title: 'alpha' }, { title: 'beta' }, { title: 'gamma' } ] }, [ { title: 'alpha' }, { title: 'beta' }, { title: 'gamma' } ] ); check( 'Input with three items, and an empty menu in the middle', { menus: { beta: [ ] }, expansions: { beta: 'beta' }, items: [ { title: 'alpha' }, { title: 'beta', menu: true }, { title: 'gamma' } ] }, [ { title: 'alpha' }, { title: 'beta', items: [ ] }, { title: 'gamma' } ] ); check( 'Input with three items, and a menu with a single item in the middle', { menus: { beta: [ { title: 'beta-1' } ] }, expansions: { beta: 'beta' }, items: [ { title: 'alpha' }, { title: 'beta', menu: true }, { title: 'gamma' } ] }, [ { title: 'alpha' }, { title: 'beta', items: [ { title: 'beta-1' } ] }, { title: 'gamma' } ] ); check( 'Input with three items, and a menu with three items in the middle', { menus: { beta: [ { title: 'beta-1' }, { title: 'beta-2' }, { title: 'beta-3' } ] }, expansions: { beta: 'beta' }, items: [ { title: 'alpha' }, { title: 'beta', menu: true }, { title: 'gamma' } ] }, [ { title: 'alpha' }, { title: 'beta', items: [ { title: 'beta-1' }, { title: 'beta-2' }, { title: 'beta-3' } ] }, { title: 'gamma' } ] ); check( 'Input with three items, and a menu (beta) with three items (beta1,2,3) in the middle' + ', with last subitem having a menu with no items (beta-3)', { menus: { 'beta': [ { title: 'beta-1' }, { title: 'beta-2' }, { title: 'beta-3', menu: true } ], 'beta-3': [ ] }, expansions: { 'beta': 'beta', 'beta-3': 'beta-3' }, items: [ { title: 'alpha' }, { title: 'beta', menu: true }, { title: 'gamma' } ] }, [ { title: 'alpha' }, { title: 'beta', items: [ { title: 'beta-1' }, { title: 'beta-2' }, { title: 'beta-3', items: [ ] } ] }, { title: 'gamma' } ] ); check( 'Input with three items, and a menu with three items (beta-1,2,3) in the middle' + ', with last subitem having a menu with two items (beta-3-1,2) items, and that first item' + ' having one item (beta-3-1-1)', { menus: { 'beta': [ { title: 'beta-1' }, { title: 'beta-2' }, { title: 'beta-3', menu: true } ], 'beta-3': [ { title: 'beta-3-1', menu: true }, { title: 'beta-3-2' } ], 'beta-3-1': [ { title: 'beta-3-1-1' } ] }, expansions: { 'beta': 'beta', 'beta-3': 'beta-3', 'beta-3-1': 'beta-3-1' }, items: [ { title: 'alpha' }, { title: 'beta', menu: true }, { title: 'gamma' } ] }, [ { title: 'alpha' }, { title: 'beta', items: [ { title: 'beta-1' }, { title: 'beta-2' }, { title: 'beta-3', items: [ { title: 'beta-3-1', items: [ { title: 'beta-3-1-1' } ] }, { title: 'beta-3-2' } ] } ] }, { title: 'gamma' } ] ); });