createdropdown.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import utilsTestUtils from 'ckeditor5-utils/tests/_utils/utils';
  6. import createDropdown from 'ckeditor5-ui/src/dropdown/createdropdown';
  7. import Model from 'ckeditor5-ui/src/model';
  8. import DropdownView from 'ckeditor5-ui/src/dropdown/dropdownview';
  9. import DropdownPanelView from 'ckeditor5-ui/src/dropdown/dropdownpanelview';
  10. import ButtonView from 'ckeditor5-ui/src/button/buttonview';
  11. const assertBinding = utilsTestUtils.assertBinding;
  12. describe( 'createDropdown', () => {
  13. it( 'accepts model', () => {
  14. const modelDef = {
  15. label: 'foo',
  16. isOn: false,
  17. isEnabled: true,
  18. withText: false
  19. };
  20. const model = new Model( modelDef );
  21. const view = createDropdown( model );
  22. assertBinding( view.buttonView,
  23. modelDef,
  24. [
  25. [ model, { label: 'bar', isOn: true, isEnabled: false, withText: true } ]
  26. ],
  27. { label: 'bar', isOn: true, isEnabled: false, withText: true }
  28. );
  29. } );
  30. it( 'accepts locale', () => {
  31. const locale = {};
  32. const view = createDropdown( new Model(), locale );
  33. expect( view.locale ).to.equal( locale );
  34. expect( view.buttonView.locale ).to.equal( locale );
  35. expect( view.panelView.locale ).to.equal( locale );
  36. } );
  37. it( 'returns view', () => {
  38. const view = createDropdown( new Model() );
  39. expect( view ).to.be.instanceOf( DropdownView );
  40. } );
  41. it( 'creates dropdown#buttonView out of ButtonView', () => {
  42. const view = createDropdown( new Model() );
  43. expect( view.buttonView ).to.be.instanceOf( ButtonView );
  44. } );
  45. it( 'creates dropdown#panelView out of DropdownPanelView', () => {
  46. const view = createDropdown( new Model() );
  47. expect( view.panelView ).to.be.instanceOf( DropdownPanelView );
  48. } );
  49. } );