diff --git a/dev/tests/js/JsTestDriver/testsuite/mage/translate_inline/translate-inline-test.js b/dev/tests/js/JsTestDriver/testsuite/mage/translate_inline/translate-inline-test.js deleted file mode 100644 index 18a117f1913b11d32b965f6071e9ea39d19a5a9d..0000000000000000000000000000000000000000 --- a/dev/tests/js/JsTestDriver/testsuite/mage/translate_inline/translate-inline-test.js +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Copyright © Magento, Inc. All rights reserved. - * See COPYING.txt for license details. - */ -TranslateInlineTest = TestCase('TranslateInlineTest'); -TranslateInlineTest.prototype.testInit = function() { - /*:DOC += <script id="translate-form-template" type="text/x-magento-template"> - </script> - <div data-role="translate-dialog"></div> - */ - var translateInline = jQuery('[data-role="translate-dialog"]').translateInline(); - assertTrue(translateInline.is(':mage-translateInline')); - translateInline.translateInline('destroy'); -}; -TranslateInlineTest.prototype.testDialogOpenOnEdit = function() { - /*:DOC += <script id="translate-form-template" type="text/x-magento-template"> - </script> - <div data-role="translate-dialog"></div> - */ - var options= { - dialog: { - id: 'dialog-id' - } - }; - var translateInline = jQuery('[data-role="translate-dialog"]').translateInline(options), - isDialogHiddenOnInit = translateInline.is(':hidden'); - translateInline.trigger('edit.editTrigger'); - var dialogVisibleAfterTriggerEdit = translateInline.is(':visible'); - assertTrue(isDialogHiddenOnInit); - assertTrue(dialogVisibleAfterTriggerEdit); - translateInline.translateInline('destroy'); -}; -TranslateInlineTest.prototype.testTranslationFormTemplate = function() { - /*:DOC += <script id="translate-form-template" type="text/x-magento-template"> - <form id="<%= data.id %>"><%= data.newTemplateVariable %></form> - </script> - <div data-role="translate-dialog"></div> - */ - var options = { - translateForm: { - data:{ - id: 'translate-form-id', - newTemplateVariable: 'New Template Variable' - } - } - }, - translateInline = jQuery('[data-role="translate-dialog"]').translateInline(options); - translateInline.trigger('edit.editTrigger'); - var translateForm = jQuery('#' + options.translateForm.data.id); - assertTrue(translateForm.size() > 0); - assertEquals(translateForm.text(), options.translateForm.data.newTemplateVariable); - translateInline.translateInline('destroy'); -}; -// @TODO Need to be fixed to avoid errors on the bamboo server in context of MAGETWO-5085 ticket -/*TranslateInlineTest.prototype._testTranslateFormSubmit = function() { - FORM_KEY = 'form_key'; - var options = { - ajaxUrl: 'www.test.com', - area: 'test', - translateForm: { - template:'<form id="<%= data.id %>"><input name="test" value="test" /></form>', - data:{ - id: 'translate-form-id' - } - }, - dialog: { - id: 'dialog-id', - buttons : [{ - 'class': 'submit-button' - }] - } - }, - translateInline = jQuery(document).translateInline(options), - submit = jQuery('.ui-dialog-buttonset .submit-button'), - ajaxParametersCorrect = false; - - translateInline.trigger('edit.editTrigger'); - var parameters = jQuery.param({area: options.area}) + - '&' + jQuery('#' + options.translateForm.data.id).serialize(), - dialog = jQuery('#' + options.dialog.id), - dialogVisibleOnAjaxSend = false, - dialogHiddenAfterAjaxComplete = false; - jQuery(document) - .on('ajaxSend', function(e, jqXHR, settings){ - jqXHR.abort(); - dialogVisibleOnAjaxSend = dialog.is(':visible'); - ajaxParametersCorrect = settings.data.indexOf(parameters) >= 0; - jQuery(this).trigger('ajaxComplete'); - }); - submit.trigger('click'); - assertEquals(true, dialogVisibleOnAjaxSend); - assertEquals(true, ajaxParametersCorrect); - assertEquals(true, dialog.is(':hidden')); - translateInline.translateInline('destroy'); -};*/ -TranslateInlineTest.prototype.testDestroy = function() { - /*:DOC += <script id="translate-form-template" type="text/x-magento-template"> - <form id="<%= data.id %>"><%= data.newTemplateVariable %></form> - </script> - <div data-role="translate-dialog"></div> - <img id="edit-trigger-id"> - */ - var options = { - translateForm: { - data:{ - id: 'translate-form-id', - newTemplateVariable: '' - } - } - }, - translateInline = jQuery('[data-role="translate-dialog"]').translateInline(options), - editTrigger = jQuery('#edit-trigger-id').editTrigger(), - editTriggerCreated = editTrigger.size() && jQuery('#edit-trigger-id').is(':mage-editTrigger'), - editTriggerEventIsBound = false; - - assertTrue(translateInline.is(':mage-translateInline')); - assertTrue(editTriggerCreated); - translateInline.on('edit.editTrigger', function(){editTriggerEventIsBound = true;}); - translateInline.translateInline('destroy'); - translateInline.trigger('edit.editTrigger'); - assertFalse(translateInline.is(':mage-translateInline')); - assertFalse(editTriggerEventIsBound); -}; diff --git a/dev/tests/js/jasmine/assets/lib/web/mage/translate-inline.html b/dev/tests/js/jasmine/assets/lib/web/mage/translate-inline.html new file mode 100644 index 0000000000000000000000000000000000000000..5e48598a081a24d176de38fff5f14ab106bb7e00 --- /dev/null +++ b/dev/tests/js/jasmine/assets/lib/web/mage/translate-inline.html @@ -0,0 +1,4 @@ +<script id="translate-form-template" type="text/x-magento-template"> + <form id="<%= data.id %>"><%= data.newTemplateVariable %></form> +</script> +<div data-role="translate-dialog"></div> \ No newline at end of file diff --git a/dev/tests/js/jasmine/tests/lib/mage/translate-inline.test.js b/dev/tests/js/jasmine/tests/lib/mage/translate-inline.test.js new file mode 100644 index 0000000000000000000000000000000000000000..489af5dcda4d5348a81349e9e0aad06f56565753 --- /dev/null +++ b/dev/tests/js/jasmine/tests/lib/mage/translate-inline.test.js @@ -0,0 +1,109 @@ +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +/* eslint-disable max-nested-callbacks */ +define([ + 'jquery', + 'mage/translate-inline', + 'text!tests/assets/lib/web/mage/translate-inline.html' +], function ($, TranslateInline, translateTmpl) { + 'use strict'; + + describe('mage/translate-inline', function () { + describe('Check translate', function () { + var translateSelector = '[data-role="translate-dialog"]', + translateTemplateSelector = '#translate-form-template'; + + beforeEach(function () { + var translateBlock = $(translateTmpl); + + $('body').append(translateBlock); + }); + + afterEach(function () { + $(translateSelector).remove(); + $(translateSelector).translateInline('destroy'); + $(translateTemplateSelector).remove(); + }); + + it('Check that translate inited', function () { + var translateInline = $(translateSelector).translateInline(); + + expect(translateInline.is(':mage-translateInline')).toBe(true); + }); + + it('Check that translate hidden on init and visible on trigger', function () { + var translateInline = $(translateSelector).translateInline({ + id: 'dialog-id' + }), + isDialogHiddenOnInit = translateInline.is(':hidden'), + dialogVisibleAfterTriggerEdit; + + translateInline.trigger('edit.editTrigger'); + dialogVisibleAfterTriggerEdit = translateInline.is(':visible'); + expect(isDialogHiddenOnInit).toBe(true); + expect(dialogVisibleAfterTriggerEdit).toBe(true); + }); + + it('Check translation form template', function () { + var translateFormId = 'translate-form-id', + translateFormContent = 'New Template Variable', + translateInline = $(translateSelector).translateInline({ + translateForm: { + data: { + id: translateFormId, + newTemplateVariable: translateFormContent + } + } + }), + $translateForm; + + translateInline.trigger('edit.editTrigger'); + $translateForm = $('#' + translateFormId); + + expect($translateForm.length).toBeGreaterThan(0); + expect($translateForm.text()).toBe(translateFormContent); + }); + + it('Check translation submit', function () { + var options = { + ajaxUrl: 'www.test.com', + area: 'test', + translateForm: { + template: '<form id="<%= data.id %>"><input name="test" value="test" /></form>', + data: { + id: 'translate-form-id' + } + } + }, + expectedEequestData = 'area=test&test=test', + translateInline = $(translateSelector).translateInline(options), + $submitButton = $('body').find('.action-primary'); + + $.ajax = jasmine.createSpy().and.callFake(function (request) { + expect(request.url).toBe(options.ajaxUrl); + expect(request.type).toBe('POST'); + expect(request.data).toBe(expectedEequestData); + + return { + complete: jasmine.createSpy() + }; + }); + + translateInline.trigger('edit.editTrigger'); + $submitButton.trigger('click'); + }); + + it('Check translation destroy', function () { + var translateInline = $(translateSelector).translateInline(); + + translateInline.trigger('edit.editTrigger'); + expect(translateInline.is(':mage-translateInline')).toBe(true); + translateInline.translateInline('destroy'); + expect(translateInline.is(':mage-translateInline')).toBe(false); + }); + }); + }); +});