From 5056ad61bb283dc1e58d0613005b3b9903b94aab Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 29 May 2017 15:29:49 +0200
Subject: [PATCH] ServerConnector is initialized earlier

---
 frontend-js/src/main/js/minerva.js      |  4 +-
 frontend-js/src/test/js/minerva-test.js | 52 ++++++++++++++++---------
 2 files changed, 36 insertions(+), 20 deletions(-)

diff --git a/frontend-js/src/main/js/minerva.js b/frontend-js/src/main/js/minerva.js
index 106bc98a08..2ccde651d4 100644
--- a/frontend-js/src/main/js/minerva.js
+++ b/frontend-js/src/main/js/minerva.js
@@ -230,6 +230,7 @@ function getProject(params) {
 };
 
 function create(params) {
+  
   var customMap;
   var leftPanel;
   var topMenu;
@@ -237,11 +238,12 @@ function create(params) {
   if (!(params instanceof CustomMapOptions)) {
     params = new CustomMapOptions(params);
   }
+  initGlobals(params);
+
   return getProject(params).then(function(project) {
     params.setProject(project);
     var element = params.getElement();
 
-    initGlobals(params);
 
     verifyBrowser();
 
diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js
index 636dcdaa27..d5bc556c8b 100644
--- a/frontend-js/src/test/js/minerva-test.js
+++ b/frontend-js/src/test/js/minerva-test.js
@@ -7,6 +7,8 @@ require("./mocha-config.js");
 var minerva = require('../../main/js/minerva');
 var Project = require('../../main/js/map/data/Project');
 var GuiConnectorMock = require('./GuiConnector-mock');
+var ServerConnectorMock = require('./ServerConnector-mock');
+var ServerConnectorMock = require('./ServerConnector-mock');
 
 var chai = require('chai');
 var assert = chai.assert;
@@ -22,17 +24,19 @@ describe('minerva global', function() {
   beforeEach(function() {
     global.scriptDiv = document.createElement("script");
     global.GuiConnector = undefined;
+    global.ServerConnector = undefined;
     document.body.appendChild(global.scriptDiv);
   });
 
   afterEach(function() {
     document.body.removeChild(global.scriptDiv);
     global.GuiConnector = GuiConnectorMock;
+    global.ServerConnector = ServerConnectorMock;
   });
 
   it('create', function() {
     var options = null;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       options = helper.createCustomMapOptions(project);
 
       return minerva.create(options);
@@ -43,7 +47,7 @@ describe('minerva global', function() {
   });
 
   it('create with overview', function() {
-    return ServerConnector.readFile("testFiles/projectWithImages.json").then(function(fileContent) {
+    return ServerConnectorMock.readFile("testFiles/projectWithImages.json").then(function(fileContent) {
       var project = new Project(JSON.parse(fileContent));
       var options = helper.createOptions(project);
 
@@ -58,7 +62,7 @@ describe('minerva global', function() {
 
   it("showComments", function() {
     var options = null;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       options = helper.createCustomMapOptions(project);
       return minerva.create(options);
     }).then(function() {
@@ -66,18 +70,18 @@ describe('minerva global', function() {
       commentCheckbox.checked = true;
       return commentCheckbox.onclick();
     }).then(function() {
-      assert.ok(ServerConnector.getSessionData(options.getProject()).getShowComments());
+      assert.ok(ServerConnectorMock.getSessionData(options.getProject()).getShowComments());
     });
   });
 
   it("contructor with GET zoom param", function() {
     helper.setUrl("http://test/?zoom=5");
     var options;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       options = helper.createCustomMapOptions(project);
       return minerva.create(options);
     }).then(function() {
-      var sessionData = ServerConnector.getSessionData(options.getProject());
+      var sessionData = ServerConnectorMock.getSessionData(options.getProject());
       assert.equal(sessionData.getZoomLevel(options.getProject().getModel()), 5);
     });
   });
@@ -85,11 +89,11 @@ describe('minerva global', function() {
   it("contructor with GET coord param", function() {
     helper.setUrl("http://test/?x=5&y=6");
     var options;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       options = helper.createCustomMapOptions(project);
       return minerva.create(options);
     }).then(function() {
-      var center = ServerConnector.getSessionData(options.getProject()).getCenter(options.getProject().getModel());
+      var center = ServerConnectorMock.getSessionData(options.getProject()).getCenter(options.getProject().getModel());
       assert.ok(center instanceof google.maps.Point);
       assert.equal(center.x, 5);
       assert.equal(center.y, 6);
@@ -99,7 +103,7 @@ describe('minerva global', function() {
   it('create with layout', function() {
     var layout;
     var project;
-    return ServerConnector.getProject().then(function(result) {
+    return ServerConnectorMock.getProject().then(function(result) {
       project = result;
       var options = helper.createCustomMapOptions(project);
 
@@ -115,23 +119,23 @@ describe('minerva global', function() {
     }).then(function(visibleDataOverlays) {
       // input file is available so it's not the background file but overlay
       assert.equal(visibleDataOverlays.length, 0);
-      assert.equal(ServerConnector.getSessionData(project).getSelectedBackgroundOverlay(), layout.getId());
+      assert.equal(ServerConnectorMock.getSessionData(project).getSelectedBackgroundOverlay(), layout.getId());
       assert.equal(logger.getWarnings().length, 0);
     });
   });
 
   it('create with layout from session data', function() {
     var layout;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       var options = helper.createCustomMapOptions(project);
 
       layout = project.getModel().getLayouts()[1];
 
-      ServerConnector.getSessionData(project).setSelectedBackgroundOverlay(layout.getId());
+      ServerConnectorMock.getSessionData(project).setSelectedBackgroundOverlay(layout.getId());
 
       return minerva.create(options);
     }).then(function(customMap) {
-      assert.equal(ServerConnector.getSessionData().getSelectedBackgroundOverlay(), layout.getId());
+      assert.equal(ServerConnectorMock.getSessionData().getSelectedBackgroundOverlay(), layout.getId());
     });
   });
 
@@ -144,7 +148,7 @@ describe('minerva global', function() {
 
     helper.setUrl("http://test/?layout=" + layoutName);
 
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       project.getModel().addLayout(layout);
 
       var options = helper.createCustomMapOptions(project);
@@ -162,7 +166,7 @@ describe('minerva global', function() {
   it('create with search overlay and GET search param', function() {
     helper.setUrl("http://test/?search=s1");
 
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       var options = helper.createCustomMapOptions(project);
       return minerva.create(options);
     }).then(function(result) {
@@ -178,7 +182,7 @@ describe('minerva global', function() {
     var project = helper.createProject();
     project.getModel().setId(15781);
 
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       var options = helper.createCustomMapOptions(project);
 
       return minerva.create(options);
@@ -186,7 +190,7 @@ describe('minerva global', function() {
   });
 
   it("contructor with touch enabled", function() {
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       var options = helper.createCustomMapOptions(project);
       options.setCustomTouchInterface(true);
       return minerva.create(options).then(function(result) {
@@ -197,7 +201,7 @@ describe('minerva global', function() {
 
   it('add search listener', function() {
     var callbackOk = false;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       var options = helper.createCustomMapOptions(project);
       options.setDebug(true);
       return minerva.create(options);
@@ -213,7 +217,7 @@ describe('minerva global', function() {
 
   it('getProject', function() {
     var callbackOk = false;
-    return ServerConnector.getProject().then(function(project) {
+    return ServerConnectorMock.getProject().then(function(project) {
       var options = helper.createCustomMapOptions(project);
       return minerva.create(options);
     }).then(function(result) {
@@ -221,4 +225,14 @@ describe('minerva global', function() {
     });
   });
 
+  it("simple contructor", function() {
+    var options = {
+      projectId : "sample",
+      element : testDiv
+    };
+    return minerva.create(options).then(function(result) {
+      assert.ok(result);
+    });
+  });
+
 });
-- 
GitLab