From c5a17220566dc39e803fd982c7a9f0cd9a3bc8d3 Mon Sep 17 00:00:00 2001
From: Oleksandr Miroshnichenko <omiroshnichenko@magento.com>
Date: Wed, 20 Dec 2017 19:30:07 +0200
Subject: [PATCH] magento/magento2#12342: JSTestDriver removal - Fix
 loader.test.js and removed JsTestDriver equivalent.

---
 .../mage/loader/jquery-loader-test.js         | 73 ---------------
 .../testsuite/mage/loader/loader-test.js      | 93 -------------------
 .../testsuite/mage/loader/loader.html         | 25 -----
 .../js/jasmine/tests/lib/mage/loader.test.js  | 79 ++++++++++++++++
 4 files changed, 79 insertions(+), 191 deletions(-)
 delete mode 100644 dev/tests/js/JsTestDriver/testsuite/mage/loader/jquery-loader-test.js
 delete mode 100644 dev/tests/js/JsTestDriver/testsuite/mage/loader/loader-test.js
 delete mode 100644 dev/tests/js/JsTestDriver/testsuite/mage/loader/loader.html
 create mode 100644 dev/tests/js/jasmine/tests/lib/mage/loader.test.js

diff --git a/dev/tests/js/JsTestDriver/testsuite/mage/loader/jquery-loader-test.js b/dev/tests/js/JsTestDriver/testsuite/mage/loader/jquery-loader-test.js
deleted file mode 100644
index 174a4efc14d..00000000000
--- a/dev/tests/js/JsTestDriver/testsuite/mage/loader/jquery-loader-test.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
-TestCase('options', function() {
-	expect(3);
-
-	var element = $('<div>');
-	element.appendTo('body');
-	element.loader();
-	element.loader('show');
-	equal( element.find('p').text(), 'Please wait...', '.loader() text matches' );
-	equal( element.find('img').prop('src').split('/').pop(), 'icon.gif', '.loader() icons match' );
-	equal( element.find('img').prop('alt'), 'Loading...', '.loader() image alt text matches' );
-	element.loader('destroy');
-
-});
-
-TestCase( 'element init', function() {
-	expect(1);
-
-	var element = $('<div>');
-	element.appendTo('body');
-	element.loader();
-	element.loader('show');
-    equal(element.is(':mage-loader'), true, '.loader() init on element');
-    element.loader('destroy');
-
-});
-
-TestCase( 'body init', function() {
-	expect(1);
-
-	//Initialize Loader on Body
-	var body = $('body').loader();
-    body.loader('show');
-    equal(body.is(':mage-loader'), true, '.loader() init on body');
-    body.loader('destroy');
-});
-
-TestCase( 'show/hide', function() {
-	expect(3);
-
-	var element = $('<div>');
-	element.appendTo('body');
-	element.loader();
-
-	//Loader show
-	element.loader('show');
-	equal($('.loading-mask').is(':visible'), true, '.loader() open');
-
-	//Loader hide
-	element.loader('hide');
-	equal($('.loading-mask').is( ":hidden" ), true, '.loader() closed' );
-
-	//Loader hide on process complete
-    element.loader('show');
-    element.trigger('processStop');
-    equal($('.loading-mask').is('visible'), false, '.loader() closed after process');
-
-    element.loader('destroy');
-
-});
-
-TestCase( 'destroy', function() {
-	expect(1);
-
-	var element = $("#loader").loader();
-	element.loader('show');
-    element.loader('destroy');
-    equal( $('.loading-mask').is(':visible'), false, '.loader() destroyed');
-
-});
diff --git a/dev/tests/js/JsTestDriver/testsuite/mage/loader/loader-test.js b/dev/tests/js/JsTestDriver/testsuite/mage/loader/loader-test.js
deleted file mode 100644
index 3dd08f57ab8..00000000000
--- a/dev/tests/js/JsTestDriver/testsuite/mage/loader/loader-test.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
-LoaderTest = TestCase('LoaderTest');
-LoaderTest.prototype.setUp = function() {
-    /*:DOC += <div id="loader"></div> */
-};
-LoaderTest.prototype.tearDown = function() {
-    var loaderInstance = jQuery('#loader').data('loader');
-    if(loaderInstance && loaderInstance.destroy) {
-        loaderInstance.destroy();
-    }
-};
-LoaderTest.prototype.getInstance = function() {
-    return jQuery('#loader').data('loader');
-};
-LoaderTest.prototype.testInit = function() {
-    var div = jQuery('#loader').loader();
-    div.loader('show');
-    assertEquals(true, div.is(':mage-loader'));
-};
-// @TODO Need to be fixed to avoid errors on the bamboo server in context of MAGETWO-5085 ticket
-/*LoaderTest.prototype._testCreateOnBeforeSend = function() {
-    /*:DOC += <div id="loader"></div> */
-/*  var loader = jQuery('#loader').trigger('ajaxSend');
-    assertEquals(true, loader.is(':mage-loader'));
-    loader.loader('destroy');
-};*/
-LoaderTest.prototype.testLoaderOnBody = function() {
-    var body = jQuery('body').loader();
-    body.loader('show');
-    assertEquals(true, jQuery('body div:first').is('.loading-mask'));
-    body.loader('destroy');
-};
-LoaderTest.prototype.testLoaderOnDOMElement = function() {
-    var div = jQuery('#loader').loader(),
-        loaderInstance = this.getInstance();
-    div.loader('show');
-    assertEquals(true, div.find(':first-child').is(loaderInstance.spinner));
-};
-LoaderTest.prototype.testLoaderOptions = function() {
-    /*:DOC += <div id="loader"></div> */
-    var div = jQuery('#loader').loader({
-            icon: 'icon.gif',
-            texts: {
-                loaderText: 'Loader Text',
-                imgAlt: 'Image Alt Text'
-            }
-        }),
-        loaderInstance = this.getInstance();
-    div.loader('show');
-    assertEquals('icon.gif', loaderInstance.spinner.find('img').attr('src'));
-    assertEquals('Image Alt Text', loaderInstance.spinner.find('img').attr('alt'));
-    assertEquals('Loader Text', loaderInstance.spinner.find('div.popup-inner').text());
-    div.loader('destroy');
-    div.loader({
-        template:'<div id="test-template"></div>'
-    });
-    div.loader('show');
-    loaderInstance = this.getInstance();
-    assertEquals(true, loaderInstance.spinner.is('#test-template'));
-    div.loader('destroy');
-};
-LoaderTest.prototype.testHideOnComplete = function() {
-    /*:DOC += <div id="loader"></div> */
-    var div = jQuery('#loader').loader();
-    div.loader('show');
-    loaderIsVisible = jQuery('.loading-mask').is(':visible');
-    div.trigger('processStop');
-    assertEquals(false, jQuery('.loading-mask').is(':visible') === loaderIsVisible);
-};
-LoaderTest.prototype.testRender = function() {
-    /*:DOC += <div id="loader" style="widht:200px; height:200px;"></div> */
-    var div = jQuery('#loader').loader();
-    div.loader('show');
-    assertEquals(true, $('.loading-mask').is(':visible'));
-};
-LoaderTest.prototype.testShowHide = function() {
-    /*:DOC += <div id="loader" style="widht:200px; height:200px;"></div> */
-    var div = jQuery('#loader').loader();
-    div.loader('show');
-    assertEquals(true, $('.loading-mask').is(':visible'));
-    div.loader('hide');
-    assertEquals(false, $('.loading-mask').is(':visible'));
-};
-LoaderTest.prototype.testDestroy = function() {
-    /*:DOC += <div id="loader"></div> */
-    var div = jQuery('#loader').loader(),
-        loaderExist = div.is(':mage-loader');
-    div.loader('destroy');
-    assertEquals(false, div.is(':mage-loader') === loaderExist);
-};
diff --git a/dev/tests/js/JsTestDriver/testsuite/mage/loader/loader.html b/dev/tests/js/JsTestDriver/testsuite/mage/loader/loader.html
deleted file mode 100644
index 362dec71382..00000000000
--- a/dev/tests/js/JsTestDriver/testsuite/mage/loader/loader.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
-/**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Unit test</title>
-    <base href="../../../"/>
-    <link type="text/css" rel="stylesheet" href="framework/qunit/qunit-1.14.0.css"/>
-    <script src="../../../lib/web/jquery.js"></script>
-    <script src="../../../lib/web/jquery/jquery-ui.js"></script>
-    <script type="text/javascript" src="framework/qunit/qunit-1.14.0.js"></script>
-    <script type="text/javascript" src="../../../lib/web/mage/mage.js"></script>
-    <script type="text/javascript" src="../../../lib/web/mage/bootstrap.js"></script>
-    <script type="text/javascript" src="../../../lib/web/mage/loader.js"></script>
-    <script type="text/javascript" src="testsuite/mage/loader/jquery-loader-test.js"></script>
-</head>
-<body>
-    <div id="qunit"></div>
-    <div id="qunit-fixture"></div>
-</body>
-</html>
diff --git a/dev/tests/js/jasmine/tests/lib/mage/loader.test.js b/dev/tests/js/jasmine/tests/lib/mage/loader.test.js
new file mode 100644
index 00000000000..93dd2ee9190
--- /dev/null
+++ b/dev/tests/js/jasmine/tests/lib/mage/loader.test.js
@@ -0,0 +1,79 @@
+/**
+ * Copyright © Magento, Inc. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+/* eslint-disable max-nested-callbacks */
+define([
+    'jquery',
+    'mage/loader'
+], function ($) {
+    'use strict';
+
+    describe('mage/loader', function () {
+        describe('Check loader', function () {
+            var loaderSelector = '#loader';
+
+            beforeEach(function () {
+                var $loader = $('<div id="loader"/>');
+
+                $('body').append($loader);
+            });
+
+            afterEach(function () {
+                $(loaderSelector).remove();
+                $(loaderSelector).loader('destroy');
+            });
+
+            it('Check that loader inited', function () {
+                var $loader = $(loaderSelector).loader({
+                    icon: 'icon.gif'
+                });
+
+                $loader.loader('show');
+
+                expect($loader.is(':mage-loader')).toBe(true);
+                expect($loader.find('p').text()).toBe('Please wait...');
+                expect($loader.find('img').prop('src').split('/').pop()).toBe('icon.gif');
+                expect($loader.find('img').prop('alt')).toBe('Loading...');
+            });
+
+            it('Body init', function () {
+                var $loader = $('body').loader();
+
+                $loader.loader('show');
+
+                expect($loader.is(':mage-loader')).toBe(true);
+                $loader.loader('destroy');
+            });
+
+            it('Check show/hide', function () {
+                var $loader = $(loaderSelector).loader(),
+                    $loadingMask;
+
+                $loader.loader('show');
+                $loadingMask = $('.loading-mask');
+                expect($loadingMask.is(':visible')).toBe(true);
+
+                $loader.loader('hide');
+                expect($loadingMask.is(':hidden')).toBe(true);
+
+                $loader.loader('show');
+                $loader.trigger('processStop');
+                expect($loadingMask.is(':hidden')).toBe(true);
+            });
+
+            it('Check destroy', function () {
+                var $loader = $(loaderSelector).loader(),
+                    $loadingMask;
+
+                $loader.loader('show');
+                $loadingMask = $('.loading-mask');
+                expect($loadingMask.is(':visible')).toBe(true);
+
+                $loader.loader('destroy');
+                expect($loadingMask.is(':visible')).toBe(false);
+            });
+        });
+    });
+});
-- 
GitLab