From c719973a3143d9f9f5bd39a4f0ec87ba383a5005 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 3 Jul 2017 12:23:45 +0200
Subject: [PATCH] opening reaction info window fixed

---
 .../src/main/js/map/AbstractCustomMap.js      |  2 +-
 .../src/test/js/map/AbstractCustomMap-test.js | 88 ++++++++++++-------
 2 files changed, 55 insertions(+), 35 deletions(-)

diff --git a/frontend-js/src/main/js/map/AbstractCustomMap.js b/frontend-js/src/main/js/map/AbstractCustomMap.js
index 6f7a3d35a1..12d45b481d 100644
--- a/frontend-js/src/main/js/map/AbstractCustomMap.js
+++ b/frontend-js/src/main/js/map/AbstractCustomMap.js
@@ -762,7 +762,6 @@ AbstractCustomMap.prototype._openInfoWindowForMarker = function(marker) {
       } else {
         logger.warn("Info window for reaction: " + markerId + " is already opened");
       }
-      return;
     } else {
       this._reactionInfoWindow[markerId] = new ReactionInfoWindow({
         reaction : marker.getReactionData(),
@@ -770,6 +769,7 @@ AbstractCustomMap.prototype._openInfoWindowForMarker = function(marker) {
         marker : marker.getGoogleMarker(),
       });
     }
+    return Promise.resolve();
   } else {
     throw new Error("Unknown marker type: ", marker);
   }
diff --git a/frontend-js/src/test/js/map/AbstractCustomMap-test.js b/frontend-js/src/test/js/map/AbstractCustomMap-test.js
index 436c882897..1f439faa05 100644
--- a/frontend-js/src/test/js/map/AbstractCustomMap-test.js
+++ b/frontend-js/src/test/js/map/AbstractCustomMap-test.js
@@ -8,6 +8,7 @@ var AliasMarker = require('../../../main/js/map/marker/AliasMarker');
 var AbstractCustomMap = require('../../../main/js/map/AbstractCustomMap');
 var PointData = require('../../../main/js/map/data/PointData');
 var PointMarker = require('../../../main/js/map/marker/PointMarker');
+var ReactionMarker = require('../../../main/js/map/marker/ReactionMarker');
 var IdentifiedElement = require('../../../main/js/map/data/IdentifiedElement');
 
 var chai = require('chai');
@@ -288,49 +289,68 @@ describe('AbstractCustomMap', function() {
 
   });
 
-  it("_openInfoWindowForMarker(AliasMarker)", function() {
-    var map;
-    var alias, marker;
-    return ServerConnector.getProject().then(function(project) {
-      map = helper.createCustomMap(project);
-      return map.getModel().getAliasById(329171);
-    }).then(function(result) {
-      alias = result;
-
-      var identifiedElement = new IdentifiedElement(alias);
-      identifiedElement.setIcon("empty.png");
-
-      marker = new AliasMarker(identifiedElement, map);
-
-      return marker.init();
-    }).then(function() {
-      assert.equal(null, map.getAliasInfoWindowById(alias.getId()));
-      return map._openInfoWindowForMarker(marker).then(function() {
-        assert.ok(map.getAliasInfoWindowById(alias.getId()));
+  describe("_openInfoWindowForMarker", function() {
+    it("for AliasMarker", function() {
+      var map;
+      var alias, marker;
+      return ServerConnector.getProject().then(function(project) {
+        map = helper.createCustomMap(project);
+        return map.getModel().getAliasById(329171);
+      }).then(function(result) {
+        alias = result;
+
+        var identifiedElement = new IdentifiedElement(alias);
+        identifiedElement.setIcon("empty.png");
+
+        marker = new AliasMarker(identifiedElement, map);
+
+        return marker.init();
+      }).then(function() {
+        assert.equal(null, map.getAliasInfoWindowById(alias.getId()));
+        return map._openInfoWindowForMarker(marker).then(function() {
+          assert.ok(map.getAliasInfoWindowById(alias.getId()));
+        });
       });
+
     });
+    it("for ReactionMarker", function() {
+      var map;
+      var reaction, marker;
+      return ServerConnector.getProject().then(function(project) {
+        map = helper.createCustomMap(project);
+        return map.getModel().getReactionById(153510);
+      }).then(function(result) {
+        reaction = result;
+
+        marker = new ReactionMarker(reaction.getId(), "empty.png", reaction, map);
+        assert.equal(null, map.getReactionInfoWindowById(reaction.getId()));
+        return map._openInfoWindowForMarker(marker).then(function() {
+          assert.ok(map.getReactionInfoWindowById(reaction.getId()));
+        });
+      });
 
-  });
-  it("_openInfoWindowForMarker(PointMarker)", function() {
+    });
+    it("for PointMarker", function() {
 
-    var mockObject = helper.createAbstractCustomMap();
+      var mockObject = helper.createAbstractCustomMap();
 
-    mockObject.getTopMap = function() {
-      return mockObject;
-    };
-    mockObject.getOverlayDataForPoint = function() {
-      return Promise.resolve([]);
-    };
+      mockObject.getTopMap = function() {
+        return mockObject;
+      };
+      mockObject.getOverlayDataForPoint = function() {
+        return Promise.resolve([]);
+      };
 
-    var point = new google.maps.Point(2, 3.45);
-    var pointData = new PointData(point, 15781);
+      var point = new google.maps.Point(2, 3.45);
+      var pointData = new PointData(point, 15781);
 
-    var pointMarker = new PointMarker(pointData, "empty.png", mockObject);
+      var pointMarker = new PointMarker(pointData, "empty.png", mockObject);
 
-    assert.equal(null, mockObject.getPointInfoWindowById(pointData.getId()));
-    mockObject._openInfoWindowForMarker(pointMarker);
-    assert.ok(mockObject.getPointInfoWindowById(pointData.getId()));
+      assert.equal(null, mockObject.getPointInfoWindowById(pointData.getId()));
+      mockObject._openInfoWindowForMarker(pointMarker);
+      assert.ok(mockObject.getPointInfoWindowById(pointData.getId()));
 
+    });
   });
 
   it("_openInfoWindowForReaction", function() {
-- 
GitLab