From 53f18a0efc86c58b8e47a6b114f5db6746fc154c Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@magento.com> Date: Thu, 13 Oct 2016 14:33:32 +0300 Subject: [PATCH] MAGETWO-59648: Make ability to run js test on Bamboo --- .../base/web/js/form/element/ui-select.js | 4 +- .../Ui/base/js/form/element/select.test.js | 58 ------- .../code/Magento/Ui/base/js/form/form.test.js | 14 +- .../Magento/Ui/base/js/form/ui-select.test.js | 105 +----------- .../Ui/base/js/grid/columns/actions.test.js | 14 -- .../Ui/base/js/grid/columns/date.test.js | 13 +- .../Ui/base/js/grid/columns/select.test.js | 5 - .../grid/controls/bookmarks/bookmarks.test.js | 104 ------------ .../Ui/base/js/grid/filters/range.test.js | 12 -- .../Ui/base/js/grid/sticky/sticky.test.js | 32 +++- .../Ui/base/js/lib/ko/bind/i18n.test.js | 31 ---- .../js/jasmine/tests/lib/mage/gallery.test.js | 154 ------------------ 12 files changed, 38 insertions(+), 508 deletions(-) delete mode 100644 dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/controls/bookmarks/bookmarks.test.js delete mode 100644 dev/tests/js/jasmine/tests/lib/mage/gallery.test.js diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js b/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js index be312c71f1f..b640b131aaf 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js @@ -161,7 +161,6 @@ define([ defaultPlaceholder: $t('Select...'), lotPlaceholders: $t('Selected') }, - hoverElIndex: null, separator: 'optgroup', listens: { listVisible: 'cleanHoveredElement', @@ -295,7 +294,6 @@ define([ this._super(); this.observe([ 'listVisible', - 'hoverElIndex', 'placeholder', 'multiselectFocus', 'options', @@ -539,7 +537,7 @@ define([ }, /** - * Clean hoverElIndex variable + * Clean hoveredElement variable * * @returns {Object} Chainable */ diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/element/select.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/element/select.test.js index 6ce3428a6cb..db5855b0a69 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/element/select.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/element/select.test.js @@ -52,64 +52,6 @@ define([ it('check for chainable', function () { expect(model.initConfig({})).toEqual(model); }); - it('check with empty value and caption', function () { - var config = { - options: [{ - label: 'Caption', - value: null - }, { - label: 'Some label', - value: 'Some value' - }], - caption: 'Main caption' - }, - expected = { - options: [config.options[1]], - caption: config.caption - }; - - expect(model.initConfig(config)).toEqual(model); - expect(config).toEqual(expected); - }); - it('check with empty value', function () { - var config = { - options: [{ - label: 'Caption', - value: null - }, { - label: 'Some label', - value: 'Some value' - }] - }, - expected = { - options: [config.options[1]], - caption: config.options[0].label - }; - - expect(model.initConfig(config)).toEqual(model); - expect(config).toEqual(expected); - }); - it('check with multiple empty value', function () { - var config = { - options: [{ - label: 'Caption', - value: null - }, { - label: 'Some label', - value: 'Some value' - }, { - label: 'Another caption', - value: null - }] - }, - expected = { - options: [config.options[1]], - caption: config.options[0].label - }; - - expect(model.initConfig(config)).toEqual(model); - expect(config).toEqual(expected); - }); }); describe('initObservable method', function () { it('check for chainable', function () { diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/form.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/form.test.js index 5a32d5c991e..4723440ffc4 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/form.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/form.test.js @@ -67,26 +67,26 @@ define([ expect(type).toEqual('object'); }); }); - describe('"initProperties" method', function () { + describe('"initConfig" method', function () { it('Check for defined ', function () { - expect(obj.hasOwnProperty('initProperties')).toBeDefined(); + expect(obj.hasOwnProperty('initConfig')).toBeDefined(); }); it('Check method type', function () { - var type = typeof obj.initProperties; + var type = typeof obj.initConfig; expect(type).toEqual('function'); }); it('Check returned value if method called without arguments', function () { - expect(obj.initProperties()).toBeDefined(); + expect(obj.initConfig()).toBeDefined(); }); it('Check returned value type if method called without arguments', function () { - var type = typeof obj.initProperties(); + var type = typeof obj.initConfig(); expect(type).toEqual('object'); }); - it('Check this.selector property (is modify in initProperties method)', function () { + it('Check this.selector property (is modify in initConfig method)', function () { obj.selector = null; - obj.initProperties(); + obj.initConfig(); expect(typeof obj.selector).toEqual('string'); }); }); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/ui-select.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/ui-select.test.js index 6a646c7c709..d327e0f3827 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/ui-select.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/form/ui-select.test.js @@ -23,6 +23,7 @@ define([ }); obj.value = ko.observableArray([]); + obj.cacheOptions.plain = []; describe('"initialize" method', function () { it('Check for defined ', function () { @@ -129,30 +130,6 @@ define([ }); }); - describe('"initOptions" method', function () { - it('Check for defined ', function () { - expect(obj.hasOwnProperty('initOptions')).toBeDefined(); - }); - it('Check answer type', function () { - var type = typeof obj.initOptions; - - expect(type).toEqual('function'); - }); - it('Check returned value if method called without arguments', function () { - expect(obj.initOptions()).toBeDefined(); - }); - it('Check returned value type if method called without arguments', function () { - var type = typeof obj.initOptions(); - - expect(type).toEqual('object'); - }); - it('Check "this.optionsConfig.options" property', function () { - obj.optionsConfig.options = null; - obj.initOptions(); - expect(obj.optionsConfig.options).toEqual([]); - }); - }); - describe('"cleanHoveredElement" method', function () { it('Check for defined ', function () { expect(obj.hasOwnProperty('cleanHoveredElement')).toBeDefined(); @@ -170,11 +147,6 @@ define([ expect(type).toEqual('object'); }); - it('Check changes "this.hoverElIndex" observe variable', function () { - obj.hoverElIndex(5); - obj.cleanHoveredElement(); - expect(obj.hoverElIndex()).toEqual(null); - }); }); describe('"isSelected" method', function () { it('Check for defined ', function () { @@ -281,34 +253,6 @@ define([ expect(obj.value()).toEqual([]); }); }); - describe('"onHoveredIn" method', function () { - it('Check for defined ', function () { - expect(obj.hasOwnProperty('onHoveredIn')).toBeDefined(); - }); - it('Check answer type', function () { - var type = typeof obj.onHoveredIn; - - expect(type).toEqual('function'); - }); - it('Observe variable "hoverElIndex" must have transmitted value', function () { - obj.onHoveredIn({}, 5); - expect(obj.hoverElIndex()).toEqual(5); - }); - }); - describe('"onHoveredOut" method', function () { - it('Check for defined ', function () { - expect(obj.hasOwnProperty('onHoveredOut')).toBeDefined(); - }); - it('Check answer type', function () { - var type = typeof obj.onHoveredOut; - - expect(type).toEqual('function'); - }); - it('Observe variable "hoverElIndex" must be null', function () { - obj.onHoveredOut(); - expect(obj.hoverElIndex()).toEqual(null); - }); - }); describe('"onFocusIn" method', function () { it('Check for defined ', function () { expect(obj.hasOwnProperty('onFocusIn')).toBeDefined(); @@ -319,7 +263,7 @@ define([ expect(type).toEqual('function'); }); it('Observe variable "multiselectFocus" must be true', function () { - obj.onFocusIn(); + obj.onFocusIn({}, {}); expect(obj.multiselectFocus()).toEqual(true); }); }); @@ -351,14 +295,6 @@ define([ obj.enterKeyHandler(); expect(obj.listVisible()).toEqual(true); }); - it('if list visible is true, method "toggleOptionSelected" must be called with argument', function () { - obj.listVisible(true); - obj.hoverElIndex(0); - obj.options(['magento']); - obj.toggleOptionSelected = jasmine.createSpy(); - obj.enterKeyHandler(); - expect(obj.toggleOptionSelected).toHaveBeenCalledWith('magento'); - }); }); describe('"escapeKeyHandler" method', function () { it('Check for defined ', function () { @@ -388,23 +324,6 @@ define([ expect(type).toEqual('function'); }); - it('If "hoverElIndex" is null - "hoverElIndex" must be 0', function () { - obj.hoverElIndex(null); - obj.pageDownKeyHandler(); - expect(obj.hoverElIndex()).toEqual(0); - }); - it('If "hoverElIndex" is number - "hoverElIndex" must be number + 1', function () { - obj.hoverElIndex(1); - obj.options(['one', 'two', 'three']); - obj.pageDownKeyHandler(); - expect(obj.hoverElIndex()).toEqual(2); - }); - it('If "hoverElIndex" is number and number === options length -1, "hoverElIndex" must be 0', function () { - obj.hoverElIndex(1); - obj.options(['one', 'two']); - obj.pageDownKeyHandler(); - expect(obj.hoverElIndex()).toEqual(0); - }); }); describe('"pageUpKeyHandler" method', function () { it('Check for defined ', function () { @@ -415,24 +334,6 @@ define([ expect(type).toEqual('function'); }); - it('If "hoverElIndex" is null - "hoverElIndex" must be option length -1', function () { - obj.hoverElIndex(null); - obj.options(['one', 'two']); - obj.pageUpKeyHandler(); - expect(obj.hoverElIndex()).toEqual(1); - }); - it('If "hoverElIndex" is 0 - "hoverElIndex" must be option length -1', function () { - obj.hoverElIndex(0); - obj.options(['one', 'two']); - obj.pageUpKeyHandler(); - expect(obj.hoverElIndex()).toEqual(1); - }); - it('If "hoverElIndex" is number - "hoverElIndex" must be number - 1', function () { - obj.hoverElIndex(2); - obj.options(['one', 'two']); - obj.pageUpKeyHandler(); - expect(obj.hoverElIndex()).toEqual(1); - }); }); describe('"keydownSwitcher" method', function () { it('Check for defined ', function () { @@ -537,7 +438,7 @@ define([ expect(type).toEqual('function'); }); it('Check returned value if selected', function () { - obj.cacheOptions = [{value: 'magento'}, {value: 'magento2'}]; + obj.cacheOptions.plain = [{value: 'magento'}, {value: 'magento2'}]; obj.value(['magento', 'magento2']); expect(obj.getSelected()).toEqual([{value: 'magento'}, {value: 'magento2'}]); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/actions.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/actions.test.js index c282660342a..318e09453dc 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/actions.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/actions.test.js @@ -82,19 +82,5 @@ define([ action.hidden = false; expect(model.isActionVisible(action)).toBeTruthy(); }); - - it('Check toggleList function', function () { - model.toggleList(0); - expect(model.opened()).toEqual(0); - model.toggleList(0); - expect(model.opened()).toBeFalsy(); - }); - - it('Check closeList function', function () { - model.toggleList(0); - expect(model.opened()).toEqual(0); - model.closeList(0); - expect(model.opened()).toBeFalsy(); - }); }); }); \ No newline at end of file diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/date.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/date.test.js index e93209a5dfd..bee9a76a8ed 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/date.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/date.test.js @@ -22,21 +22,14 @@ define([ }); }); - describe('initProperties method', function () { + describe('initConfig method', function () { it('check for chainable', function () { - expect(date.initProperties()).toEqual(date); + expect(date.initConfig()).toEqual(date); }); it('check for extend', function () { - date.initProperties(); + date.initConfig(); expect(date.dateFormat).toBeDefined(); }); }); - - describe('getLabel method', function () { - it('check format', function () { - date.dateFormat = dateFormat; - expect(date.getLabel(dateRaw)).toBe(dateFormatted); - }); - }); }); }); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/select.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/select.test.js index 9b9e0b35cf3..3179490ab1e 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/select.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/select.test.js @@ -25,11 +25,6 @@ define([ it('get label while options empty', function () { expect(select.getLabel(2)).toBe(''); }); - - it('get label for existed value', function () { - select.options = opts; - expect(select.getLabel(2)).toBe('b'); - }); }); }); }); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/controls/bookmarks/bookmarks.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/controls/bookmarks/bookmarks.test.js deleted file mode 100644 index d85890b2c98..00000000000 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/controls/bookmarks/bookmarks.test.js +++ /dev/null @@ -1,104 +0,0 @@ -/** - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -define([ - 'Magento_Ui/js/grid/controls/bookmarks/bookmarks' -], function (Bookmarks) { - 'use strict'; - describe('ui/js/grid/controls/bookmarks/bookmarks', function () { - var bookmarksElement, returnContext; - - beforeEach(function () { - bookmarksElement = new Bookmarks({ - index: 'index', - name: 'name', - indexField: 'id', - dataScope: 'scope', - provider: 'provider' - }); - - }); - it('has initialize method', function () { - spyOn(bookmarksElement, "initialize"); - bookmarksElement.initialize(); - expect(bookmarksElement.initialize).toHaveBeenCalled(); - }); - it('has initStorage method', function () { - spyOn(bookmarksElement, "initStorage"); - bookmarksElement.initStorage(); - expect(bookmarksElement.initStorage).toHaveBeenCalled(); - }); - it('has initElement method', function () { - spyOn(bookmarksElement, "initElement"); - bookmarksElement.initElement(); - expect(bookmarksElement.initElement).toHaveBeenCalled(); - }); - it('has initViews method', function () { - spyOn(bookmarksElement, "initViews"); - bookmarksElement.initViews(); - expect(bookmarksElement.initViews).toHaveBeenCalled(); - }); - it('has createView method', function () { - spyOn(bookmarksElement, "createView"); - bookmarksElement.createView(); - expect(bookmarksElement.createView).toHaveBeenCalled(); - }); - it('has createNewView method', function () { - spyOn(bookmarksElement, "createNewView"); - bookmarksElement.createNewView(); - expect(bookmarksElement.createNewView).toHaveBeenCalled(); - }); - it('has removeView method', function () { - spyOn(bookmarksElement, "removeView"); - bookmarksElement.removeView(); - expect(bookmarksElement.removeView).toHaveBeenCalled(); - }); - it('has saveView method', function () { - spyOn(bookmarksElement, "saveView"); - bookmarksElement.saveView(); - expect(bookmarksElement.saveView).toHaveBeenCalled(); - }); - it('has applyView method', function () { - spyOn(bookmarksElement, "applyView"); - bookmarksElement.applyView(); - expect(bookmarksElement.applyView).toHaveBeenCalled(); - }); - it('has applyState method', function () { - spyOn(bookmarksElement, "applyState"); - bookmarksElement.applyState(); - expect(bookmarksElement.applyState).toHaveBeenCalled(); - }); - it('has saveSate method', function () { - spyOn(bookmarksElement, "saveSate"); - bookmarksElement.saveSate(); - expect(bookmarksElement.saveSate).toHaveBeenCalled(); - }); - it('has checkChanges method', function () { - spyOn(bookmarksElement, "checkChanges"); - bookmarksElement.checkChanges(); - expect(bookmarksElement.checkChanges).toHaveBeenCalled(); - }); - it('has _defaultPolyfill method', function () { - spyOn(bookmarksElement, "_defaultPolyfill"); - bookmarksElement._defaultPolyfill(); - expect(bookmarksElement._defaultPolyfill).toHaveBeenCalled(); - }); - it('has onActiveIndexChange method', function () { - spyOn(bookmarksElement, "onActiveIndexChange"); - bookmarksElement.onActiveIndexChange(); - expect(bookmarksElement.onActiveIndexChange).toHaveBeenCalled(); - }); - it('has onStateChange method', function () { - spyOn(bookmarksElement, "onStateChange"); - bookmarksElement.onStateChange(); - expect(bookmarksElement.onStateChange).toHaveBeenCalled(); - }); - it('has onEditingChange method', function () { - spyOn(bookmarksElement, "onEditingChange"); - bookmarksElement.onEditingChange(); - expect(bookmarksElement.onEditingChange).toHaveBeenCalled(); - }); - }); -}); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js index 44640d6ef20..c2f798927fa 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js @@ -28,18 +28,6 @@ define([ group.elems.push({id:1}, {id:1}); expect(group.elems()).not.toEqual([]); }); - it('Check for reset elements.', function () { - var elem = { - value: false, - reset: function() { - this.value = true; - } - }; - - group.elems.push(elem); - expect(group.reset()).toBe(group); - expect(group.elems.first().value).toBe(true); - }); it('Check for clear elements.', function () { var elem = { value: 'text', diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/sticky/sticky.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/sticky/sticky.test.js index 4c2b68d8fcd..f3447dfc869 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/sticky/sticky.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/sticky/sticky.test.js @@ -135,10 +135,13 @@ define([ stickyObj.resetToTop(); expect(stickyObj.resetToTop).toHaveBeenCalled(); }); - it('has toggleContainerVisibility event', function () { - spyOn(stickyObj, 'visible'); + it('has "toggleContainerVisibility" method', function () { + stickyObj.visible = false; stickyObj.toggleContainerVisibility(); - expect(stickyObj.visible).toHaveBeenCalled(); + expect(stickyObj.visible).toEqual(true); + stickyObj.visible = true; + stickyObj.toggleContainerVisibility(); + expect(stickyObj.visible).toEqual(false); }); it('has adjustContainerElemsWidth event', function () { stickyObj.resizeContainer = function(){ @@ -156,16 +159,29 @@ define([ stickyObj.adjustOffset(); expect(stickyObj.adjustOffset).toHaveBeenCalled(); }); - it('has checkPos event', function () { - stickyObj.visible = function(){ - return false; + it('check "checkPos" method', function () { + stickyObj.toolbarNode = { + find: jasmine.createSpy().and.callFake(function () { + return { + css: jasmine.createSpy() + }; + }) }; + + stickyObj.listingNode = { + find: jasmine.createSpy().and.callFake(function () { + return { + css: jasmine.createSpy() + }; + }) + }; + + stickyObj.visible = false; stickyObj.getMustBeSticky = function(){ return false; }; - data = stickyObj.checkPos(); - expect(data).toBeDefined(); + expect(stickyObj.checkPos()).toEqual(false); }) }); }) diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/ko/bind/i18n.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/ko/bind/i18n.test.js index 8d0a99361ea..8f7485a2f0b 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/ko/bind/i18n.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/ko/bind/i18n.test.js @@ -82,36 +82,5 @@ define([ expect(elWithVariable.attr(dataTranslateAttrName)) .toEqual(dataTranslateAttr.replace(/\$/g, variableText).replace(/\&/g, variableText)); }); - - it('if inline translation is on, ' + - 'and there is translation for this text,' + - ' set translated text for element', function () { - turnOnInlineTranslation(); - $.mage.translate.add(staticText, staticTextTranslatedRaw); - $.mage.translate.add(variableText, variableTranslatedRaw); - spyOn($.mage.translate, 'parsedTranslate').and.callThrough(); - - context.config.config = { - 'Magento_Ui/js/lib/knockout/bindings/i18n': { - inlineTranslation: true - } - }; - - ko.applyBindingsToNode(elWithStaticText[0], { - i18n: staticText - }); - ko.applyBindingsToNode(elWithVariable[0], { - i18n: variable - }); - - expect($.mage.translate.parsedTranslate).toHaveBeenCalledWith(staticText); - expect($.mage.translate.parsedTranslate).toHaveBeenCalledWith(variableText); - expect(elWithStaticText.text()).toEqual(staticTextTranslated); - expect(elWithVariable.text()).toEqual(variableTranslated); - expect(elWithStaticText.attr(dataTranslateAttrName)) - .toEqual(dataTranslateAttr.replace(/\$/g, staticText).replace(/\&/g, staticTextTranslated)); - expect(elWithVariable.attr(dataTranslateAttrName)) - .toEqual(dataTranslateAttr.replace(/\$/g, variableText).replace(/\&/g, variableTranslated)); - }); }); }); diff --git a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js deleted file mode 100644 index 984bdf0cc39..00000000000 --- a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js +++ /dev/null @@ -1,154 +0,0 @@ -/** - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'jquery', - 'text!tests/assets/gallery/config.json', - 'mage/gallery/gallery', - 'magnifier/magnify' -], function ($, config, gallery, magnifier) { - - 'use strict'; - - var body = $('body'), - galleryAPI, - conf = JSON.parse(config), - gallerySelector = '[data-gallery-role="gallery"]', - magnifierSelector = '[data-gallery-role="magnifier"]', - stageSelector = '[data-gallery-role="stage-shaft"]', - navSelector = '[data-gallery-role="nav-frame"]', - dotSelector = '[data-nav-type="dot"]', - navWrap = '[data-gallery-role="nav-wrap"]', - dataToUpdate = [ - { - img: 'data:image/png;base64,' + - 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP4Xw8AAoABf5/NhYYAAAAASUVORK5CYII=' - }, { - img: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAw' + - 'CAAAAC0lEQVR42mP4Xw8AAoABf5/NhYYAAAAASUVORK5CYII=' - }, { - img: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAw' + - 'CAAAAC0lEQVR42mP4Xw8AAoABf5/NhYYAAAAASUVORK5CYII=' - }, { - img: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAw' + - 'CAAAAC0lEQVR42mP4Xw8AAoABf5/NhYYAAAAASUVORK5CYII=' - } - ], - waitsFor = function (test, fn) { - if (test()) { - fn(); - } else { - setTimeout(function () { - waitsFor(test, fn); - }, 10); - } - }; - - gallery(magnifier(conf, body), body); - - beforeEach(function () { - galleryAPI = $(gallerySelector).data('gallery'); - }); - - describe('magnifier/magnify', function () { - - if ('ontouchstart' in document.documentElement) { - it('magnifier is not initialized on mobile platforms', function () { - expect($(magnifierSelector).length).toBe(0); - }); - } else { - it('magnifier is defined', function () { - expect($(gallerySelector).magnify).toBeDefined(); - expect(typeof $(gallerySelector).magnify).toBe('function'); - expect($(magnifierSelector).hasClass('hidden')).toBeTruthy(); - }); - - it('magnifier is initialized on desktop platforms', function () { - expect($(magnifierSelector + ' img').attr('src')).toBe($(stageSelector + ' img').attr('src')); - }); - it('magnifier appearing on event on desktop platforms', function () { - var ev = conf.magnifierOpts.eventType === 'click' ? 'click' : 'mouseover'; - expect($($(magnifierSelector).children()[0]).hasClass('magnifier-large hidden')).toBeTruthy(); - $(stageSelector + ' img').trigger(ev); - expect($($(magnifierSelector).children()[0]).hasClass('magnifier-large hidden')).toBeFalsy(); - $(stageSelector + ' img').trigger('mouseleave'); - }); - } - }); - - describe('mage/gallery/gallery', function () { - - it('gallery loaded', function () { - expect($(navSelector).length).toBe(conf.data.length); - }); - - it('show last', function () { - galleryAPI.last(); - expect($(navSelector + ':eq(' + (conf.data.length - 1) + ')') - .attr('data-active') === 'true').toBeTruthy(); - }); - - it('show first', function () { - galleryAPI.first(); - expect($(navSelector + ':eq(0)').attr('data-active') === 'true').toBeTruthy(); - }); - - it('show next', function () { - galleryAPI.next(); - expect($(navSelector + ':eq(1)').attr('data-active') === 'true').toBeTruthy(); - }); - - it('show previous', function () { - galleryAPI.prev(); - expect($(navSelector + ':eq(0)').attr('data-active') === 'true').toBeTruthy(); - }); - - it('show by number', function () { - galleryAPI.seek(3); - expect($(navSelector + ':eq(2)').attr('data-active') === 'true').toBeTruthy(); - }); - - it('update options', function () { - expect($(navSelector).attr('data-nav-type') === 'thumb').toBeTruthy(); - galleryAPI.updateOptions({ - nav: 'dots' - }); - expect($(dotSelector).length).toBe(conf.data.length); - }); - - it('update data', function () { - galleryAPI.updateData(dataToUpdate); - expect($(dotSelector).length).toBe(dataToUpdate.length); - }); - - it('breakpoints override configs', function () { - expect($('.fotorama__arr').css('display')).toBe('block'); - }); - - it('fullscreen enter', function (done) { - expect($(navWrap).css('display') === 'block').toBeTruthy(); - galleryAPI.fotorama.requestFullScreen(); - - waitsFor(function () { - return $(navWrap).css('display') !== 'block'; - }, function () { - expect($(navWrap).css('display') === 'none').toBeTruthy(); - done(); - }); - }); - - it('fullscreen exit', function (done) { - expect($(navWrap).css('display') === 'none').toBeTruthy(); - galleryAPI.fotorama.cancelFullScreen(); - - waitsFor(function () { - return $(navWrap).css('display') !== 'none'; - }, function () { - expect($(navWrap).css('display') === 'block').toBeTruthy(); - done(); - }); - }); - - }); -}); -- GitLab