diff --git a/frontend-js/.idea/frontend-js.iml b/frontend-js/.idea/frontend-js.iml index efb73a09b9bdf2792393a146168852c9da1fb5a9..45dbf88f6539d78ee4888ab62c2e63d304225ec4 100644 --- a/frontend-js/.idea/frontend-js.iml +++ b/frontend-js/.idea/frontend-js.iml @@ -20,5 +20,6 @@ <orderEntry type="library" name="jQuery UI-1.10.2" level="application" /> <orderEntry type="library" name="jQuery-2.0.0" level="application" /> <orderEntry type="library" name="datatables.net-DefinitelyTyped" level="application" /> + <orderEntry type="library" name="request-DefinitelyTyped" level="application" /> </component> </module> \ No newline at end of file diff --git a/frontend-js/src/main/js/map/AbstractCustomMap.js b/frontend-js/src/main/js/map/AbstractCustomMap.js index 78f7c7216d2890fe933b3faf1bf355bc54bdd8dd..abf9eedc134329defe54ed3a23a25a832617370c 100644 --- a/frontend-js/src/main/js/map/AbstractCustomMap.js +++ b/frontend-js/src/main/js/map/AbstractCustomMap.js @@ -157,27 +157,35 @@ AbstractCustomMap.prototype.createMapOptions = function () { */ AbstractCustomMap.prototype.createTypeOptions = function (param) { var self = this; - var result = { + return { // this is a function that will retrieve valid url to png images for // tiles on different zoom levels getTileUrl: function (coord, zoom) { // we have 1 tile on self.getConfiguration().MIN_ZOOM and // therefore must limit tails according to this /* jshint bitwise: false */ - var tileRange = 1 << (zoom - self.getMinZoom()); - if (coord.y < 0 || coord.y >= tileRange || coord.x < 0 || coord.x >= tileRange) { + var maxTileRange = 1 << (zoom - self.getMinZoom()); + var maxTileXRange = maxTileRange; + var maxTileYRange = maxTileRange; + + var width = self.getModel().getWidth(); + var height = self.getModel().getHeight(); + if (width > height) { + maxTileYRange = height / width * maxTileRange; + } else if (width < height) { + maxTileXRange = width / height * maxTileRange; + } + if (coord.y < 0 || coord.y >= maxTileYRange || coord.x < 0 || coord.x >= maxTileXRange) { return null; } - var addr = "../map_images/" + param.getDirectory() + "/" + zoom + "/" + coord.x + "/" + coord.y + ".PNG"; - return addr; + return "../map_images/" + param.getDirectory() + "/" + zoom + "/" + coord.x + "/" + coord.y + ".PNG"; }, - tileSize: new google.maps.Size(this.getTileSize(), this.getTileSize()), - maxZoom: this.getMaxZoom(), - minZoom: this.getMinZoom(), + tileSize: new google.maps.Size(self.getTileSize(), self.getTileSize()), + maxZoom: self.getMaxZoom(), + minZoom: self.getMinZoom(), radius: 360, name: param.name }; - return result; }; /** diff --git a/frontend-js/src/main/js/map/CustomMap.js b/frontend-js/src/main/js/map/CustomMap.js index 464687c519bdebf2782030479e66ed695396bd49..2dcf1c7a9fcdda04ab59e72c87eb337ec64108f7 100644 --- a/frontend-js/src/main/js/map/CustomMap.js +++ b/frontend-js/src/main/js/map/CustomMap.js @@ -70,7 +70,7 @@ CustomMap.prototype.constructor = CustomMap; * This code must be run after the object is created. It requires to download * some data via promises. * - * @return promise with empty result + * @return {Promise} with empty result */ CustomMap.prototype.init = function () { var self = this; @@ -85,11 +85,9 @@ CustomMap.prototype.init = function () { ids.push(mapType); } - for (var i = 0; i < ids.length; i++) { - var id = ids[i]; + return Promise.each(ids, function (overlayId) { try { - var promise = self.openDataOverlay(id); - openOverlaysPromises.push(promise); + return self.openDataOverlay(overlayId); } catch (e) { if (e instanceof SecurityError) { logger.debug(e.message); @@ -98,10 +96,7 @@ CustomMap.prototype.init = function () { return Promise.reject(e); } } - - } - - return Promise.all(openOverlaysPromises).then(function () { + }).then(function () { return ServerConnector.getLogoImg() }).then(function (url) { var logo2 = self.getControl(ControlType.LOGO_2_IMG); diff --git a/frontend-js/src/test/js/Configuration-test.js b/frontend-js/src/test/js/Configuration-test.js index 1d26da921f35b11fd143568ec44588a68feca1d6..6a8adcbc5611e90a3b5253e970e9884ef38b3bb4 100644 --- a/frontend-js/src/test/js/Configuration-test.js +++ b/frontend-js/src/test/js/Configuration-test.js @@ -1,112 +1,110 @@ -"use strict"; - -/* exported logger */ -/* exported assert */ - -require("./mocha-config"); - -var Configuration = require('../../main/js/Configuration'); -var ConfigurationType = require('../../main/js/ConfigurationType'); -var logger = require('./logger'); - -var assert = require('assert'); - -describe('Configuration', function () { - describe('constructor', function () { - it('default', function () { - var configuration = new Configuration({ - options: {}, - overlayTypes: {}, - imageFormats: {}, - modelFormats: {}, - elementTypes: {}, - reactionTypes: {}, - miriamTypes: {}, - mapTypes: {}, - modificationStateTypes: {}, - privilegeTypes: {}, - annotators: {} - }); - assert.ok(configuration); - assert.equal(0, logger.getWarnings().length); - }); - it('copy', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - var copy = new Configuration(configuration); - - assert.equal(configuration.getElementTypes().length, copy.getElementTypes().length) - }); - }); - }); - - describe('getParentType', function () { - it('for element type', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - var elementType = configuration.getElementTypes()[0]; - if (elementType.parentClass.indexOf("BioEntity") > 0) { - elementType = configuration.getElementTypes()[1]; - } - var parent = configuration.getParentType(elementType); - assert.ok(parent); - }); - }); - it('for reaction type', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - var elementType = configuration.getReactionTypes()[0]; - if (elementType.parentClass.indexOf("BioEntity") > 0) { - elementType = configuration.getReactionTypes()[1]; - } - var parent = configuration.getParentType(elementType); - assert.ok(parent); - }); - }); - }); - - describe('getElementAnnotators', function () { - it('get all', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - var annotators = configuration.getElementAnnotators(); - assert.ok(annotators); - assert.ok(annotators.length > 0); - }); - }); - it('get for element', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - var found = false; - var types = configuration.getElementTypes(); - for (var i = 0; i < types.length; i++) { - var annotators = configuration.getElementAnnotators(types[i]); - if (annotators.length > 0) { - found = true; - } - } - assert.ok(found); - }); - }); - }); - - describe('getOption', function () { - it('DEFAULT_MAP', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - var option = configuration.getOption(ConfigurationType.DEFAULT_MAP); - assert.ok(option); - assert.ok(option.getType()); - assert.ok(option.getValue()); - assert.ok(option.getCommonName()); - }); - }); - it('get for element', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - var found = false; - var types = configuration.getElementTypes(); - for (var i = 0; i < types.length; i++) { - var annotators = configuration.getElementAnnotators(types[i]); - if (annotators.length > 0) { - found = true; - } - } - assert.ok(found); - }); - }); - }); -}); +"use strict"; + +require("./mocha-config"); + +var Configuration = require('../../main/js/Configuration'); +var ConfigurationType = require('../../main/js/ConfigurationType'); +var ServerConnector = require('./ServerConnector-mock'); +var logger = require('./logger'); + +var assert = require('assert'); + +describe('Configuration', function () { + describe('constructor', function () { + it('default', function () { + var configuration = new Configuration({ + options: {}, + overlayTypes: {}, + imageFormats: {}, + modelFormats: {}, + elementTypes: {}, + reactionTypes: {}, + miriamTypes: {}, + mapTypes: {}, + modificationStateTypes: {}, + privilegeTypes: {}, + annotators: {} + }); + assert.ok(configuration); + assert.equal(0, logger.getWarnings().length); + }); + it('copy', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + var copy = new Configuration(configuration); + + assert.equal(configuration.getElementTypes().length, copy.getElementTypes().length) + }); + }); + }); + + describe('getParentType', function () { + it('for element type', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + var elementType = configuration.getElementTypes()[0]; + if (elementType.parentClass.indexOf("BioEntity") > 0) { + elementType = configuration.getElementTypes()[1]; + } + var parent = configuration.getParentType(elementType); + assert.ok(parent); + }); + }); + it('for reaction type', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + var elementType = configuration.getReactionTypes()[0]; + if (elementType.parentClass.indexOf("BioEntity") > 0) { + elementType = configuration.getReactionTypes()[1]; + } + var parent = configuration.getParentType(elementType); + assert.ok(parent); + }); + }); + }); + + describe('getElementAnnotators', function () { + it('get all', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + var annotators = configuration.getElementAnnotators(); + assert.ok(annotators); + assert.ok(annotators.length > 0); + }); + }); + it('get for element', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + var found = false; + var types = configuration.getElementTypes(); + for (var i = 0; i < types.length; i++) { + var annotators = configuration.getElementAnnotators(types[i]); + if (annotators.length > 0) { + found = true; + } + } + assert.ok(found); + }); + }); + }); + + describe('getOption', function () { + it('DEFAULT_MAP', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + var option = configuration.getOption(ConfigurationType.DEFAULT_MAP); + assert.ok(option); + assert.ok(option.getType()); + assert.ok(option.getValue()); + assert.ok(option.getCommonName()); + }); + }); + it('get for element', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + var found = false; + var types = configuration.getElementTypes(); + for (var i = 0; i < types.length; i++) { + var annotators = configuration.getElementAnnotators(types[i]); + if (annotators.length > 0) { + found = true; + } + } + assert.ok(found); + }); + }); + }); +}); diff --git a/frontend-js/src/test/js/Export-test.js b/frontend-js/src/test/js/Export-test.js index f3ca1655401c87e20568d97e6619e4ca7afcfcf9..2ba754019637bf75fdd5ef2c5abdb18e8b3b0d30 100644 --- a/frontend-js/src/test/js/Export-test.js +++ b/frontend-js/src/test/js/Export-test.js @@ -1,36 +1,35 @@ -"use strict"; - -/* exported logger */ -/* exported assert */ - -var Export = require('../../main/js/Export'); -var logger = require('./logger'); - -var assert = require('assert'); - -describe('Export', function() { - - describe('init', function() { - it('default behaviour', function() { - var exportObject; - var project; - var configuration; - - return ServerConnector.getConfiguration().then(function(result) { - configuration = result; - return ServerConnector.getProject(); - }).then(function(result) { - project = result; - exportObject = new Export({ - element : testDiv, - project : project, - configuration : configuration, - }); - return exportObject.init(); - }).then(function() { - - }); - }); - }); - -}); +"use strict"; +require("./mocha-config"); + +var Export = require('../../main/js/Export'); +var ServerConnector = require('./ServerConnector-mock'); +var logger = require('./logger'); + +var assert = require('assert'); + +describe('Export', function () { + + describe('init', function () { + it('default behaviour', function () { + var exportObject; + var project; + var configuration; + + return ServerConnector.getConfiguration().then(function (result) { + configuration = result; + return ServerConnector.getProject(); + }).then(function (result) { + project = result; + exportObject = new Export({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + assert.equal(0, logger.getWarnings().length); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/Functions-test.js b/frontend-js/src/test/js/Functions-test.js index c1fb623227189c3548228f36e666bb3fec0eb972..6230b87e40c652f646789ccc5ac70f6560d4d06f 100644 --- a/frontend-js/src/test/js/Functions-test.js +++ b/frontend-js/src/test/js/Functions-test.js @@ -1,252 +1,252 @@ -"use strict"; - -require('./mocha-config'); - -var functions = require('../../main/js/Functions'); -var logger = require('./logger'); - -var assert = require('assert'); - -var originalNavigator = null; -describe('functions', function () { - - beforeEach(function () { - originalNavigator = global.navigator; - }); - - afterEach(function () { - global.navigator = originalNavigator; - }); - - it('Point inside polygon 1', function () { - var point = { - x: 123, - y: 124 - }; - var polygon = []; - polygon[0] = { - x: 0, - y: 0 - }; - polygon[1] = { - x: 100, - y: 0 - }; - polygon[2] = { - x: 100, - y: 100 - }; - polygon[3] = { - x: 0, - y: 100 - }; - - assert.equal(false, functions.pointInsidePolygon(point, polygon)); - }); - - it('Point inside polygon 2', function () { - var point = { - x: 123, - y: 124 - }; - var polygon = []; - polygon[0] = { - x: 0, - y: 0 - }; - polygon[1] = { - x: 1000, - y: 0 - }; - polygon[2] = { - x: 1000, - y: 1000 - }; - polygon[3] = { - x: 0, - y: 1000 - }; - - assert.ok(functions.pointInsidePolygon(point, polygon)); - }); - - it('Point inside polygon 3', function () { - var point = { - x: 20, - y: 50 - }; - var polygon = []; - polygon[0] = { - x: 0, - y: 0 - }; - polygon[1] = { - x: 100, - y: 0 - }; - polygon[2] = { - x: 10, - y: 50 - }; - polygon[3] = { - x: 100, - y: 100 - }; - polygon[4] = { - x: 0, - y: 100 - }; - - assert.equal(false, functions.pointInsidePolygon(point, polygon)); - }); - - it('Point inside polygon 4', function () { - var point = { - x: 5, - y: 50 - }; - var polygon = []; - polygon[0] = { - x: 0, - y: 0 - }; - polygon[1] = { - x: 100, - y: 0 - }; - polygon[2] = { - x: 10, - y: 50 - }; - polygon[3] = { - x: 100, - y: 100 - }; - polygon[4] = { - x: 0, - y: 100 - }; - - assert.ok(functions.pointInsidePolygon(point, polygon)); - }); - - it('Integer to html color', function () { - var integer = -16711936; - var color = functions.intToColorString(integer); - assert.equal(7, color.length); - assert.equal(color.charAt(0), '#'); - }); - - it('isInt', function () { - assert.ok(functions.isInt(12)); - assert.ok(functions.isInt(-12)); - assert.ok(functions.isInt(0)); - assert.equal(functions.isInt(12.1), false); - assert.equal(functions.isInt(null), false); - assert.equal(functions.isInt(""), false); - }); - - it('stackTrace', function () { - assert.ok(functions.stackTrace()); - }); - - it('getPosition', function () { - var div = document.createElement('div'); - div.scrollLeft = 0; - div.scrollTop = 0; - var pos = functions.getPosition(div); - assert.equal(0, pos.x); - assert.equal(0, pos.y); - }); - - it('isDomElement', function () { - assert.strictEqual(false, functions.isDomElement(12)); - assert.strictEqual(false, functions.isDomElement(-12)); - assert.strictEqual(false, functions.isDomElement(0)); - assert.strictEqual(false, functions.isDomElement(12.1)); - assert.strictEqual(false, functions.isDomElement(null)); - assert.strictEqual(false, functions.isDomElement("")); - assert.strictEqual(false, functions.isDomElement({})); - assert.strictEqual(true, functions.isDomElement(document.createElement('div'))); - }); - - describe('overlayToColor', function () { - it('positive value', function () { - var overlay = { - value: 0.5 - }; - return functions.overlayToColor(overlay).then(function (colorString) { - // check the format of the html color - assert.equal(colorString.charAt(0), "#"); - assert.equal(colorString.length, 7); - }); - }); - it('negative value', function () { - var overlay = { - value: -0.5 - }; - return functions.overlayToColor(overlay).then(function (colorString) { - // check the format of the html color - assert.equal(colorString.charAt(0), "#"); - assert.equal(colorString.length, 7); - }); - }); - it('invalid arg', function () { - return functions.overlayToColor(null).then(function (colorString) { - throw new Error('Promise was unexpectedly fulfilled. Result: ' + colorString); - }, function rejected(error) { - assert.ok(error.indexOf("cannot be null") >= 0); - }); - }); - - it('invalid arg 2', function () { - return functions.overlayToColor({}).then(function (colorString) { - assert.ok(colorString); - }); - }); - }); - - - it('bound with null params', function () { - var value = 12; - var result = functions.bound(value, 13, null); - assert.equal(result, 13); - - var value2 = 12; - var result2 = functions.bound(value2, null, -1); - assert.equal(result2, -1); - }); - - it('browser detection simulation with unsupported detection browser', function () { - var browser = functions.browser; - browser.init(); - assert.equal(browser.name, "Unknown"); - assert.equal(browser.version, "Unknown"); - }); - - it('browser detection simulation with IE', function () { - global.navigator = { - appName: 'Microsoft Internet Explorer', - userAgent: "MSIE 7.0" - }; - - var browser = functions.browser; - browser.init(); - assert.equal(browser.name, "IE"); - assert.equal(browser.version, "7.0"); - }); - - it('browser detection simulation with other', function () { - global.navigator = { - appName: 'Netscape', - userAgent: "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko" - }; - - var browser = functions.browser; - browser.init(); - assert.equal(browser.name, "Other"); - assert.equal(browser.version, "11.0"); - assert.equal(logger.getWarnings().length, 0); - }); - -}); +"use strict"; + +require('./mocha-config'); + +var functions = require('../../main/js/Functions'); +var logger = require('./logger'); + +var assert = require('assert'); + +var originalNavigator = null; +describe('functions', function () { + + beforeEach(function () { + originalNavigator = global.navigator; + }); + + afterEach(function () { + global.navigator = originalNavigator; + }); + + it('Point inside polygon 1', function () { + var point = { + x: 123, + y: 124 + }; + var polygon = []; + polygon[0] = { + x: 0, + y: 0 + }; + polygon[1] = { + x: 100, + y: 0 + }; + polygon[2] = { + x: 100, + y: 100 + }; + polygon[3] = { + x: 0, + y: 100 + }; + + assert.equal(false, functions.pointInsidePolygon(point, polygon)); + }); + + it('Point inside polygon 2', function () { + var point = { + x: 123, + y: 124 + }; + var polygon = []; + polygon[0] = { + x: 0, + y: 0 + }; + polygon[1] = { + x: 1000, + y: 0 + }; + polygon[2] = { + x: 1000, + y: 1000 + }; + polygon[3] = { + x: 0, + y: 1000 + }; + + assert.ok(functions.pointInsidePolygon(point, polygon)); + }); + + it('Point inside polygon 3', function () { + var point = { + x: 20, + y: 50 + }; + var polygon = []; + polygon[0] = { + x: 0, + y: 0 + }; + polygon[1] = { + x: 100, + y: 0 + }; + polygon[2] = { + x: 10, + y: 50 + }; + polygon[3] = { + x: 100, + y: 100 + }; + polygon[4] = { + x: 0, + y: 100 + }; + + assert.equal(false, functions.pointInsidePolygon(point, polygon)); + }); + + it('Point inside polygon 4', function () { + var point = { + x: 5, + y: 50 + }; + var polygon = []; + polygon[0] = { + x: 0, + y: 0 + }; + polygon[1] = { + x: 100, + y: 0 + }; + polygon[2] = { + x: 10, + y: 50 + }; + polygon[3] = { + x: 100, + y: 100 + }; + polygon[4] = { + x: 0, + y: 100 + }; + + assert.ok(functions.pointInsidePolygon(point, polygon)); + }); + + it('Integer to html color', function () { + var integer = -16711936; + var color = functions.intToColorString(integer); + assert.equal(7, color.length); + assert.equal(color.charAt(0), '#'); + }); + + it('isInt', function () { + assert.ok(functions.isInt(12)); + assert.ok(functions.isInt(-12)); + assert.ok(functions.isInt(0)); + assert.equal(functions.isInt(12.1), false); + assert.equal(functions.isInt(null), false); + assert.equal(functions.isInt(""), false); + }); + + it('stackTrace', function () { + assert.ok(functions.stackTrace()); + }); + + it('getPosition', function () { + var div = document.createElement('div'); + div.scrollLeft = 0; + div.scrollTop = 0; + var pos = functions.getPosition(div); + assert.equal(0, pos.x); + assert.equal(0, pos.y); + }); + + it('isDomElement', function () { + assert.strictEqual(false, functions.isDomElement(12)); + assert.strictEqual(false, functions.isDomElement(-12)); + assert.strictEqual(false, functions.isDomElement(0)); + assert.strictEqual(false, functions.isDomElement(12.1)); + assert.strictEqual(false, functions.isDomElement(null)); + assert.strictEqual(false, functions.isDomElement("")); + assert.strictEqual(false, functions.isDomElement({})); + assert.strictEqual(true, functions.isDomElement(document.createElement('div'))); + }); + + describe('overlayToColor', function () { + it('positive value', function () { + var overlay = { + value: 0.5 + }; + return functions.overlayToColor(overlay).then(function (colorString) { + // check the format of the html color + assert.equal(colorString.charAt(0), "#"); + assert.equal(colorString.length, 7); + }); + }); + it('negative value', function () { + var overlay = { + value: -0.5 + }; + return functions.overlayToColor(overlay).then(function (colorString) { + // check the format of the html color + assert.equal(colorString.charAt(0), "#"); + assert.equal(colorString.length, 7); + }); + }); + it('invalid arg', function () { + return functions.overlayToColor(null).then(function (colorString) { + throw new Error('Promise was unexpectedly fulfilled. Result: ' + colorString); + }, function rejected(error) { + assert.ok(error.indexOf("cannot be null") >= 0); + }); + }); + + it('invalid arg 2', function () { + return functions.overlayToColor({}).then(function (colorString) { + assert.ok(colorString); + }); + }); + }); + + + it('bound with null params', function () { + var value = 12; + var result = functions.bound(value, 13, null); + assert.equal(result, 13); + + var value2 = 12; + var result2 = functions.bound(value2, null, -1); + assert.equal(result2, -1); + }); + + it('browser detection simulation with unsupported detection browser', function () { + var browser = functions.browser; + browser.init(); + assert.equal(browser.name, "Unknown"); + assert.equal(browser.version, "Unknown"); + }); + + it('browser detection simulation with IE', function () { + global.navigator = { + appName: 'Microsoft Internet Explorer', + userAgent: "MSIE 7.0" + }; + + var browser = functions.browser; + browser.init(); + assert.equal(browser.name, "IE"); + assert.equal(browser.version, "7.0"); + }); + + it('browser detection simulation with other', function () { + global.navigator = { + appName: 'Netscape', + userAgent: "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko" + }; + + var browser = functions.browser; + browser.init(); + assert.equal(browser.name, "Other"); + assert.equal(browser.version, "11.0"); + assert.equal(logger.getWarnings().length, 0); + }); + +}); diff --git a/frontend-js/src/test/js/GuiConnector-mock.js b/frontend-js/src/test/js/GuiConnector-mock.js index f07c01923a070f1c5d0223e1be379c2f7df7eb17..16731e8490c8a83a3f8d30350a0f2a61035c12e2 100644 --- a/frontend-js/src/test/js/GuiConnector-mock.js +++ b/frontend-js/src/test/js/GuiConnector-mock.js @@ -1,30 +1,30 @@ -"use strict"; - -/* exported logger */ - -var logger = require('./logger'); - -var OriginalGuiConnector = require('../../main/js/GuiConnector'); - -var GuiConnectorMock = OriginalGuiConnector; - -GuiConnectorMock.alert = function (error) { - if (error instanceof Error) { - throw error; - } else { - throw new Error(error); - } -}; - -GuiConnectorMock.showProcessing = function (message) { - if (message === undefined) { - message = ""; - } - logger.debug("[PROCESSING STARTED] " + message); -}; - -GuiConnectorMock.hideProcessing = function () { - logger.debug("[PROCESSING STOPPED]"); -}; - -module.exports = GuiConnectorMock; +"use strict"; + +/* exported logger */ + +var logger = require('./logger'); + +var OriginalGuiConnector = require('../../main/js/GuiConnector'); + +var GuiConnectorMock = OriginalGuiConnector; + +GuiConnectorMock.alert = function (error) { + if (error instanceof Error) { + throw error; + } else { + throw new Error(error); + } +}; + +GuiConnectorMock.showProcessing = function (message) { + if (message === undefined) { + message = ""; + } + logger.debug("[PROCESSING STARTED] " + message); +}; + +GuiConnectorMock.hideProcessing = function () { + logger.debug("[PROCESSING STOPPED]"); +}; + +module.exports = GuiConnectorMock; diff --git a/frontend-js/src/test/js/GuiConnector-test.js b/frontend-js/src/test/js/GuiConnector-test.js index db0015dfe10218849c3df6273b17295829437340..36c0edd54af14790a31944a2ed2d5599e46c193e 100644 --- a/frontend-js/src/test/js/GuiConnector-test.js +++ b/frontend-js/src/test/js/GuiConnector-test.js @@ -1,76 +1,75 @@ -"use strict"; - -require("./mocha-config"); -/* exported logger */ - -var GuiConnector = require('../../main/js/GuiConnector'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('./logger'); - -describe('GuiConnector', function () { - it('destroy', function () { - var length = document.body.children.length; - var connector = new (GuiConnector.constructor)(); - connector.showProcessing("test"); - connector.destroy(); - assert.equal(length, document.body.children.length); - }); - - it('hideProcessing', function () { - var connector = new (GuiConnector.constructor)(); - connector.showProcessing(); - connector.hideProcessing(); - $(".ui-dialog-content").each(function () { - assert.notOk($(this).dialog('isOpen')); - }); - connector.destroy(); - }); - - it('alert', function () { - var connector = new (GuiConnector.constructor)(); - connector.alert("some error"); - $(".ui-dialog-content").each(function () { - assert.ok($(this).dialog('isOpen')); - }); - connector.destroy(); - }); - - it('info', function () { - var connector = new (GuiConnector.constructor)(); - connector.info("info message"); - $(".ui-dialog-content").each(function () { - assert.ok($(this).dialog('isOpen')); - }); - connector.destroy(); - }); - - describe('removeWindowResizeEvent', function () { - it('valid handler', function () { - var connector = new (GuiConnector.constructor)(); - connector.init(); - var handler = function () { - - }; - connector.addWindowResizeEvent(handler); - connector.removeWindowResizeEvent(handler); - assert.equal(0, logger.getWarnings().length); - connector.destroy(); - }); - it('invalid handler', function () { - var connector = new (GuiConnector.constructor)(); - connector.init(); - var handler = function () { - - }; - connector.addWindowResizeEvent(handler); - connector.removeWindowResizeEvent(function(){ - - }); - assert.equal(1, logger.getWarnings().length); - connector.destroy(); - }); - }); - +"use strict"; + +require("./mocha-config"); + +var GuiConnector = require('../../main/js/GuiConnector'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('./logger'); + +describe('GuiConnector', function () { + it('destroy', function () { + var length = document.body.children.length; + var connector = new (GuiConnector.constructor)(); + connector.showProcessing("test"); + connector.destroy(); + assert.equal(length, document.body.children.length); + }); + + it('hideProcessing', function () { + var connector = new (GuiConnector.constructor)(); + connector.showProcessing(); + connector.hideProcessing(); + $(".ui-dialog-content").each(function () { + assert.notOk($(this).dialog('isOpen')); + }); + connector.destroy(); + }); + + it('alert', function () { + var connector = new (GuiConnector.constructor)(); + connector.alert("some error"); + $(".ui-dialog-content").each(function () { + assert.ok($(this).dialog('isOpen')); + }); + connector.destroy(); + }); + + it('info', function () { + var connector = new (GuiConnector.constructor)(); + connector.info("info message"); + $(".ui-dialog-content").each(function () { + assert.ok($(this).dialog('isOpen')); + }); + connector.destroy(); + }); + + describe('removeWindowResizeEvent', function () { + it('valid handler', function () { + var connector = new (GuiConnector.constructor)(); + connector.init(); + var handler = function () { + + }; + connector.addWindowResizeEvent(handler); + connector.removeWindowResizeEvent(handler); + assert.equal(0, logger.getWarnings().length); + connector.destroy(); + }); + it('invalid handler', function () { + var connector = new (GuiConnector.constructor)(); + connector.init(); + var handler = function () { + + }; + connector.addWindowResizeEvent(handler); + connector.removeWindowResizeEvent(function(){ + + }); + assert.equal(1, logger.getWarnings().length); + connector.destroy(); + }); + }); + }); \ No newline at end of file diff --git a/frontend-js/src/test/js/ObjectWithListeners-test.js b/frontend-js/src/test/js/ObjectWithListeners-test.js index effe63b928e748140041a62194f707a9d8974a7d..289444da46760c774c930ab309d7f894ac7b6d9f 100644 --- a/frontend-js/src/test/js/ObjectWithListeners-test.js +++ b/frontend-js/src/test/js/ObjectWithListeners-test.js @@ -1,155 +1,155 @@ -"use strict"; - -var ObjectWithListeners = require('../../main/js/ObjectWithListeners'); - -var logger = require('./logger'); - -var chai = require('chai'); -var assert = chai.assert; -var expect = chai.expect; - -describe('ObjectWithListeners', function() { - beforeEach(function() { - logger.flushBuffer(); - }); - - it("ObjectWithListeners constructor", function() { - var obj = new ObjectWithListeners(); - assert.ok(obj); - }); - - it("add invalid listener", function() { - var obj = new ObjectWithListeners(); - obj.registerListenerType("t"); - var code = function(){obj.addListener("t", "not a function");}; - expect(code).to.throw(/string/); - - }); - - it("add invalid property change listener", function() { - var obj = new ObjectWithListeners(); - var code = function(){obj.addPropertyChangeListener ("t", function(){});}; - expect(code).to.throw(/Unknown property/); - - }); - - it("add invalid property change listener 2", function() { - var obj = new ObjectWithListeners(); - obj.registerPropertyType("t"); - var code = function(){obj.addPropertyChangeListener ("t", "not a function");}; - expect(code).to.throw(/string/); - - }); - - it("re-register listener type", function() { - var obj = new ObjectWithListeners(); - obj.registerListenerType("t"); - var code = function(){obj.registerListenerType("t");}; - expect(code).to.throw(/already registered/); - - }); - - it("re-register property type", function() { - var obj = new ObjectWithListeners(); - obj.registerPropertyType ("t"); - var code = function(){obj.registerPropertyType ("t");}; - expect(code).to.throw(/already registered/); - - }); - - it("remove invalid listener", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - var fun = function(){}; - var code = function(){obj.removeListener(name, fun);}; - expect(code).to.throw(/Unknown listener type/); - - }); - - it("remove invalid listener 2", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - var fun = function(){}; - obj.registerListenerType(name, fun); - var code = function(){obj.removeListener(name, "not a function");}; - expect(code).to.throw(/string/); - - }); - - it("remove invalid listener 3", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - var fun = function(){}; - obj.registerListenerType(name, fun); - obj.removeListener(name, function(){}); - assert.equal(logger.getWarnings().length, 1); - - }); - - it("remove invalid property listener", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - var fun = function(){}; - var code = function(){obj.removePropertyListener (name, fun);}; - expect(code).to.throw(/Unknown property/); - - }); - - it("remove invalid property listener 2", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - obj.registerPropertyType(name); - var code = function(){obj.removePropertyListener (name, "not a function");}; - expect(code).to.throw(/string/); - - }); - - it("remove invalid property listener 3", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - var fun = function(){}; - obj.registerPropertyType(name); - obj.removePropertyListener (name, fun); - assert.equal(logger.getWarnings().length, 1); - - }); - - it("call invalid listeners", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - var code = function(){obj.callListeners(name);}; - expect(code).to.throw(/Unknown listener/); - - }); - it("fire invalid property change listeners", function() { - var obj = new ObjectWithListeners(); - var name = "t"; - var code = function(){obj.firePropertyChangeListener (name,"old","new");}; - expect(code).to.throw(/Unknown property/); - - }); - - it("ObjectWithListeners property changes", function() { - var handlerCalled = 0; - var obj = new ObjectWithListeners(); - - var handler = function() { - handlerCalled++; - }; - - obj.registerPropertyType("test"); - - obj.addPropertyChangeListener("test", handler); - - obj.firePropertyChangeListener("test", "old val", "new val"); - assert.equal(1, handlerCalled); - - obj.firePropertyChangeListener("test", "old val", "new val"); - assert.equal(2, handlerCalled); - - obj.removePropertyListener("test", handler); - - obj.firePropertyChangeListener("test", "old val", "new val"); - assert.equal(2, handlerCalled); - }); -}); +"use strict"; + +var ObjectWithListeners = require('../../main/js/ObjectWithListeners'); + +var logger = require('./logger'); + +var chai = require('chai'); +var assert = chai.assert; +var expect = chai.expect; + +describe('ObjectWithListeners', function() { + beforeEach(function() { + logger.flushBuffer(); + }); + + it("ObjectWithListeners constructor", function() { + var obj = new ObjectWithListeners(); + assert.ok(obj); + }); + + it("add invalid listener", function() { + var obj = new ObjectWithListeners(); + obj.registerListenerType("t"); + var code = function(){obj.addListener("t", "not a function");}; + expect(code).to.throw(/string/); + + }); + + it("add invalid property change listener", function() { + var obj = new ObjectWithListeners(); + var code = function(){obj.addPropertyChangeListener ("t", function(){});}; + expect(code).to.throw(/Unknown property/); + + }); + + it("add invalid property change listener 2", function() { + var obj = new ObjectWithListeners(); + obj.registerPropertyType("t"); + var code = function(){obj.addPropertyChangeListener ("t", "not a function");}; + expect(code).to.throw(/string/); + + }); + + it("re-register listener type", function() { + var obj = new ObjectWithListeners(); + obj.registerListenerType("t"); + var code = function(){obj.registerListenerType("t");}; + expect(code).to.throw(/already registered/); + + }); + + it("re-register property type", function() { + var obj = new ObjectWithListeners(); + obj.registerPropertyType ("t"); + var code = function(){obj.registerPropertyType ("t");}; + expect(code).to.throw(/already registered/); + + }); + + it("remove invalid listener", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + var fun = function(){}; + var code = function(){obj.removeListener(name, fun);}; + expect(code).to.throw(/Unknown listener type/); + + }); + + it("remove invalid listener 2", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + var fun = function(){}; + obj.registerListenerType(name, fun); + var code = function(){obj.removeListener(name, "not a function");}; + expect(code).to.throw(/string/); + + }); + + it("remove invalid listener 3", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + var fun = function(){}; + obj.registerListenerType(name, fun); + obj.removeListener(name, function(){}); + assert.equal(logger.getWarnings().length, 1); + + }); + + it("remove invalid property listener", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + var fun = function(){}; + var code = function(){obj.removePropertyListener (name, fun);}; + expect(code).to.throw(/Unknown property/); + + }); + + it("remove invalid property listener 2", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + obj.registerPropertyType(name); + var code = function(){obj.removePropertyListener (name, "not a function");}; + expect(code).to.throw(/string/); + + }); + + it("remove invalid property listener 3", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + var fun = function(){}; + obj.registerPropertyType(name); + obj.removePropertyListener (name, fun); + assert.equal(logger.getWarnings().length, 1); + + }); + + it("call invalid listeners", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + var code = function(){obj.callListeners(name);}; + expect(code).to.throw(/Unknown listener/); + + }); + it("fire invalid property change listeners", function() { + var obj = new ObjectWithListeners(); + var name = "t"; + var code = function(){obj.firePropertyChangeListener (name,"old","new");}; + expect(code).to.throw(/Unknown property/); + + }); + + it("ObjectWithListeners property changes", function() { + var handlerCalled = 0; + var obj = new ObjectWithListeners(); + + var handler = function() { + handlerCalled++; + }; + + obj.registerPropertyType("test"); + + obj.addPropertyChangeListener("test", handler); + + obj.firePropertyChangeListener("test", "old val", "new val"); + assert.equal(1, handlerCalled); + + obj.firePropertyChangeListener("test", "old val", "new val"); + assert.equal(2, handlerCalled); + + obj.removePropertyListener("test", handler); + + obj.firePropertyChangeListener("test", "old val", "new val"); + assert.equal(2, handlerCalled); + }); +}); diff --git a/frontend-js/src/test/js/ServerConnector-mock.js b/frontend-js/src/test/js/ServerConnector-mock.js index ca5b5a01a593e6fd6c482e610fe206d52531c095..d9f1bf1d4eaf1e321256d0039d4e31075786ec01 100644 --- a/frontend-js/src/test/js/ServerConnector-mock.js +++ b/frontend-js/src/test/js/ServerConnector-mock.js @@ -1,100 +1,99 @@ -'use strict'; - -var Promise = require("bluebird"); - -/* exported logger */ - -var logger = require('./logger'); - -var OriginalServerConnector = require('../../main/js/ServerConnector'); -var NetworkError = require('../../main/js/NetworkError'); - -var fs = require('fs'); -var request = require('request'); - -var ServerConnectorMock = OriginalServerConnector; - -function replaceAsterisk(str) { - return str.replace(/\*/g, "all").replace(/\:/g, "."); -} - -function urlToFileName(url) { - var result = url; - var token = OriginalServerConnector.getSessionData().getToken(); - if (token !== undefined && token !== "" && url.startsWith("./testFiles/apiCalls")) { - if (!result.endsWith("&") && !result.endsWith("_")) { - result += "/"; - } - result += "token=" + token + "&"; - } - - return replaceAsterisk(result); -} - -function encodeParams(params) { - var result = {}; - for (var key in params) { - if (params.hasOwnProperty(key) && params[key] !== undefined) { - result[key] = encodeURIComponent(params[key]); - } - } - return result; -} - -ServerConnectorMock._sendRequest = function (params) { - var self = this; - var url = params.url; - var prefix = params.method; - if (prefix === "GET") { - prefix = ""; - } else { - prefix = "/" + prefix + "_"; - } - var suffix = ""; - if (params.form !== undefined) { - suffix += self.createGetParams(encodeParams(params.form)); - } - if (params.json !== undefined) { - suffix += self.createGetParams(params.json); - } - return new Promise(function (resolve, reject) { - if (url.indexOf("http") === 0) { - request.get(url, function (error, response, body) { - if (error) { - reject(error); - } else if (response.statusCode !== 200) { - reject(response); - } else { - resolve(body); - } - }); - } else { - var fileName = urlToFileName(url + prefix + suffix); - fs.readFile(fileName, 'utf8', function (err, content) { - if (err) { - reject(new NetworkError(err.message, { - content: content, - url: fileName, - statusCode: 404 - })); - } else { - resolve(content); - } - }); - } - }); -}; - -ServerConnectorMock.getApiBaseUrl = function () { - return "./testFiles/apiCalls/"; -}; - -var originalGetApiUrl = OriginalServerConnector.getApiUrl; - -ServerConnectorMock.getApiUrl = function (paramObj) { - // replace '?' with '/' - // the call is done on ServerConnectorObject (so 'this' is set properly) - return originalGetApiUrl.call(this, paramObj).replace(/\?/g, '/'); -}; - -module.exports = ServerConnectorMock; +'use strict'; + +var Promise = require("bluebird"); + +// noinspection JSUnusedLocalSymbols +var logger = require('./logger'); + +var OriginalServerConnector = require('../../main/js/ServerConnector'); +var NetworkError = require('../../main/js/NetworkError'); + +var fs = require('fs'); +var request = require('request'); + +var ServerConnectorMock = OriginalServerConnector; + +function replaceAsterisk(str) { + return str.replace(/\*/g, "all").replace(/:/g, "."); +} + +function urlToFileName(url) { + var result = url; + var token = OriginalServerConnector.getSessionData().getToken(); + if (token !== undefined && token !== "" && url.startsWith("./testFiles/apiCalls")) { + if (!result.endsWith("&") && !result.endsWith("_")) { + result += "/"; + } + result += "token=" + token + "&"; + } + + return replaceAsterisk(result); +} + +function encodeParams(params) { + var result = {}; + for (var key in params) { + if (params.hasOwnProperty(key) && params[key] !== undefined) { + result[key] = encodeURIComponent(params[key]); + } + } + return result; +} + +ServerConnectorMock._sendRequest = function (params) { + var self = this; + var url = params.url; + var prefix = params.method; + if (prefix === "GET") { + prefix = ""; + } else { + prefix = "/" + prefix + "_"; + } + var suffix = ""; + if (params.form !== undefined) { + suffix += self.createGetParams(encodeParams(params.form)); + } + if (params.json !== undefined) { + suffix += self.createGetParams(params.json); + } + return new Promise(function (resolve, reject) { + if (url.indexOf("http") === 0) { + request.get(url, function (error, response, body) { + if (error) { + reject(error); + } else if (response.statusCode !== 200) { + reject(response); + } else { + resolve(body); + } + }); + } else { + var fileName = urlToFileName(url + prefix + suffix); + fs.readFile(fileName, 'utf8', function (err, content) { + if (err) { + reject(new NetworkError(err.message, { + content: content, + url: fileName, + statusCode: 404 + })); + } else { + resolve(content); + } + }); + } + }); +}; + +ServerConnectorMock.getApiBaseUrl = function () { + return "./testFiles/apiCalls/"; +}; + +var originalGetApiUrl = OriginalServerConnector.getApiUrl; + +ServerConnectorMock.getApiUrl = function (paramObj) { + // replace '?' with '/' + // the call is done on ServerConnectorObject (so 'this' is set properly) + return originalGetApiUrl.call(this, paramObj).replace(/\?/g, '/'); +}; + +module.exports = ServerConnectorMock; diff --git a/frontend-js/src/test/js/ServerConnector-test.js b/frontend-js/src/test/js/ServerConnector-test.js index 7b844e1e805d8a2e16a1a9bfec32bd3f9b3afd07..c48d2795a5734f0f466ddd8c56b95b440f6fbaa1 100644 --- a/frontend-js/src/test/js/ServerConnector-test.js +++ b/frontend-js/src/test/js/ServerConnector-test.js @@ -1,373 +1,373 @@ -"use strict"; - -require("./mocha-config.js"); - -var Promise = require("bluebird"); - -var HttpStatus = require('http-status-codes'); - -var Alias = require('../../main/js/map/data/Alias'); -var Configuration = require('../../main/js/Configuration'); -var LayoutData = require('../../main/js/map/data/LayoutData'); -var LayoutAlias = require('../../main/js/map/data/LayoutAlias'); -var MapModel = require('../../main/js/map/data/MapModel'); -var NetworkError = require('../../main/js/NetworkError'); -var Project = require('../../main/js/map/data/Project'); -var Reaction = require('../../main/js/map/data/Reaction'); -var ServerConnector = require('../../main/js/ServerConnector'); - -var logger = require('./logger'); -var chai = require('chai'); -var assert = chai.assert; - -describe('ServerConnector', function () { - describe('getProject', function () { - it('default', function () { - return ServerConnector.getProject().then(function (result) { - assert.ok(result instanceof Project); - assert.equal(result.getProjectId(), "sample"); - assert.equal(logger.getWarnings().length, 0); - }); - }); - it('invalid project id', function () { - return ServerConnector.getProject("invalid_project_id").then(function (result) { - assert.equal(result, null); - }); - }); - it('caching', function () { - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getProject(); - - }).then(function (result) { - assert.ok(result === project); - }); - }); - }); - - describe('updateProject', function () { - it('default', function () { - var project; - var newVersion = "2.01"; - return ServerConnector.getProject().then(function (result) { - project = result; - project.setVersion(newVersion); - return ServerConnector.updateProject(project); - }).then(function (result) { - assert.ok(project === result); - assert.equal(newVersion, result.getVersion()); - }); - }); - }); - describe('removeProject', function () { - it('default', function () { - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.removeProject(project.getProjectId()); - }).then(function (result) { - assert.ok(project === result); - }); - }); - }); - - it('getModels', function () { - return ServerConnector.getModels("sample").then(function (models) { - assert.equal(1, models.length); - assert.ok(models[0] instanceof MapModel); - }); - }); - - it('getPublications', function () { - return ServerConnector.getPublications().then(function (result) { - assert.equal(result.totalSize, 1); - }); - }); - - it('getProjectId from GET params', function () { - helper.setUrl("http://test/?id=test"); - return ServerConnector.getProjectId().then(function (result) { - assert.equal(result, "test"); - }); - }); - - it('getReactions with empty list of ids', function () { - return ServerConnector.getReactions([]).then(function (result) { - assert.equal(result.length, 2); - var reaction = result[0]; - assert.ok(reaction instanceof Reaction); - assert.equal(reaction.getId(), 153513); - assert.equal(reaction.getModelId(), 15781); - }); - }); - - it('getReactions without ids', function () { - return ServerConnector.getReactions([]).then(function (result) { - assert.equal(result.length, 2); - var reaction = result[0]; - assert.ok(reaction instanceof Reaction); - assert.equal(reaction.getId(), 153513); - assert.equal(reaction.getModelId(), 15781); - }); - }); - - it('getElements with empty list of ids', function () { - return ServerConnector.getAliases({}).then(function (result) { - assert.equal(result.length, 30); - var alias = result[0]; - assert.ok(alias instanceof Alias); - assert.equal(alias.getModelId(), 15781); - }); - }); - - it('getOverlayElements', function () { - return ServerConnector.getOverlayElements(18077).then(function (result) { - assert.equal(result.length, 1); - var layoutAlias = result[0]; - assert.ok(layoutAlias instanceof LayoutAlias); - assert.equal(-7602176, layoutAlias.getColor().value); - assert.equal(15781, layoutAlias.getModelId()); - assert.equal(329163, layoutAlias.getId()); - }); - }); - - it('idsToString', function () { - var ids = [3, 2, 9, 1, 6, 8, 3, 2, 9, 1, 7, 3]; - var str = ServerConnector.idsToString(ids); - assert.equal(str, "1,2,3,6,7,8,9"); - }); - - it('getOverlaySourceDownloadUrl', function () { - var id = 17296; - return ServerConnector.getOverlaySourceDownloadUrl({ - overlayId: id - }).then(function (url) { - assert.ok(url); - assert.ok(url.indexOf(id) >= 0); - return ServerConnector.sendGetRequest(url); - }); - }); - - it('getImageDownloadUrl', function () { - var modelId = 15781; - return ServerConnector.getImageDownloadUrl({ - modelId: modelId, - handlerClass: "lcsb.mapviewer.converter.graphics.PngImageGenerator" - }).then(function (url) { - assert.ok(url); - assert.ok(url.indexOf(modelId) >= 0); - return ServerConnector.sendGetRequest(url); - }); - }); - - it('getModelDownloadUrl', function () { - var modelId = 15781; - return ServerConnector.getModelDownloadUrl({ - modelId: modelId, - handlerClass: "lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser" - }).then(function (url) { - assert.ok(url); - assert.ok(url.indexOf(modelId) >= 0); - return ServerConnector.sendGetRequest(url); - }); - }); - - it('getProjectSourceDownloadUrl', function () { - return ServerConnector.getProjectSourceDownloadUrl().then(function (url) { - assert.ok(url); - return ServerConnector.sendGetRequest(url); - }); - }); - - it('addOverlay', function () { - return ServerConnector.addOverlay({ - overlay: new LayoutData({ - name: "test nam", - description: "test desc", - content: "name color\nCAPN1 #00FF00\nPARK7 #AC0000", - filename: "test.txt" - }) - }).then(function (overlay) { - assert.ok(overlay); - }); - }); - - it('removeOverlay', function () { - return ServerConnector.removeOverlay({ - overlayId: 17296 - }); - }); - - it('removeComment', function () { - return ServerConnector.removeComment({ - commentId: 4290 - }); - }); - - it('updateOverlay', function () { - var overlay = new LayoutData({}); - overlay.setId(17296); - overlay.setName("test nam2"); - overlay.setDescription("test desc2"); - - return ServerConnector.updateOverlay(overlay); - }); - - it('logout', function () { - return ServerConnector.logout().then(function () { - assert.equal(ServerConnector.getSessionData().getToken(), undefined); - }); - }); - - it('getToken', function () { - ServerConnector.getSessionData(null).setToken(undefined); - - return ServerConnector.getToken().then(function (token) { - assert.ok(token !== undefined); - }); - }); - - it('getModelDownloadUrl', function () { - return ServerConnector.getModelDownloadUrl({ - backgroundOverlayId: "cv14081" - }).then(function (url) { - assert.ok(url); - }); - }); - - it('getOverlayById', function () { - return ServerConnector.getOverlayById(18083, "complex_model_with_submaps").then(function (overlay) { - assert.ok(overlay); - }); - }); - - it('getConfiguration', function () { - return ServerConnector.getConfiguration().then(function (configuration) { - assert.ok(configuration instanceof Configuration); - assert.ok(configuration.getElementTypes().length > 0); - assert.ok(configuration.getReactionTypes().length > 0); - }); - }); - - describe('getProjects', function () { - it('test caching', function () { - var projects; - return ServerConnector.getProjects().then(function (result) { - projects = result; - return ServerConnector.getProjects(); - }).then(function (result) { - assert.ok(result === projects); - }); - }); - - it('test force reload', function () { - var projects; - var originalName; - return ServerConnector.getProjects().then(function (result) { - projects = result; - originalName = projects[0].getName(); - projects[0].setName("test name"); - return ServerConnector.getProjects(true); - }).then(function (result) { - assert.ok(result === projects); - assert.equal(originalName, projects[0].getName()); - }); - }); - }); - - describe('login', function () { - it('try invalid credentials', function () { - var method = ServerConnector.sendPostRequest; - ServerConnector.sendPostRequest = function () { - return Promise.reject(new NetworkError("xxx", { - statusCode: HttpStatus.FORBIDDEN - })); - }; - return ServerConnector.login("unknown", "unknown password").then(function () { - ServerConnector.sendPostRequest = method; - assert.ok(false); - }, function (error) { - ServerConnector.sendPostRequest = method; - assert.ok(error.message.indexOf("credentials") >= 0); - }); - }); - }); - - describe('getServerBaseUrl', function () { - it('url with GET arg that looks similar to original url', function () { - helper.setUrl("http://localhost:8080/minerva/login.xhtml?from=http://localhost:8080/minerva/?id=sample"); - var url = ServerConnector.getServerBaseUrl(); - assert.ok(url.indexOf("?") === -1); - }); - }); - - - describe('returnUserOrSystemColor ', function () { - it('user has empty color', function () { - var systemColor = "0000FF"; - return ServerConnector.returnUserOrSystemColor("", Promise.resolve(systemColor)).then(function (result) { - assert.ok(255, result); - }); - }); - it('user has defined color', function () { - var userColor = "000001"; - var systemColor = "000010"; - return ServerConnector.returnUserOrSystemColor(userColor, Promise.resolve(systemColor)).then(function (result) { - assert.ok(1, result); - }); - }); - }); - - describe('readFile', function () { - it('check session expired', function () { - ServerConnector.getSessionData().setToken(undefined); - assert.ok(ServerConnector.getSessionData().getLogin()); - return ServerConnector.sendGetRequest("package.json", "Downloading projects").then(function () { - assert.notOk(ServerConnector.getSessionData().getLogin()); - }); - }); - }); - - describe('getUsers', function () { - it('default', function () { - return ServerConnector.getUsers().then(function (users) { - assert.ok(users.length > 0); - }); - }); - it('refresh', function () { - var user; - var users; - var modifiedName = "xxx name"; - return ServerConnector.getUsers().then(function (result) { - users = result; - user = users[0]; - user.setName(modifiedName); - return ServerConnector.getUsers(true); - }).then(function (result) { - assert.ok(users === result); - assert.ok(user.getName() !== modifiedName); - }); - }); - }); - - describe('uploadFile', function () { - it('small file', function () { - return ServerConnector.uploadFile({ - filename: "test.txt", - content: new Uint8Array([1, 65, 90, 4, 8]) - }).then(function (file) { - logger.debug(file); - assert.ok(file.id); - }); - }); - }); - - it('getNeutralOverlayColorInt', function () { - return ServerConnector.getNeutralOverlayColorInt().then(function (color) { - assert.ok(color); - }); - }); - - -}); +"use strict"; + +require("./mocha-config.js"); + +var Promise = require("bluebird"); + +var HttpStatus = require('http-status-codes'); + +var Alias = require('../../main/js/map/data/Alias'); +var Configuration = require('../../main/js/Configuration'); +var LayoutData = require('../../main/js/map/data/LayoutData'); +var LayoutAlias = require('../../main/js/map/data/LayoutAlias'); +var MapModel = require('../../main/js/map/data/MapModel'); +var NetworkError = require('../../main/js/NetworkError'); +var Project = require('../../main/js/map/data/Project'); +var Reaction = require('../../main/js/map/data/Reaction'); +var ServerConnector = require('../../main/js/ServerConnector'); + +var logger = require('./logger'); +var chai = require('chai'); +var assert = chai.assert; + +describe('ServerConnector', function () { + describe('getProject', function () { + it('default', function () { + return ServerConnector.getProject().then(function (result) { + assert.ok(result instanceof Project); + assert.equal(result.getProjectId(), "sample"); + assert.equal(logger.getWarnings().length, 0); + }); + }); + it('invalid project id', function () { + return ServerConnector.getProject("invalid_project_id").then(function (result) { + assert.equal(result, null); + }); + }); + it('caching', function () { + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getProject(); + + }).then(function (result) { + assert.ok(result === project); + }); + }); + }); + + describe('updateProject', function () { + it('default', function () { + var project; + var newVersion = "2.01"; + return ServerConnector.getProject().then(function (result) { + project = result; + project.setVersion(newVersion); + return ServerConnector.updateProject(project); + }).then(function (result) { + assert.ok(project === result); + assert.equal(newVersion, result.getVersion()); + }); + }); + }); + describe('removeProject', function () { + it('default', function () { + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.removeProject(project.getProjectId()); + }).then(function (result) { + assert.ok(project === result); + }); + }); + }); + + it('getModels', function () { + return ServerConnector.getModels("sample").then(function (models) { + assert.equal(1, models.length); + assert.ok(models[0] instanceof MapModel); + }); + }); + + it('getPublications', function () { + return ServerConnector.getPublications().then(function (result) { + assert.equal(result.totalSize, 1); + }); + }); + + it('getProjectId from GET params', function () { + helper.setUrl("http://test/?id=test"); + return ServerConnector.getProjectId().then(function (result) { + assert.equal(result, "test"); + }); + }); + + it('getReactions with empty list of ids', function () { + return ServerConnector.getReactions([]).then(function (result) { + assert.equal(result.length, 2); + var reaction = result[0]; + assert.ok(reaction instanceof Reaction); + assert.equal(reaction.getId(), 153513); + assert.equal(reaction.getModelId(), 15781); + }); + }); + + it('getReactions without ids', function () { + return ServerConnector.getReactions([]).then(function (result) { + assert.equal(result.length, 2); + var reaction = result[0]; + assert.ok(reaction instanceof Reaction); + assert.equal(reaction.getId(), 153513); + assert.equal(reaction.getModelId(), 15781); + }); + }); + + it('getElements with empty list of ids', function () { + return ServerConnector.getAliases({}).then(function (result) { + assert.equal(result.length, 30); + var alias = result[0]; + assert.ok(alias instanceof Alias); + assert.equal(alias.getModelId(), 15781); + }); + }); + + it('getOverlayElements', function () { + return ServerConnector.getOverlayElements(18077).then(function (result) { + assert.equal(result.length, 1); + var layoutAlias = result[0]; + assert.ok(layoutAlias instanceof LayoutAlias); + assert.equal(-7602176, layoutAlias.getColor().value); + assert.equal(15781, layoutAlias.getModelId()); + assert.equal(329163, layoutAlias.getId()); + }); + }); + + it('idsToString', function () { + var ids = [3, 2, 9, 1, 6, 8, 3, 2, 9, 1, 7, 3]; + var str = ServerConnector.idsToString(ids); + assert.equal(str, "1,2,3,6,7,8,9"); + }); + + it('getOverlaySourceDownloadUrl', function () { + var id = 17296; + return ServerConnector.getOverlaySourceDownloadUrl({ + overlayId: id + }).then(function (url) { + assert.ok(url); + assert.ok(url.indexOf(id) >= 0); + return ServerConnector.sendGetRequest(url); + }); + }); + + it('getImageDownloadUrl', function () { + var modelId = 15781; + return ServerConnector.getImageDownloadUrl({ + modelId: modelId, + handlerClass: "lcsb.mapviewer.converter.graphics.PngImageGenerator" + }).then(function (url) { + assert.ok(url); + assert.ok(url.indexOf(modelId) >= 0); + return ServerConnector.sendGetRequest(url); + }); + }); + + it('getModelDownloadUrl', function () { + var modelId = 15781; + return ServerConnector.getModelDownloadUrl({ + modelId: modelId, + handlerClass: "lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser" + }).then(function (url) { + assert.ok(url); + assert.ok(url.indexOf(modelId) >= 0); + return ServerConnector.sendGetRequest(url); + }); + }); + + it('getProjectSourceDownloadUrl', function () { + return ServerConnector.getProjectSourceDownloadUrl().then(function (url) { + assert.ok(url); + return ServerConnector.sendGetRequest(url); + }); + }); + + it('addOverlay', function () { + return ServerConnector.addOverlay({ + overlay: new LayoutData({ + name: "test nam", + description: "test desc", + content: "name color\nCAPN1 #00FF00\nPARK7 #AC0000", + filename: "test.txt" + }) + }).then(function (overlay) { + assert.ok(overlay); + }); + }); + + it('removeOverlay', function () { + return ServerConnector.removeOverlay({ + overlayId: 17296 + }); + }); + + it('removeComment', function () { + return ServerConnector.removeComment({ + commentId: 4290 + }); + }); + + it('updateOverlay', function () { + var overlay = new LayoutData({}); + overlay.setId(17296); + overlay.setName("test nam2"); + overlay.setDescription("test desc2"); + + return ServerConnector.updateOverlay(overlay); + }); + + it('logout', function () { + return ServerConnector.logout().then(function () { + assert.equal(ServerConnector.getSessionData().getToken(), undefined); + }); + }); + + it('getToken', function () { + ServerConnector.getSessionData(null).setToken(undefined); + + return ServerConnector.getToken().then(function (token) { + assert.ok(token !== undefined); + }); + }); + + it('getModelDownloadUrl', function () { + return ServerConnector.getModelDownloadUrl({ + backgroundOverlayId: "cv14081" + }).then(function (url) { + assert.ok(url); + }); + }); + + it('getOverlayById', function () { + return ServerConnector.getOverlayById(18083, "complex_model_with_submaps").then(function (overlay) { + assert.ok(overlay); + }); + }); + + it('getConfiguration', function () { + return ServerConnector.getConfiguration().then(function (configuration) { + assert.ok(configuration instanceof Configuration); + assert.ok(configuration.getElementTypes().length > 0); + assert.ok(configuration.getReactionTypes().length > 0); + }); + }); + + describe('getProjects', function () { + it('test caching', function () { + var projects; + return ServerConnector.getProjects().then(function (result) { + projects = result; + return ServerConnector.getProjects(); + }).then(function (result) { + assert.ok(result === projects); + }); + }); + + it('test force reload', function () { + var projects; + var originalName; + return ServerConnector.getProjects().then(function (result) { + projects = result; + originalName = projects[0].getName(); + projects[0].setName("test name"); + return ServerConnector.getProjects(true); + }).then(function (result) { + assert.ok(result === projects); + assert.equal(originalName, projects[0].getName()); + }); + }); + }); + + describe('login', function () { + it('try invalid credentials', function () { + var method = ServerConnector.sendPostRequest; + ServerConnector.sendPostRequest = function () { + return Promise.reject(new NetworkError("xxx", { + statusCode: HttpStatus.FORBIDDEN + })); + }; + return ServerConnector.login("unknown", "unknown password").then(function () { + ServerConnector.sendPostRequest = method; + assert.ok(false); + }, function (error) { + ServerConnector.sendPostRequest = method; + assert.ok(error.message.indexOf("credentials") >= 0); + }); + }); + }); + + describe('getServerBaseUrl', function () { + it('url with GET arg that looks similar to original url', function () { + helper.setUrl("http://localhost:8080/minerva/login.xhtml?from=http://localhost:8080/minerva/?id=sample"); + var url = ServerConnector.getServerBaseUrl(); + assert.ok(url.indexOf("?") === -1); + }); + }); + + + describe('returnUserOrSystemColor ', function () { + it('user has empty color', function () { + var systemColor = "0000FF"; + return ServerConnector.returnUserOrSystemColor("", Promise.resolve(systemColor)).then(function (result) { + assert.ok(255, result); + }); + }); + it('user has defined color', function () { + var userColor = "000001"; + var systemColor = "000010"; + return ServerConnector.returnUserOrSystemColor(userColor, Promise.resolve(systemColor)).then(function (result) { + assert.ok(1, result); + }); + }); + }); + + describe('readFile', function () { + it('check session expired', function () { + ServerConnector.getSessionData().setToken(undefined); + assert.ok(ServerConnector.getSessionData().getLogin()); + return ServerConnector.sendGetRequest("package.json", "Downloading projects").then(function () { + assert.notOk(ServerConnector.getSessionData().getLogin()); + }); + }); + }); + + describe('getUsers', function () { + it('default', function () { + return ServerConnector.getUsers().then(function (users) { + assert.ok(users.length > 0); + }); + }); + it('refresh', function () { + var user; + var users; + var modifiedName = "xxx name"; + return ServerConnector.getUsers().then(function (result) { + users = result; + user = users[0]; + user.setName(modifiedName); + return ServerConnector.getUsers(true); + }).then(function (result) { + assert.ok(users === result); + assert.ok(user.getName() !== modifiedName); + }); + }); + }); + + describe('uploadFile', function () { + it('small file', function () { + return ServerConnector.uploadFile({ + filename: "test.txt", + content: new Uint8Array([1, 65, 90, 4, 8]) + }).then(function (file) { + logger.debug(file); + assert.ok(file.id); + }); + }); + }); + + it('getNeutralOverlayColorInt', function () { + return ServerConnector.getNeutralOverlayColorInt().then(function (color) { + assert.ok(color); + }); + }); + + +}); diff --git a/frontend-js/src/test/js/SessionData-test.js b/frontend-js/src/test/js/SessionData-test.js index 829a17a57578bf24610d818d0f7a1a312cae97e2..cd6acc20a7f08a02e810095f3817a40bd97d2331 100644 --- a/frontend-js/src/test/js/SessionData-test.js +++ b/frontend-js/src/test/js/SessionData-test.js @@ -1,39 +1,39 @@ -"use strict"; - -require("./mocha-config.js"); - -var SessionData = require('../../main/js/SessionData'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('./logger'); - -describe('SessionData', function() { - it('setShowComments', function() { - var project = helper.createProject(); - var session = new SessionData(project); - session.setShowComments(true); - assert.ok(session.getShowComments()); - session.setShowComments(false); - assert.notOk(session.getShowComments()); - assert.equal(logger.getWarnings().length, 0); - }); - - it('setVisibleOverlays', function() { - var project = helper.createProject(); - var session = new SessionData(project); - - var overlays = session.getVisibleOverlays(); - - assert.ok(overlays); - assert.equal(overlays.length, 0); - - session.setVisibleOverlays([1,3]); - overlays = session.getVisibleOverlays(); - - assert.ok(overlays); - assert.equal(overlays.length, 2); - assert.equal(overlays[0],1); - assert.equal(overlays[1],3); - }); -}); +"use strict"; + +require("./mocha-config.js"); + +var SessionData = require('../../main/js/SessionData'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('./logger'); + +describe('SessionData', function() { + it('setShowComments', function() { + var project = helper.createProject(); + var session = new SessionData(project); + session.setShowComments(true); + assert.ok(session.getShowComments()); + session.setShowComments(false); + assert.notOk(session.getShowComments()); + assert.equal(logger.getWarnings().length, 0); + }); + + it('setVisibleOverlays', function() { + var project = helper.createProject(); + var session = new SessionData(project); + + var overlays = session.getVisibleOverlays(); + + assert.ok(overlays); + assert.equal(overlays.length, 0); + + session.setVisibleOverlays([1,3]); + overlays = session.getVisibleOverlays(); + + assert.ok(overlays); + assert.equal(overlays.length, 2); + assert.equal(overlays[0],1); + assert.equal(overlays[1],3); + }); +}); diff --git a/frontend-js/src/test/js/google-map-mock.js b/frontend-js/src/test/js/google-map-mock.js index 3d50280af27fdf6ef9160041f4a0908b3590d748..e81caeaa017953026ce8d9c8d1310275d5d4d334 100644 --- a/frontend-js/src/test/js/google-map-mock.js +++ b/frontend-js/src/test/js/google-map-mock.js @@ -1,312 +1,319 @@ -"use strict"; - -var Promise = require("bluebird"); - -/* exported logger */ - -var logger = require('./logger'); - -var google = { - maps: { - event: { - _data: [], - addListener: function (object, type, fun) { - google.maps.event._data.push({ - object: object, - type: type, - fun: fun - }); - }, - addDomListener: function (object, type, fun) { - object.addEventListener(type, fun); - }, - trigger: function (object, type, param) { - var promises = []; - for (var i = 0; i < google.maps.event._data.length; i++) { - var e = google.maps.event._data[i]; - if (e.object === object && e.type === type) { - promises.push(e.fun(param)); - } - } - return Promise.all(promises); - }, - }, - drawing: { - DrawingManager: function (options) { - this.options = options; - if (this.options === undefined) { - this.options = {}; - } - this.setMap = function (map) { - this.options.map = map; - }; - this.setDrawingMode = function (mode) { - this.options.drawingMode = mode; - }; - this.getDrawingMode = function () { - return this.options.drawingMode; - }; - }, - OverlayType: { - MARKER: "MARKER", - }, - }, - - ControlPosition: { - TOP_LEFT: "TOP_LEFT", - LEFT_BOTTOM: "LEFT_BOTTOM", - RIGHT_BOTTOM: "RIGHT_BOTTOM", - }, - LatLng: function (lat, lng) { - this.latitude = parseFloat(lat); - this.longitude = parseFloat(lng); - - this.lat = function () { - return this.latitude; - }; - this.lng = function () { - return this.longitude; - }; - }, - LatLngBounds: function (ne, sw) { - var data = { - ne: ne, - sw: sw - }; - return { - getSouthWest: function () { - return data.sw; - }, - getNorthEast: function () { - return data.ne; - }, - getCenter: function () { - return new google.maps.LatLng((data.ne.lat() + data.sw.lat()) / 2, (data.ne.lng() + data.sw.lng()) / 2); - }, - isEmpty: function () { - return data.ne === data.sw || (data.ne.lat() === data.sw.lat() && data.ne.lng() === data.sw.lng()); - }, - extend: function (arg) { - if (data.sw === undefined) { - data.sw = new google.maps.LatLng(arg.lat(), arg.lng()); - } else { - if (arg.lng() < data.sw.lng()) { - data.sw.longitude = arg.lng(); - } - if (arg.lat() < data.sw.lat()) { - data.sw.latitude = arg.lat(); - } - } - if (data.ne === undefined) { - data.ne = new google.maps.LatLng(arg.lat(), arg.lng()); - } else { - if (arg.lng() > data.ne.lng()) { - data.ne.longitude = arg.lng(); - } - - if (arg.lat() > data.ne.lat()) { - data.ne.latitude = arg.lat(); - } - } - }, - - }; - }, - OverlayView: function () { - return {}; - }, - ImageMapType: function () { - return {}; - }, - InfoWindow: function (options) { - this.options = options; - if (this.options === undefined) { - this.options = {}; - } - this.getMap = function () { - return this.options.map; - }; - this.setMap = function (map) { - this.options.map = map; - }; - this.open = function (map) { - this.setMap(map); - }; - this.setContent = function () { - }; - }, - Marker: function (options) { - this.options = options; - this.position = options.position; - this.getMap = function () { - return this.options.map; - }; - this.setMap = function (map) { - this.options.map = map; - }; - this.setIcon = function (icon) { - this.options.icon = icon; - }; - }, - - MarkerImage: function () { - return {}; - }, - Map: function (div, options) { - var data = {}; - if (options !== undefined) { - data = options; - } - if (data.center === undefined) { - data.center = new google.maps.LatLng(83.42558775689403, -135); - } - data.div = div; - if (data.bounds === undefined) { - data.bounds = new google.maps.LatLngBounds(new google.maps.LatLng(10, 10), new google.maps.LatLng(12, 12)); - } - - return { - controls: { - "TOP_LEFT": [], - "LEFT_BOTTOM": [], - "RIGHT_BOTTOM": [], - }, - getDiv: function () { - return data.div; - }, - mapTypes: { - set: function () { - }, - }, - getMapTypeId: function () { - return data.mapTypeId; - }, - setMapTypeId: function (id) { - data.mapTypeId = id; - google.maps.event.trigger(this, "maptypeid_changed", id); - }, - setOptions: function () { - }, - getZoom: function () { - return data.zoom; - }, - setZoom: function (zoom) { - data.zoom = zoom; - return google.maps.event.trigger(this, "zoom_changed", zoom); - }, - getCenter: function () { - return data.center; - }, - panBy: function (x, y) { - if (data.center !== undefined) { - data.center.x += x; - data.center.y += y; - } else { - data.center = new google.maps.Point(x, y); - } - }, - setCenter: function (center) { - data.center = center; - return google.maps.event.trigger(this, "center_changed", center); - }, - getBounds: function () { - return data.bounds; - }, - setBounds: function (bounds) { - data.bounds = bounds; - }, - fitBounds: function (bounds) { - this.setBounds(bounds); - this.setCenter(bounds.getCenter()); - }, - }; - }, - MVCArray: function (data) { - if (data !== undefined) { - this.data = data; - } else { - this.data = []; - } - this.getLength = function () { - return this.data.length; - }; - this.length = this.data.length; - this.getAt = function (index) { - return this.data[index]; - }; - }, - Point: function (x, y) { - this.x = x; - this.y = y; - }, - Polyline: function (options) { - this.options = options; - if (this.options === undefined) { - this.options = {}; - } - this.setOptions = function () { - }; - this.getPath = function () { - return new google.maps.MVCArray(); - }; - this.getMap = function () { - return this.options.map; - }; - this.setMap = function (map) { - this.options.map = map; - }; - }, - Polygon: function (options) { - this.options = options; - if (this.options.paths !== undefined) { - this.options.path = new google.maps.MVCArray(this.options.paths); - } - if (this.options.path === undefined) { - this.options.path = new google.maps.MVCArray(); - } - this.getPath = function () { - return this.options.path; - }; - this.getMap = function () { - return this.options.map; - }; - this.setMap = function (map) { - this.options.map = map; - }; - }, - Rectangle: function (options) { - this.options = options; - if (this.options === undefined) { - this.options = {}; - } - this.getMap = function () { - return this.options.map; - }; - this.setMap = function (map) { - this.options.map = map; - }; - this.setOptions = function (options) { - for (var key in options) { - this.options[key] = options[key]; - } - }; - this.getBounds = function () { - return this.options.bounds; - }; - this.setBounds = function (bounds) { - this.options.bounds = bounds; - }; - }, - Size: function () { - return {}; - }, - ZoomControlStyle: { - LARGE: "LARGE", - }, - } -}; - -google.maps.Map.prototype.fitBounds = function () { -}; - -module.exports = google; +"use strict"; + +var Promise = require("bluebird"); + +/* exported logger */ + +// noinspection JSUnusedLocalSymbols +var logger = require('./logger'); + +// noinspection JSUnusedGlobalSymbols +var google = { + maps: { + event: { + _data: [], + addListener: function (object, type, fun) { + google.maps.event._data.push({ + object: object, + type: type, + fun: fun + }); + }, + addDomListener: function (object, type, fun) { + object.addEventListener(type, fun); + }, + trigger: function (object, type, param) { + var promises = []; + for (var i = 0; i < google.maps.event._data.length; i++) { + var e = google.maps.event._data[i]; + if (e.object === object && e.type === type) { + promises.push(e.fun(param)); + } + } + return Promise.all(promises); + } + }, + drawing: { + DrawingManager: function (options) { + this.options = options; + if (this.options === undefined) { + this.options = {}; + } + this.setMap = function (map) { + this.options.map = map; + }; + // noinspection JSUnusedGlobalSymbols + this.setDrawingMode = function (mode) { + this.options.drawingMode = mode; + }; + this.getDrawingMode = function () { + return this.options.drawingMode; + }; + }, + OverlayType: { + MARKER: "MARKER" + } + }, + + ControlPosition: { + TOP_LEFT: "TOP_LEFT", + LEFT_BOTTOM: "LEFT_BOTTOM", + RIGHT_BOTTOM: "RIGHT_BOTTOM" + }, + LatLng: function (lat, lng) { + this.latitude = parseFloat(lat); + this.longitude = parseFloat(lng); + + this.lat = function () { + return this.latitude; + }; + this.lng = function () { + return this.longitude; + }; + }, + LatLngBounds: function (ne, sw) { + var data = { + ne: ne, + sw: sw + }; + // noinspection JSUnusedGlobalSymbols + return { + getSouthWest: function () { + return data.sw; + }, + getNorthEast: function () { + return data.ne; + }, + getCenter: function () { + return new google.maps.LatLng((data.ne.lat() + data.sw.lat()) / 2, (data.ne.lng() + data.sw.lng()) / 2); + }, + isEmpty: function () { + return data.ne === data.sw || (data.ne.lat() === data.sw.lat() && data.ne.lng() === data.sw.lng()); + }, + extend: function (arg) { + if (data.sw === undefined) { + data.sw = new google.maps.LatLng(arg.lat(), arg.lng()); + } else { + if (arg.lng() < data.sw.lng()) { + data.sw.longitude = arg.lng(); + } + if (arg.lat() < data.sw.lat()) { + data.sw.latitude = arg.lat(); + } + } + if (data.ne === undefined) { + data.ne = new google.maps.LatLng(arg.lat(), arg.lng()); + } else { + if (arg.lng() > data.ne.lng()) { + data.ne.longitude = arg.lng(); + } + + if (arg.lat() > data.ne.lat()) { + data.ne.latitude = arg.lat(); + } + } + } + + }; + }, + OverlayView: function () { + return {}; + }, + ImageMapType: function () { + return {}; + }, + InfoWindow: function (options) { + this.options = options; + if (this.options === undefined) { + this.options = {}; + } + this.getMap = function () { + return this.options.map; + }; + this.setMap = function (map) { + this.options.map = map; + }; + this.open = function (map) { + this.setMap(map); + }; + this.setContent = function () { + }; + }, + Marker: function (options) { + this.options = options; + this.position = options.position; + this.getMap = function () { + return this.options.map; + }; + this.setMap = function (map) { + this.options.map = map; + }; + this.setIcon = function (icon) { + this.options.icon = icon; + }; + }, + + MarkerImage: function () { + return {}; + }, + Map: function (div, options) { + var data = {}; + if (options !== undefined) { + data = options; + } + if (data.center === undefined) { + data.center = new google.maps.LatLng(83.42558775689403, -135); + } + data.div = div; + if (data.bounds === undefined) { + data.bounds = new google.maps.LatLngBounds(new google.maps.LatLng(10, 10), new google.maps.LatLng(12, 12)); + } + + // noinspection JSUnusedGlobalSymbols + return { + controls: { + "TOP_LEFT": [], + "LEFT_BOTTOM": [], + "RIGHT_BOTTOM": [] + }, + getDiv: function () { + return data.div; + }, + mapTypes: { + set: function () { + } + }, + getMapTypeId: function () { + return data.mapTypeId; + }, + setMapTypeId: function (id) { + data.mapTypeId = id; + google.maps.event.trigger(this, "maptypeid_changed", id); + }, + setOptions: function () { + }, + getZoom: function () { + return data.zoom; + }, + setZoom: function (zoom) { + data.zoom = zoom; + return google.maps.event.trigger(this, "zoom_changed", zoom); + }, + getCenter: function () { + return data.center; + }, + panBy: function (x, y) { + if (data.center !== undefined) { + data.center.x += x; + data.center.y += y; + } else { + data.center = new google.maps.Point(x, y); + } + }, + setCenter: function (center) { + data.center = center; + return google.maps.event.trigger(this, "center_changed", center); + }, + getBounds: function () { + return data.bounds; + }, + setBounds: function (bounds) { + data.bounds = bounds; + }, + fitBounds: function (bounds) { + this.setBounds(bounds); + this.setCenter(bounds.getCenter()); + } + }; + }, + MVCArray: function (data) { + if (data !== undefined) { + this.data = data; + } else { + this.data = []; + } + this.getLength = function () { + return this.data.length; + }; + this.length = this.data.length; + this.getAt = function (index) { + return this.data[index]; + }; + }, + Point: function (x, y) { + this.x = x; + this.y = y; + }, + Polyline: function (options) { + this.options = options; + if (this.options === undefined) { + this.options = {}; + } + this.setOptions = function () { + }; + this.getPath = function () { + return new google.maps.MVCArray(); + }; + this.getMap = function () { + return this.options.map; + }; + this.setMap = function (map) { + this.options.map = map; + }; + }, + Polygon: function (options) { + this.options = options; + if (this.options.paths !== undefined) { + this.options.path = new google.maps.MVCArray(this.options.paths); + } + if (this.options.path === undefined) { + this.options.path = new google.maps.MVCArray(); + } + this.getPath = function () { + return this.options.path; + }; + this.getMap = function () { + return this.options.map; + }; + this.setMap = function (map) { + this.options.map = map; + }; + }, + Rectangle: function (options) { + this.options = options; + if (this.options === undefined) { + this.options = {}; + } + this.getMap = function () { + return this.options.map; + }; + this.setMap = function (map) { + this.options.map = map; + }; + this.setOptions = function (options) { + for (var key in options) { + if (options.hasOwnProperty(key)) { + this.options[key] = options[key]; + } + } + }; + this.getBounds = function () { + return this.options.bounds; + }; + this.setBounds = function (bounds) { + this.options.bounds = bounds; + }; + }, + Size: function () { + return {}; + }, + ZoomControlStyle: { + LARGE: "LARGE" + } + } +}; + +google.maps.Map.prototype.fitBounds = function () { +}; + +module.exports = google; diff --git a/frontend-js/src/test/js/gui/AddOverlayDialog-test.js b/frontend-js/src/test/js/gui/AddOverlayDialog-test.js index 26b190671ff0b2a9a19e5d807e1f8ad46559dbc6..e238c5c36a8df527f130e501022c11f1b25ee935 100644 --- a/frontend-js/src/test/js/gui/AddOverlayDialog-test.js +++ b/frontend-js/src/test/js/gui/AddOverlayDialog-test.js @@ -1,29 +1,29 @@ -"use strict"; - -/* exported logger */ - -require("../mocha-config.js"); - -var AddOverlayDialog = require('../../../main/js/gui/AddOverlayDialog'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('AddOverlayDialog', function() { - - it('addOverlay', function() { - var dialog; - return ServerConnector.getProject().then(function(project) { - dialog = new AddOverlayDialog({ - element : testDiv, - project : project, - customMap : null - }); - - dialog.setFileContent("s1\n"); - return dialog.addOverlay(); - }); - }); - -}); +"use strict"; + +require("../mocha-config"); + +var AddOverlayDialog = require('../../../main/js/gui/AddOverlayDialog'); +var ServerConnector = require('../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('AddOverlayDialog', function () { + + it('addOverlay', function () { + var dialog; + return ServerConnector.getProject().then(function (project) { + dialog = new AddOverlayDialog({ + element: testDiv, + project: project, + customMap: null + }); + + dialog.setFileContent("s1\n"); + assert.equal(0, logger.getWarnings().length); + return dialog.addOverlay(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/CommentDialog-test.js b/frontend-js/src/test/js/gui/CommentDialog-test.js index 7e87c882c8e7d9886f2eedf1ad82601bffefdf1e..26932c91ec6a2bdd4a14311fe642cac09b33e2f5 100644 --- a/frontend-js/src/test/js/gui/CommentDialog-test.js +++ b/frontend-js/src/test/js/gui/CommentDialog-test.js @@ -1,65 +1,66 @@ -"use strict"; - -require('../mocha-config.js'); - -var CommentDialog = require('../../../main/js/gui/CommentDialog'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('CommentDialog', function() { - - it('constructor', function() { - var map = helper.createCustomMap(); - - var dialog = new CommentDialog({ - element : testDiv, - customMap : map - }); - assert.ok(testDiv.innerHTML); - assert.equal(logger.getWarnings().length, 0); - dialog.destroy(); - }); - - it('getName', function() { - var map = helper.createCustomMap(); - - var dialog = new CommentDialog({ - element : testDiv, - customMap : map - }); - assert.ok(dialog.getName() !== undefined); - dialog.destroy(); - }); - - describe('open', function() { - it('anonymous user', function() { - var map = helper.createCustomMap(); - var dialog = new CommentDialog({ - element : testDiv, - customMap : map - }); - return dialog.open([]).then(function() { - assert.ok($(testDiv).dialog('isOpen')); - dialog.destroy(); - }); - }); - it('logged user', function() { - var map; - var dialog; - return ServerConnector.login("admin", "admin").then(function() { - map = helper.createCustomMap(); - dialog = new CommentDialog({ - element : testDiv, - customMap : map - }); - return dialog.open([]); - }).then(function() { - assert.ok($(testDiv).dialog('isOpen')); - dialog.destroy(); - }); - }); - }); - -}); +"use strict"; + +require('../mocha-config'); + +var CommentDialog = require('../../../main/js/gui/CommentDialog'); +var ServerConnector = require('../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('CommentDialog', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + + var dialog = new CommentDialog({ + element: testDiv, + customMap: map + }); + assert.ok(testDiv.innerHTML); + assert.equal(logger.getWarnings().length, 0); + dialog.destroy(); + }); + + it('getName', function () { + var map = helper.createCustomMap(); + + var dialog = new CommentDialog({ + element: testDiv, + customMap: map + }); + assert.ok(dialog.getName() !== undefined); + dialog.destroy(); + }); + + describe('open', function () { + it('anonymous user', function () { + var map = helper.createCustomMap(); + var dialog = new CommentDialog({ + element: testDiv, + customMap: map + }); + return dialog.open([]).then(function () { + assert.ok($(testDiv).dialog('isOpen')); + dialog.destroy(); + }); + }); + it('logged user', function () { + var map; + var dialog; + return ServerConnector.login("admin", "admin").then(function () { + map = helper.createCustomMap(); + dialog = new CommentDialog({ + element: testDiv, + customMap: map + }); + return dialog.open([]); + }).then(function () { + assert.ok($(testDiv).dialog('isOpen')); + dialog.destroy(); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/ContextMentu-test.js b/frontend-js/src/test/js/gui/ContextMentu-test.js index f9478bdaa937c3f263a11ae75463fcea360e2692..c1779f35e268d560462e5a3d78b545a18696fbb1 100644 --- a/frontend-js/src/test/js/gui/ContextMentu-test.js +++ b/frontend-js/src/test/js/gui/ContextMentu-test.js @@ -1,51 +1,49 @@ -"use strict"; - -/* exported logger */ - -require("../mocha-config.js"); - -var ContextMenu = require('../../../main/js/gui/ContextMenu'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('ContextMenu', function() { - - it('constructor', function() { - var map = helper.createCustomMap(); - - new ContextMenu({ - element : testDiv, - customMap : map - }); - - assert.equal(logger.getWarnings().length, 0); - }); - - it('open', function() { - var map = helper.createCustomMap(); - - var menu = new ContextMenu({ - element : testDiv, - customMap : map - }); - - var event = document.createEvent('MouseEvent'); - menu.open(event); - assert.equal(logger.getWarnings().length, 0); - }); - - it('hide', function() { - var map = helper.createCustomMap(); - - var menu = new ContextMenu({ - element : testDiv, - customMap : map - }); - - menu.hide(); - assert.equal(logger.getWarnings().length, 0); - }); - -}); +"use strict"; + +require("../mocha-config.js"); + +var ContextMenu = require('../../../main/js/gui/ContextMenu'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('ContextMenu', function() { + + it('constructor', function() { + var map = helper.createCustomMap(); + + new ContextMenu({ + element : testDiv, + customMap : map + }); + + assert.equal(logger.getWarnings().length, 0); + }); + + it('open', function() { + var map = helper.createCustomMap(); + + var menu = new ContextMenu({ + element : testDiv, + customMap : map + }); + + var event = document.createEvent('MouseEvent'); + menu.open(event); + assert.equal(logger.getWarnings().length, 0); + }); + + it('hide', function() { + var map = helper.createCustomMap(); + + var menu = new ContextMenu({ + element : testDiv, + customMap : map + }); + + menu.hide(); + assert.equal(logger.getWarnings().length, 0); + }); + +}); diff --git a/frontend-js/src/test/js/gui/Header-test.js b/frontend-js/src/test/js/gui/Header-test.js index 4d4b27fb812712b22358f79f6c2d1654f92e2c98..090b9a3870f5755c9cb86e33106b1a95009def81 100644 --- a/frontend-js/src/test/js/gui/Header-test.js +++ b/frontend-js/src/test/js/gui/Header-test.js @@ -1,64 +1,62 @@ -"use strict"; - -/* exported logger */ - -require("../mocha-config.js"); - -var Header = require('../../../main/js/gui/Header'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('Header', function() { - - describe('constructor', function() { - it('default', function() { - var map = helper.createCustomMap(); - - new Header({ - element : testDiv, - customMap : map - }); - assert.equal(logger.getWarnings().length, 0); - assert.equal(1, $(".fa-lock", $(testDiv)).length); - }); - it('without admin-link', function() { - var map = helper.createCustomMap(); - - new Header({ - element : testDiv, - customMap : map, - adminLink : false - }); - assert.equal(logger.getWarnings().length, 0); - assert.equal(0, $(".fa-lock", $(testDiv)).length); - }); - it('with options-link', function() { - var map = helper.createCustomMap(); - - var header = new Header({ - element : testDiv, - customMap : map, - optionsMenu : true - }); - assert.equal(logger.getWarnings().length, 0); - assert.equal(1, $(".fa-bars", $(testDiv)).length); - return header.destroy(); - }); - }); - - it('init', function() { - var map = helper.createCustomMap(); - - var header = new Header({ - element : testDiv, - customMap : map - }); - - return header.init().then(function() { - return header.destroy(); - }); - }); - -}); +"use strict"; + +require("../mocha-config.js"); + +var Header = require('../../../main/js/gui/Header'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('Header', function () { + + describe('constructor', function () { + it('default', function () { + var map = helper.createCustomMap(); + + new Header({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + assert.equal(1, $(".fa-lock", $(testDiv)).length); + }); + it('without admin-link', function () { + var map = helper.createCustomMap(); + + new Header({ + element: testDiv, + customMap: map, + adminLink: false + }); + assert.equal(logger.getWarnings().length, 0); + assert.equal(0, $(".fa-lock", $(testDiv)).length); + }); + it('with options-link', function () { + var map = helper.createCustomMap(); + + var header = new Header({ + element: testDiv, + customMap: map, + optionsMenu: true + }); + assert.equal(logger.getWarnings().length, 0); + assert.equal(1, $(".fa-bars", $(testDiv)).length); + return header.destroy(); + }); + }); + + it('init', function () { + var map = helper.createCustomMap(); + + var header = new Header({ + element: testDiv, + customMap: map + }); + + return header.init().then(function () { + return header.destroy(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/Legend-test.js b/frontend-js/src/test/js/gui/Legend-test.js index 7bc9c0b1b547820c87df92f73243831f683aca4a..bd494e7b6b4023d9a5d261bd5862f7bd96f6456c 100644 --- a/frontend-js/src/test/js/gui/Legend-test.js +++ b/frontend-js/src/test/js/gui/Legend-test.js @@ -1,38 +1,36 @@ -"use strict"; - -/* exported logger */ - -require("../mocha-config.js"); - -var Legend = require('../../../main/js/gui/Legend'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('Legend', function() { - - it('constructor', function() { - var map = helper.createCustomMap(); - - new Legend({ - element : testDiv, - customMap : map - }); - - assert.equal(logger.getWarnings().length, 0); - - }); - - it('init', function() { - var map = helper.createCustomMap(); - - var legend = new Legend({ - element : testDiv, - customMap : map - }); - - return legend.init(); - }); - -}); +"use strict"; + +require("../mocha-config.js"); + +var Legend = require('../../../main/js/gui/Legend'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('Legend', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + + new Legend({ + element: testDiv, + customMap: map + }); + + assert.equal(logger.getWarnings().length, 0); + + }); + + it('init', function () { + var map = helper.createCustomMap(); + + var legend = new Legend({ + element: testDiv, + customMap: map + }); + + return legend.init(); + }); + +}); diff --git a/frontend-js/src/test/js/gui/LoginDialog-test.js b/frontend-js/src/test/js/gui/LoginDialog-test.js index e7caebb84eb14f3e7ba18711a7ad00d05614e12c..e425b94920213093c6d2c3484e35d9c120948e34 100644 --- a/frontend-js/src/test/js/gui/LoginDialog-test.js +++ b/frontend-js/src/test/js/gui/LoginDialog-test.js @@ -1,49 +1,49 @@ -"use strict"; - -require('../mocha-config.js'); - -var LoginDialog = require('../../../main/js/gui/LoginDialog'); -var PanelControlElementType = require('../../../main/js/gui/PanelControlElementType'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('LoginDialog', function() { - - it('constructor', function() { - var map = helper.createCustomMap(); - - var dialog = new LoginDialog({ - element : testDiv, - customMap : map - }); - assert.equal(logger.getWarnings().length, 0); - dialog.destroy(); - }); - - it('open', function() { - var map = helper.createCustomMap(); - - var dialog = new LoginDialog({ - element : testDiv, - customMap : map - }); - - dialog.open(); - dialog.destroy(); - }); - - it('login', function() { - var map = helper.createCustomMap(); - - var dialog = new LoginDialog({ - element : testDiv, - customMap : map - }); - - return dialog.getControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON).onclick().then(function() { - dialog.destroy(); - }); - }); -}); +"use strict"; + +require('../mocha-config.js'); + +var LoginDialog = require('../../../main/js/gui/LoginDialog'); +var PanelControlElementType = require('../../../main/js/gui/PanelControlElementType'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('LoginDialog', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + + var dialog = new LoginDialog({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + dialog.destroy(); + }); + + it('open', function () { + var map = helper.createCustomMap(); + + var dialog = new LoginDialog({ + element: testDiv, + customMap: map + }); + + dialog.open(); + dialog.destroy(); + }); + + it('login', function () { + var map = helper.createCustomMap(); + + var dialog = new LoginDialog({ + element: testDiv, + customMap: map + }); + + return dialog.getControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON).onclick().then(function () { + dialog.destroy(); + }); + }); +}); diff --git a/frontend-js/src/test/js/gui/MapContextMenu-test.js b/frontend-js/src/test/js/gui/MapContextMenu-test.js index 46bc5d86ad0a9558858e77b4d1066b4dc97f5896..42c576cd0580d87513656d6fceba14920e2006ff 100644 --- a/frontend-js/src/test/js/gui/MapContextMenu-test.js +++ b/frontend-js/src/test/js/gui/MapContextMenu-test.js @@ -1,75 +1,74 @@ -"use strict"; - -/* exported logger */ - -require("../mocha-config.js"); - -var MapContextMenu = require('../../../main/js/gui/MapContextMenu'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('MapContextMenu', function() { - - it('constructor', function() { - var map = helper.createCustomMap(); - - new MapContextMenu({ - element : testDiv, - customMap : map - }); - - assert.equal(logger.getWarnings().length, 0); - }); - - it('init', function() { - var map = helper.createCustomMap(); - - var menu = new MapContextMenu({ - element : testDiv, - customMap : map - }); - return menu.init(); - }); - - it('open comment dialog', function() { - var map; - return ServerConnector.getProject().then(function(project) { - map = helper.createCustomMap(project); - - new MapContextMenu({ - element : testDiv, - customMap : map - }); - map.setActiveSubmapId(map.getProject().getModel().getId()); - map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); - - var handler = $($("a:contains('comment')", $(testDiv))[0]).data("handler"); - return handler(); - }).then(function() { - map.destroy(); - }); - }); - - it('start select mode', function() { - var map; - return ServerConnector.getProject().then(function(project) { - map = helper.createCustomMap(project); - - new MapContextMenu({ - element : testDiv, - customMap : map - }); - map.setActiveSubmapId(map.getProject().getModel().getId()); - map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); - - assert.ok(!map.isDrawingOn()); - var handler = $($("a:contains('Select mode')", $(testDiv))[0]).data("handler"); - return handler(); - }).then(function() { - assert.ok(map.isDrawingOn()); - }); - }); - -}); +"use strict"; + +require("../mocha-config.js"); + +var MapContextMenu = require('../../../main/js/gui/MapContextMenu'); +var ServerConnector = require('../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('MapContextMenu', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + + new MapContextMenu({ + element: testDiv, + customMap: map + }); + + assert.equal(logger.getWarnings().length, 0); + }); + + it('init', function () { + var map = helper.createCustomMap(); + + var menu = new MapContextMenu({ + element: testDiv, + customMap: map + }); + return menu.init(); + }); + + it('open comment dialog', function () { + var map; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + new MapContextMenu({ + element: testDiv, + customMap: map + }); + map.setActiveSubmapId(map.getProject().getModel().getId()); + map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); + + var handler = $($("a:contains('comment')", $(testDiv))[0]).data("handler"); + return handler(); + }).then(function () { + map.destroy(); + }); + }); + + it('start select mode', function () { + var map; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + new MapContextMenu({ + element: testDiv, + customMap: map + }); + map.setActiveSubmapId(map.getProject().getModel().getId()); + map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); + + assert.ok(!map.isDrawingOn()); + var handler = $($("a:contains('Select mode')", $(testDiv))[0]).data("handler"); + return handler(); + }).then(function () { + assert.ok(map.isDrawingOn()); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/OptionsMenu-test.js b/frontend-js/src/test/js/gui/OptionsMenu-test.js index 58e741d7332de438f3e87227a410ec88150da3f9..d8552c092ed14c9aad98d7d36ecd886441e0ea9e 100644 --- a/frontend-js/src/test/js/gui/OptionsMenu-test.js +++ b/frontend-js/src/test/js/gui/OptionsMenu-test.js @@ -1,50 +1,49 @@ -"use strict"; - -/* exported logger */ - -require("../mocha-config.js"); - -var OptionsMenu = require('../../../main/js/gui/OptionsMenu'); -var PluginManager = require('../../../main/js/plugin/PluginManager'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('OptionsMenu', function () { - - it('init', function () { - var map = helper.createCustomMap(); - - var menu = new OptionsMenu({ - element: testDiv, - customMap: map - }); - return menu.init(); - }); - - it('open dialog', function () { - var map = helper.createCustomMap(); - - var menu = new OptionsMenu({ - element: testDiv, - customMap: map - }); - var pluginManager; - return ServerConnector.getProject().then(function (project) { - - pluginManager = new PluginManager({project: project}); - return menu.init(); - }).then(function () { - menu.setPluginManager(pluginManager); - return menu.open(10, 10, 20); - }).then(function () { - return $("a", testDiv).data("handler")(); - }).then(function () { - assert.equal(0, logger.getWarnings().length); - return menu.destroy(); - }).then(function () { - return pluginManager.destroy(); - }); - }); -}); +"use strict"; + +require("../mocha-config.js"); + +var OptionsMenu = require('../../../main/js/gui/OptionsMenu'); +var PluginManager = require('../../../main/js/plugin/PluginManager'); +var ServerConnector = require('../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('OptionsMenu', function () { + + it('init', function () { + var map = helper.createCustomMap(); + + var menu = new OptionsMenu({ + element: testDiv, + customMap: map + }); + return menu.init(); + }); + + it('open dialog', function () { + var map = helper.createCustomMap(); + + var menu = new OptionsMenu({ + element: testDiv, + customMap: map + }); + var pluginManager; + return ServerConnector.getProject().then(function (project) { + + pluginManager = new PluginManager({project: project}); + return menu.init(); + }).then(function () { + menu.setPluginManager(pluginManager); + return menu.open(10, 10, 20); + }).then(function () { + return $("a", testDiv).data("handler")(); + }).then(function () { + assert.equal(0, logger.getWarnings().length); + return menu.destroy(); + }).then(function () { + return pluginManager.destroy(); + }); + }); +}); diff --git a/frontend-js/src/test/js/gui/OverviewDialog-test.js b/frontend-js/src/test/js/gui/OverviewDialog-test.js index c214b9cf45ccf8a8a22b41de4c44b0f0262690b1..7c425c546ba671b31497df7ff73685aca17d29ec 100644 --- a/frontend-js/src/test/js/gui/OverviewDialog-test.js +++ b/frontend-js/src/test/js/gui/OverviewDialog-test.js @@ -1,97 +1,97 @@ -"use strict"; - -require("../mocha-config.js"); -var ServerConnector = require('../ServerConnector-mock'); - -var CustomMap = require('../../../main/js/map/CustomMap'); -var OverviewDialog = require('../../../main/js/gui/OverviewDialog'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('OverviewDialog', function () { - - it('open image', function () { - helper.setUrl("http://test/?id=complex_model_with_images"); - return ServerConnector.getProject().then(function (project) { - var options = helper.createOptions(project); - var map = new CustomMap(options); - - var dialog = new OverviewDialog({ - element: testDiv, - customMap: map - }); - - dialog.showOverview(project.getOverviewImages()[1].idObject); - dialog.destroy(); - }); - }); - - it('open invalid image', function () { - helper.setUrl("http://test/?id=complex_model_with_images"); - return ServerConnector.getProject().then(function (project) { - var options = helper.createOptions(project); - var map = new CustomMap(options); - - var dialog = new OverviewDialog({ - element: testDiv, - customMap: map - }); - - dialog.showOverview(-1123); - dialog.destroy(); - }); - }); - - describe('openLink', function () { - it('link to map', function () { - helper.setUrl("http://test/?id=complex_model_with_images"); - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - - var dialog = new OverviewDialog({ - element: testDiv, - customMap: map - }); - - dialog.openLink({ - type: "OverviewModelLink", - modelLinkId: map.getId(), - latLng: new google.maps.LatLng(1, 34) - }); - assert.equal(logger.getWarnings().length, 0); - assert.equal(1, map.getGoogleMap().getCenter().lat()); - assert.equal(34, map.getGoogleMap().getCenter().lng()); - dialog.destroy(); - }); - }); - it('link to search', function () { - helper.setUrl("http://test/?id=complex_model_with_images"); - var dialog, searchOverlay; - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - searchOverlay = helper.createSearchDbOverlay(map); - - dialog = new OverviewDialog({ - element: testDiv, - customMap: map - }); - - return dialog.openLink({ - type: "OverviewSearchLink", - query: "some_query" - }); - }).then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.equal(1, searchOverlay.getQueries().length); - return searchOverlay.getIdentifiedElements(); - }).then(function (elements) { - assert.equal(0, elements.length); - }).finally(function () { - dialog.destroy(); - }); - }); - }); - -}); +"use strict"; + +require("../mocha-config.js"); +var ServerConnector = require('../ServerConnector-mock'); + +var CustomMap = require('../../../main/js/map/CustomMap'); +var OverviewDialog = require('../../../main/js/gui/OverviewDialog'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('OverviewDialog', function () { + + it('open image', function () { + helper.setUrl("http://test/?id=complex_model_with_images"); + return ServerConnector.getProject().then(function (project) { + var options = helper.createOptions(project); + var map = new CustomMap(options); + + var dialog = new OverviewDialog({ + element: testDiv, + customMap: map + }); + + dialog.showOverview(project.getOverviewImages()[1].idObject); + dialog.destroy(); + }); + }); + + it('open invalid image', function () { + helper.setUrl("http://test/?id=complex_model_with_images"); + return ServerConnector.getProject().then(function (project) { + var options = helper.createOptions(project); + var map = new CustomMap(options); + + var dialog = new OverviewDialog({ + element: testDiv, + customMap: map + }); + + dialog.showOverview(-1123); + dialog.destroy(); + }); + }); + + describe('openLink', function () { + it('link to map', function () { + helper.setUrl("http://test/?id=complex_model_with_images"); + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + + var dialog = new OverviewDialog({ + element: testDiv, + customMap: map + }); + + dialog.openLink({ + type: "OverviewModelLink", + modelLinkId: map.getId(), + latLng: new google.maps.LatLng(1, 34) + }); + assert.equal(logger.getWarnings().length, 0); + assert.equal(1, map.getGoogleMap().getCenter().lat()); + assert.equal(34, map.getGoogleMap().getCenter().lng()); + dialog.destroy(); + }); + }); + it('link to search', function () { + helper.setUrl("http://test/?id=complex_model_with_images"); + var dialog, searchOverlay; + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + searchOverlay = helper.createSearchDbOverlay(map); + + dialog = new OverviewDialog({ + element: testDiv, + customMap: map + }); + + return dialog.openLink({ + type: "OverviewSearchLink", + query: "some_query" + }); + }).then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.equal(1, searchOverlay.getQueries().length); + return searchOverlay.getIdentifiedElements(); + }).then(function (elements) { + assert.equal(0, elements.length); + }).finally(function () { + dialog.destroy(); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/Panel-test.js b/frontend-js/src/test/js/gui/Panel-test.js index bd7a34c78a18c6f6c1bf46b6a44272a9faf0fca6..a2bc9279daf6f5a5c3ce038150826abccd76777b 100644 --- a/frontend-js/src/test/js/gui/Panel-test.js +++ b/frontend-js/src/test/js/gui/Panel-test.js @@ -1,36 +1,36 @@ -"use strict"; - -/* exported logger */ - -require('../mocha-config.js'); - -var Panel = require('../../../main/js/gui/Panel'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('Panel', function () { - - it('openDialog', function () { - var map = helper.createCustomMap(); - - var panel = new Panel({ - element: testDiv, - customMap: map - }); - - var content = document.createElement("div"); - content.innerHTML = "some content"; - - var id = 1; - panel.openDialog(content, { - id: id - }); - - assert.ok(panel.getDialogDiv(id).innerHTML.indexOf("some content") >= 0); - panel.destroy(); - - }); - -}); +"use strict"; + +/* exported logger */ + +require('../mocha-config.js'); + +var Panel = require('../../../main/js/gui/Panel'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('Panel', function () { + + it('openDialog', function () { + var map = helper.createCustomMap(); + + var panel = new Panel({ + element: testDiv, + customMap: map + }); + + var content = document.createElement("div"); + content.innerHTML = "some content"; + + var id = 1; + panel.openDialog(content, { + id: id + }); + + assert.ok(panel.getDialogDiv(id).innerHTML.indexOf("some content") >= 0); + panel.destroy(); + assert.equal(0, logger.getWarnings().length); + }); + +}); diff --git a/frontend-js/src/test/js/gui/SelectionContextMenu-test.js b/frontend-js/src/test/js/gui/SelectionContextMenu-test.js index aac2264380520cad2ae7f1f3589a8016b210f913..693b76345ac8e006a3475fed75ca9ec954b9f0f7 100644 --- a/frontend-js/src/test/js/gui/SelectionContextMenu-test.js +++ b/frontend-js/src/test/js/gui/SelectionContextMenu-test.js @@ -1,66 +1,65 @@ -"use strict"; - -/* exported logger */ - -require("../mocha-config.js"); - -var SelectionContextMenu = require('../../../main/js/gui/SelectionContextMenu'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('SelectionContextMenu', function() { - - it('constructor', function() { - var map = helper.createCustomMap(); - - new SelectionContextMenu({ - element : testDiv, - customMap : map - }); - - assert.equal(logger.getWarnings().length, 0); - }); - - it('download image', function() { - var map; - return ServerConnector.getProject().then(function(project) { - map = helper.createCustomMap(project); - - var contextMenu = new SelectionContextMenu({ - element : testDiv, - customMap : map - }); - return contextMenu.init(); - }).then(function(){ - map.setActiveSubmapId(map.getProject().getModel().getId()); - map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); - - var handler = $($("a:contains('PNG')", $(testDiv))[0]).data("handler"); - return handler(); - }).then(function() { - map.destroy(); - }); - }); - - it('download cell designer file', function() { - var map; - return ServerConnector.getProject().then(function(project) { - map = helper.createCustomMap(project); - - var contextMenu = new SelectionContextMenu({ - element : testDiv, - customMap : map - }); - return contextMenu.init(); - }).then(function(){ - map.setActiveSubmapId(map.getProject().getModel().getId()); - map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); - var handler = $($("a:contains('CellDesigner')", $(testDiv))[0]).data("handler"); - return handler(); - }).then(function() { - map.destroy(); - }); - }); -}); +"use strict"; + +require("../mocha-config.js"); + +var SelectionContextMenu = require('../../../main/js/gui/SelectionContextMenu'); +var ServerConnector = require('../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('SelectionContextMenu', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + + new SelectionContextMenu({ + element: testDiv, + customMap: map + }); + + assert.equal(logger.getWarnings().length, 0); + }); + + it('download image', function () { + var map; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + var contextMenu = new SelectionContextMenu({ + element: testDiv, + customMap: map + }); + return contextMenu.init(); + }).then(function () { + map.setActiveSubmapId(map.getProject().getModel().getId()); + map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); + + var handler = $($("a:contains('PNG')", $(testDiv))[0]).data("handler"); + return handler(); + }).then(function () { + map.destroy(); + }); + }); + + it('download cell designer file', function () { + var map; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + var contextMenu = new SelectionContextMenu({ + element: testDiv, + customMap: map + }); + return contextMenu.init(); + }).then(function () { + map.setActiveSubmapId(map.getProject().getModel().getId()); + map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12)); + var handler = $($("a:contains('CellDesigner')", $(testDiv))[0]).data("handler"); + return handler(); + }).then(function () { + map.destroy(); + }); + }); +}); diff --git a/frontend-js/src/test/js/gui/SubMentu-test.js b/frontend-js/src/test/js/gui/SubMentu-test.js index 9dfd9326a92f813b3bde1e8c03bdc5d488400ef8..5c32b9ab4e1a8790b92736994e5afc32395d8448 100644 --- a/frontend-js/src/test/js/gui/SubMentu-test.js +++ b/frontend-js/src/test/js/gui/SubMentu-test.js @@ -1,7 +1,5 @@ "use strict"; -/* exported logger */ - require("../mocha-config.js"); var SubMenu = require('../../../main/js/gui/SubMenu'); @@ -10,16 +8,16 @@ var chai = require('chai'); var assert = chai.assert; var logger = require('../logger'); -describe('SubMenu', function() { +describe('SubMenu', function () { - it('constructor', function() { + it('constructor', function () { var map = helper.createCustomMap(); var menu = new SubMenu({ - element : testDiv, - customMap : map + element: testDiv, + customMap: map }); - + menu.addOption("xxx"); assert.equal(logger.getWarnings().length, 0); diff --git a/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js b/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js index 3e1807a01672c66e5c3631be2774160c1df0ccf6..b5417a04e8c1a3ecfb48fab3a43d400b4cdacf70 100644 --- a/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js +++ b/frontend-js/src/test/js/gui/admin/AddProjectDialog-test.js @@ -1,157 +1,158 @@ -"use strict"; - -/* exported assert */ -/* exported logger */ -require("../../mocha-config"); - -var AddProjectDialog = require('../../../../main/js/gui/admin/AddProjectDialog'); -var logger = require('../../logger'); - -var fs = require("fs"); -var chai = require('chai'); -var assert = chai.assert; - -describe('AddProjectDialog', function () { - it('init', function () { - var dialog = new AddProjectDialog({ - element: testDiv, - customMap: null - }); - return ServerConnector.login("admin", "admin").then(function () { - return dialog.init(); - }).then(function () { - assert.ok(dialog.getNotifyEmail() !== ""); - return dialog.destroy(); - }); - }); - - it('onUserPreferencesChange', function () { - var dialog = new AddProjectDialog({ - element: testDiv, - customMap: null - }); - return ServerConnector.login("admin", "admin").then(function () { - return dialog.init(); - }).then(function () { - dialog.setCache(false); - assert.notOk(dialog.isCache()); - dialog.setCache(true); - assert.ok(dialog.isCache()); - return dialog.destroy(); - }); - }); - - describe('onFileUpload', function () { - it('default', function () { - var dialog = new AddProjectDialog({ - element: testDiv, - customMap: null - }); - - var file = new Blob(["<node></node>"]); - file.name = "test.xml"; - return dialog.init().then(function () { - return dialog.callListeners("onFileUpload", file); - }).then(function () { - assert.ok(dialog.getFileContent()); - assert.equal("test", dialog.getProjectId()); - return dialog.getConverter(); - }).then(function (converter) { - assert.equal("xml", converter.extension); - return dialog.destroy(); - }); - }); - }); - - describe('setZipFileContent', function () { - it('submaps', function () { - var dialog = new AddProjectDialog({ - element: testDiv, - customMap: null - }); - var buf = fs.readFileSync("testFiles/map/complex_model_with_submaps.zip"); - buf.name = "complex_model_with_submaps.zip"; - return dialog.init().then(function () { - return dialog.setZipFileContent(buf); - }).then(function () { - assert.equal(5, dialog.getZipEntries().length); - return dialog.destroy(); - }); - }); - it('overlays', function () { - var dialog = new AddProjectDialog({ - element: testDiv, - customMap: null - }); - var buf = fs.readFileSync("testFiles/map/complex_model_with_overlays.zip"); - buf.name = "complex_model_with_overlays.zip"; - return dialog.init().then(function () { - var dataTable = $($("[name='overlaysTable']", testDiv)[0]).DataTable(); - assert.equal(0, dataTable.data().count()); - return dialog.setZipFileContent(buf); - }).then(function () { - var dataTable = $($("[name='overlaysTable']", testDiv)[0]).DataTable(); - assert.ok(dataTable.data().count() > 0); - return dialog.destroy(); - }); - }); - }); - - describe('showAnnotatorsDialog', function () { - it('default', function () { - var dialog = new AddProjectDialog({ - element: testDiv, - customMap: null - }); - - return dialog.showAnnotatorsDialog().then(function () { - return dialog.destroy(); - }); - }); - }); - - - describe('onSaveClicked', function () { - var originalAddProject; - beforeEach(function () { - originalAddProject = ServerConnector.addProject; - }); - afterEach(function () { - ServerConnector.addProject = originalAddProject; - }); - it('default', function () { - var options; - ServerConnector.addProject = function (params) { - options = params; - }; - - var dialog = new AddProjectDialog({ - element: testDiv, - customMap: null - }); - - var file = new Blob(["<node></node>"]); - file.name = "test.xml"; - return dialog.init().then(function () { - return dialog.callListeners("onFileUpload", file); - }).then(function () { - return dialog.onSaveClicked(); - }).then(function () { - assert.ok(options["name"] !== undefined); - assert.ok(options["projectId"] !== undefined); - assert.ok(options["file-id"] !== undefined); - assert.ok(options["parser"] !== undefined); - assert.ok(options["auto-resize"] !== undefined); - assert.ok(options["cache"] !== undefined); - assert.ok(options["notify-email"] !== undefined); - assert.ok(options["disease"] !== undefined); - assert.ok(options["organism"] !== undefined); - assert.ok(options["sbgn"] !== undefined); - assert.ok(options["semantic-zoom"] !== undefined); - }).finally(function () { - return dialog.destroy(); - }); - }); - }); - -}); +"use strict"; + +require("../../mocha-config"); + +var AddProjectDialog = require('../../../../main/js/gui/admin/AddProjectDialog'); +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); + +var fs = require("fs"); +var chai = require('chai'); +var assert = chai.assert; + +describe('AddProjectDialog', function () { + it('init', function () { + var dialog = new AddProjectDialog({ + element: testDiv, + customMap: null + }); + return ServerConnector.login("admin", "admin").then(function () { + return dialog.init(); + }).then(function () { + assert.ok(dialog.getNotifyEmail() !== ""); + assert.equal(0, logger.getWarnings().length); + return dialog.destroy(); + }); + }); + + it('onUserPreferencesChange', function () { + var dialog = new AddProjectDialog({ + element: testDiv, + customMap: null + }); + return ServerConnector.login("admin", "admin").then(function () { + return dialog.init(); + }).then(function () { + dialog.setCache(false); + assert.notOk(dialog.isCache()); + dialog.setCache(true); + assert.ok(dialog.isCache()); + return dialog.destroy(); + }); + }); + + describe('onFileUpload', function () { + it('default', function () { + var dialog = new AddProjectDialog({ + element: testDiv, + customMap: null + }); + + var file = new Blob(["<node></node>"]); + file.name = "test.xml"; + return dialog.init().then(function () { + return dialog.callListeners("onFileUpload", file); + }).then(function () { + assert.ok(dialog.getFileContent()); + assert.equal("test", dialog.getProjectId()); + return dialog.getConverter(); + }).then(function (converter) { + assert.equal("xml", converter.extension); + return dialog.destroy(); + }); + }); + }); + + describe('setZipFileContent', function () { + it('submaps', function () { + var dialog = new AddProjectDialog({ + element: testDiv, + customMap: null + }); + var buf = fs.readFileSync("testFiles/map/complex_model_with_submaps.zip"); + buf.name = "complex_model_with_submaps.zip"; + return dialog.init().then(function () { + return dialog.setZipFileContent(buf); + }).then(function () { + assert.equal(5, dialog.getZipEntries().length); + return dialog.destroy(); + }); + }); + it('overlays', function () { + var dialog = new AddProjectDialog({ + element: testDiv, + customMap: null + }); + var buf = fs.readFileSync("testFiles/map/complex_model_with_overlays.zip"); + buf.name = "complex_model_with_overlays.zip"; + return dialog.init().then(function () { + var dataTable = $($("[name='overlaysTable']", testDiv)[0]).DataTable(); + assert.equal(0, dataTable.data().count()); + return dialog.setZipFileContent(buf); + }).then(function () { + var dataTable = $($("[name='overlaysTable']", testDiv)[0]).DataTable(); + assert.ok(dataTable.data().count() > 0); + return dialog.destroy(); + }); + }); + }); + + describe('showAnnotatorsDialog', function () { + it('default', function () { + var dialog = new AddProjectDialog({ + element: testDiv, + customMap: null + }); + + return dialog.showAnnotatorsDialog().then(function () { + return dialog.destroy(); + }); + }); + }); + + + describe('onSaveClicked', function () { + var originalAddProject; + beforeEach(function () { + originalAddProject = ServerConnector.addProject; + }); + afterEach(function () { + ServerConnector.addProject = originalAddProject; + }); + it('default', function () { + var options; + ServerConnector.addProject = function (params) { + options = params; + }; + + var dialog = new AddProjectDialog({ + element: testDiv, + customMap: null + }); + + var file = new Blob(["<node></node>"]); + file.name = "test.xml"; + return dialog.init().then(function () { + return dialog.callListeners("onFileUpload", file); + }).then(function () { + return dialog.onSaveClicked(); + }).then(function () { + assert.ok(options["name"] !== undefined); + assert.ok(options["projectId"] !== undefined); + assert.ok(options["file-id"] !== undefined); + assert.ok(options["parser"] !== undefined); + assert.ok(options["auto-resize"] !== undefined); + assert.ok(options["cache"] !== undefined); + assert.ok(options["notify-email"] !== undefined); + assert.ok(options["disease"] !== undefined); + assert.ok(options["organism"] !== undefined); + assert.ok(options["sbgn"] !== undefined); + assert.ok(options["semantic-zoom"] !== undefined); + }).finally(function () { + return dialog.destroy(); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/admin/ChooseAnnotatorsDialog-test.js b/frontend-js/src/test/js/gui/admin/ChooseAnnotatorsDialog-test.js index e9831410f589583baf9429cb6e02cb3526f43052..e7e321353be67a636b60147947759b85ba43662b 100644 --- a/frontend-js/src/test/js/gui/admin/ChooseAnnotatorsDialog-test.js +++ b/frontend-js/src/test/js/gui/admin/ChooseAnnotatorsDialog-test.js @@ -1,47 +1,47 @@ -"use strict"; - -/* exported assert */ -/* exported logger */ -require("../../mocha-config"); - -var ChooseAnnotatorsDialog = require('../../../../main/js/gui/admin/ChooseAnnotatorsDialog'); -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; - -describe('ChooseAnnotatorsDialog', function () { - it('init', function () { - var dialog = new ChooseAnnotatorsDialog({ - element: testDiv, - customMap: null - }); - return dialog.init(); - }); - - it('createElementTree', function () { - var dialog = new ChooseAnnotatorsDialog({ - element: testDiv, - customMap: null - }); - return ServerConnector.getConfiguration().then(function (configuration) { - var treeData = dialog.createElementTree(configuration); - - assert.ok(treeData); - assert.ok(treeData.text); - assert.ok(treeData.children); - assert.equal(2, treeData.children.length); - }) - }); - - it('setElementType', function () { - var dialog = new ChooseAnnotatorsDialog({ - element: testDiv, - customMap: null - }); - return ServerConnector.getConfiguration().then(function (configuration) { - return dialog.setElementType(configuration.getReactionTypes()[0]); - }) - }); - -}); +"use strict"; + +require("../../mocha-config"); + +var ChooseAnnotatorsDialog = require('../../../../main/js/gui/admin/ChooseAnnotatorsDialog'); +var ServerConnector = require('../../ServerConnector-mock'); +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('ChooseAnnotatorsDialog', function () { + it('init', function () { + var dialog = new ChooseAnnotatorsDialog({ + element: testDiv, + customMap: null + }); + assert.equal(0, logger.getWarnings().length); + return dialog.init(); + }); + + it('createElementTree', function () { + var dialog = new ChooseAnnotatorsDialog({ + element: testDiv, + customMap: null + }); + return ServerConnector.getConfiguration().then(function (configuration) { + var treeData = dialog.createElementTree(configuration); + + assert.ok(treeData); + assert.ok(treeData.text); + assert.ok(treeData.children); + assert.equal(2, treeData.children.length); + }) + }); + + it('setElementType', function () { + var dialog = new ChooseAnnotatorsDialog({ + element: testDiv, + customMap: null + }); + return ServerConnector.getConfiguration().then(function (configuration) { + return dialog.setElementType(configuration.getReactionTypes()[0]); + }) + }); + +}); diff --git a/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js b/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js index 9ed8f4cbef7a5e1087983882e21eb13a820dc73e..ef96a952b42b83c668ae49e1f15afef37967b8d9 100644 --- a/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js +++ b/frontend-js/src/test/js/gui/admin/ChooseValidatorsDialog-test.js @@ -1,47 +1,47 @@ -"use strict"; - -/* exported assert */ -/* exported logger */ -require("../../mocha-config"); - -var ChooseValidatorsDialog = require('../../../../main/js/gui/admin/ChooseValidatorsDialog'); -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; - -describe('ChooseValidatorsDialog', function () { - it('init', function () { - var dialog = new ChooseValidatorsDialog({ - element: testDiv, - customMap: null - }); - return dialog.init(); - }); - - it('createElementTree', function () { - var dialog = new ChooseValidatorsDialog({ - element: testDiv, - customMap: null - }); - return ServerConnector.getConfiguration().then(function (configuration) { - var treeData = dialog.createElementTree(configuration); - - assert.ok(treeData); - assert.ok(treeData.text); - assert.ok(treeData.children); - assert.equal(2, treeData.children.length); - }) - }); - - it('setElementType', function () { - var dialog = new ChooseValidatorsDialog({ - element: testDiv, - customMap: null - }); - return ServerConnector.getConfiguration().then(function (configuration) { - return dialog.setElementType(configuration.getReactionTypes()[0]); - }) - }); - -}); +"use strict"; + +require("../../mocha-config"); + +var ChooseValidatorsDialog = require('../../../../main/js/gui/admin/ChooseValidatorsDialog'); +var ServerConnector = require('../../ServerConnector-mock'); +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('ChooseValidatorsDialog', function () { + it('init', function () { + var dialog = new ChooseValidatorsDialog({ + element: testDiv, + customMap: null + }); + assert.equal(0, logger.getWarnings().length); + return dialog.init(); + }); + + it('createElementTree', function () { + var dialog = new ChooseValidatorsDialog({ + element: testDiv, + customMap: null + }); + return ServerConnector.getConfiguration().then(function (configuration) { + var treeData = dialog.createElementTree(configuration); + + assert.ok(treeData); + assert.ok(treeData.text); + assert.ok(treeData.children); + assert.equal(2, treeData.children.length); + }) + }); + + it('setElementType', function () { + var dialog = new ChooseValidatorsDialog({ + element: testDiv, + customMap: null + }); + return ServerConnector.getConfiguration().then(function (configuration) { + return dialog.setElementType(configuration.getReactionTypes()[0]); + }) + }); + +}); diff --git a/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js b/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js index 2725b2ac515b8a06dda893fb66efb3068dd748f7..38d68865a65cbbf5287b941de580fe5241041e95 100644 --- a/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js +++ b/frontend-js/src/test/js/gui/admin/ConfigurationAdminPanel-test.js @@ -1,51 +1,52 @@ -"use strict"; - -require("../../mocha-config"); - -var ConfigurationAdminPanel = require('../../../../main/js/gui/admin/ConfigurationAdminPanel'); -var ConfigurationType = require('../../../../main/js/ConfigurationType'); -var logger = require('../../logger'); - -var assert = require('assert'); - -describe('ConfigurationAdminPanel', function () { - - it('init', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new ConfigurationAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - assert.equal(0, logger.getWarnings().length); - return mapTab.destroy(); - }); - }); - it('saveOption', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new ConfigurationAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.saveOption(ConfigurationType.DEFAULT_MAP); - }).then(function () { - return mapTab.destroy(); - }); - }); - -}); +"use strict"; + +require("../../mocha-config"); + +var ConfigurationAdminPanel = require('../../../../main/js/gui/admin/ConfigurationAdminPanel'); +var ConfigurationType = require('../../../../main/js/ConfigurationType'); +var ServerConnector = require('../../ServerConnector-mock'); +var logger = require('../../logger'); + +var assert = require('assert'); + +describe('ConfigurationAdminPanel', function () { + + it('init', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new ConfigurationAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + assert.equal(0, logger.getWarnings().length); + return mapTab.destroy(); + }); + }); + it('saveOption', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new ConfigurationAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.saveOption(ConfigurationType.DEFAULT_MAP); + }).then(function () { + return mapTab.destroy(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js b/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js index 9c50e955d605b70d2e1ba6b2ff34ba29954bde60..d410430a03f6126d00f79cf45634bc6d9b87db8c 100644 --- a/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js +++ b/frontend-js/src/test/js/gui/admin/EditUserDialog-test.js @@ -1,174 +1,172 @@ -"use strict"; - -/* exported assert */ -/* exported logger */ -require("../../mocha-config"); - -var EditUserDialog = require('../../../../main/js/gui/admin/EditUserDialog'); -var User = require('../../../../main/js/map/data/User'); -var ValidationError = require('../../../../main/js/ValidationError'); - - -// noinspection JSUnusedLocalSymbols -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; -var expect = chai.expect; - -describe('EditUserDialog', function () { - - describe('init', function () { - it('empty user', function () { - var dialog; - var project; - var user = new User({}); - return ServerConnector.getProject().then(function (result) { - project = result; - dialog = new EditUserDialog({ - element: testDiv, - project: project, - user: user, - customMap: null - }); - return dialog.init(); - }).then(function () { - dialog.destroy(); - }); - }); - }); - - describe('checkValidity', function () { - it('empty user', function () { - var dialog; - var project; - var user = new User({}); - return ServerConnector.getProject().then(function (result) { - project = result; - dialog = new EditUserDialog({ - element: testDiv, - project: project, - user: user, - customMap: null - }); - return dialog.init(); - }).then(function () { - return dialog.checkValidity().then(function () { - assert.ok(null); - }, function (error) { - assert.ok(error instanceof ValidationError); - }); - }).then(function () { - dialog.destroy(); - }); - }); - - it('existing user', function () { - var dialog; - var project; - var user; - return ServerConnector.getUser("anonymous").then(function (result) { - user = result; - return ServerConnector.getProject(); - }).then(function (result) { - project = result; - dialog = new EditUserDialog({ - element: testDiv, - project: project, - user: user, - customMap: null - }); - return dialog.init(); - }).then(function () { - return dialog.checkValidity(); - }).then(function (result) { - assert.ok(result); - }).then(function () { - dialog.destroy(); - }); - }); - }); - - describe('onSaveClicked', function () { - it('existing user', function () { - var dialog; - var project; - var user; - return ServerConnector.getUser("anonymous").then(function (result) { - user = result; - return ServerConnector.getProject(); - }).then(function (result) { - project = result; - dialog = new EditUserDialog({ - element: testDiv, - project: project, - user: user, - customMap: null - }); - return dialog.init(); - }).then(function () { - return dialog.onSaveClicked(); - }).then(function () { - dialog.destroy(); - }); - }); - - }); - describe('click privilege checkbox', function () { - it('existing user', function () { - var dialog; - var project; - var user; - var serializedPrivileges; - return ServerConnector.getUser("anonymous").then(function (result) { - user = result; - serializedPrivileges = user.privilegesToExport(helper.getConfiguration()); - return ServerConnector.getProject(); - }).then(function (result) { - project = result; - dialog = new EditUserDialog({ - element: testDiv, - project: project, - user: user, - customMap: null - }); - return dialog.init(); - }).then(function () { - return $("[name=privilege-checkbox]", dialog.getElement()).click(); - }).then(function () { - expect(serializedPrivileges).not.to.deep.equal(user.privilegesToExport(helper.getConfiguration())); - dialog.destroy(); - }); - }); - - }); - describe('change privilege int value', function () { - it('existing user', function () { - var dialog; - var project; - var user; - var serializedPrivileges; - return ServerConnector.getUser("anonymous").then(function (result) { - user = result; - serializedPrivileges = user.privilegesToExport(helper.getConfiguration()); - return ServerConnector.getProject(); - }).then(function (result) { - project = result; - dialog = new EditUserDialog({ - element: testDiv, - project: project, - user: user, - customMap: null - }); - return dialog.init(); - }).then(function () { - $("[name=privilege-int]", dialog.getElement()).val("101010"); - $("[name=privilege-int]", dialog.getElement()).trigger("change"); - }).then(function () { - expect(serializedPrivileges).not.to.deep.equal(user.privilegesToExport(helper.getConfiguration())); - dialog.destroy(); - }); - }); - - }); -}); +"use strict"; + +require("../../mocha-config"); + +var EditUserDialog = require('../../../../main/js/gui/admin/EditUserDialog'); +var User = require('../../../../main/js/map/data/User'); +var ValidationError = require('../../../../main/js/ValidationError'); +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; +var expect = chai.expect; + +describe('EditUserDialog', function () { + + describe('init', function () { + it('empty user', function () { + var dialog; + var project; + var user = new User({}); + return ServerConnector.getProject().then(function (result) { + project = result; + dialog = new EditUserDialog({ + element: testDiv, + project: project, + user: user, + customMap: null + }); + return dialog.init(); + }).then(function () { + assert.equal(0, logger.getWarnings().length); + dialog.destroy(); + }); + }); + }); + + describe('checkValidity', function () { + it('empty user', function () { + var dialog; + var project; + var user = new User({}); + return ServerConnector.getProject().then(function (result) { + project = result; + dialog = new EditUserDialog({ + element: testDiv, + project: project, + user: user, + customMap: null + }); + return dialog.init(); + }).then(function () { + return dialog.checkValidity().then(function () { + assert.ok(null); + }, function (error) { + assert.ok(error instanceof ValidationError); + }); + }).then(function () { + dialog.destroy(); + }); + }); + + it('existing user', function () { + var dialog; + var project; + var user; + return ServerConnector.getUser("anonymous").then(function (result) { + user = result; + return ServerConnector.getProject(); + }).then(function (result) { + project = result; + dialog = new EditUserDialog({ + element: testDiv, + project: project, + user: user, + customMap: null + }); + return dialog.init(); + }).then(function () { + return dialog.checkValidity(); + }).then(function (result) { + assert.ok(result); + }).then(function () { + dialog.destroy(); + }); + }); + }); + + describe('onSaveClicked', function () { + it('existing user', function () { + var dialog; + var project; + var user; + return ServerConnector.getUser("anonymous").then(function (result) { + user = result; + return ServerConnector.getProject(); + }).then(function (result) { + project = result; + dialog = new EditUserDialog({ + element: testDiv, + project: project, + user: user, + customMap: null + }); + return dialog.init(); + }).then(function () { + return dialog.onSaveClicked(); + }).then(function () { + dialog.destroy(); + }); + }); + + }); + describe('click privilege checkbox', function () { + it('existing user', function () { + var dialog; + var project; + var user; + var serializedPrivileges; + return ServerConnector.getUser("anonymous").then(function (result) { + user = result; + serializedPrivileges = user.privilegesToExport(helper.getConfiguration()); + return ServerConnector.getProject(); + }).then(function (result) { + project = result; + dialog = new EditUserDialog({ + element: testDiv, + project: project, + user: user, + customMap: null + }); + return dialog.init(); + }).then(function () { + return $("[name=privilege-checkbox]", dialog.getElement()).click(); + }).then(function () { + expect(serializedPrivileges).not.to.deep.equal(user.privilegesToExport(helper.getConfiguration())); + dialog.destroy(); + }); + }); + + }); + describe('change privilege int value', function () { + it('existing user', function () { + var dialog; + var project; + var user; + var serializedPrivileges; + return ServerConnector.getUser("anonymous").then(function (result) { + user = result; + serializedPrivileges = user.privilegesToExport(helper.getConfiguration()); + return ServerConnector.getProject(); + }).then(function (result) { + project = result; + dialog = new EditUserDialog({ + element: testDiv, + project: project, + user: user, + customMap: null + }); + return dialog.init(); + }).then(function () { + $("[name=privilege-int]", dialog.getElement()).val("101010"); + $("[name=privilege-int]", dialog.getElement()).trigger("change"); + }).then(function () { + expect(serializedPrivileges).not.to.deep.equal(user.privilegesToExport(helper.getConfiguration())); + dialog.destroy(); + }); + }); + + }); +}); diff --git a/frontend-js/src/test/js/gui/admin/LogListDialog-test.js b/frontend-js/src/test/js/gui/admin/LogListDialog-test.js index 6e2ab51ad00e0ce1e85a3339e78b5c390f3c0e11..97f483b47bc81526e0f629dcb735f1d6034c4bdf 100644 --- a/frontend-js/src/test/js/gui/admin/LogListDialog-test.js +++ b/frontend-js/src/test/js/gui/admin/LogListDialog-test.js @@ -1,52 +1,52 @@ -"use strict"; - -require('../../mocha-config.js'); - -var LogListDialog = require('../../../../main/js/gui/admin/LogListDialog'); -var ServerConnector = require('../../ServerConnector-mock'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('LogListDialog', function () { - - it('constructor', function () { - var div = testDiv; - - var map = helper.createCustomMap(); - - var dialog = new LogListDialog({ - element: div, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - - dialog.destroy(); - }); - - it('_dataTableAjaxCall', function () { - var dialog; - var callbackCalled = false; - return ServerConnector.getProject().then(function (project) { - dialog = new LogListDialog({ - element: testDiv, - customMap: helper.createCustomMap(project), - level: 'error' - }); - return dialog._dataTableAjaxCall({ - start: 0, - length: 10, - order: [{column: 0, dir: 'asc'}], - search: {value: '', regex: false} - }, function () { - callbackCalled = true; - }); - }).then(function () { - assert.ok(callbackCalled); - }).finally(function () { - dialog.destroy(); - }); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var LogListDialog = require('../../../../main/js/gui/admin/LogListDialog'); +var ServerConnector = require('../../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('LogListDialog', function () { + + it('constructor', function () { + var div = testDiv; + + var map = helper.createCustomMap(); + + var dialog = new LogListDialog({ + element: div, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + + dialog.destroy(); + }); + + it('_dataTableAjaxCall', function () { + var dialog; + var callbackCalled = false; + return ServerConnector.getProject().then(function (project) { + dialog = new LogListDialog({ + element: testDiv, + customMap: helper.createCustomMap(project), + level: 'error' + }); + return dialog._dataTableAjaxCall({ + start: 0, + length: 10, + order: [{column: 0, dir: 'asc'}], + search: {value: '', regex: false} + }, function () { + callbackCalled = true; + }); + }).then(function () { + assert.ok(callbackCalled); + }).finally(function () { + dialog.destroy(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/admin/MapsAdminPanel-test.js b/frontend-js/src/test/js/gui/admin/MapsAdminPanel-test.js index 2d28862da5db2836894192b792905eb84e1e6ee0..d5fdf4574bd1ceb68547ce2d37a3e0d5c1083b01 100644 --- a/frontend-js/src/test/js/gui/admin/MapsAdminPanel-test.js +++ b/frontend-js/src/test/js/gui/admin/MapsAdminPanel-test.js @@ -1,101 +1,99 @@ -"use strict"; - -/* exported logger */ -/* exported assert */ - -require("../../mocha-config"); - -var MapsAdminPanel = require('../../../../main/js/gui/admin/MapsAdminPanel'); -var logger = require('../../logger'); - -var assert = require('assert'); - -describe('MapsAdminPanel', function () { - - it('refresh', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new MapsAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.onRefreshClicked(); - }).then(function () { - assert.equal(0, logger.getWarnings().length); - return mapTab.destroy(); - }); - }); - it('showLogs', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new MapsAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.showLogs(project.getProjectId(), 'error'); - }).then(function () { - assert.equal(0, logger.getWarnings().length); - return mapTab.destroy(); - }); - }); - - - describe('onAddClicked', function () { - it('default', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new MapsAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.onAddClicked(); - }).then(function () { - return mapTab.destroy(); - }); - }); - it('close and reopen', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new MapsAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.onAddClicked(); - }).then(function () { - mapTab._addDialog.close(); - return mapTab.onAddClicked(); - }).then(function () { - return mapTab.destroy(); - }); - }); - }); - -}); +"use strict"; + +require("../../mocha-config"); + +var MapsAdminPanel = require('../../../../main/js/gui/admin/MapsAdminPanel'); +var ServerConnector = require('../../ServerConnector-mock'); +var logger = require('../../logger'); + +var assert = require('assert'); + +describe('MapsAdminPanel', function () { + + it('refresh', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new MapsAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.onRefreshClicked(); + }).then(function () { + assert.equal(0, logger.getWarnings().length); + return mapTab.destroy(); + }); + }); + it('showLogs', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new MapsAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.showLogs(project.getProjectId(), 'error'); + }).then(function () { + assert.equal(0, logger.getWarnings().length); + return mapTab.destroy(); + }); + }); + + + describe('onAddClicked', function () { + it('default', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new MapsAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.onAddClicked(); + }).then(function () { + return mapTab.destroy(); + }); + }); + it('close and reopen', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new MapsAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.onAddClicked(); + }).then(function () { + mapTab._addDialog.close(); + return mapTab.onAddClicked(); + }).then(function () { + return mapTab.destroy(); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/admin/UserAdminPanel-test.js b/frontend-js/src/test/js/gui/admin/UserAdminPanel-test.js index 29ab789732f09a87a025003169ad69df1075b52c..92410c1671356f7985c17170f31c7ada5eee791c 100644 --- a/frontend-js/src/test/js/gui/admin/UserAdminPanel-test.js +++ b/frontend-js/src/test/js/gui/admin/UserAdminPanel-test.js @@ -1,95 +1,92 @@ -"use strict"; - -/* exported logger */ -/* exported assert */ - -require("../../mocha-config"); - -var UsersAdminPanel = require('../../../../main/js/gui/admin/UsersAdminPanel'); -// noinspection JSUnusedLocalSymbols -var logger = require('../../logger'); - -// noinspection JSUnusedLocalSymbols -var assert = require('assert'); - -describe('UsersAdminPanel', function () { - - it('init', function () { - var usersTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - usersTab = new UsersAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return usersTab.init(); - }).then(function () { - return usersTab.destroy(); - }); - }); - - it('refresh', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new UsersAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.onRefreshClicked(); - }).then(function () { - return mapTab.destroy(); - }); - }); - - it('showEditDialog', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new UsersAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.showEditDialog("anonymous"); - }).then(function () { - return mapTab.destroy(); - }); - }); - it('onAddClicked', function () { - var mapTab; - var project; - return ServerConnector.getProject().then(function (result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function (configuration) { - mapTab = new UsersAdminPanel({ - element: testDiv, - project: project, - configuration: configuration - }); - return mapTab.init(); - }).then(function () { - return mapTab.onAddClicked(); - }).then(function () { - return mapTab.destroy(); - }); - }); - - -}); +"use strict"; + +require("../../mocha-config"); + +var UsersAdminPanel = require('../../../../main/js/gui/admin/UsersAdminPanel'); +var ServerConnector = require('../../ServerConnector-mock'); +var logger = require('../../logger'); + +var assert = require('assert'); + +describe('UsersAdminPanel', function () { + + it('init', function () { + var usersTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + usersTab = new UsersAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return usersTab.init(); + }).then(function () { + assert.equal(0, logger.getWarnings().length); + return usersTab.destroy(); + }); + }); + + it('refresh', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new UsersAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.onRefreshClicked(); + }).then(function () { + return mapTab.destroy(); + }); + }); + + it('showEditDialog', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new UsersAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.showEditDialog("anonymous"); + }).then(function () { + return mapTab.destroy(); + }); + }); + it('onAddClicked', function () { + var mapTab; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + mapTab = new UsersAdminPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return mapTab.init(); + }).then(function () { + return mapTab.onAddClicked(); + }).then(function () { + return mapTab.destroy(); + }); + }); + + +}); diff --git a/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js b/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js index 1998c1f27983bd45acf715c65b4040cb0a3b8506..da83d0760d942b6245e3d8349e7cb864c90fc457 100644 --- a/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js +++ b/frontend-js/src/test/js/gui/export/ElementExportPanel-test.js @@ -1,290 +1,291 @@ -"use strict"; - -/* exported logger */ -require("../../mocha-config.js"); - -var ElementExportPanel = require('../../../../main/js/gui/export/ElementExportPanel'); -var GuiMessageError = require('../../../../main/js/gui/GuiMessageError'); -var MiriamType = require('../../../../main/js/map/data/MiriamType'); -var logger = require('../../logger'); - -var assert = require('assert'); - -describe('ElementExportPanel', function() { - - describe('getSelectedTypes', function() { - it('select single element', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - $("input[name='Degraded']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - return exportObject.getSelectedTypes(); - }).then(function(selectedTypes) { - assert.deepEqual([ "Degraded" ], selectedTypes); - }); - }); - it('select all', function() { - var exportObject; - var project; - var elementTypes; - - var configuration; - - return ServerConnector.getConfiguration().then(function(result) { - configuration = result; - elementTypes = configuration.getSimpleElementTypeNames(); - return ServerConnector.getProject(); - }).then(function(result) { - project = result; - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - $("input[name='Degraded']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - $("input[name='ALL']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - return exportObject.getSelectedTypes(); - }).then(function(selectedTypes) { - assert.deepEqual(elementTypes, selectedTypes); - }); - }); - }); - - describe('getSelectedColumns', function() { - it('select single element', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - $("input[name='column_name']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - return exportObject.getSelectedColumns(); - }).then(function(selectedTypes) { - assert.equal([ "name" ], selectedTypes[0].columnName); - }); - }); - it('select all', function() { - var exportObject; - var project; - var elementTypes; - var configuration; - - return ServerConnector.getConfiguration().then(function(result) { - configuration = result; - elementTypes = configuration.getElementTypes(); - return ServerConnector.getProject(); - }).then(function(result) { - project = result; - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - $("input[name='column_name']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - $("input[name='ALL']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - return exportObject.getSelectedColumns(); - }).then(function(selectedTypes) { - assert.equal(exportObject.getAllColumns().length, selectedTypes.length); - }); - }); - }); - - describe('getSelectedMiriamTypes', function() { - it('select single element', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - var dlb = exportObject.getMiriamTypesDualListbox(); - var listItem = dlb.available[0]; - dlb.addSelected(listItem); - return exportObject.getSelectedMiriamTypes(); - }).then(function(result) { - assert.equal(result.length, 1); - assert.ok(result[0] instanceof MiriamType); - }); - }); - }); - - describe('getSelectedIncludedCompartments', function() { - it('empty selection', function() { - helper.setUrl("http://test/?id=complex_model_with_submaps"); - - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - assert.ok(exportObject.getIncludedCompartmentsDualListbox().available.length > 0); - return exportObject.getSelectedIncludedCompartments(); - }).then(function(result) { - assert.equal(result.length, 0); - }); - }); - }); - - describe('getSelectedExcludedCompartments', function() { - it('empty selection', function() { - helper.setUrl("http://test/?id=complex_model_with_submaps"); - - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - var dlb = exportObject.getExcludedCompartmentsDualListbox(); - var listItem = dlb.available[0]; - dlb.addSelected(listItem); - return exportObject.getSelectedExcludedCompartments(); - }).then(function(result) { - assert.equal(result.length, 1); - }); - }); - }); - - describe('createResponseString', function() { - it('get all', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - $("input[name='ALL']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - var dlb = exportObject.getMiriamTypesDualListbox(); - var listItem = dlb.available[0]; - dlb.addSelected(listItem); - return exportObject.createResponseString(); - }).then(function(result) { - // protein id - assert.equal(result.indexOf("[object Object]"), -1); - assert.ok(result.indexOf("329156") >= 0); - }); - }); - it('get invalid', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - return exportObject.createResponseString(); - }).then(null, function(error) { - assert.ok(error instanceof GuiMessageError); - }); - }); - }); - - it('download file', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new ElementExportPanel({ - element : testDiv, - project : project, - configuration : configuration - }); - return exportObject.init(); - }).then(function() { - $("input[name='ALL']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - var element = $("[name='downloadButton']", $(testDiv))[0]; - return element.onclick(); - }); - }); - - describe('createResponseRow', function() { - it('description with new line', function() { - var exportObject = new ElementExportPanel({ - element : testDiv, - project : helper.createProject(), - configuration : helper.getConfiguration() - }); - var alias = helper.createAlias(); - var desc = "test\ntest2\n"; - alias.setDescription(desc); - var rowString = exportObject.createResponseRow(alias, exportObject.getAllColumns(), []); - assert.ok(rowString.indexOf("test\ntest2\n") === -1); - }); - }); - -}); +"use strict"; + +require("../../mocha-config.js"); + +var ElementExportPanel = require('../../../../main/js/gui/export/ElementExportPanel'); +var GuiMessageError = require('../../../../main/js/gui/GuiMessageError'); +var MiriamType = require('../../../../main/js/map/data/MiriamType'); +var ServerConnector = require('../../ServerConnector-mock'); +var logger = require('../../logger'); + +var assert = require('assert'); + +describe('ElementExportPanel', function () { + + describe('getSelectedTypes', function () { + it('select single element', function () { + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + $("input[name='Degraded']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + return exportObject.getSelectedTypes(); + }).then(function (selectedTypes) { + assert.equal(0, logger.getWarnings().length); + assert.deepEqual(["Degraded"], selectedTypes); + }); + }); + it('select all', function () { + var exportObject; + var project; + var elementTypes; + + var configuration; + + return ServerConnector.getConfiguration().then(function (result) { + configuration = result; + elementTypes = configuration.getSimpleElementTypeNames(); + return ServerConnector.getProject(); + }).then(function (result) { + project = result; + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + $("input[name='Degraded']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + $("input[name='ALL']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + return exportObject.getSelectedTypes(); + }).then(function (selectedTypes) { + assert.deepEqual(elementTypes, selectedTypes); + }); + }); + }); + + describe('getSelectedColumns', function () { + it('select single element', function () { + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + $("input[name='column_name']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + return exportObject.getSelectedColumns(); + }).then(function (selectedTypes) { + assert.equal(["name"], selectedTypes[0].columnName); + }); + }); + it('select all', function () { + var exportObject; + var project; + var elementTypes; + var configuration; + + return ServerConnector.getConfiguration().then(function (result) { + configuration = result; + elementTypes = configuration.getElementTypes(); + return ServerConnector.getProject(); + }).then(function (result) { + project = result; + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + $("input[name='column_name']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + $("input[name='ALL']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + return exportObject.getSelectedColumns(); + }).then(function (selectedTypes) { + assert.equal(exportObject.getAllColumns().length, selectedTypes.length); + }); + }); + }); + + describe('getSelectedMiriamTypes', function () { + it('select single element', function () { + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + var dlb = exportObject.getMiriamTypesDualListbox(); + var listItem = dlb.available[0]; + dlb.addSelected(listItem); + return exportObject.getSelectedMiriamTypes(); + }).then(function (result) { + assert.equal(result.length, 1); + assert.ok(result[0] instanceof MiriamType); + }); + }); + }); + + describe('getSelectedIncludedCompartments', function () { + it('empty selection', function () { + helper.setUrl("http://test/?id=complex_model_with_submaps"); + + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + assert.ok(exportObject.getIncludedCompartmentsDualListbox().available.length > 0); + return exportObject.getSelectedIncludedCompartments(); + }).then(function (result) { + assert.equal(result.length, 0); + }); + }); + }); + + describe('getSelectedExcludedCompartments', function () { + it('empty selection', function () { + helper.setUrl("http://test/?id=complex_model_with_submaps"); + + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + var dlb = exportObject.getExcludedCompartmentsDualListbox(); + var listItem = dlb.available[0]; + dlb.addSelected(listItem); + return exportObject.getSelectedExcludedCompartments(); + }).then(function (result) { + assert.equal(result.length, 1); + }); + }); + }); + + describe('createResponseString', function () { + it('get all', function () { + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + $("input[name='ALL']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + var dlb = exportObject.getMiriamTypesDualListbox(); + var listItem = dlb.available[0]; + dlb.addSelected(listItem); + return exportObject.createResponseString(); + }).then(function (result) { + // protein id + assert.equal(result.indexOf("[object Object]"), -1); + assert.ok(result.indexOf("329156") >= 0); + }); + }); + it('get invalid', function () { + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + return exportObject.createResponseString(); + }).then(null, function (error) { + assert.ok(error instanceof GuiMessageError); + }); + }); + }); + + it('download file', function () { + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new ElementExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + $("input[name='ALL']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + var element = $("[name='downloadButton']", $(testDiv))[0]; + return element.onclick(); + }); + }); + + describe('createResponseRow', function () { + it('description with new line', function () { + var exportObject = new ElementExportPanel({ + element: testDiv, + project: helper.createProject(), + configuration: helper.getConfiguration() + }); + var alias = helper.createAlias(); + var desc = "test\ntest2\n"; + alias.setDescription(desc); + var rowString = exportObject.createResponseRow(alias, exportObject.getAllColumns(), []); + assert.ok(rowString.indexOf("test\ntest2\n") === -1); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/export/GraphicsExportPanel-test.js b/frontend-js/src/test/js/gui/export/GraphicsExportPanel-test.js index a2b91b43d1f71c2c2ccae68098c6ed749fb6ee06..d53571bd2e2fb8dcd3e1b9d68fbb7c7d85d6864d 100644 --- a/frontend-js/src/test/js/gui/export/GraphicsExportPanel-test.js +++ b/frontend-js/src/test/js/gui/export/GraphicsExportPanel-test.js @@ -1,68 +1,69 @@ -"use strict"; - -/* exported logger */ - -var GraphicsExportPanel = require('../../../../main/js/gui/export/GraphicsExportPanel'); -var logger = require('../../logger'); -var assert = require('assert'); - -describe('GraphicsExportPanel', function() { - - it('getModelId', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new GraphicsExportPanel({ - element : testDiv, - project : project, - configuration : configuration, - }); - return exportObject.init(); - }).then(function() { - var id = exportObject.getSubmapId(); - assert.ok(id); - }); - }); - - it('getFormatHandler', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new GraphicsExportPanel({ - element : testDiv, - project : project, - configuration : configuration, - }); - return exportObject.init(); - }).then(function() { - var format = exportObject.getFormatHandler(); - assert.ok(format); - }); - }); - - it('download file', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new GraphicsExportPanel({ - element : testDiv, - project : project, - configuration : configuration, - }); - return exportObject.init(); - }).then(function() { - var element = $("[name='downloadButton']", $(testDiv))[0]; - return element.onclick(); - }); - }); - -}); +"use strict"; + +var GraphicsExportPanel = require('../../../../main/js/gui/export/GraphicsExportPanel'); +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); +var assert = require('assert'); + +describe('GraphicsExportPanel', function() { + + it('getModelId', function() { + var exportObject; + var project; + return ServerConnector.getProject().then(function(result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function(configuration) { + exportObject = new GraphicsExportPanel({ + element : testDiv, + project : project, + configuration : configuration + }); + return exportObject.init(); + }).then(function() { + var id = exportObject.getSubmapId(); + assert.ok(id); + assert.equal(0,logger.getWarnings().length) + }); + }); + + it('getFormatHandler', function() { + var exportObject; + var project; + return ServerConnector.getProject().then(function(result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function(configuration) { + exportObject = new GraphicsExportPanel({ + element : testDiv, + project : project, + configuration : configuration + }); + return exportObject.init(); + }).then(function() { + var format = exportObject.getFormatHandler(); + assert.ok(format); + }); + }); + + it('download file', function() { + var exportObject; + var project; + return ServerConnector.getProject().then(function(result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function(configuration) { + exportObject = new GraphicsExportPanel({ + element : testDiv, + project : project, + configuration : configuration + }); + return exportObject.init(); + }).then(function() { + var element = $("[name='downloadButton']", $(testDiv))[0]; + return element.onclick(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js b/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js index 814080ba54ae225f5ea084b2b717fef66daa599a..4e249befcdb70003ba6fa8b840137f4bdba39631 100644 --- a/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js +++ b/frontend-js/src/test/js/gui/export/NetworkExportPanel-test.js @@ -1,34 +1,37 @@ -"use strict"; - -/* exported logger */ - -require("../../mocha-config"); - -var NetworkExportPanel = require('../../../../main/js/gui/export/NetworkExportPanel'); -var logger = require('../../logger'); - -describe('NetworkExportPanel', function() { - - it('download file', function() { - var exportObject; - var project; - return ServerConnector.getProject().then(function(result) { - project = result; - return ServerConnector.getConfiguration(); - }).then(function(configuration) { - exportObject = new NetworkExportPanel({ - element : testDiv, - project : project, - configuration : configuration, - }); - return exportObject.init(); - }).then(function() { - $("input[name='ALL']", $(testDiv)).each(function(index, element) { - element.checked = true; - }); - var element = $("[name='downloadButton']", $(testDiv))[0]; - return element.onclick(); - }); - }); - -}); +"use strict"; + +require("../../mocha-config"); + +var NetworkExportPanel = require('../../../../main/js/gui/export/NetworkExportPanel'); +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); +var chai = require('chai'); +var assert = chai.assert; + +describe('NetworkExportPanel', function () { + + it('download file', function () { + var exportObject; + var project; + return ServerConnector.getProject().then(function (result) { + project = result; + return ServerConnector.getConfiguration(); + }).then(function (configuration) { + exportObject = new NetworkExportPanel({ + element: testDiv, + project: project, + configuration: configuration + }); + return exportObject.init(); + }).then(function () { + $("input[name='ALL']", $(testDiv)).each(function (index, element) { + element.checked = true; + }); + var element = $("[name='downloadButton']", $(testDiv))[0]; + assert.equal(0, logger.getWarnings().length); + return element.onclick(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/AbstractPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/AbstractPanel-test.js index 51b82ca66f4c3a14f438c630e1d54df287a28af8..da4594bbe8ea2f47df94566bbec6cb457eb25442 100644 --- a/frontend-js/src/test/js/gui/leftPanel/AbstractPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/AbstractPanel-test.js @@ -1,66 +1,66 @@ -"use strict"; - -/* exported logger */ - -require('../../mocha-config.js'); - -var AbstractDbPanel = require('../../../../main/js/gui/leftPanel/AbstractDbPanel'); -var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); -var Target = require('../../../../main/js/map/data/Target'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('AbstractDbPanel', function() { - - it('constructor', function() { - var div = document.createElement("div"); - - var map = helper.createCustomMap(); - map.registerDbOverlay(helper.createSearchDbOverlay(map)); - - var panel = new AbstractDbPanel({ - element : div, - customMap : map, - panelName : "search", - }); - - assert.ok(panel.getControlElement(PanelControlElementType.SEARCH_LABEL).innerHTML !== ""); - }); - describe('createTargetRow', function() { - it('target with elements', function() { - var div = document.createElement("div"); - helper.setUrl("http://test/?id=complex_model_with_submaps"); - var map; - - return ServerConnector.getProject().then(function(project) { - map = helper.createCustomMap(project); - map.registerDbOverlay(helper.createSearchDbOverlay(map)); - - var panel = new AbstractDbPanel({ - element : div, - customMap : map, - panelName : "search", - }); - - var target = new Target({ - targetElements : [ { - id : 345337, - modelId : 16731, - type : "ALIAS" - }, { - id : 345338, - modelId : 16731, - type : "ALIAS" - } ], - references : [], - targetParticipants : [], - }); - var htmlTag = panel.createTargetRow(target, "empty.png"); - assert.ok(htmlTag); - assert.equal(1, $(".minerva-open-submap-button", $(htmlTag)).length); - }); - }); - }); -}); +"use strict"; + +require('../../mocha-config.js'); + +var AbstractDbPanel = require('../../../../main/js/gui/leftPanel/AbstractDbPanel'); +var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); +var ServerConnector = require('../../ServerConnector-mock'); +var Target = require('../../../../main/js/map/data/Target'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('AbstractDbPanel', function () { + + it('constructor', function () { + var div = document.createElement("div"); + + var map = helper.createCustomMap(); + map.registerDbOverlay(helper.createSearchDbOverlay(map)); + + var panel = new AbstractDbPanel({ + element: div, + customMap: map, + panelName: "search" + }); + + assert.ok(panel.getControlElement(PanelControlElementType.SEARCH_LABEL).innerHTML !== ""); + assert.equal(0, logger.getWarnings().length); + }); + describe('createTargetRow', function () { + it('target with elements', function () { + var div = document.createElement("div"); + helper.setUrl("http://test/?id=complex_model_with_submaps"); + var map; + + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + map.registerDbOverlay(helper.createSearchDbOverlay(map)); + + var panel = new AbstractDbPanel({ + element: div, + customMap: map, + panelName: "search" + }); + + var target = new Target({ + targetElements: [{ + id: 345337, + modelId: 16731, + type: "ALIAS" + }, { + id: 345338, + modelId: 16731, + type: "ALIAS" + }], + references: [], + targetParticipants: [] + }); + var htmlTag = panel.createTargetRow(target, "empty.png"); + assert.ok(htmlTag); + assert.equal(1, $(".minerva-open-submap-button", $(htmlTag)).length); + }); + }); + }); +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js index c3250263fa079838170c035e51c92ed44ddb6829..27610bcb8971bbfdab0a452b9675258b88fd94c1 100644 --- a/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/ChemicalPanel-test.js @@ -1,127 +1,128 @@ -"use strict"; - -require('../../mocha-config'); - -var Annotation = require('../../../../main/js/map/data/Annotation'); -var Chemical = require('../../../../main/js/map/data/Chemical'); -var ChemicalPanel = require('../../../../main/js/gui/leftPanel/ChemicalPanel'); -var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('ChemicalPanel', function () { - function createPanel(){ - var map = helper.createCustomMap(); - map.getModel().setId(15781); - helper.createChemicalDbOverlay(map); - - return new ChemicalPanel({ - element: testDiv, - customMap: map - }); - } - - describe('constructor', function () { - it('default', function () { - var map = helper.createCustomMap(); - helper.createChemicalDbOverlay(map); - - var panel = new ChemicalPanel({ - element: testDiv, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - assert.ok(panel.isDisabled()); - }); - it('map with disease', function () { - return ServerConnector.getProject().then(function (project) { - project.setDisease(new Annotation({ - link: "http://bioportal.bioontology.org/ontologies/1351?p=terms&conceptid=D010300", - type: "MESH_2012", - resource: "D010300", - })); - - var map = helper.createCustomMap(project); - helper.createChemicalDbOverlay(map); - - var panel = new ChemicalPanel({ - element: testDiv, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - assert.notOk(panel.isDisabled()); - }); - }); - }); - - describe('createPreamble', function () { - it('default', function () { - var map = helper.createCustomMap(); - helper.createChemicalDbOverlay(map); - - var panel = new ChemicalPanel({ - element: testDiv, - customMap: map - }); - - assert.ok(panel.createPreamble().innerHTML.indexOf("NOT FOUND") > 0); - }); - - it('for empty', function () { - var map = helper.createCustomMap(); - helper.createChemicalDbOverlay(map); - - var panel = new ChemicalPanel({ - element: testDiv, - customMap: map - }); - - assert.ok(panel.createPreamble(new Chemical()).innerHTML.indexOf("NOT FOUND") > 0); - }); - }); - - it('on searchResults changed', function () { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var chemicalDbOverlay = helper.createChemicalDbOverlay(map); - - new ChemicalPanel({ - element: testDiv, - customMap: map - }); - - return chemicalDbOverlay.searchByQuery("rotenone").then(function () { - assert.equal(logger.getWarnings().length, 1); - assert.ok(testDiv.innerHTML.indexOf("marker/mechanism") >= 0); - }); - }); - - it('searchByQuery', function () { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - helper.createChemicalDbOverlay(map); - - var panel = new ChemicalPanel({ - element: testDiv, - customMap: map - }); - - panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "rotenone"; - - return panel.searchByQuery().then(function () { - assert.equal(logger.getWarnings().length, 1); - assert.ok(testDiv.innerHTML.indexOf("Rotenone ") >= 0); - }); - }); - - it("refreshSearchAutocomplete", function () { - var panel = createPanel(); - - return panel.refreshSearchAutocomplete("s").then(function (data) { - assert.ok(data); - }); - }); - -}); +"use strict"; + +require('../../mocha-config'); + +var Annotation = require('../../../../main/js/map/data/Annotation'); +var Chemical = require('../../../../main/js/map/data/Chemical'); +var ChemicalPanel = require('../../../../main/js/gui/leftPanel/ChemicalPanel'); +var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); +var ServerConnector = require('../../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('ChemicalPanel', function () { + function createPanel(){ + var map = helper.createCustomMap(); + map.getModel().setId(15781); + helper.createChemicalDbOverlay(map); + + return new ChemicalPanel({ + element: testDiv, + customMap: map + }); + } + + describe('constructor', function () { + it('default', function () { + var map = helper.createCustomMap(); + helper.createChemicalDbOverlay(map); + + var panel = new ChemicalPanel({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + assert.ok(panel.isDisabled()); + }); + it('map with disease', function () { + return ServerConnector.getProject().then(function (project) { + project.setDisease(new Annotation({ + link: "http://bioportal.bioontology.org/ontologies/1351?p=terms&conceptid=D010300", + type: "MESH_2012", + resource: "D010300" + })); + + var map = helper.createCustomMap(project); + helper.createChemicalDbOverlay(map); + + var panel = new ChemicalPanel({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + assert.notOk(panel.isDisabled()); + }); + }); + }); + + describe('createPreamble', function () { + it('default', function () { + var map = helper.createCustomMap(); + helper.createChemicalDbOverlay(map); + + var panel = new ChemicalPanel({ + element: testDiv, + customMap: map + }); + + assert.ok(panel.createPreamble().innerHTML.indexOf("NOT FOUND") > 0); + }); + + it('for empty', function () { + var map = helper.createCustomMap(); + helper.createChemicalDbOverlay(map); + + var panel = new ChemicalPanel({ + element: testDiv, + customMap: map + }); + + assert.ok(panel.createPreamble(new Chemical()).innerHTML.indexOf("NOT FOUND") > 0); + }); + }); + + it('on searchResults changed', function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var chemicalDbOverlay = helper.createChemicalDbOverlay(map); + + new ChemicalPanel({ + element: testDiv, + customMap: map + }); + + return chemicalDbOverlay.searchByQuery("rotenone").then(function () { + assert.equal(logger.getWarnings().length, 1); + assert.ok(testDiv.innerHTML.indexOf("marker/mechanism") >= 0); + }); + }); + + it('searchByQuery', function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + helper.createChemicalDbOverlay(map); + + var panel = new ChemicalPanel({ + element: testDiv, + customMap: map + }); + + panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "rotenone"; + + return panel.searchByQuery().then(function () { + assert.equal(logger.getWarnings().length, 1); + assert.ok(testDiv.innerHTML.indexOf("Rotenone ") >= 0); + }); + }); + + it("refreshSearchAutocomplete", function () { + var panel = createPanel(); + + return panel.refreshSearchAutocomplete("s").then(function (data) { + assert.ok(data); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js index 546cc6342b555bf68e5e45c0558d66f8123ddb2a..713dd580537bb569f9a622340a749430c83b12ce 100644 --- a/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/DrugPanel-test.js @@ -1,96 +1,96 @@ -"use strict"; - -require('../../mocha-config.js'); - -var Drug = require('../../../../main/js/map/data/Drug'); -var DrugPanel = require('../../../../main/js/gui/leftPanel/DrugPanel'); -var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('DrugPanel', function () { - - function createPanel() { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - helper.createDrugDbOverlay(map); - - return new DrugPanel({ - element: testDiv, - customMap: map - }); - - } - - it('constructor', function () { - var map = helper.createCustomMap(); - helper.createDrugDbOverlay(map); - - new DrugPanel({ - element: testDiv, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - }); - - it('create DrugPanel', function () { - var map = helper.createCustomMap(); - helper.createDrugDbOverlay(map); - - var panel = new DrugPanel({ - element: testDiv, - customMap: map - }); - - assert.ok(panel.createPreamble().innerHTML.indexOf("NOT FOUND") > 0); - }); - - it('create DrugPanel for empty drug', function () { - var map = helper.createCustomMap(); - helper.createDrugDbOverlay(map); - - var panel = new DrugPanel({ - element: testDiv, - customMap: map - }); - - assert.ok(panel.createPreamble(new Drug()).innerHTML.indexOf("NOT FOUND") > 0); - }); - - it('on searchResults changed', function () { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var drugDbOverlay = helper.createDrugDbOverlay(map); - - new DrugPanel({ - element: testDiv, - customMap: map - }); - - return drugDbOverlay.searchByQuery("aspirin").then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.ok(testDiv.innerHTML.indexOf("Acetylsalicylic acid") >= 0); - }); - }); - - it('searchByQuery', function () { - var panel = createPanel(); - panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "aspirin"; - - return panel.searchByQuery().then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.ok(testDiv.innerHTML.indexOf("Acetylsalicylic acid") >= 0); - }); - }); - - it("refreshSearchAutocomplete", function () { - var panel = createPanel(); - - return panel.refreshSearchAutocomplete("s").then(function (data) { - assert.ok(data); - }); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var Drug = require('../../../../main/js/map/data/Drug'); +var DrugPanel = require('../../../../main/js/gui/leftPanel/DrugPanel'); +var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('DrugPanel', function () { + + function createPanel() { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + helper.createDrugDbOverlay(map); + + return new DrugPanel({ + element: testDiv, + customMap: map + }); + + } + + it('constructor', function () { + var map = helper.createCustomMap(); + helper.createDrugDbOverlay(map); + + new DrugPanel({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + }); + + it('create DrugPanel', function () { + var map = helper.createCustomMap(); + helper.createDrugDbOverlay(map); + + var panel = new DrugPanel({ + element: testDiv, + customMap: map + }); + + assert.ok(panel.createPreamble().innerHTML.indexOf("NOT FOUND") > 0); + }); + + it('create DrugPanel for empty drug', function () { + var map = helper.createCustomMap(); + helper.createDrugDbOverlay(map); + + var panel = new DrugPanel({ + element: testDiv, + customMap: map + }); + + assert.ok(panel.createPreamble(new Drug()).innerHTML.indexOf("NOT FOUND") > 0); + }); + + it('on searchResults changed', function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var drugDbOverlay = helper.createDrugDbOverlay(map); + + new DrugPanel({ + element: testDiv, + customMap: map + }); + + return drugDbOverlay.searchByQuery("aspirin").then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.ok(testDiv.innerHTML.indexOf("Acetylsalicylic acid") >= 0); + }); + }); + + it('searchByQuery', function () { + var panel = createPanel(); + panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "aspirin"; + + return panel.searchByQuery().then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.ok(testDiv.innerHTML.indexOf("Acetylsalicylic acid") >= 0); + }); + }); + + it("refreshSearchAutocomplete", function () { + var panel = createPanel(); + + return panel.refreshSearchAutocomplete("s").then(function (data) { + assert.ok(data); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js index d1ac00c2ab1e36bdb1499e988e00d24ea08e5722..fa757f58a7b69479a0c8ef5c9acda6a10c56bf19 100644 --- a/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js @@ -1,234 +1,234 @@ -"use strict"; - -require('../../mocha-config.js'); - -var Alias = require('../../../../main/js/map/data/Alias'); -var GenericSearchPanel = require('../../../../main/js/gui/leftPanel/GenericSearchPanel'); -var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('GenericSearchPanel', function () { - var createPanel = function() { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var searchDbOverlay = helper.createSearchDbOverlay(map); - - return new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - }; - - it('constructor', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - }); - - it('on searchResults changed', function () { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var searchDbOverlay = helper.createSearchDbOverlay(map); - - new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - - var searchParams = { - modelId: map.getModel().getId(), - coordinates: new google.maps.Point(457.51, 356.84), - zoom: 4 - }; - - return searchDbOverlay.searchByCoordinates(searchParams).then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.ok(testDiv.innerHTML.indexOf("Reaction") >= 0); - }); - }); - - it('on searchResults changed 2', function () { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var searchDbOverlay = helper.createSearchDbOverlay(map); - - new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - - return searchDbOverlay.searchByQuery("s1", false).then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.ok(testDiv.innerHTML.indexOf("s1") >= 0); - }); - }); - - it('search by query with no results', function () { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - helper.createSearchDbOverlay(map); - - var panel = new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - - panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "s1"; - - return panel.searchByQuery().then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.ok(testDiv.innerHTML.indexOf("s1") >= 0); - }); - }); - - - describe('createReactionElement', function () { - it('type in desc', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - var panel = new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - var reaction = helper.createReaction(map); - var reactionType = "XX TYPE"; - reaction.setType(reactionType); - - assert.ok(panel.createReactionElement(reaction).innerHTML.indexOf(reactionType) >= 0); - }); - }); - - describe('createAliasElement', function () { - it('default', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - var aliasObj = { - symbol: "S1_SYMBOL", - formerSymbols: [], - modelId: map.getId(), - synonyms: ["syn44"], - description: "DESCRIPTION", - type: "Simple molecule", - abbreviation: "ABBREVIATION", - name: "s1", - bounds: { - x: 170.0, - y: 171.5, - width: 70.0, - height: 25.0 - }, - formula: "FORMULA", - id: 380217, - references: [] - }; - var alias = new Alias(aliasObj); - - - var panel = new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - - var aliasDiv = panel.createAliasElement(alias); - assert.ok(aliasDiv.innerHTML); - }); - - - it('full name in desc', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - var panel = new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - var alias = helper.createAlias(map); - - alias.setFullName("xxx"); - assert.ok(panel.createAliasElement(alias).innerHTML.indexOf("Full name") >= 0); - - alias.setFullName(""); - assert.ok(panel.createAliasElement(alias).innerHTML.indexOf("Full name") === -1); - }); - }); - - describe('clear', function () { - it('input text', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - new GenericSearchPanel({ - element: testDiv, - customMap: map - }); - - $(".typeahead", testDiv)[0].value = "some input"; - return map.clearDbOverlays().then(function () { - assert.equal("", $(":input", testDiv)[0].value); - }); - }); - }); - - describe("getAutocomplete", function () { - it("without initialization", function () { - var panel = createPanel(); - - var t = panel.getAutocomplete("s"); - assert.ok(t); - assert.equal(t.length, 0); - }); - - it("after initialization", function () { - var panel = createPanel(); - - return panel.refreshSearchAutocomplete("s").then(function () { - var t = panel.getAutocomplete("s"); - assert.ok(t); - assert.ok(t.length > 0); - }); - }); - }); - - describe("computeAutocompleteDictionary", function () { - it("using prefixes", function () { - var queries = ["text 1", "text 2", "text 3", "alphabet"]; - var panel = createPanel(); - - var dictionary = panel.computeAutocompleteDictionary(queries); - assert.ok(dictionary); - assert.equal(dictionary["te"].length, 3); - }); - - it("using prefixes and inside", function () { - var queries = ["text 1", "text 2", "text 3", "alphabet", "unknown"]; - var panel = createPanel(); - - var dictionary = panel.computeAutocompleteDictionary(queries); - assert.ok(dictionary); - assert.equal(dictionary["t"].length, 4); - assert.equal(dictionary["t"][0], "text 1"); - assert.equal(dictionary["t"][3], "alphabet"); - }); - - it("function names as query list", function () { - var queries = ["-pop", "some", "map"]; - var panel = createPanel(); - - var dictionary = panel.computeAutocompleteDictionary(queries); - assert.ok(dictionary); - assert.equal(dictionary["p"].length, 2); - }); - - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var Alias = require('../../../../main/js/map/data/Alias'); +var GenericSearchPanel = require('../../../../main/js/gui/leftPanel/GenericSearchPanel'); +var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('GenericSearchPanel', function () { + var createPanel = function() { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + helper.createSearchDbOverlay(map); + + return new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + }; + + it('constructor', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + }); + + it('on searchResults changed', function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var searchDbOverlay = helper.createSearchDbOverlay(map); + + new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + + var searchParams = { + modelId: map.getModel().getId(), + coordinates: new google.maps.Point(457.51, 356.84), + zoom: 4 + }; + + return searchDbOverlay.searchByCoordinates(searchParams).then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.ok(testDiv.innerHTML.indexOf("Reaction") >= 0); + }); + }); + + it('on searchResults changed 2', function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var searchDbOverlay = helper.createSearchDbOverlay(map); + + new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + + return searchDbOverlay.searchByQuery("s1", false).then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.ok(testDiv.innerHTML.indexOf("s1") >= 0); + }); + }); + + it('search by query with no results', function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + helper.createSearchDbOverlay(map); + + var panel = new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + + panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "s1"; + + return panel.searchByQuery().then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.ok(testDiv.innerHTML.indexOf("s1") >= 0); + }); + }); + + + describe('createReactionElement', function () { + it('type in desc', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + var panel = new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + var reaction = helper.createReaction(map); + var reactionType = "XX TYPE"; + reaction.setType(reactionType); + + assert.ok(panel.createReactionElement(reaction).innerHTML.indexOf(reactionType) >= 0); + }); + }); + + describe('createAliasElement', function () { + it('default', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + var aliasObj = { + symbol: "S1_SYMBOL", + formerSymbols: [], + modelId: map.getId(), + synonyms: ["syn44"], + description: "DESCRIPTION", + type: "Simple molecule", + abbreviation: "ABBREVIATION", + name: "s1", + bounds: { + x: 170.0, + y: 171.5, + width: 70.0, + height: 25.0 + }, + formula: "FORMULA", + id: 380217, + references: [] + }; + var alias = new Alias(aliasObj); + + + var panel = new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + + var aliasDiv = panel.createAliasElement(alias); + assert.ok(aliasDiv.innerHTML); + }); + + + it('full name in desc', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + var panel = new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + var alias = helper.createAlias(map); + + alias.setFullName("xxx"); + assert.ok(panel.createAliasElement(alias).innerHTML.indexOf("Full name") >= 0); + + alias.setFullName(""); + assert.ok(panel.createAliasElement(alias).innerHTML.indexOf("Full name") === -1); + }); + }); + + describe('clear', function () { + it('input text', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + new GenericSearchPanel({ + element: testDiv, + customMap: map + }); + + $(".typeahead", testDiv)[0].value = "some input"; + return map.clearDbOverlays().then(function () { + assert.equal("", $(":input", testDiv)[0].value); + }); + }); + }); + + describe("getAutocomplete", function () { + it("without initialization", function () { + var panel = createPanel(); + + var t = panel.getAutocomplete("s"); + assert.ok(t); + assert.equal(t.length, 0); + }); + + it("after initialization", function () { + var panel = createPanel(); + + return panel.refreshSearchAutocomplete("s").then(function () { + var t = panel.getAutocomplete("s"); + assert.ok(t); + assert.ok(t.length > 0); + }); + }); + }); + + describe("computeAutocompleteDictionary", function () { + it("using prefixes", function () { + var queries = ["text 1", "text 2", "text 3", "alphabet"]; + var panel = createPanel(); + + var dictionary = panel.computeAutocompleteDictionary(queries); + assert.ok(dictionary); + assert.equal(dictionary["te"].length, 3); + }); + + it("using prefixes and inside", function () { + var queries = ["text 1", "text 2", "text 3", "alphabet", "unknown"]; + var panel = createPanel(); + + var dictionary = panel.computeAutocompleteDictionary(queries); + assert.ok(dictionary); + assert.equal(dictionary["t"].length, 4); + assert.equal(dictionary["t"][0], "text 1"); + assert.equal(dictionary["t"][3], "alphabet"); + }); + + it("function names as query list", function () { + var queries = ["-pop", "some", "map"]; + var panel = createPanel(); + + var dictionary = panel.computeAutocompleteDictionary(queries); + assert.ok(dictionary); + assert.equal(dictionary["p"].length, 2); + }); + + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js index c31b71809fb86bbd19dd6824ef8d395dde69e267..0b8d3520736d54720a2643a36ed2324a1ec71d13 100644 --- a/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/GuiUtils-test.js @@ -1,156 +1,156 @@ -"use strict"; - -require('../../mocha-config.js'); - -var Alias = require('../../../../main/js/map/data/Alias'); -var GuiUtils = require('../../../../main/js/gui/leftPanel/GuiUtils'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('GuiUtils', function () { - - it('constructor', function() { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - new GuiUtils(); - assert.equal(logger.getWarnings().length, 0); - }); - - it('default', function () { - var aliasObj = { - symbol : "S1_SYMBOL", - formerSymbols : [], - modelId : 15781, - synonyms : [ "syn44" ], - description : "DESCRIPTION", - type : "Simple molecule", - abbreviation : "ABBREVIATION", - name : "s1", - bounds : { - x : 170.0, - y : 171.5, - width : 70.0, - height : 25.0 - }, - formula: "FORMULA", - id: 380217, - references: [] - }; - var alias = new Alias(aliasObj); - - var map = helper.createCustomMap(); - map.getModel().setId(15781); - helper.createSearchDbOverlay(map); - - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); - - var aliasDiv = guiUtils.createAliasElement({ - alias: alias - }); - assert.ok(aliasDiv.innerHTML); - }); - - it('createLabelText for undefined', function () { - var map = helper.createCustomMap(); - - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); - - var res = guiUtils.createLabelText(); - assert.notOk(res.innerHTML); - }); - - it('createSubMapLink', function () { - var map = helper.createCustomMap(); - - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); - - var res = guiUtils.createSubMapLink("TEST", map.getId()); - assert.ok(res.innerHTML); - }); - - it('createPostTranslationalModifications', function () { - var alias = helper.createAlias(); - alias.setOther({ - "modifications": [{ - "name": "S63", - "state": "PHOSPHORYLATED" - }, { - "name": "S73", - "state": "PHOSPHORYLATED" - }, { - "name": "", - "state": "PHOSPHORYLATED" - }, { - "name": null, - "state": "PHOSPHORYLATED" - }] - }); - var utils = new GuiUtils(helper.getConfiguration()); - - var res = utils.createPostTranslationalModifications("label", alias.getOther("modifications")); - assert.ok(res.innerHTML); - assert.ok(res.innerHTML.indexOf("phosphorylated") >= 0); - }); - - describe('createReactionElement', function () { - it('type in desc', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); - - var reaction = helper.createReaction(map); - var reactionType = "XX TYPE"; - reaction.setType(reactionType); - - assert.ok(guiUtils.createReactionElement({ - reaction: reaction - }).innerHTML.indexOf(reactionType) >= 0); - }); - }); - - describe('createAliasElement', function () { - it('full name in desc', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - var guiUtils = new GuiUtils(); - guiUtils.setMap(map); - var alias = helper.createAlias(map); - - alias.setFullName("xxx"); - assert.ok(guiUtils.createAliasElement({ - alias: alias - }).innerHTML.indexOf("Full name") >= 0); - - alias.setFullName(""); - assert.ok(guiUtils.createAliasElement({ - alias: alias - }).innerHTML.indexOf("Full name") === -1); - }); - }); - - describe('createLink', function () { - it('normal', function () { - var guiUtils = new GuiUtils(); - var link = guiUtils.createLink("http://www.minerva.uni.lu", "PD map"); - assert.ok(link); - assert.equal(0, logger.getWarnings().length); - }); - - it('with null link', function () { - var guiUtils = new GuiUtils(); - var link = guiUtils.createLink(null, "PD map"); - assert.ok(link); - assert.ok(logger.getWarnings().length > 0); - }); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var Alias = require('../../../../main/js/map/data/Alias'); +var GuiUtils = require('../../../../main/js/gui/leftPanel/GuiUtils'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('GuiUtils', function () { + + it('constructor', function() { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + new GuiUtils(); + assert.equal(logger.getWarnings().length, 0); + }); + + it('default', function () { + var aliasObj = { + symbol : "S1_SYMBOL", + formerSymbols : [], + modelId : 15781, + synonyms : [ "syn44" ], + description : "DESCRIPTION", + type : "Simple molecule", + abbreviation : "ABBREVIATION", + name : "s1", + bounds : { + x : 170.0, + y : 171.5, + width : 70.0, + height : 25.0 + }, + formula: "FORMULA", + id: 380217, + references: [] + }; + var alias = new Alias(aliasObj); + + var map = helper.createCustomMap(); + map.getModel().setId(15781); + helper.createSearchDbOverlay(map); + + var guiUtils = new GuiUtils(); + guiUtils.setMap(map); + + var aliasDiv = guiUtils.createAliasElement({ + alias: alias + }); + assert.ok(aliasDiv.innerHTML); + }); + + it('createLabelText for undefined', function () { + var map = helper.createCustomMap(); + + var guiUtils = new GuiUtils(); + guiUtils.setMap(map); + + var res = guiUtils.createLabelText(); + assert.notOk(res.innerHTML); + }); + + it('createSubMapLink', function () { + var map = helper.createCustomMap(); + + var guiUtils = new GuiUtils(); + guiUtils.setMap(map); + + var res = guiUtils.createSubMapLink("TEST", map.getId()); + assert.ok(res.innerHTML); + }); + + it('createPostTranslationalModifications', function () { + var alias = helper.createAlias(); + alias.setOther({ + "modifications": [{ + "name": "S63", + "state": "PHOSPHORYLATED" + }, { + "name": "S73", + "state": "PHOSPHORYLATED" + }, { + "name": "", + "state": "PHOSPHORYLATED" + }, { + "name": null, + "state": "PHOSPHORYLATED" + }] + }); + var utils = new GuiUtils(helper.getConfiguration()); + + var res = utils.createPostTranslationalModifications("label", alias.getOther("modifications")); + assert.ok(res.innerHTML); + assert.ok(res.innerHTML.indexOf("phosphorylated") >= 0); + }); + + describe('createReactionElement', function () { + it('type in desc', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + var guiUtils = new GuiUtils(); + guiUtils.setMap(map); + + var reaction = helper.createReaction(map); + var reactionType = "XX TYPE"; + reaction.setType(reactionType); + + assert.ok(guiUtils.createReactionElement({ + reaction: reaction + }).innerHTML.indexOf(reactionType) >= 0); + }); + }); + + describe('createAliasElement', function () { + it('full name in desc', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + var guiUtils = new GuiUtils(); + guiUtils.setMap(map); + var alias = helper.createAlias(map); + + alias.setFullName("xxx"); + assert.ok(guiUtils.createAliasElement({ + alias: alias + }).innerHTML.indexOf("Full name") >= 0); + + alias.setFullName(""); + assert.ok(guiUtils.createAliasElement({ + alias: alias + }).innerHTML.indexOf("Full name") === -1); + }); + }); + + describe('createLink', function () { + it('normal', function () { + var guiUtils = new GuiUtils(); + var link = guiUtils.createLink("http://www.minerva.uni.lu", "PD map"); + assert.ok(link); + assert.equal(0, logger.getWarnings().length); + }); + + it('with null link', function () { + var guiUtils = new GuiUtils(); + var link = guiUtils.createLink(null, "PD map"); + assert.ok(link); + assert.ok(logger.getWarnings().length > 0); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/LeftPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/LeftPanel-test.js index a1157cfb8acfefab4d562d4732f5c12181daaf85..49e5d1811c9f9126f641863e9885e4512b86c2e2 100644 --- a/frontend-js/src/test/js/gui/leftPanel/LeftPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/LeftPanel-test.js @@ -1,160 +1,159 @@ -"use strict"; - -/* exported logger */ - -require('../../mocha-config.js'); - -var LeftPanel = require('../../../../main/js/gui/leftPanel/LeftPanel'); -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('LeftPanel', function () { - - it('constructor', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - helper.createDrugDbOverlay(map); - helper.createChemicalDbOverlay(map); - helper.createMiRnaDbOverlay(map); - - var panel = new LeftPanel({ - element: testDiv, - customMap: map - }); - - assert.equal(logger.getWarnings().length, 0); - - return panel.destroy(); - }); - - describe('prepareElementDetailsContent', function () { - it('for element', function () { - var map; - var panel; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - - helper.createSearchDbOverlay(map); - helper.createDrugDbOverlay(map); - helper.createChemicalDbOverlay(map); - helper.createMiRnaDbOverlay(map); - - panel = new LeftPanel({ - element: testDiv, - customMap: map - }); - - var element = new IdentifiedElement({ - id: 329163, - type: "ALIAS", - modelId: map.getId() - }); - return map.getModel().getByIdentifiedElement(element, true); - }).then(function (alias) { - var div = panel.prepareElementDetailsContent(alias); - assert.ok(div); - return panel.destroy(); - }); - }); - it('for point', function () { - var map; - var panel; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - - helper.createSearchDbOverlay(map); - helper.createDrugDbOverlay(map); - helper.createChemicalDbOverlay(map); - helper.createMiRnaDbOverlay(map); - - panel = new LeftPanel({ - element: testDiv, - customMap: map - }); - - var element = new IdentifiedElement({ - id: "(1.00,2.00)", - type: "POINT", - modelId: map.getId() - }); - return map.getModel().getByIdentifiedElement(element, true); - }).then(function (point) { - var div = panel.prepareElementDetailsContent(point); - assert.ok(div); - return panel.destroy(); - }); - }); - }); - - describe('showElementDetails', function () { - it('default', function () { - var map; - var panel; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - - helper.createSearchDbOverlay(map); - helper.createDrugDbOverlay(map); - helper.createChemicalDbOverlay(map); - helper.createMiRnaDbOverlay(map); - - panel = new LeftPanel({ - element: testDiv, - customMap: map - }); - - return panel.init(); - }).then(function () { - - var element = new IdentifiedElement({ - id: 329163, - type: "ALIAS", - modelId: map.getId() - }); - return map.getModel().getByIdentifiedElement(element, true); - }).then(function (alias) { - return panel.showElementDetails(alias); - }).then(function () { - assert.notOk($(panel.elementInfoDiv).dialog('isOpen')); - return panel.destroy(); - }); - }); - - it('when panel is hidden', function () { - var map; - var panel; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - - helper.createSearchDbOverlay(map); - helper.createDrugDbOverlay(map); - helper.createChemicalDbOverlay(map); - helper.createMiRnaDbOverlay(map); - - panel = new LeftPanel({ - element: testDiv, - customMap: map - }); - return panel.init(); - }).then(function () { - panel.hide(); - - var element = new IdentifiedElement({ - id: 329163, - type: "ALIAS", - modelId: map.getId() - }); - return map.getModel().getByIdentifiedElement(element, true); - }).then(function (alias) { - return panel.showElementDetails(alias); - }).then(function () { - assert.notOk($(panel.elementInfoDiv).dialog('isOpen')); - return panel.destroy(); - }); - }); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var LeftPanel = require('../../../../main/js/gui/leftPanel/LeftPanel'); +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var ServerConnector = require('../../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('LeftPanel', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + helper.createDrugDbOverlay(map); + helper.createChemicalDbOverlay(map); + helper.createMiRnaDbOverlay(map); + + var panel = new LeftPanel({ + element: testDiv, + customMap: map + }); + + assert.equal(logger.getWarnings().length, 0); + + return panel.destroy(); + }); + + describe('prepareElementDetailsContent', function () { + it('for element', function () { + var map; + var panel; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + helper.createSearchDbOverlay(map); + helper.createDrugDbOverlay(map); + helper.createChemicalDbOverlay(map); + helper.createMiRnaDbOverlay(map); + + panel = new LeftPanel({ + element: testDiv, + customMap: map + }); + + var element = new IdentifiedElement({ + id: 329163, + type: "ALIAS", + modelId: map.getId() + }); + return map.getModel().getByIdentifiedElement(element, true); + }).then(function (alias) { + var div = panel.prepareElementDetailsContent(alias); + assert.ok(div); + return panel.destroy(); + }); + }); + it('for point', function () { + var map; + var panel; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + helper.createSearchDbOverlay(map); + helper.createDrugDbOverlay(map); + helper.createChemicalDbOverlay(map); + helper.createMiRnaDbOverlay(map); + + panel = new LeftPanel({ + element: testDiv, + customMap: map + }); + + var element = new IdentifiedElement({ + id: "(1.00,2.00)", + type: "POINT", + modelId: map.getId() + }); + return map.getModel().getByIdentifiedElement(element, true); + }).then(function (point) { + var div = panel.prepareElementDetailsContent(point); + assert.ok(div); + return panel.destroy(); + }); + }); + }); + + describe('showElementDetails', function () { + it('default', function () { + var map; + var panel; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + helper.createSearchDbOverlay(map); + helper.createDrugDbOverlay(map); + helper.createChemicalDbOverlay(map); + helper.createMiRnaDbOverlay(map); + + panel = new LeftPanel({ + element: testDiv, + customMap: map + }); + + return panel.init(); + }).then(function () { + + var element = new IdentifiedElement({ + id: 329163, + type: "ALIAS", + modelId: map.getId() + }); + return map.getModel().getByIdentifiedElement(element, true); + }).then(function (alias) { + return panel.showElementDetails(alias); + }).then(function () { + assert.notOk($(panel.elementInfoDiv).dialog('isOpen')); + return panel.destroy(); + }); + }); + + it('when panel is hidden', function () { + var map; + var panel; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + helper.createSearchDbOverlay(map); + helper.createDrugDbOverlay(map); + helper.createChemicalDbOverlay(map); + helper.createMiRnaDbOverlay(map); + + panel = new LeftPanel({ + element: testDiv, + customMap: map + }); + return panel.init(); + }).then(function () { + panel.hide(); + + var element = new IdentifiedElement({ + id: 329163, + type: "ALIAS", + modelId: map.getId() + }); + return map.getModel().getByIdentifiedElement(element, true); + }).then(function (alias) { + return panel.showElementDetails(alias); + }).then(function () { + assert.notOk($(panel.elementInfoDiv).dialog('isOpen')); + return panel.destroy(); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js index c930db68d6c76ecb7872b12e94459a6b1e1f2787..a67a2d3dbf559be7372821c87b6fff1cdbaee94c 100644 --- a/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/MiRnaPanel-test.js @@ -1,96 +1,96 @@ -"use strict"; - -require('../../mocha-config.js'); - -var MiRna = require('../../../../main/js/map/data/MiRna'); -var MiRnaPanel = require('../../../../main/js/gui/leftPanel/MiRnaPanel'); -var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('MiRnaPanel', function () { - function createPanel() { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - helper.createMiRnaDbOverlay(map); - - return new MiRnaPanel({ - element: testDiv, - customMap: map - }); - - } - - it('constructor', function () { - var map = helper.createCustomMap(); - helper.createMiRnaDbOverlay(map); - - new MiRnaPanel({ - element: testDiv, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - }); - - it('create MiRnaPanel for empty', function () { - var map = helper.createCustomMap(); - helper.createMiRnaDbOverlay(map); - - var panel = new MiRnaPanel({ - element: testDiv, - customMap: map - }); - - assert.ok(panel.createPreamble().innerHTML.indexOf("NOT FOUND") > 0); - }); - - it('create MiRnaPanel for empty MiRna', function () { - var map = helper.createCustomMap(); - helper.createMiRnaDbOverlay(map); - - var panel = new MiRnaPanel({ - element: testDiv, - customMap: map - }); - - assert.ok(panel.createPreamble(new MiRna()).innerHTML.indexOf("NOT FOUND") > 0); - }); - - it('on searchResults changed', function () { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var miRnaDbOverlay = helper.createMiRnaDbOverlay(map); - - new MiRnaPanel({ - element: testDiv, - customMap: map - }); - - return miRnaDbOverlay.searchByQuery("hsa-miR-125a-3p").then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.ok(testDiv.innerHTML.indexOf("hsa-miR-125a-3p") >= 0); - }); - }); - - it('searchByQuery', function () { - var panel = createPanel(); - - panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "hsa-miR-125a-3p"; - - return panel.searchByQuery().then(function () { - assert.equal(logger.getWarnings().length, 0); - assert.ok(testDiv.innerHTML.indexOf("http://www.mirbase.org/cgi-bin/mirna_entry.pl?acc") >= 0); - }); - }); - - it("refreshSearchAutocomplete", function () { - var panel = createPanel(); - - return panel.refreshSearchAutocomplete("s").then(function (data) { - assert.ok(data); - }); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var MiRna = require('../../../../main/js/map/data/MiRna'); +var MiRnaPanel = require('../../../../main/js/gui/leftPanel/MiRnaPanel'); +var PanelControlElementType = require('../../../../main/js/gui/PanelControlElementType'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('MiRnaPanel', function () { + function createPanel() { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + helper.createMiRnaDbOverlay(map); + + return new MiRnaPanel({ + element: testDiv, + customMap: map + }); + + } + + it('constructor', function () { + var map = helper.createCustomMap(); + helper.createMiRnaDbOverlay(map); + + new MiRnaPanel({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + }); + + it('create MiRnaPanel for empty', function () { + var map = helper.createCustomMap(); + helper.createMiRnaDbOverlay(map); + + var panel = new MiRnaPanel({ + element: testDiv, + customMap: map + }); + + assert.ok(panel.createPreamble().innerHTML.indexOf("NOT FOUND") > 0); + }); + + it('create MiRnaPanel for empty MiRna', function () { + var map = helper.createCustomMap(); + helper.createMiRnaDbOverlay(map); + + var panel = new MiRnaPanel({ + element: testDiv, + customMap: map + }); + + assert.ok(panel.createPreamble(new MiRna()).innerHTML.indexOf("NOT FOUND") > 0); + }); + + it('on searchResults changed', function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var miRnaDbOverlay = helper.createMiRnaDbOverlay(map); + + new MiRnaPanel({ + element: testDiv, + customMap: map + }); + + return miRnaDbOverlay.searchByQuery("hsa-miR-125a-3p").then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.ok(testDiv.innerHTML.indexOf("hsa-miR-125a-3p") >= 0); + }); + }); + + it('searchByQuery', function () { + var panel = createPanel(); + + panel.getControlElement(PanelControlElementType.SEARCH_INPUT).value = "hsa-miR-125a-3p"; + + return panel.searchByQuery().then(function () { + assert.equal(logger.getWarnings().length, 0); + assert.ok(testDiv.innerHTML.indexOf("http://www.mirbase.org/cgi-bin/mirna_entry.pl?acc") >= 0); + }); + }); + + it("refreshSearchAutocomplete", function () { + var panel = createPanel(); + + return panel.refreshSearchAutocomplete("s").then(function (data) { + assert.ok(data); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js index b6faaa7c7aa0fe615aeac69b9e20b88ab10a5929..780cfe10c2fafc31c2097e979532e46d9982f8a9 100644 --- a/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/OverlayPanel-test.js @@ -1,108 +1,108 @@ -"use strict"; - -require('../../mocha-config.js'); - -var OverlayPanel = require('../../../../main/js/gui/leftPanel/OverlayPanel'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('OverlayPanel', function () { - - it('constructor', function () { - var map = helper.createCustomMap(); - - new OverlayPanel({ - element: testDiv, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - }); - - it('refresh', function () { - var map = helper.createCustomMap(); - - var panel = new OverlayPanel({ - element: testDiv, - customMap: map - }); - - return panel.refresh().then(function () { - assert.ok(panel.getElement().innerHTML.indexOf("testLayout") >= 0); - assert.ok(panel.getElement().innerHTML.indexOf("YOU ARE NOT LOGGED") >= 0); - }); - }); - - it('createRow', function () { - var map = helper.createCustomMap(); - - var overlay = helper.createLayout(); - overlay.setInputDataAvailable(true); - overlay.setCreator("me"); - map.getModel().addLayout(overlay); - - var panel = new OverlayPanel({ - element: testDiv, - customMap: map - }); - - var row = panel.createOverlayRow(overlay); - assert.ok(row); - - var buttons = row.getElementsByTagName("button"); - var openButton = null; - for (var i = 0; i < buttons.length; i++) { - var name = buttons[i].getAttribute("name"); - if (name !== undefined && name.indexOf("editButton") >= 0) { - openButton = buttons[i]; - } - } - assert.ok(openButton); - openButton.onclick(); - return panel.destroy(); - }); - it('download', function () { - var map = helper.createCustomMap(); - - var overlay = helper.createLayout(); - overlay.setInputDataAvailable(true); - map.getModel().addLayout(overlay); - - var panel = new OverlayPanel({ - element: testDiv, - customMap: map - }); - - return panel.refresh().then(function () { - var buttons = panel.getElement().getElementsByTagName("button"); - var downloadButton; - for (var i = 0; i < buttons.length; i++) { - var name = buttons[i].getAttribute("name"); - if (name !== undefined && name !== null && name.indexOf("download-overlay") >= 0) { - downloadButton = buttons[i]; - } - } - assert.ok(downloadButton); - assert.notOk(panel.getLastDownloadUrl()); - return downloadButton.onclick(); - }).then(function () { - assert.ok(panel.getLastDownloadUrl()); - }); - }); - - it('openAddOverlayDialog', function () { - var map = helper.createCustomMap(); - - var panel = new OverlayPanel({ - element: testDiv, - customMap: map - }); - - return panel.openAddOverlayDialog().then(function () { - return panel.destroy(); - }); - }); - - -}); +"use strict"; + +require('../../mocha-config.js'); + +var OverlayPanel = require('../../../../main/js/gui/leftPanel/OverlayPanel'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('OverlayPanel', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + + new OverlayPanel({ + element: testDiv, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + }); + + it('refresh', function () { + var map = helper.createCustomMap(); + + var panel = new OverlayPanel({ + element: testDiv, + customMap: map + }); + + return panel.refresh().then(function () { + assert.ok(panel.getElement().innerHTML.indexOf("testLayout") >= 0); + assert.ok(panel.getElement().innerHTML.indexOf("YOU ARE NOT LOGGED") >= 0); + }); + }); + + it('createRow', function () { + var map = helper.createCustomMap(); + + var overlay = helper.createLayout(); + overlay.setInputDataAvailable(true); + overlay.setCreator("me"); + map.getModel().addLayout(overlay); + + var panel = new OverlayPanel({ + element: testDiv, + customMap: map + }); + + var row = panel.createOverlayRow(overlay); + assert.ok(row); + + var buttons = row.getElementsByTagName("button"); + var openButton = null; + for (var i = 0; i < buttons.length; i++) { + var name = buttons[i].getAttribute("name"); + if (name !== undefined && name.indexOf("editButton") >= 0) { + openButton = buttons[i]; + } + } + assert.ok(openButton); + openButton.onclick(); + return panel.destroy(); + }); + it('download', function () { + var map = helper.createCustomMap(); + + var overlay = helper.createLayout(); + overlay.setInputDataAvailable(true); + map.getModel().addLayout(overlay); + + var panel = new OverlayPanel({ + element: testDiv, + customMap: map + }); + + return panel.refresh().then(function () { + var buttons = panel.getElement().getElementsByTagName("button"); + var downloadButton; + for (var i = 0; i < buttons.length; i++) { + var name = buttons[i].getAttribute("name"); + if (name !== undefined && name !== null && name.indexOf("download-overlay") >= 0) { + downloadButton = buttons[i]; + } + } + assert.ok(downloadButton); + assert.notOk(panel.getLastDownloadUrl()); + return downloadButton.onclick(); + }).then(function () { + assert.ok(panel.getLastDownloadUrl()); + }); + }); + + it('openAddOverlayDialog', function () { + var map = helper.createCustomMap(); + + var panel = new OverlayPanel({ + element: testDiv, + customMap: map + }); + + return panel.openAddOverlayDialog().then(function () { + return panel.destroy(); + }); + }); + + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/ProjectInfoPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/ProjectInfoPanel-test.js index a8257cf7e4291d74d7d3eec82d91d0244d827069..444ca6c6e8c710b9c6634bc02249d2028aa08b78 100644 --- a/frontend-js/src/test/js/gui/leftPanel/ProjectInfoPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/ProjectInfoPanel-test.js @@ -1,86 +1,87 @@ -"use strict"; - -require('../../mocha-config.js'); - -var ProjectInfoPanel = require('../../../../main/js/gui/leftPanel/ProjectInfoPanel'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('ProjectInfoPanel', function () { - - it('constructor', function () { - var div = testDiv; - - var map = helper.createCustomMap(); - - var panel = new ProjectInfoPanel({ - element: div, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - panel.destroy(); - }); - - it('refresh', function () { - var div = testDiv; - var panel = new ProjectInfoPanel({ - element: div, - customMap: helper.createCustomMap(), - }); - return panel.refresh().then(function () { - assert.ok(div.innerHTML.indexOf("UNKNOWN DISEASE MAP") >= 0); - return panel.destroy(); - }); - }); - - it('download source', function () { - var div = testDiv; - var panel = new ProjectInfoPanel({ - element: div, - customMap: helper.createCustomMap(), - }); - return panel.downloadSourceFile().then(function () { - return panel.destroy(); - }); - }); - - it('open manual', function () { - var div = testDiv; - var panel = new ProjectInfoPanel({ - element: div, - customMap: helper.createCustomMap(), - }); - return $("[name='manualLink']", $(div))[0].onclick().then(function () { - return panel.destroy(); - }); - }); - - it('show publication list', function () { - var panel; - return ServerConnector.getProject().then(function (project) { - panel = new ProjectInfoPanel({ - element: testDiv, - customMap: helper.createCustomMap(project), - }); - return panel.showPublicationListDialog(); - }).then(function () { - return panel.destroy(); - }); - }); - - it('show profile', function () { - var map = helper.createCustomMap(); - - var panel = new ProjectInfoPanel({ - element: testDiv, - customMap: map - }); - - var user = helper.createUser(); - panel.showUserProfilePage(user); - panel.destroy(); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var ProjectInfoPanel = require('../../../../main/js/gui/leftPanel/ProjectInfoPanel'); +var ServerConnector = require('../../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('ProjectInfoPanel', function () { + + it('constructor', function () { + var div = testDiv; + + var map = helper.createCustomMap(); + + var panel = new ProjectInfoPanel({ + element: div, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + panel.destroy(); + }); + + it('refresh', function () { + var div = testDiv; + var panel = new ProjectInfoPanel({ + element: div, + customMap: helper.createCustomMap() + }); + return panel.refresh().then(function () { + assert.ok(div.innerHTML.indexOf("UNKNOWN DISEASE MAP") >= 0); + return panel.destroy(); + }); + }); + + it('download source', function () { + var div = testDiv; + var panel = new ProjectInfoPanel({ + element: div, + customMap: helper.createCustomMap() + }); + return panel.downloadSourceFile().then(function () { + return panel.destroy(); + }); + }); + + it('open manual', function () { + var div = testDiv; + var panel = new ProjectInfoPanel({ + element: div, + customMap: helper.createCustomMap() + }); + return $("[name='manualLink']", $(div))[0].onclick().then(function () { + return panel.destroy(); + }); + }); + + it('show publication list', function () { + var panel; + return ServerConnector.getProject().then(function (project) { + panel = new ProjectInfoPanel({ + element: testDiv, + customMap: helper.createCustomMap(project) + }); + return panel.showPublicationListDialog(); + }).then(function () { + return panel.destroy(); + }); + }); + + it('show profile', function () { + var map = helper.createCustomMap(); + + var panel = new ProjectInfoPanel({ + element: testDiv, + customMap: map + }); + + var user = helper.createUser(); + panel.showUserProfilePage(user); + panel.destroy(); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js b/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js index dc9d95fd5ce1e42c52531699f340fe871724302f..e970c7b7f0064e039cbb703fb6d163dacca262b1 100644 --- a/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/PublicationListDialog-test.js @@ -1,50 +1,51 @@ -"use strict"; - -require('../../mocha-config.js'); - -var PublicationListDialog = require('../../../../main/js/gui/leftPanel/PublicationListDialog'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('PublicationListDialog', function () { - - it('constructor', function () { - var div = testDiv; - - var map = helper.createCustomMap(); - - var dialog = new PublicationListDialog({ - element: div, - customMap: map - }); - assert.equal(logger.getWarnings().length, 0); - - dialog.destroy(); - }); - - it('_dataTableAjaxCall', function () { - var dialog; - var callbackCalled = false; - return ServerConnector.getProject().then(function (project) { - dialog = new PublicationListDialog({ - element: testDiv, - customMap: helper.createCustomMap(project), - }); - return dialog._dataTableAjaxCall({ - start: 0, - length: 10, - order: [{column: 0, dir: 'asc'}], - search: {value: '', regex: false} - }, function () { - callbackCalled = true; - }); - }).then(function () { - assert.ok(callbackCalled); - }).finally(function () { - dialog.destroy(); - }); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var PublicationListDialog = require('../../../../main/js/gui/leftPanel/PublicationListDialog'); +var ServerConnector = require('../../ServerConnector-mock'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('PublicationListDialog', function () { + + it('constructor', function () { + var div = testDiv; + + var map = helper.createCustomMap(); + + var dialog = new PublicationListDialog({ + element: div, + customMap: map + }); + assert.equal(logger.getWarnings().length, 0); + + dialog.destroy(); + }); + + it('_dataTableAjaxCall', function () { + var dialog; + var callbackCalled = false; + return ServerConnector.getProject().then(function (project) { + dialog = new PublicationListDialog({ + element: testDiv, + customMap: helper.createCustomMap(project) + }); + return dialog._dataTableAjaxCall({ + start: 0, + length: 10, + order: [{column: 0, dir: 'asc'}], + search: {value: '', regex: false} + }, function () { + callbackCalled = true; + }); + }).then(function () { + assert.ok(callbackCalled); + }).finally(function () { + dialog.destroy(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js index ce0bddc904e7c91896c4c3729169e7fb2d8184ab..c2f34d7c1147f49e08deada88192c9eaffd76a1d 100644 --- a/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js +++ b/frontend-js/src/test/js/gui/leftPanel/SubmapPanel-test.js @@ -1,32 +1,32 @@ -"use strict"; - -require('../../mocha-config.js'); - -var SubmapPanel = require('../../../../main/js/gui/leftPanel/SubmapPanel'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('SubmapPanel', function() { - - it('constructor', function() { - var div = document.createElement("div"); - - var map = helper.createCustomMap(); - - new SubmapPanel({ - element : div, - customMap : map, - parent : { - getMap : function() { - return map; - } - } - }); - assert.equal(logger.getWarnings().length, 0); - var buttons = div.getElementsByTagName("button"); - assert.equal(buttons.length, 1); - }); - -}); +"use strict"; + +require('../../mocha-config.js'); + +var SubmapPanel = require('../../../../main/js/gui/leftPanel/SubmapPanel'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('SubmapPanel', function() { + + it('constructor', function() { + var div = document.createElement("div"); + + var map = helper.createCustomMap(); + + new SubmapPanel({ + element : div, + customMap : map, + parent : { + getMap : function() { + return map; + } + } + }); + assert.equal(logger.getWarnings().length, 0); + var buttons = div.getElementsByTagName("button"); + assert.equal(buttons.length, 1); + }); + +}); diff --git a/frontend-js/src/test/js/gui/topMenu/TopMenu-test.js b/frontend-js/src/test/js/gui/topMenu/TopMenu-test.js index 65831942a8c30833c472234af814947229b8a566..a09060318b5b5c00e21ce577d4d1e0092ad4b9c6 100644 --- a/frontend-js/src/test/js/gui/topMenu/TopMenu-test.js +++ b/frontend-js/src/test/js/gui/topMenu/TopMenu-test.js @@ -1,58 +1,58 @@ -"use strict"; - -/* exported logger */ - -require('../../mocha-config.js'); - -var Legend = require('../../../../main/js/gui/Legend'); -var TopMenu = require('../../../../main/js/gui/topMenu/TopMenu'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('TopMenu', function () { - - it('constructor', function () { - var map = helper.createCustomMap(); - - new TopMenu({ - element: testDiv, - customMap: map - }); - - assert.equal(logger.getWarnings().length, 0); - - }); - - it('init', function () { - var map = helper.createCustomMap(); - - var topMenu = new TopMenu({ - element: testDiv, - customMap: map - }); - - return topMenu.init(); - - }); - - it('toggleLegend', function () { - var map = helper.createCustomMap(); - - var topMenu = new TopMenu({ - element: testDiv, - customMap: map - }); - var legend = new Legend({element: document.createElement("div"), customMap: map}); - topMenu.setLegend(legend); - return topMenu.init().then(function () { - $("input", testDiv).prop('checked', true); - return topMenu.toggleLegend(); - }).then(function () { - $("input", testDiv).prop('checked', false); - return topMenu.toggleLegend(); - }); - }); - -}); +"use strict"; + +/* exported logger */ + +require('../../mocha-config.js'); + +var Legend = require('../../../../main/js/gui/Legend'); +var TopMenu = require('../../../../main/js/gui/topMenu/TopMenu'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('TopMenu', function () { + + it('constructor', function () { + var map = helper.createCustomMap(); + + new TopMenu({ + element: testDiv, + customMap: map + }); + + assert.equal(logger.getWarnings().length, 0); + + }); + + it('init', function () { + var map = helper.createCustomMap(); + + var topMenu = new TopMenu({ + element: testDiv, + customMap: map + }); + + return topMenu.init(); + + }); + + it('toggleLegend', function () { + var map = helper.createCustomMap(); + + var topMenu = new TopMenu({ + element: testDiv, + customMap: map + }); + var legend = new Legend({element: document.createElement("div"), customMap: map}); + topMenu.setLegend(legend); + return topMenu.init().then(function () { + $("input", testDiv).prop('checked', true); + return topMenu.toggleLegend(); + }).then(function () { + $("input", testDiv).prop('checked', false); + return topMenu.toggleLegend(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/logger.js b/frontend-js/src/test/js/logger.js index 16d8ec5eb303cffab9a651d2c5acdd907a7fc002..7b094496d7202066767d66b6d01ad6958ef4a9ac 100644 --- a/frontend-js/src/test/js/logger.js +++ b/frontend-js/src/test/js/logger.js @@ -1,61 +1,61 @@ -"use strict"; - -var log4js = require('log4js'); - -var $depth = 10; - -log4js.configure({ - appenders : [ { - type : "console", - layout : { - type : "pattern", - pattern : "%[%p {%x{ln}} -%]\t%m", - tokens : { - ln : function() { - // The caller: - var filePath = (new Error()).stack.split("\n")[$depth].split("\\"); - filePath = filePath[filePath.length - 1].split("/"); - return filePath[filePath.length - 1]; - } - } - } - } ] -}); -var appender = require('log4js-memory-appender'); - -var memAppender = appender({ - maxBufferSize : 1000 -}); - -log4js.loadAppender('memory', memAppender); -log4js.addAppender(log4js.appenders.memory()); - -var logger = log4js.getLogger(); -logger.getEvents = function() { - return memAppender.getBuffer(); -}; -logger.getErrors = function() { - var result = []; - for (var i = 0; i < memAppender.getBuffer().length; i++) { - var message = memAppender.getBuffer()[i]; - if (message.indexOf("[ERROR]") !== -1) { - result.push(message); - } - } - return result; -}; -logger.getWarnings = function() { - var result = []; - for (var i = 0; i < memAppender.getBuffer().length; i++) { - var message = memAppender.getBuffer()[i]; - if (message.indexOf("[WARN]") !== -1) { - result.push(message); - } - } - return result; -}; -logger.flushBuffer = function() { - return memAppender.flushBuffer(); -}; - -module.exports = logger; +"use strict"; + +var log4js = require('log4js'); + +var $depth = 10; + +log4js.configure({ + appenders : [ { + type : "console", + layout : { + type : "pattern", + pattern : "%[%p {%x{ln}} -%]\t%m", + tokens : { + ln : function() { + // The caller: + var filePath = (new Error()).stack.split("\n")[$depth].split("\\"); + filePath = filePath[filePath.length - 1].split("/"); + return filePath[filePath.length - 1]; + } + } + } + } ] +}); +var appender = require('log4js-memory-appender'); + +var memAppender = appender({ + maxBufferSize : 1000 +}); + +log4js.loadAppender('memory', memAppender); +log4js.addAppender(log4js.appenders.memory()); + +var logger = log4js.getLogger(); +logger.getEvents = function() { + return memAppender.getBuffer(); +}; +logger.getErrors = function() { + var result = []; + for (var i = 0; i < memAppender.getBuffer().length; i++) { + var message = memAppender.getBuffer()[i]; + if (message.indexOf("[ERROR]") !== -1) { + result.push(message); + } + } + return result; +}; +logger.getWarnings = function() { + var result = []; + for (var i = 0; i < memAppender.getBuffer().length; i++) { + var message = memAppender.getBuffer()[i]; + if (message.indexOf("[WARN]") !== -1) { + result.push(message); + } + } + return result; +}; +logger.flushBuffer = function() { + return memAppender.flushBuffer(); +}; + +module.exports = logger; diff --git a/frontend-js/src/test/js/map/AbstractCustomMap-test.js b/frontend-js/src/test/js/map/AbstractCustomMap-test.js index 31a38dc20a8a155713a7fde860ab78f8ceda32a7..dd47b2ed9e6b7103b8d4c5baf82ada4db56d3042 100644 --- a/frontend-js/src/test/js/map/AbstractCustomMap-test.js +++ b/frontend-js/src/test/js/map/AbstractCustomMap-test.js @@ -1,338 +1,338 @@ -"use strict"; - -var Promise = require("bluebird"); - -var AliasMarker = require('../../../main/js/map/marker/AliasMarker'); -var AliasSurface = require('../../../main/js/map/surface/AliasSurface'); -var AbstractCustomMap = require('../../../main/js/map/AbstractCustomMap'); -var IdentifiedElement = require('../../../main/js/map/data/IdentifiedElement'); - -var chai = require('chai'); -var assert = chai.assert; - -var logger = require("../logger"); - -describe('AbstractCustomMap', function() { - it("Constructor", function() { - var model = helper.createModel(); - var options = helper.createCustomMapOptions(); - - var mockObject = new AbstractCustomMap(model, options); - - assert.ok(mockObject.getId()); - assert.ok(mockObject.getModel()); - assert.ok(mockObject.getSelectedLayoutOverlays()); - - assert.ok(mockObject.pixelOrigin_); - assert.ok(mockObject.pixelsPerLonDegree_); - assert.ok(mockObject.pixelsPerLonRadian_); - assert.ok(mockObject.zoomFactor); - - assert.equal(mockObject.getAliasInfoWindowById(-1), null); - assert.equal(mockObject.getPointInfoWindowById(-1), null); - assert.equal(mockObject.getReactionInfoWindowById(-1), null); - - assert.equal(logger.getWarnings().length, 0); - }); - - it("setupLayouts", function() { - var model = helper.createModel(); - var layout = model.getLayouts()[0]; - var options = helper.createCustomMapOptions(); - - var mockObject = new AbstractCustomMap(model, options); - - var googleMap = helper.createGoogleMap(); - - mockObject.setGoogleMap(googleMap); - - mockObject.setupLayouts(); - assert.ok(mockObject.getGoogleMap().getMapTypeId().indexOf(layout.getId()) >= 0); - }); - - it("createMapOptions", function() { - var mockObject = helper.createCustomMap(); - assert.ok(mockObject.createMapOptions()); - - }); - - it("createTypeOptions", function() { - var layoutId = 40; - var layoutName = 'some layout name'; - var layoutDirectory = 'dire45'; - - var model = helper.createModel(); - var layoutDataObj = { - idObject : layoutId, - name : layoutName, - directory : layoutDirectory - }; - model.addLayout(layoutDataObj); - - var options = helper.createCustomMapOptions(); - - var mockObject = new AbstractCustomMap(model, options); - - var result = mockObject.createTypeOptions(layoutDataObj); - - assert.ok(result); - - }); - - it("setMaxZoomLevel", function() { - var model = helper.createModel(); - var options = helper.createCustomMapOptions(); - - model.setMaxZoom(4); - - var mockObject = new AbstractCustomMap(model, options); - - var googleMap = helper.createGoogleMap(); - - mockObject.setGoogleMap(googleMap); - mockObject.setMaxZoomLevel(); - - assert.equal(model.getMaxZoom(), mockObject.getGoogleMap().getZoom()); - }); - - it("getMouseLatLng", function() { - var model = helper.createModel(); - var options = helper.createCustomMapOptions(); - - model.setMaxZoom(4); - - var mockObject = new AbstractCustomMap(model, options); - - var googleMap = new google.maps.Map(testDiv, {}); - googleMap.setCenter(new google.maps.LatLng(1, 2)); - - mockObject.setGoogleMap(googleMap); - - var coordinates = mockObject.getMouseLatLng(); - - assert.ok(coordinates); - assert.ok(coordinates instanceof google.maps.LatLng); - }); - - it("fromPixelsToPoint 1", function() { - var model = helper.createModel(); - var options = helper.createCustomMapOptions(); - - model.setWidth(256); - model.setHeight(256); - model.setMinZoom(2); - model.setMaxZoom(2); - - var mockObject = new AbstractCustomMap(model, options); - - var pointDist = { - x : 120, - y : 140 - }; - - var normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 2); - - assert.ok(normalizedPoint); - assert.equal(normalizedPoint.x, pointDist.x); - assert.equal(normalizedPoint.y, pointDist.y); - - }); - - it("fromPixelsToPoint 2", function() { - var model = helper.createModel(); - var options = helper.createCustomMapOptions(); - - model.setWidth(512); - model.setHeight(512); - model.setMinZoom(2); - model.setMaxZoom(3); - - var mockObject = new AbstractCustomMap(model, options); - - var pointDist = { - x : 120, - y : 140 - }; - - var normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 2); - - assert.ok(normalizedPoint); - assert.equal(2 * pointDist.x, normalizedPoint.x); - assert.equal(2 * pointDist.y, normalizedPoint.y); - - normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 3); - - assert.ok(normalizedPoint); - assert.equal(pointDist.x, normalizedPoint.x); - assert.equal(pointDist.y, normalizedPoint.y); - - }); - - it("fromPixelsToPoint 3", function() { - var model = helper.createModel(); - var options = helper.createCustomMapOptions(); - - model.setWidth(512); - model.setHeight(512); - model.setMinZoom(0); - model.setMaxZoom(3); - - var mockObject = new AbstractCustomMap(model, options); - - var pointDist = { - x : 120, - y : 140 - }; - - var normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 2); - - assert.ok(normalizedPoint); - assert.equal(0.5 * pointDist.x, normalizedPoint.x); - assert.equal(0.5 * pointDist.y, normalizedPoint.y); - - normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 3); - - assert.ok(normalizedPoint); - assert.equal(0.25 * pointDist.x, normalizedPoint.x); - assert.equal(0.25 * pointDist.y, normalizedPoint.y); - - }); - - it("registerMapClickEvents", function() { - var mockObject = helper.createAbstractCustomMap(); - - var googleMap = new google.maps.Map(testDiv, {}); - - mockObject.setGoogleMap(googleMap); - // mock function to not put error log on console - mockObject.getTopMap = function() { - return null; - }; - - mockObject.registerMapClickEvents(); - }); - - it("latLngToTile", function() { - var mockObject = helper.createAbstractCustomMap(); - - var latLng = new google.maps.LatLng(0, 1); - - var tileCoordinates = mockObject.latLngToTile(latLng, 3); - assert.ok(tileCoordinates); - assert.ok(tileCoordinates instanceof google.maps.Point); - - }); - - it("_turnOnOffDrawing", function() { - var mockObject = helper.createAbstractCustomMap(); - - var googleMap = new google.maps.Map(testDiv, {}); - - mockObject.setGoogleMap(googleMap); - - // mock function to not put error log on console - mockObject.getTopMap = function() { - return null; - }; - - assert.equal(mockObject.isDrawingOn(), false); - mockObject._turnOnOffDrawing(); - assert.ok(mockObject.isDrawingOn()); - mockObject._turnOnOffDrawing(); - assert.equal(mockObject.isDrawingOn(), false); - }); - - it("areaToString", function() { - var mockObject = helper.createAbstractCustomMap(); - - var triangleCoordinates = [ new google.maps.LatLng(25.774, -80.190), new google.maps.LatLng(18.466, -66.118), - new google.maps.LatLng(32.321, -64.757), new google.maps.LatLng(25.774, -80.190), ]; - - // Construct the polygon. - var bermudaTriangle = new google.maps.Polygon({ - paths : triangleCoordinates, - strokeColor : '#FF0000', - strokeOpacity : 0.8, - strokeWeight : 2, - fillColor : '#FF0000', - fillOpacity : 0.35 - }); - - assert.ok(mockObject.areaToString(bermudaTriangle)); - - }); - - it("Point - Lat,Lng conversion", function() { - - var mockObject = helper.createAbstractCustomMap(); - - var x = 19920; - var y = 11040; - var point = new google.maps.Point(x, y); - - var coordinates = mockObject.fromPointToLatLng(point); - - var point2 = mockObject.fromLatLngToPoint(coordinates); - - assert.closeTo(point2.x, point.x, 0.5, "X coordinate is invalid after transformation"); - assert.closeTo(point2.y, point.y, 0.5, "Y coordinate is invalid after transformation"); - - }); - - it("_openInfoWindowForReaction", function() { - var mockObject = helper.createAbstractCustomMap(); - - var reaction = helper.createReaction(mockObject); - - // mock the behaviour of the map - mockObject.getTopMap = function() { - return mockObject; - }; - mockObject.getOverlayDataForReaction = function() { - return Promise.resolve([]); - }; - - mockObject.getModel().addReaction(reaction); - - assert.equal(null, mockObject.getReactionInfoWindowById(reaction.getId())); - - return mockObject._openInfoWindowForReaction(reaction).then(function() { - assert.ok(mockObject.getReactionInfoWindowById(reaction.getId())); - }); - - }); - - it("getDebug", function() { - var map = helper.createAbstractCustomMap(); - map.setDebug(true); - assert.ok(map.isDebug()); - }); - - it("fitBounds", function() { - var map = helper.createCustomMap(); - var alias = helper.createAlias(map); - var ie = new IdentifiedElement(alias); - var marker = new AliasMarker({ - map : map, - element : ie - }); - var surface = new AliasSurface({ - map : map, - element : ie, - gmapObj : new google.maps.Rectangle({ - map : map.getGoogleMap(), - bounds : new google.maps.LatLngBounds(new google.maps.LatLng(0, 0), new google.maps.LatLng(0.5, 1)), - }) - }); - - var markers = [ marker, surface ]; - return marker.init().then(function() { - - var center = map.getGoogleMap().getCenter(); - map.fitBounds(markers); - var center2 = map.getGoogleMap().getCenter(); - assert.ok(center.lat() !== center2.lat() || center.lng() !== center2.lng()); - }); - }); - -}); +"use strict"; + +var Promise = require("bluebird"); + +var AliasMarker = require('../../../main/js/map/marker/AliasMarker'); +var AliasSurface = require('../../../main/js/map/surface/AliasSurface'); +var AbstractCustomMap = require('../../../main/js/map/AbstractCustomMap'); +var IdentifiedElement = require('../../../main/js/map/data/IdentifiedElement'); + +var chai = require('chai'); +var assert = chai.assert; + +var logger = require("../logger"); + +describe('AbstractCustomMap', function () { + it("Constructor", function () { + var model = helper.createModel(); + var options = helper.createCustomMapOptions(); + + var mockObject = new AbstractCustomMap(model, options); + + assert.ok(mockObject.getId()); + assert.ok(mockObject.getModel()); + assert.ok(mockObject.getSelectedLayoutOverlays()); + + assert.ok(mockObject.pixelOrigin_); + assert.ok(mockObject.pixelsPerLonDegree_); + assert.ok(mockObject.pixelsPerLonRadian_); + assert.ok(mockObject.zoomFactor); + + assert.equal(mockObject.getAliasInfoWindowById(-1), null); + assert.equal(mockObject.getPointInfoWindowById(-1), null); + assert.equal(mockObject.getReactionInfoWindowById(-1), null); + + assert.equal(logger.getWarnings().length, 0); + }); + + it("setupLayouts", function () { + var model = helper.createModel(); + var layout = model.getLayouts()[0]; + var options = helper.createCustomMapOptions(); + + var mockObject = new AbstractCustomMap(model, options); + + var googleMap = helper.createGoogleMap(); + + mockObject.setGoogleMap(googleMap); + + mockObject.setupLayouts(); + assert.ok(mockObject.getGoogleMap().getMapTypeId().indexOf(layout.getId()) >= 0); + }); + + it("createMapOptions", function () { + var mockObject = helper.createCustomMap(); + assert.ok(mockObject.createMapOptions()); + + }); + + it("createTypeOptions", function () { + var layoutId = 40; + var layoutName = 'some layout name'; + var layoutDirectory = 'dire45'; + + var model = helper.createModel(); + var layoutDataObj = { + idObject: layoutId, + name: layoutName, + directory: layoutDirectory + }; + model.addLayout(layoutDataObj); + + var options = helper.createCustomMapOptions(); + + var mockObject = new AbstractCustomMap(model, options); + + var result = mockObject.createTypeOptions(layoutDataObj); + + assert.ok(result); + + }); + + it("setMaxZoomLevel", function () { + var model = helper.createModel(); + var options = helper.createCustomMapOptions(); + + model.setMaxZoom(4); + + var mockObject = new AbstractCustomMap(model, options); + + var googleMap = helper.createGoogleMap(); + + mockObject.setGoogleMap(googleMap); + mockObject.setMaxZoomLevel(); + + assert.equal(model.getMaxZoom(), mockObject.getGoogleMap().getZoom()); + }); + + it("getMouseLatLng", function () { + var model = helper.createModel(); + var options = helper.createCustomMapOptions(); + + model.setMaxZoom(4); + + var mockObject = new AbstractCustomMap(model, options); + + var googleMap = new google.maps.Map(testDiv, {}); + googleMap.setCenter(new google.maps.LatLng(1, 2)); + + mockObject.setGoogleMap(googleMap); + + var coordinates = mockObject.getMouseLatLng(); + + assert.ok(coordinates); + assert.ok(coordinates instanceof google.maps.LatLng); + }); + + it("fromPixelsToPoint 1", function () { + var model = helper.createModel(); + var options = helper.createCustomMapOptions(); + + model.setWidth(256); + model.setHeight(256); + model.setMinZoom(2); + model.setMaxZoom(2); + + var mockObject = new AbstractCustomMap(model, options); + + var pointDist = { + x: 120, + y: 140 + }; + + var normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 2); + + assert.ok(normalizedPoint); + assert.equal(normalizedPoint.x, pointDist.x); + assert.equal(normalizedPoint.y, pointDist.y); + + }); + + it("fromPixelsToPoint 2", function () { + var model = helper.createModel(); + var options = helper.createCustomMapOptions(); + + model.setWidth(512); + model.setHeight(512); + model.setMinZoom(2); + model.setMaxZoom(3); + + var mockObject = new AbstractCustomMap(model, options); + + var pointDist = { + x: 120, + y: 140 + }; + + var normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 2); + + assert.ok(normalizedPoint); + assert.equal(2 * pointDist.x, normalizedPoint.x); + assert.equal(2 * pointDist.y, normalizedPoint.y); + + normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 3); + + assert.ok(normalizedPoint); + assert.equal(pointDist.x, normalizedPoint.x); + assert.equal(pointDist.y, normalizedPoint.y); + + }); + + it("fromPixelsToPoint 3", function () { + var model = helper.createModel(); + var options = helper.createCustomMapOptions(); + + model.setWidth(512); + model.setHeight(512); + model.setMinZoom(0); + model.setMaxZoom(3); + + var mockObject = new AbstractCustomMap(model, options); + + var pointDist = { + x: 120, + y: 140 + }; + + var normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 2); + + assert.ok(normalizedPoint); + assert.equal(0.5 * pointDist.x, normalizedPoint.x); + assert.equal(0.5 * pointDist.y, normalizedPoint.y); + + normalizedPoint = mockObject.fromPixelsToPoint(pointDist, 3); + + assert.ok(normalizedPoint); + assert.equal(0.25 * pointDist.x, normalizedPoint.x); + assert.equal(0.25 * pointDist.y, normalizedPoint.y); + + }); + + it("registerMapClickEvents", function () { + var mockObject = helper.createAbstractCustomMap(); + + var googleMap = new google.maps.Map(testDiv, {}); + + mockObject.setGoogleMap(googleMap); + // mock function to not put error log on console + mockObject.getTopMap = function () { + return null; + }; + + mockObject.registerMapClickEvents(); + }); + + it("latLngToTile", function () { + var mockObject = helper.createAbstractCustomMap(); + + var latLng = new google.maps.LatLng(0, 1); + + var tileCoordinates = mockObject.latLngToTile(latLng, 3); + assert.ok(tileCoordinates); + assert.ok(tileCoordinates instanceof google.maps.Point); + + }); + + it("_turnOnOffDrawing", function () { + var mockObject = helper.createAbstractCustomMap(); + + var googleMap = new google.maps.Map(testDiv, {}); + + mockObject.setGoogleMap(googleMap); + + // mock function to not put error log on console + mockObject.getTopMap = function () { + return null; + }; + + assert.equal(mockObject.isDrawingOn(), false); + mockObject._turnOnOffDrawing(); + assert.ok(mockObject.isDrawingOn()); + mockObject._turnOnOffDrawing(); + assert.equal(mockObject.isDrawingOn(), false); + }); + + it("areaToString", function () { + var mockObject = helper.createAbstractCustomMap(); + + var triangleCoordinates = [new google.maps.LatLng(25.774, -80.190), new google.maps.LatLng(18.466, -66.118), + new google.maps.LatLng(32.321, -64.757), new google.maps.LatLng(25.774, -80.190)]; + + // Construct the polygon. + var bermudaTriangle = new google.maps.Polygon({ + paths: triangleCoordinates, + strokeColor: '#FF0000', + strokeOpacity: 0.8, + strokeWeight: 2, + fillColor: '#FF0000', + fillOpacity: 0.35 + }); + + assert.ok(mockObject.areaToString(bermudaTriangle)); + + }); + + it("Point - Lat,Lng conversion", function () { + + var mockObject = helper.createAbstractCustomMap(); + + var x = 19920; + var y = 11040; + var point = new google.maps.Point(x, y); + + var coordinates = mockObject.fromPointToLatLng(point); + + var point2 = mockObject.fromLatLngToPoint(coordinates); + + assert.closeTo(point2.x, point.x, 0.5, "X coordinate is invalid after transformation"); + assert.closeTo(point2.y, point.y, 0.5, "Y coordinate is invalid after transformation"); + + }); + + it("_openInfoWindowForReaction", function () { + var mockObject = helper.createAbstractCustomMap(); + + var reaction = helper.createReaction(mockObject); + + // mock the behaviour of the map + mockObject.getTopMap = function () { + return mockObject; + }; + mockObject.getOverlayDataForReaction = function () { + return Promise.resolve([]); + }; + + mockObject.getModel().addReaction(reaction); + + assert.equal(null, mockObject.getReactionInfoWindowById(reaction.getId())); + + return mockObject._openInfoWindowForReaction(reaction).then(function () { + assert.ok(mockObject.getReactionInfoWindowById(reaction.getId())); + }); + + }); + + it("getDebug", function () { + var map = helper.createAbstractCustomMap(); + map.setDebug(true); + assert.ok(map.isDebug()); + }); + + it("fitBounds", function () { + var map = helper.createCustomMap(); + var alias = helper.createAlias(map); + var ie = new IdentifiedElement(alias); + var marker = new AliasMarker({ + map: map, + element: ie + }); + var surface = new AliasSurface({ + map: map, + element: ie, + gmapObj: new google.maps.Rectangle({ + map: map.getGoogleMap(), + bounds: new google.maps.LatLngBounds(new google.maps.LatLng(0, 0), new google.maps.LatLng(0.5, 1)) + }) + }); + + var markers = [marker, surface]; + return marker.init().then(function () { + + var center = map.getGoogleMap().getCenter(); + map.fitBounds(markers); + var center2 = map.getGoogleMap().getCenter(); + assert.ok(center.lat() !== center2.lat() || center.lng() !== center2.lng()); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/CustomMapOptions-test.js b/frontend-js/src/test/js/map/CustomMapOptions-test.js index 04e4f6d2734211134dfbfc0672d5508633b2f098..3389f14010eb83545951b2cd32034b5eb8aa38fe 100644 --- a/frontend-js/src/test/js/map/CustomMapOptions-test.js +++ b/frontend-js/src/test/js/map/CustomMapOptions-test.js @@ -1,59 +1,58 @@ -"use strict"; - -var CustomMapOptions = require('../../../main/js/map/CustomMapOptions'); -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../logger'); - -describe('CustomMapOptions', function () { - describe("constructor", function () { - it("with invalid arg", function () { - try { - new CustomMapOptions({ - markerOptimization: 12, - bigLogo: "some strange string", - hideDiv: "some div ide", - customTouchInterface: "strange param", - debug: "unk boolean" - }); - assert.ok(false); - } catch (exception) { - assert.ok(exception.message.indexOf("element must be defined") >= 0); - } - }); - it("with invalid arg 3", function () { - try { - new CustomMapOptions({ - element: testDiv, - }); - } catch (exception) { - assert.ok(exception.message.indexOf("project must be defined") >= 0); - } - }); - - it("with valid arg 2", function () { - var project = helper.createProject(); - new CustomMapOptions({ - element: testDiv, - project: project, - debug: false, - }); - - assert.equal(0, logger.getErrors().length); - assert.equal(0, logger.getWarnings().length); - }); - - }); - - - it("getDebug", function () { - var project = helper.createProject(); - var options = new CustomMapOptions({ - element: testDiv, - project: project, - debug: true, - }); - - assert.ok(options.isDebug()); - }); -}); +"use strict"; + +var CustomMapOptions = require('../../../main/js/map/CustomMapOptions'); +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../logger'); + +describe('CustomMapOptions', function () { + describe("constructor", function () { + it("with invalid arg", function () { + try { + new CustomMapOptions({ + markerOptimization: 12, + bigLogo: "some strange string", + hideDiv: "some div ide", + customTouchInterface: "strange param", + debug: "unk boolean" + }); + assert.ok(false); + } catch (exception) { + assert.ok(exception.message.indexOf("element must be defined") >= 0); + } + }); + it("with invalid arg 3", function () { + try { + new CustomMapOptions({ + element: testDiv + }); + } catch (exception) { + assert.ok(exception.message.indexOf("project must be defined") >= 0); + } + }); + + it("with valid arg 2", function () { + var project = helper.createProject(); + new CustomMapOptions({ + element: testDiv, + project: project, + debug: false + }); + + assert.equal(0, logger.getErrors().length); + assert.equal(0, logger.getWarnings().length); + }); + + }); + + it("getDebug", function () { + var project = helper.createProject(); + var options = new CustomMapOptions({ + element: testDiv, + project: project, + debug: true + }); + + assert.ok(options.isDebug()); + }); +}); diff --git a/frontend-js/src/test/js/map/OverlayParser-test.js b/frontend-js/src/test/js/map/OverlayParser-test.js index 053ce56f0990179a209afd2b3eaacb57379d627a..48ce28d457854d75db0760b5b895aefa11f9ee66 100644 --- a/frontend-js/src/test/js/map/OverlayParser-test.js +++ b/frontend-js/src/test/js/map/OverlayParser-test.js @@ -1,46 +1,46 @@ -"use strict"; - -require("../mocha-config.js"); - -var OverlayParser = require('../../../main/js/map/OverlayParser'); -var ServerConnector = require('../ServerConnector-mock'); -var chai = require('chai'); -var assert = chai.assert; - -var TextEncoder = require('text-encoding').TextEncoder; - -describe('OverlayParser', function () { - describe('parse', function () { - it('simple', function () { - var parser = new OverlayParser(); - var fileContent = "#NAME=some Name\n#DESCRIPTION=xxx\nname\tvalue\ns1\t1"; - - var overlay = parser.parse(fileContent); - assert.ok(overlay); - assert.equal(overlay.getDescription(), "xxx"); - assert.equal(overlay.getName(), "some Name"); - assert.ok(overlay.getContent()); - }); - it('Uint8Array', function () { - var parser = new OverlayParser(); - var fileContent = new TextEncoder("UTF8").encode("#NAME=some Name\n#DESCRIPTION=xxx\nname\tvalue\ns1\t1"); - - var overlay = parser.parse(fileContent); - assert.ok(overlay); - assert.equal(overlay.getDescription(), "xxx"); - assert.equal(overlay.getName(), "some Name"); - assert.ok(overlay.getContent()); - }); - it('with type', function () { - - return ServerConnector.sendGetRequest("testFiles/overlay/good.txt").then(function (fileContent) { - var parser = new OverlayParser(); - var overlay = parser.parse(fileContent); - assert.equal(overlay.getName(), "example name"); - assert.equal(overlay.getDescription(), "layout description"); - assert.equal(overlay.getType(), "GENERIC"); - }); - }); - }); - -}); +"use strict"; + +require("../mocha-config.js"); + +var OverlayParser = require('../../../main/js/map/OverlayParser'); +var ServerConnector = require('../ServerConnector-mock'); +var chai = require('chai'); +var assert = chai.assert; + +var TextEncoder = require('text-encoding').TextEncoder; + +describe('OverlayParser', function () { + describe('parse', function () { + it('simple', function () { + var parser = new OverlayParser(); + var fileContent = "#NAME=some Name\n#DESCRIPTION=xxx\nname\tvalue\ns1\t1"; + + var overlay = parser.parse(fileContent); + assert.ok(overlay); + assert.equal(overlay.getDescription(), "xxx"); + assert.equal(overlay.getName(), "some Name"); + assert.ok(overlay.getContent()); + }); + it('Uint8Array', function () { + var parser = new OverlayParser(); + var fileContent = new TextEncoder("UTF8").encode("#NAME=some Name\n#DESCRIPTION=xxx\nname\tvalue\ns1\t1"); + + var overlay = parser.parse(fileContent); + assert.ok(overlay); + assert.equal(overlay.getDescription(), "xxx"); + assert.equal(overlay.getName(), "some Name"); + assert.ok(overlay.getContent()); + }); + it('with type', function () { + + return ServerConnector.sendGetRequest("testFiles/overlay/good.txt").then(function (fileContent) { + var parser = new OverlayParser(); + var overlay = parser.parse(fileContent); + assert.equal(overlay.getName(), "example name"); + assert.equal(overlay.getDescription(), "layout description"); + assert.equal(overlay.getType(), "GENERIC"); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/Submap-test.js b/frontend-js/src/test/js/map/Submap-test.js index 4ab4649496a950b2dcdf68207d3e25b2731d7c65..b2449e94cfa8a7a4f22641bf3d1dc35fbe758e31 100644 --- a/frontend-js/src/test/js/map/Submap-test.js +++ b/frontend-js/src/test/js/map/Submap-test.js @@ -1,72 +1,74 @@ -"use strict"; - -var logger = require('../logger'); - -var AliasMarker = require('../../../main/js/map/marker/AliasMarker'); -var IdentifiedElement = require('../../../main/js/map/data/IdentifiedElement'); -var Submap = require('../../../main/js/map/Submap'); -var chai = require('chai'); -var assert = chai.assert; - -describe('Submap', function() { - it("simple constructor", function() { - var map = helper.createCustomMap(); - - var model = helper.createModel(); - - var submap = new Submap(map, model); - assert.ok(submap); - assert.equal(logger.getWarnings().length, 0); - assert.equal(logger.getErrors().length, 0); - }); - - it("open", function() { - var map = helper.createCustomMap(); - - var model = helper.createModel(); - - var submap = new Submap(map, model); - - $(testDiv).dialog({ - autoOpen : false - }); - - submap.open(testDiv); - - $(testDiv).dialog("destroy"); - assert.ok(submap); - assert.equal(logger.getWarnings().length, 0); - assert.equal(logger.getErrors().length, 0); - }); - - it("getTopMap", function() { - var map = helper.createCustomMap(); - - var model = helper.createModel(); - - var submap = new Submap(map, model); - - assert.ok(submap.getTopMap()); - }); - - it("create marker for submap", function() { - var map; - var submap; - var marker; - var projectId = "complex_model_with_submaps"; - helper.setUrl("http://test/?id=" + projectId); - return ServerConnector.getProject(projectId).then(function(project) { - map = helper.createCustomMap(project); - submap = map.getSubmapById(16729); - return submap.getModel().getAliasById(345330); - }).then(function(alias) { - marker = new AliasMarker({ - element : new IdentifiedElement(alias), - map : submap - }); - return marker.init(); - }).then(function() { - assert.ok(marker.getAliasData()); - }); - }); -}); +"use strict"; + +var logger = require('../logger'); + +var AliasMarker = require('../../../main/js/map/marker/AliasMarker'); +var IdentifiedElement = require('../../../main/js/map/data/IdentifiedElement'); +var ServerConnector = require('../ServerConnector-mock'); +var Submap = require('../../../main/js/map/Submap'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('Submap', function () { + it("simple constructor", function () { + var map = helper.createCustomMap(); + + var model = helper.createModel(); + + var submap = new Submap(map, model); + assert.ok(submap); + assert.equal(logger.getWarnings().length, 0); + assert.equal(logger.getErrors().length, 0); + }); + + it("open", function () { + var map = helper.createCustomMap(); + + var model = helper.createModel(); + + var submap = new Submap(map, model); + + $(testDiv).dialog({ + autoOpen: false + }); + + submap.open(testDiv); + + $(testDiv).dialog("destroy"); + assert.ok(submap); + assert.equal(logger.getWarnings().length, 0); + assert.equal(logger.getErrors().length, 0); + }); + + it("getTopMap", function () { + var map = helper.createCustomMap(); + + var model = helper.createModel(); + + var submap = new Submap(map, model); + + assert.ok(submap.getTopMap()); + }); + + it("create marker for submap", function () { + var map; + var submap; + var marker; + var projectId = "complex_model_with_submaps"; + helper.setUrl("http://test/?id=" + projectId); + return ServerConnector.getProject(projectId).then(function (project) { + map = helper.createCustomMap(project); + submap = map.getSubmapById(16729); + return submap.getModel().getAliasById(345330); + }).then(function (alias) { + marker = new AliasMarker({ + element: new IdentifiedElement(alias), + map: submap + }); + return marker.init(); + }).then(function () { + assert.ok(marker.getAliasData()); + }); + }); +}); diff --git a/frontend-js/src/test/js/map/TouchMap-test.js b/frontend-js/src/test/js/map/TouchMap-test.js index 975a0865f3c465c5a32919a1f15bc33cb20e41ae..4bd12c363dd6c303fcc65d0a3cb97ed2494f39f0 100644 --- a/frontend-js/src/test/js/map/TouchMap-test.js +++ b/frontend-js/src/test/js/map/TouchMap-test.js @@ -1,178 +1,179 @@ -"use strict"; - -require("../mocha-config"); - -var TouchMap = require('../../../main/js/map/TouchMap'); -var chai = require('chai'); -var assert = chai.assert; - -describe('TouchMap', function () { - it("constructor", function () { - var map = helper.createCustomMap(); - var touchMap = new TouchMap(map); - assert.ok(touchMap); - }); - - it("handleStart", function () { - var map = helper.createCustomMap(); - var touchMap = new TouchMap(map); - - assert.notOk(touchMap.firstFingerId); - - var evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchstart', true, true, window, null); - - evt.changedTouches = [{ - pageX: 200, - pageY: 200, - identifier: 1, - clientX: 100, - clientY: 100 - }]; - - map.getElement().dispatchEvent(evt); - - assert.ok(touchMap.firstFingerId); - }); - - describe("handleEnd", function () { - it("after move", function () { - var map = helper.createCustomMap(); - var touchMap = new TouchMap(map); - - var evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchstart', true, true, window, null); - - evt.changedTouches = [{ - pageX: 200, - pageY: 200, - identifier: 1, - clientX: 100, - clientY: 100 - }]; - - map.getElement().dispatchEvent(evt); - - evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchend', true, true, window, null); - - evt.changedTouches = [{ - pageX: 300, - pageY: 300, - identifier: 1, - clientX: 200, - clientY: 200 - }]; - - map.getElement().dispatchEvent(evt); - - assert.notOk(touchMap.firstFingerId); - }); - it("as a click", function () { - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - var touchMap = new TouchMap(map); - - var evtLocation = { - pageX: 10, - pageY: 10, - identifier: 0, - clientX: 10, - clientY: 10 - }; - - var evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchstart', true, true, window, null); - evt.changedTouches = [evtLocation]; - map.getElement().dispatchEvent(evt); - - var clicked = false; - google.maps.event.addListener(map.getGoogleMap(), "click", function () { - clicked = true; - }); - evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchend', true, true, window, null); - evt.changedTouches = [evtLocation]; - map.getElement().dispatchEvent(evt); - - assert.notOk(touchMap.firstFingerId); - assert.ok(clicked); - }); - }); - }); - - describe("handleMove", function () { - it("default", function () { - var map = helper.createCustomMap(); - var coordinates = map.getGoogleMap().getCenter(); - new TouchMap(map); - - var evtLocation = { - pageX: 10, - pageY: 10, - identifier: 0, - clientX: 10, - clientY: 10 - }; - - var evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchstart', true, true, window, null); - evt.changedTouches = [evtLocation]; - map.getElement().dispatchEvent(evt); - - evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchmove', true, true, window, null); - evtLocation.pageX += 10; - evtLocation.pageY += 10; - evtLocation.clientX += 10; - evtLocation.clientY += 10; - evt.changedTouches = [evtLocation]; - map.getElement().dispatchEvent(evt); - - var coordinates2 = map.getGoogleMap().getCenter(); - - assert.ok(coordinates.x !== coordinates2.x); - assert.ok(coordinates.y !== coordinates2.y); - - }); - }); - it("updateCoordinates", function () { - var map = helper.createCustomMap(); - - var touchMap = new TouchMap(map); - touchMap.firstFingerId = 1; - - var evt = document.createEvent('UIEvent'); - evt.initUIEvent('touchstart', true, true, window, null); - - evt.changedTouches = [{ - pageX: 200, - pageY: 200, - identifier: 1, - clientX: 100, - clientY: 100 - }]; - - assert.notOk(touchMap.firstEndX); - assert.notOk(touchMap.firstEndY); - touchMap.updateCoordinates(evt.changedTouches[0]); - assert.ok(touchMap.firstEndX); - assert.ok(touchMap.firstEndY); - }); - - it("lineDistance", function () { - var map = helper.createCustomMap(); - var touchMap = new TouchMap(map); - - var dist = touchMap.lineDistance(1, 1, 4, 5); - assert.equal(5, dist); - }); - - it("zoomMap", function () { - var map = helper.createCustomMap(); - var touchMap = new TouchMap(map); - - touchMap.zoomMap(1, 2, 4); - assert.equal(map.getGoogleMap().getZoom(), 4); - }); -}); +"use strict"; + +require("../mocha-config"); + +var TouchMap = require('../../../main/js/map/TouchMap'); +var ServerConnector = require('../ServerConnector-mock'); +var chai = require('chai'); +var assert = chai.assert; + +describe('TouchMap', function () { + it("constructor", function () { + var map = helper.createCustomMap(); + var touchMap = new TouchMap(map); + assert.ok(touchMap); + }); + + it("handleStart", function () { + var map = helper.createCustomMap(); + var touchMap = new TouchMap(map); + + assert.notOk(touchMap.firstFingerId); + + var evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchstart', true, true, window, null); + + evt.changedTouches = [{ + pageX: 200, + pageY: 200, + identifier: 1, + clientX: 100, + clientY: 100 + }]; + + map.getElement().dispatchEvent(evt); + + assert.ok(touchMap.firstFingerId); + }); + + describe("handleEnd", function () { + it("after move", function () { + var map = helper.createCustomMap(); + var touchMap = new TouchMap(map); + + var evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchstart', true, true, window, null); + + evt.changedTouches = [{ + pageX: 200, + pageY: 200, + identifier: 1, + clientX: 100, + clientY: 100 + }]; + + map.getElement().dispatchEvent(evt); + + evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchend', true, true, window, null); + + evt.changedTouches = [{ + pageX: 300, + pageY: 300, + identifier: 1, + clientX: 200, + clientY: 200 + }]; + + map.getElement().dispatchEvent(evt); + + assert.notOk(touchMap.firstFingerId); + }); + it("as a click", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var touchMap = new TouchMap(map); + + var evtLocation = { + pageX: 10, + pageY: 10, + identifier: 0, + clientX: 10, + clientY: 10 + }; + + var evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchstart', true, true, window, null); + evt.changedTouches = [evtLocation]; + map.getElement().dispatchEvent(evt); + + var clicked = false; + google.maps.event.addListener(map.getGoogleMap(), "click", function () { + clicked = true; + }); + evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchend', true, true, window, null); + evt.changedTouches = [evtLocation]; + map.getElement().dispatchEvent(evt); + + assert.notOk(touchMap.firstFingerId); + assert.ok(clicked); + }); + }); + }); + + describe("handleMove", function () { + it("default", function () { + var map = helper.createCustomMap(); + var coordinates = map.getGoogleMap().getCenter(); + new TouchMap(map); + + var evtLocation = { + pageX: 10, + pageY: 10, + identifier: 0, + clientX: 10, + clientY: 10 + }; + + var evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchstart', true, true, window, null); + evt.changedTouches = [evtLocation]; + map.getElement().dispatchEvent(evt); + + evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchmove', true, true, window, null); + evtLocation.pageX += 10; + evtLocation.pageY += 10; + evtLocation.clientX += 10; + evtLocation.clientY += 10; + evt.changedTouches = [evtLocation]; + map.getElement().dispatchEvent(evt); + + var coordinates2 = map.getGoogleMap().getCenter(); + + assert.ok(coordinates.x !== coordinates2.x); + assert.ok(coordinates.y !== coordinates2.y); + + }); + }); + it("updateCoordinates", function () { + var map = helper.createCustomMap(); + + var touchMap = new TouchMap(map); + touchMap.firstFingerId = 1; + + var evt = document.createEvent('UIEvent'); + evt.initUIEvent('touchstart', true, true, window, null); + + evt.changedTouches = [{ + pageX: 200, + pageY: 200, + identifier: 1, + clientX: 100, + clientY: 100 + }]; + + assert.notOk(touchMap.firstEndX); + assert.notOk(touchMap.firstEndY); + touchMap.updateCoordinates(evt.changedTouches[0]); + assert.ok(touchMap.firstEndX); + assert.ok(touchMap.firstEndY); + }); + + it("lineDistance", function () { + var map = helper.createCustomMap(); + var touchMap = new TouchMap(map); + + var dist = touchMap.lineDistance(1, 1, 4, 5); + assert.equal(5, dist); + }); + + it("zoomMap", function () { + var map = helper.createCustomMap(); + var touchMap = new TouchMap(map); + + touchMap.zoomMap(1, 2, 4); + assert.equal(map.getGoogleMap().getZoom(), 4); + }); +}); diff --git a/frontend-js/src/test/js/map/data/Alias-test.js b/frontend-js/src/test/js/map/data/Alias-test.js index ec4404357e9ad375b8897f8c536db72b2e9f1d62..2444f2ac02ebf0abfe95595a16d9aff32f775a6a 100644 --- a/frontend-js/src/test/js/map/data/Alias-test.js +++ b/frontend-js/src/test/js/map/data/Alias-test.js @@ -1,130 +1,130 @@ -"use strict"; - -var Alias = require('../../../../main/js/map/data/Alias'); -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('Alias', function () { - beforeEach(function () { - logger.flushBuffer(); - }); - - describe("constructor", function () { - it("with invalid arg", function () { - try { - new Alias({}); - assert.ok(null); - } catch (exception) { - assert.ok(exception.message.indexOf("ModelId is not defined") >= 0); - } - }); - it("simple", function () { - var javaObject = { - bounds: { - x: 190, - y: 44, - width: 80, - height: 40 - }, - modelId: 57, - idObject: 18554 - }; - var alias = new Alias(javaObject); - assert.equal(alias.isComplete(), false); - assert.equal(null, alias.name); - assert.equal(alias.getX(), 190); - }); - it("complex", function () { - var javaObject = { - notes: "", - type: "Protein", - name: "s1", - synonyms: [], - formerSymbols: [], - references: [], - other: [], - bounds: { - x: 59, - y: 73, - width: 80, - height: 40 - }, - modelId: 54, - idObject: 18552 - }; - var alias = new Alias(javaObject); - assert.ok(alias.isComplete()); - assert.equal('s1', alias.name); - }); - - }); - - - it("Alias update method", function () { - var javaObject = { - bounds: { - x: 190, - y: 44, - width: 80, - height: 40 - }, - modelId: 57, - idObject: 18554 - }; - var alias = new Alias(javaObject); - var javaObject2 = { - notes: "", - type: "Protein", - name: "s1", - synonyms: [], - formerSymbols: [], - references: [], - other: [], - bounds: { - x: 59, - y: 73, - width: 80, - height: 40 - }, - modelId: 54, - idObject: 18552 - }; - alias.update(javaObject2); - assert.ok(alias.isComplete()); - assert.equal('s1', alias.name); - }); - - it("Alias update method 2", function () { - var javaObject = { - bounds: { - x: 190, - y: 44, - width: 80, - height: 40 - }, - modelId: 57, - idObject: 18554 - }; - var alias = new Alias(javaObject); - var javaObject2 = { - notes: "", - type: "Protein", - synonyms: [], - formerSymbols: [], - references: [], - other: [], - bounds: { - x: 59, - y: 73, - width: 80, - height: 40 - }, - modelId: 54, - idObject: 18552 - }; - alias.update(javaObject2); - assert.equal(alias.isComplete(), false); - }); - -}); +"use strict"; + +var Alias = require('../../../../main/js/map/data/Alias'); +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('Alias', function () { + beforeEach(function () { + logger.flushBuffer(); + }); + + describe("constructor", function () { + it("with invalid arg", function () { + try { + new Alias({}); + assert.ok(null); + } catch (exception) { + assert.ok(exception.message.indexOf("ModelId is not defined") >= 0); + } + }); + it("simple", function () { + var javaObject = { + bounds: { + x: 190, + y: 44, + width: 80, + height: 40 + }, + modelId: 57, + idObject: 18554 + }; + var alias = new Alias(javaObject); + assert.equal(alias.isComplete(), false); + assert.equal(null, alias.name); + assert.equal(alias.getX(), 190); + }); + it("complex", function () { + var javaObject = { + notes: "", + type: "Protein", + name: "s1", + synonyms: [], + formerSymbols: [], + references: [], + other: [], + bounds: { + x: 59, + y: 73, + width: 80, + height: 40 + }, + modelId: 54, + idObject: 18552 + }; + var alias = new Alias(javaObject); + assert.ok(alias.isComplete()); + assert.equal('s1', alias.name); + }); + + }); + + + it("Alias update method", function () { + var javaObject = { + bounds: { + x: 190, + y: 44, + width: 80, + height: 40 + }, + modelId: 57, + idObject: 18554 + }; + var alias = new Alias(javaObject); + var javaObject2 = { + notes: "", + type: "Protein", + name: "s1", + synonyms: [], + formerSymbols: [], + references: [], + other: [], + bounds: { + x: 59, + y: 73, + width: 80, + height: 40 + }, + modelId: 54, + idObject: 18552 + }; + alias.update(javaObject2); + assert.ok(alias.isComplete()); + assert.equal('s1', alias.name); + }); + + it("Alias update method 2", function () { + var javaObject = { + bounds: { + x: 190, + y: 44, + width: 80, + height: 40 + }, + modelId: 57, + idObject: 18554 + }; + var alias = new Alias(javaObject); + var javaObject2 = { + notes: "", + type: "Protein", + synonyms: [], + formerSymbols: [], + references: [], + other: [], + bounds: { + x: 59, + y: 73, + width: 80, + height: 40 + }, + modelId: 54, + idObject: 18552 + }; + alias.update(javaObject2); + assert.equal(alias.isComplete(), false); + }); + +}); diff --git a/frontend-js/src/test/js/map/data/Comment-test.js b/frontend-js/src/test/js/map/data/Comment-test.js index 0c99ebc12d9538c24b1aee63def4edd54b3c91e2..49c3e11fbd0c5817340a3657edfacc76735a5240 100644 --- a/frontend-js/src/test/js/map/data/Comment-test.js +++ b/frontend-js/src/test/js/map/data/Comment-test.js @@ -1,32 +1,32 @@ -"use strict"; - -var Comment = require('../../../../main/js/map/data/Comment'); -var chai = require('chai'); -var assert = chai.assert; -var logger = require('../../logger'); - -describe('Comment', function() { - beforeEach(function() { - logger.flushBuffer(); - }); - - it("constructor", function() { - var comment = new Comment({ - elementId : 1, - type : "ALIAS", - modelId : 3, - icon : "icons/comment.png", - id : 4, - pinned : true, - coord : { - x : 321.5, - y : 289.0 - }, - removed : false, - title : "title fo comment: ", - content : "content of the comment # " - }); - assert.ok(comment.isPinned()); - assert.notOk(comment.isRemoved()); - }); -}); +"use strict"; + +var Comment = require('../../../../main/js/map/data/Comment'); +var chai = require('chai'); +var assert = chai.assert; +var logger = require('../../logger'); + +describe('Comment', function () { + beforeEach(function () { + logger.flushBuffer(); + }); + + it("constructor", function () { + var comment = new Comment({ + elementId: 1, + type: "ALIAS", + modelId: 3, + icon: "icons/comment.png", + id: 4, + pinned: true, + coord: { + x: 321.5, + y: 289.0 + }, + removed: false, + title: "title fo comment: ", + content: "content of the comment # " + }); + assert.ok(comment.isPinned()); + assert.notOk(comment.isRemoved()); + }); +}); diff --git a/frontend-js/src/test/js/map/data/GeneVariant-test.js b/frontend-js/src/test/js/map/data/GeneVariant-test.js index cca93dae87e34d3d14a3ef9412340a176816e95c..dd8ebcd3796cd9ba55b5c788f3cbf24d66d5c87b 100644 --- a/frontend-js/src/test/js/map/data/GeneVariant-test.js +++ b/frontend-js/src/test/js/map/data/GeneVariant-test.js @@ -1,28 +1,28 @@ -"use strict"; - -var GeneVariant = require('../../../../main/js/map/data/GeneVariant'); -var assert = require('assert'); - -describe('GeneVariant', function() { - it("constructor", function() { - var data = { - position : 12, - originalDna : "A", - modifiedDna : "C", - referenceGenomeType : "unk", - referenceGenomeVersion : "v1", - contig : "1", - allelFrequency : "0.2", - variantIdentifier : "id" - }; - var variant = new GeneVariant(data); - assert.equal(variant.getPosition(), data.position); - assert.equal(variant.getOriginalDna(), data.originalDna); - assert.equal(variant.getModifiedDna(), data.modifiedDna); - assert.equal(variant.getReferenceGenomeType(), data.referenceGenomeType); - assert.equal(variant.getContig(), data.contig); - assert.equal(variant.getAllelFrequency(), data.allelFrequency); - assert.equal(variant.getVariantIdentifier(), data.variantIdentifier); - assert.equal(variant.getReferenceGenomeVersion(), data.referenceGenomeVersion); - }); -}); +"use strict"; + +var GeneVariant = require('../../../../main/js/map/data/GeneVariant'); +var assert = require('assert'); + +describe('GeneVariant', function () { + it("constructor", function () { + var data = { + position: 12, + originalDna: "A", + modifiedDna: "C", + referenceGenomeType: "unk", + referenceGenomeVersion: "v1", + contig: "1", + allelFrequency: "0.2", + variantIdentifier: "id" + }; + var variant = new GeneVariant(data); + assert.equal(variant.getPosition(), data.position); + assert.equal(variant.getOriginalDna(), data.originalDna); + assert.equal(variant.getModifiedDna(), data.modifiedDna); + assert.equal(variant.getReferenceGenomeType(), data.referenceGenomeType); + assert.equal(variant.getContig(), data.contig); + assert.equal(variant.getAllelFrequency(), data.allelFrequency); + assert.equal(variant.getVariantIdentifier(), data.variantIdentifier); + assert.equal(variant.getReferenceGenomeVersion(), data.referenceGenomeVersion); + }); +}); diff --git a/frontend-js/src/test/js/map/data/IdentifiedElement-test.js b/frontend-js/src/test/js/map/data/IdentifiedElement-test.js index 271f40c60f766b8a4503f7e9d7d8f781ca090963..a272bf4b182d1656314bcbed0193662305b97c58 100644 --- a/frontend-js/src/test/js/map/data/IdentifiedElement-test.js +++ b/frontend-js/src/test/js/map/data/IdentifiedElement-test.js @@ -1,177 +1,177 @@ -"use strict"; - -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var Alias = require('../../../../main/js/map/data/Alias'); -var Reaction = require('../../../../main/js/map/data/Reaction'); -var PointData = require('../../../../main/js/map/data/PointData'); - -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; -var expect = chai.expect; - -describe('IdentifiedElement', function () { - beforeEach(function () { - logger.flushBuffer(); - }); - - describe("constructor", function () { - it("simple", function () { - var javaObj = { - objectId: "31165", - modelId: 269, - type: "alias", - icon: "marker/marker/marker_red_1.png" - }; - var ie = new IdentifiedElement(javaObj); - assert.ok(ie); - assert.equal(31165, ie.getId()); - assert.equal(269, ie.getModelId()); - assert.equal("ALIAS", ie.getType()); - assert.equal("marker/marker/marker_red_1.png", ie.getIcon()); - }); - - it("from point", function () { - var javaObj = { - objectId: "Point2D.Double[117.685546875, 204.6923828125001]", - modelId: 269, - type: "POINT", - icon: "icons/comment.png" - }; - var ie = new IdentifiedElement(javaObj); - assert.ok(ie); - assert.ok(ie.getPoint()); - }); - - it("from point 2", function () { - var javaObj = { - objectId: "(117.685546875, 204.6923828125001)", - modelId: 269, - type: "POINT", - icon: "empty.png" - }; - var ie = new IdentifiedElement(javaObj); - assert.ok(ie); - assert.ok(ie.getPoint()); - }); - it("from alias", function () { - var jsonString = '{"bounds":{"x":190,"y":44,"width":80,"height":40},"modelId":57,"idObject":18554}'; - var javaObject = JSON.parse(jsonString); - var alias = new Alias(javaObject); - var ie = new IdentifiedElement(alias); - assert.ok(ie); - assert.equal(ie.getType(), "ALIAS"); - }); - - it("from Reaction", function () { - var javaObject = { - lines: [{ - start: Object, - end: Object, - type: "START" - }, { - start: Object, - end: Object, - type: "END" - }, { - start: Object, - end: Object, - type: "MIDDLE" - }], - modelId: 319, - idObject: "13178", - centerPoint: {} - }; - var reaction = new Reaction(javaObject); - - var ie = new IdentifiedElement(reaction); - assert.ok(ie); - assert.equal(ie.getType(), "REACTION"); - }); - - it("from invalid object", function () { - var javaObject = { - modelId: 2 - }; - var code = function () { - new IdentifiedElement(javaObject); - }; - assert.throws(code, new RegExp("Type not defined")); - }); - - it("from PointData", function () { - var modelId = 3; - var point = new google.maps.Point(2, 3.45); - var pointData = new PointData(point, modelId); - - var ie = new IdentifiedElement(pointData); - assert.ok(ie); - assert.equal(ie.getType(), "POINT"); - }); - - it("from invalid object 2", function () { - var javaObject = { - modelId: 2, - type: "unk_type" - }; - var code = function () { - new IdentifiedElement(javaObject); - }; - assert.throws(code, new RegExp("Unknown type")); - }); - - it("from invalid object 3", function () { - var javaObject = { - type: "alias", - objectId: "el_id" - }; - var code = function () { - new IdentifiedElement(javaObject); - }; - assert.throws(code, new RegExp("ModelId is invalid")); - }); - - it("from invalid object 4", function () { - var javaObject = { - type: "alias", - modelId: 4, - }; - var code = function () { - new IdentifiedElement(javaObject); - }; - assert.throws(code, new RegExp("Id not defined")); - }); - - it("from artificial obj", function () { - var javaObject = { - type: "alias", - objectId: "el_id", - modelId: "m_id" - }; - var ie = new IdentifiedElement(javaObject); - var point = ie.getPoint(); - expect(point).to.equal(null); - assert.equal(logger.getWarnings().length, 1); - }); - - }); - - it("equals", function () { - var javaObj = { - objectId: "31165", - modelId: 269, - type: "alias" - }; - var ie = new IdentifiedElement(javaObj); - var ie2 = new IdentifiedElement(javaObj); - - var ie3 = helper.createIdentifiedElement(); - - assert.ok(ie.equals(ie)); - assert.ok(ie.equals(ie2)); - assert.notOk(ie.equals(ie3)); - - }); - -}); +"use strict"; + +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var Alias = require('../../../../main/js/map/data/Alias'); +var Reaction = require('../../../../main/js/map/data/Reaction'); +var PointData = require('../../../../main/js/map/data/PointData'); + +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; +var expect = chai.expect; + +describe('IdentifiedElement', function () { + beforeEach(function () { + logger.flushBuffer(); + }); + + describe("constructor", function () { + it("simple", function () { + var javaObj = { + objectId: "31165", + modelId: 269, + type: "alias", + icon: "marker/marker/marker_red_1.png" + }; + var ie = new IdentifiedElement(javaObj); + assert.ok(ie); + assert.equal(31165, ie.getId()); + assert.equal(269, ie.getModelId()); + assert.equal("ALIAS", ie.getType()); + assert.equal("marker/marker/marker_red_1.png", ie.getIcon()); + }); + + it("from point", function () { + var javaObj = { + objectId: "Point2D.Double[117.685546875, 204.6923828125001]", + modelId: 269, + type: "POINT", + icon: "icons/comment.png" + }; + var ie = new IdentifiedElement(javaObj); + assert.ok(ie); + assert.ok(ie.getPoint()); + }); + + it("from point 2", function () { + var javaObj = { + objectId: "(117.685546875, 204.6923828125001)", + modelId: 269, + type: "POINT", + icon: "empty.png" + }; + var ie = new IdentifiedElement(javaObj); + assert.ok(ie); + assert.ok(ie.getPoint()); + }); + it("from alias", function () { + var jsonString = '{"bounds":{"x":190,"y":44,"width":80,"height":40},"modelId":57,"idObject":18554}'; + var javaObject = JSON.parse(jsonString); + var alias = new Alias(javaObject); + var ie = new IdentifiedElement(alias); + assert.ok(ie); + assert.equal(ie.getType(), "ALIAS"); + }); + + it("from Reaction", function () { + var javaObject = { + lines: [{ + start: Object, + end: Object, + type: "START" + }, { + start: Object, + end: Object, + type: "END" + }, { + start: Object, + end: Object, + type: "MIDDLE" + }], + modelId: 319, + idObject: "13178", + centerPoint: {} + }; + var reaction = new Reaction(javaObject); + + var ie = new IdentifiedElement(reaction); + assert.ok(ie); + assert.equal(ie.getType(), "REACTION"); + }); + + it("from invalid object", function () { + var javaObject = { + modelId: 2 + }; + var code = function () { + new IdentifiedElement(javaObject); + }; + assert.throws(code, new RegExp("Type not defined")); + }); + + it("from PointData", function () { + var modelId = 3; + var point = new google.maps.Point(2, 3.45); + var pointData = new PointData(point, modelId); + + var ie = new IdentifiedElement(pointData); + assert.ok(ie); + assert.equal(ie.getType(), "POINT"); + }); + + it("from invalid object 2", function () { + var javaObject = { + modelId: 2, + type: "unk_type" + }; + var code = function () { + new IdentifiedElement(javaObject); + }; + assert.throws(code, new RegExp("Unknown type")); + }); + + it("from invalid object 3", function () { + var javaObject = { + type: "alias", + objectId: "el_id" + }; + var code = function () { + new IdentifiedElement(javaObject); + }; + assert.throws(code, new RegExp("ModelId is invalid")); + }); + + it("from invalid object 4", function () { + var javaObject = { + type: "alias", + modelId: 4 + }; + var code = function () { + new IdentifiedElement(javaObject); + }; + assert.throws(code, new RegExp("Id not defined")); + }); + + it("from artificial obj", function () { + var javaObject = { + type: "alias", + objectId: "el_id", + modelId: "m_id" + }; + var ie = new IdentifiedElement(javaObject); + var point = ie.getPoint(); + expect(point).to.equal(null); + assert.equal(logger.getWarnings().length, 1); + }); + + }); + + it("equals", function () { + var javaObj = { + objectId: "31165", + modelId: 269, + type: "alias" + }; + var ie = new IdentifiedElement(javaObj); + var ie2 = new IdentifiedElement(javaObj); + + var ie3 = helper.createIdentifiedElement(); + + assert.ok(ie.equals(ie)); + assert.ok(ie.equals(ie2)); + assert.notOk(ie.equals(ie3)); + + }); + +}); diff --git a/frontend-js/src/test/js/map/data/LayoutAlias-test.js b/frontend-js/src/test/js/map/data/LayoutAlias-test.js index d4fd9295f4f7695813cc543d6677c8486991747f..902b350751c922fe3c35bcc39481d3203f59bee9 100644 --- a/frontend-js/src/test/js/map/data/LayoutAlias-test.js +++ b/frontend-js/src/test/js/map/data/LayoutAlias-test.js @@ -1,130 +1,130 @@ -"use strict"; - -require("../../mocha-config.js"); - -var LayoutAlias = require('../../../../main/js/map/data/LayoutAlias'); -var assert = require('assert'); - -var logger = require('../../logger'); - -describe('LayoutAlias', function() { - - it("constructor", function() { - var aliasId = 908; - var val = 0.2; - var colorVal = { - a : 23 - }; - var javaObj = { - idObject : aliasId, - value : val, - color : colorVal, - geneVariations : [ {} ] - }; - var alias = new LayoutAlias(javaObj); - assert.ok(alias); - assert.equal(aliasId, alias.getId()); - assert.equal(val, alias.getValue()); - assert.equal(colorVal, alias.getColor()); - assert.equal(alias.getGeneVariants().length, 1); - }); - - it("update", function() { - var aliasId = 908; - var val = 0.2; - var colorVal = { - a : 23 - }; - var javaObj = { - idObject : aliasId, - value : val, - color : colorVal, - geneVariations : [ {} ] - }; - var alias = new LayoutAlias(javaObj); - - var aliasId2 = 908; - var val2 = 0.2; - var colorVal2 = { - a : 24 - }; - var javaObj2 = { - idObject : aliasId2, - value : val2, - color : colorVal2, - type : LayoutAlias.GENETIC_VARIANT - }; - - var alias2 = new LayoutAlias(javaObj2); - alias.update(alias2); - - assert.equal(aliasId2, alias2.getId()); - assert.equal(val2, alias2.getValue()); - assert.equal(colorVal2, alias2.getColor()); - assert.equal(alias2.getGeneVariants().length, 0); - }); - - it("invalid update", function() { - var alias = helper.createLayoutAlias(); - try { - alias.update("invalid data"); - assert.ok(false); - } catch (exception) { - assert.ok(exception.message.indexOf("Unknown parameter type") >= 0); - } - - }); - - it("genetic variant constructor", function() { - var aliasId = 908; - var val = 0.2; - var colorVal = { - a : 23 - }; - var javaObj = { - idObject : aliasId, - value : val, - color : colorVal, - type : LayoutAlias.GENETIC_VARIANT - }; - var alias = new LayoutAlias(javaObj); - assert.equal(alias.getType(), LayoutAlias.GENETIC_VARIANT); - }); - - it("GENERIC constructor", function() { - var aliasId = 908; - var val = 0.2; - var colorVal = { - a : 23 - }; - var javaObj = { - idObject : aliasId, - value : val, - color : colorVal, - type : LayoutAlias.GENERIC - }; - var alias = new LayoutAlias(javaObj); - assert.equal(alias.getType(), LayoutAlias.GENERIC); - assert.equal(logger.getWarnings().length, 0); - }); - it("unknown type constructor", function() { - var aliasId = 908; - var val = 0.2; - var colorVal = { - a : 23 - }; - var javaObj = { - idObject : aliasId, - value : val, - color : colorVal, - type : "some strange val" - }; - - try { - new LayoutAlias(javaObj); - assert.ok(false); - } catch (exception) { - assert.ok(exception.message.indexOf("Unknown type") >= 0); - } - }); -}); +"use strict"; + +require("../../mocha-config.js"); + +var LayoutAlias = require('../../../../main/js/map/data/LayoutAlias'); +var assert = require('assert'); + +var logger = require('../../logger'); + +describe('LayoutAlias', function () { + + it("constructor", function () { + var aliasId = 908; + var val = 0.2; + var colorVal = { + a: 23 + }; + var javaObj = { + idObject: aliasId, + value: val, + color: colorVal, + geneVariations: [{}] + }; + var alias = new LayoutAlias(javaObj); + assert.ok(alias); + assert.equal(aliasId, alias.getId()); + assert.equal(val, alias.getValue()); + assert.equal(colorVal, alias.getColor()); + assert.equal(alias.getGeneVariants().length, 1); + }); + + it("update", function () { + var aliasId = 908; + var val = 0.2; + var colorVal = { + a: 23 + }; + var javaObj = { + idObject: aliasId, + value: val, + color: colorVal, + geneVariations: [{}] + }; + var alias = new LayoutAlias(javaObj); + + var aliasId2 = 908; + var val2 = 0.2; + var colorVal2 = { + a: 24 + }; + var javaObj2 = { + idObject: aliasId2, + value: val2, + color: colorVal2, + type: LayoutAlias.GENETIC_VARIANT + }; + + var alias2 = new LayoutAlias(javaObj2); + alias.update(alias2); + + assert.equal(aliasId2, alias2.getId()); + assert.equal(val2, alias2.getValue()); + assert.equal(colorVal2, alias2.getColor()); + assert.equal(alias2.getGeneVariants().length, 0); + }); + + it("invalid update", function () { + var alias = helper.createLayoutAlias(); + try { + alias.update("invalid data"); + assert.ok(false); + } catch (exception) { + assert.ok(exception.message.indexOf("Unknown parameter type") >= 0); + } + + }); + + it("genetic variant constructor", function () { + var aliasId = 908; + var val = 0.2; + var colorVal = { + a: 23 + }; + var javaObj = { + idObject: aliasId, + value: val, + color: colorVal, + type: LayoutAlias.GENETIC_VARIANT + }; + var alias = new LayoutAlias(javaObj); + assert.equal(alias.getType(), LayoutAlias.GENETIC_VARIANT); + }); + + it("GENERIC constructor", function () { + var aliasId = 908; + var val = 0.2; + var colorVal = { + a: 23 + }; + var javaObj = { + idObject: aliasId, + value: val, + color: colorVal, + type: LayoutAlias.GENERIC + }; + var alias = new LayoutAlias(javaObj); + assert.equal(alias.getType(), LayoutAlias.GENERIC); + assert.equal(logger.getWarnings().length, 0); + }); + it("unknown type constructor", function () { + var aliasId = 908; + var val = 0.2; + var colorVal = { + a: 23 + }; + var javaObj = { + idObject: aliasId, + value: val, + color: colorVal, + type: "some strange val" + }; + + try { + new LayoutAlias(javaObj); + assert.ok(false); + } catch (exception) { + assert.ok(exception.message.indexOf("Unknown type") >= 0); + } + }); +}); diff --git a/frontend-js/src/test/js/map/data/LayoutData-test.js b/frontend-js/src/test/js/map/data/LayoutData-test.js index 92413c34b7abce6c062c706ff29ee636babd71ab..89c1b2d6244e4aeb48bf9103182c10b6f9efb578 100644 --- a/frontend-js/src/test/js/map/data/LayoutData-test.js +++ b/frontend-js/src/test/js/map/data/LayoutData-test.js @@ -1,117 +1,117 @@ -"use strict"; - -var LayoutAlias = require('../../../../main/js/map/data/LayoutAlias'); -var LayoutData = require('../../../../main/js/map/data/LayoutData'); - -var chai = require('chai'); -var assert = chai.assert; - -var logger = require('../../logger'); - -describe('LayoutData', function() { - describe("constructor", function() { - it("default", function() { - var layoutId = 3; - var name = "nm"; - var overlay = new LayoutData(layoutId, name); - assert.equal(overlay.getId(), layoutId); - assert.equal(overlay.getName(), name); - }); - - it("with content", function() { - var overlay = new LayoutData({ - content : "test" - }); - assert.ok(overlay.getContent()); - }); - - it("from json obj", function() { - var obj = { - modelId : 15781, - name : "test", - description : "test", - status : "OK", - progress : "0.00", - directory : "dir/subDir", - creator : "admin ", - inputDataAvailable : "true", - idObject : 14852 - }; - var data = new LayoutData(obj); - assert.ok(data); - assert.equal(data.getInputDataAvailable(), true); - assert.equal(data.getDirectory(), "dir/subDir"); - }); - - it("from problematic json", function() { - var obj = { - modelId : 15781, - name : "test", - inputDataAvailable : "wtf", - idObject : 14852 - }; - var data = new LayoutData(obj); - assert.ok(data); - assert.equal(logger.getWarnings().length, 1); - }); - }); - - it("updateAlias", function() { - var layoutId = 3; - var name = "nm"; - var overlay = new LayoutData(layoutId, name); - - var aliasId = 4; - var alias = new LayoutAlias({ - idObject : aliasId, - }); - - overlay.addAlias(alias); - - assert.equal(overlay.getAliasById(aliasId).getValue(), null); - - var val = 5; - var alias2 = new LayoutAlias({ - idObject : aliasId, - value : val, - }); - overlay.updateAlias(alias2); - - assert.equal(overlay.getAliasById(aliasId).getValue(), val); - - assert.equal(logger.getWarnings().length, 0); - }); - - it("getFullAliasById", function() { - var layoutId = 18076; - var name = "nm"; - var overlay = new LayoutData(layoutId, name); - - var aliasId = 329163; - var alias = new LayoutAlias({ - idObject : aliasId, - modelId : 15781, - }); - - overlay.addAlias(alias); - - return overlay.getFullAliasById(aliasId).then(function(data) { - assert.equal(data.getType(), LayoutAlias.GENERIC); - }); - }); - - it("update invalid alias", function() { - var layoutId = 3; - var name = "nm"; - var overlay = new LayoutData(layoutId, name); - - var aliasId = 4; - var alias = new LayoutAlias({ - idObject : aliasId, - }); - - overlay.updateAlias(alias); - - assert.equal(logger.getWarnings().length, 1); - }); -}); +"use strict"; + +var LayoutAlias = require('../../../../main/js/map/data/LayoutAlias'); +var LayoutData = require('../../../../main/js/map/data/LayoutData'); + +var chai = require('chai'); +var assert = chai.assert; + +var logger = require('../../logger'); + +describe('LayoutData', function () { + describe("constructor", function () { + it("default", function () { + var layoutId = 3; + var name = "nm"; + var overlay = new LayoutData(layoutId, name); + assert.equal(overlay.getId(), layoutId); + assert.equal(overlay.getName(), name); + }); + + it("with content", function () { + var overlay = new LayoutData({ + content: "test" + }); + assert.ok(overlay.getContent()); + }); + + it("from json obj", function () { + var obj = { + modelId: 15781, + name: "test", + description: "test", + status: "OK", + progress: "0.00", + directory: "dir/subDir", + creator: "admin ", + inputDataAvailable: "true", + idObject: 14852 + }; + var data = new LayoutData(obj); + assert.ok(data); + assert.equal(data.getInputDataAvailable(), true); + assert.equal(data.getDirectory(), "dir/subDir"); + }); + + it("from problematic json", function () { + var obj = { + modelId: 15781, + name: "test", + inputDataAvailable: "wtf", + idObject: 14852 + }; + var data = new LayoutData(obj); + assert.ok(data); + assert.equal(logger.getWarnings().length, 1); + }); + }); + + it("updateAlias", function () { + var layoutId = 3; + var name = "nm"; + var overlay = new LayoutData(layoutId, name); + + var aliasId = 4; + var alias = new LayoutAlias({ + idObject: aliasId + }); + + overlay.addAlias(alias); + + assert.equal(overlay.getAliasById(aliasId).getValue(), null); + + var val = 5; + var alias2 = new LayoutAlias({ + idObject: aliasId, + value: val + }); + overlay.updateAlias(alias2); + + assert.equal(overlay.getAliasById(aliasId).getValue(), val); + + assert.equal(logger.getWarnings().length, 0); + }); + + it("getFullAliasById", function () { + var layoutId = 18076; + var name = "nm"; + var overlay = new LayoutData(layoutId, name); + + var aliasId = 329163; + var alias = new LayoutAlias({ + idObject: aliasId, + modelId: 15781 + }); + + overlay.addAlias(alias); + + return overlay.getFullAliasById(aliasId).then(function (data) { + assert.equal(data.getType(), LayoutAlias.GENERIC); + }); + }); + + it("update invalid alias", function () { + var layoutId = 3; + var name = "nm"; + var overlay = new LayoutData(layoutId, name); + + var aliasId = 4; + var alias = new LayoutAlias({ + idObject: aliasId + }); + + overlay.updateAlias(alias); + + assert.equal(logger.getWarnings().length, 1); + }); +}); diff --git a/frontend-js/src/test/js/map/data/LayoutReaction-test.js b/frontend-js/src/test/js/map/data/LayoutReaction-test.js index 5ead64d0b40370bae01f8de2ace61d4f248001c5..eb71ac953e39d824559d38c6567d999a240d512f 100644 --- a/frontend-js/src/test/js/map/data/LayoutReaction-test.js +++ b/frontend-js/src/test/js/map/data/LayoutReaction-test.js @@ -1,33 +1,33 @@ -"use strict"; - -var LayoutReaction = require('../../../../main/js/map/data/LayoutReaction'); - -var assert = require('assert'); - -var logger = require('../../logger'); - -describe('LayoutReaction', function() { - - it("constructor", function() { - var reactionId = 908; - var width = 3.5; - var reverse = false; - var colorVal = { - a : 23 - }; - var javaObj = { - idObject : reactionId, - width : width, - color : colorVal, - reverse : reverse - }; - var reaction = new LayoutReaction(javaObj); - assert.ok(reaction); - assert.equal(reactionId, reaction.getId()); - assert.equal(width, reaction.getWidth()); - assert.equal(colorVal, reaction.getColor()); - assert.equal(reverse, reaction.getReverse()); - - assert.equal(logger.getWarnings().length, 0); - }); +"use strict"; + +var LayoutReaction = require('../../../../main/js/map/data/LayoutReaction'); + +var assert = require('assert'); + +var logger = require('../../logger'); + +describe('LayoutReaction', function () { + + it("constructor", function () { + var reactionId = 908; + var width = 3.5; + var reverse = false; + var colorVal = { + a: 23 + }; + var javaObj = { + idObject: reactionId, + width: width, + color: colorVal, + reverse: reverse + }; + var reaction = new LayoutReaction(javaObj); + assert.ok(reaction); + assert.equal(reactionId, reaction.getId()); + assert.equal(width, reaction.getWidth()); + assert.equal(colorVal, reaction.getColor()); + assert.equal(reverse, reaction.getReverse()); + + assert.equal(logger.getWarnings().length, 0); + }); }); \ No newline at end of file diff --git a/frontend-js/src/test/js/map/data/MapModel-test.js b/frontend-js/src/test/js/map/data/MapModel-test.js index 46f6ae592091ffdb458c9267aaa878ccdaecac21..5bad0d3b69968bb7314a452a5e4d9bfd90a8b6b7 100644 --- a/frontend-js/src/test/js/map/data/MapModel-test.js +++ b/frontend-js/src/test/js/map/data/MapModel-test.js @@ -1,186 +1,186 @@ -"use strict"; - -require("../../mocha-config"); - -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var LayoutData = require('../../../../main/js/map/data/LayoutData'); -var MapModel = require('../../../../main/js/map/data/MapModel'); -var NetworkError = require('../../../../main/js/NetworkError'); -var PointData = require('../../../../main/js/map/data/PointData'); - -var assert = require('chai').assert; - -var logger = require('../../logger'); - -describe('MapModel', function() { - - it("MapModel constructor", function() { - var model = new MapModel({ - idObject : 123 - }); - - assert.equal(123, model.getId()); - - assert.ok(model.getLayoutsData()); - }); - - it("Get layout by id", function(done) { - var model = helper.createModel(); - var layout = helper.createLayout(); - - model.getLayoutDataById(layout.getId()).then(function() { - assert.ok(false, 'expected rejection'); - }, function(exception) { - assert.ok(exception); - - model.addLayout(layout); - - return model.getLayoutDataById(layout.getId()).then(function(layoutData) { - assert.ok(layoutData); - assert.ok(layoutData instanceof LayoutData); - done(); - }); - }); - }); - - it("update alias", function() { - var model = helper.createModel(); - - var aliasObj = { - idObject : 32, - modelId : model.id, - references : [], - }; - - model.addAlias(aliasObj); - - return model.getAliasById(32).then(function(alias) { - - assert.equal(alias.getName(), undefined); - - var aliasObj2 = { - idObject : 32, - modelId : model.id, - name : "testName", - type : "Protein", - references : [], - }; - - model.addAlias(aliasObj2); - return model.getAliasById(32); - }).then(function(alias) { - assert.equal(alias.getName(), "testName"); - }); - }); - - it("getPointDataByPoint", function() { - var model = helper.createModel(); - - var point = new google.maps.Point(2, 3.45); - var point2 = new google.maps.Point(2, 3.45); - - var data = model.getPointDataByPoint(point); - - var data2 = model.getPointDataByPoint(point2); - - assert.ok(data); - assert.ok(data2); - assert.equal(data, data2); - }); - - it("getPointDataBy invalid point", function() { - var model = helper.createModel(); - - var data = model.getPointDataByPoint({}); - - assert.equal(data, null); - assert.equal(logger.getWarnings().length, 1); - }); - - it("getAliasById", function() { - var model = helper.createModel(); - - var alias = helper.createAlias(); - - return model.getAliasById(alias.getId()).then(function(result) { - assert.equal(null, result); - }, function(exception) { - assert.ok(exception.message.indexOf("no such file")); - // check if this is exception about not finding file - model.addAlias(alias); - return model.getAliasById(alias.getId()); - }).then(function(result) { - assert.deepEqual(alias, result); - }); - }); - - it("getReactionById 1", function() { - var model = helper.createModel(); - - var reaction = helper.createReaction(); - - return model.getReactionById(reaction.getId()).then(function(result) { - assert.equal(null, result); - }, function(exception) { - assert.ok(exception instanceof NetworkError); - // check if this is exception about not finding file - model.addReaction(reaction); - return model.getReactionById(reaction.getId()); - }).then(function(result) { - assert.equal(reaction, result); - }); - }); - - it("addReaction 2", function() { - var model = helper.createModel(); - - var reaction = helper.createReaction(); - model.addReaction(reaction); - assert.equal(logger.getWarnings().length, 0); - model.addReaction(reaction); - assert.equal(logger.getWarnings().length, 1); - }); - - it("getMissingElements when everything is up to date", function() { - var model = helper.createModel(); - - return model.getMissingElements({}).then(function(result) { - assert.equal(result.length, 0); - }); - }); - - it("getReactionByParticipantId", function() { - var model; - return ServerConnector.getProject().then(function(project) { - - model = project.getModel(); - var ie = new IdentifiedElement({ - modelId : 15781, - type : "ALIAS", - id : 329167 - }); - - return model.getByIdentifiedElement(ie); - }).then(function(element) { - - return model.getReactionsForElement(element); - }).then(function(reactions) { - assert.equal(reactions.length, 5); - }); - }); - - describe("getByIdentifiedElement", function() { - it("by POINT", function() { - var model = new MapModel(); - var ie = new IdentifiedElement({ - modelId : 15781, - type : "POINT", - id : "(1.00,2.00)" - }); - return model.getByIdentifiedElement(ie).then(function(element) { - assert.ok(element instanceof PointData); - }); - }); - }); - -}); +"use strict"; + +require("../../mocha-config"); + +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var LayoutData = require('../../../../main/js/map/data/LayoutData'); +var MapModel = require('../../../../main/js/map/data/MapModel'); +var NetworkError = require('../../../../main/js/NetworkError'); +var PointData = require('../../../../main/js/map/data/PointData'); + +var assert = require('chai').assert; + +var logger = require('../../logger'); + +describe('MapModel', function () { + + it("MapModel constructor", function () { + var model = new MapModel({ + idObject: 123 + }); + + assert.equal(123, model.getId()); + + assert.ok(model.getLayoutsData()); + }); + + it("Get layout by id", function (done) { + var model = helper.createModel(); + var layout = helper.createLayout(); + + model.getLayoutDataById(layout.getId()).then(function () { + assert.ok(false, 'expected rejection'); + }, function (exception) { + assert.ok(exception); + + model.addLayout(layout); + + return model.getLayoutDataById(layout.getId()).then(function (layoutData) { + assert.ok(layoutData); + assert.ok(layoutData instanceof LayoutData); + done(); + }); + }); + }); + + it("update alias", function () { + var model = helper.createModel(); + + var aliasObj = { + idObject: 32, + modelId: model.id, + references: [] + }; + + model.addAlias(aliasObj); + + return model.getAliasById(32).then(function (alias) { + + assert.equal(alias.getName(), undefined); + + var aliasObj2 = { + idObject: 32, + modelId: model.id, + name: "testName", + type: "Protein", + references: [] + }; + + model.addAlias(aliasObj2); + return model.getAliasById(32); + }).then(function (alias) { + assert.equal(alias.getName(), "testName"); + }); + }); + + it("getPointDataByPoint", function () { + var model = helper.createModel(); + + var point = new google.maps.Point(2, 3.45); + var point2 = new google.maps.Point(2, 3.45); + + var data = model.getPointDataByPoint(point); + + var data2 = model.getPointDataByPoint(point2); + + assert.ok(data); + assert.ok(data2); + assert.equal(data, data2); + }); + + it("getPointDataBy invalid point", function () { + var model = helper.createModel(); + + var data = model.getPointDataByPoint({}); + + assert.equal(data, null); + assert.equal(logger.getWarnings().length, 1); + }); + + it("getAliasById", function () { + var model = helper.createModel(); + + var alias = helper.createAlias(); + + return model.getAliasById(alias.getId()).then(function (result) { + assert.equal(null, result); + }, function (exception) { + assert.ok(exception.message.indexOf("no such file")); + // check if this is exception about not finding file + model.addAlias(alias); + return model.getAliasById(alias.getId()); + }).then(function (result) { + assert.deepEqual(alias, result); + }); + }); + + it("getReactionById 1", function () { + var model = helper.createModel(); + + var reaction = helper.createReaction(); + + return model.getReactionById(reaction.getId()).then(function (result) { + assert.equal(null, result); + }, function (exception) { + assert.ok(exception instanceof NetworkError); + // check if this is exception about not finding file + model.addReaction(reaction); + return model.getReactionById(reaction.getId()); + }).then(function (result) { + assert.equal(reaction, result); + }); + }); + + it("addReaction 2", function () { + var model = helper.createModel(); + + var reaction = helper.createReaction(); + model.addReaction(reaction); + assert.equal(logger.getWarnings().length, 0); + model.addReaction(reaction); + assert.equal(logger.getWarnings().length, 1); + }); + + it("getMissingElements when everything is up to date", function () { + var model = helper.createModel(); + + return model.getMissingElements({}).then(function (result) { + assert.equal(result.length, 0); + }); + }); + + it("getReactionByParticipantId", function () { + var model; + return ServerConnector.getProject().then(function (project) { + + model = project.getModel(); + var ie = new IdentifiedElement({ + modelId: 15781, + type: "ALIAS", + id: 329167 + }); + + return model.getByIdentifiedElement(ie); + }).then(function (element) { + + return model.getReactionsForElement(element); + }).then(function (reactions) { + assert.equal(reactions.length, 5); + }); + }); + + describe("getByIdentifiedElement", function () { + it("by POINT", function () { + var model = new MapModel(); + var ie = new IdentifiedElement({ + modelId: 15781, + type: "POINT", + id: "(1.00,2.00)" + }); + return model.getByIdentifiedElement(ie).then(function (element) { + assert.ok(element instanceof PointData); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/data/PointData-test.js b/frontend-js/src/test/js/map/data/PointData-test.js index 4a4d577bcf027c3042860cfccd2c2dedb5a89fb6..3ae65031671cd55e41ddf1ceb8766c4d75325064 100644 --- a/frontend-js/src/test/js/map/data/PointData-test.js +++ b/frontend-js/src/test/js/map/data/PointData-test.js @@ -1,36 +1,36 @@ -"use strict"; - -var PointData = require('../../../../main/js/map/data/PointData'); -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var assert = require('assert'); - -describe('PointData', function() { - describe("constructor", function() { - it("from coordinates", function() { - var point = new google.maps.Point(2, 3.45); - var pointData = new PointData(point); - assert.ok(pointData); - assert.ok(pointData.getId()); - assert.ok(pointData.getPoint()); - assert.ok(pointData.getPoint() instanceof google.maps.Point); - }); - it("from javaObj", function() { - - var pointData = new PointData({ - idObject : "Point2D.Double[2.0, 3.0]" - }); - assert.equal(pointData.getPoint().x, 2.0); - assert.equal(pointData.getPoint().y, 3.0); - }); - - it("from IdentifiedObject", function() { - - var pointData = new PointData({ - idObject : "Point2D.Double[2.0, 3.0]" - }, 102); - var ie = new IdentifiedElement(pointData); - var pointData2 = new PointData(ie); - assert.equal(pointData.getModelId(), pointData2.getModelId()); - }); - }); -}); +"use strict"; + +var PointData = require('../../../../main/js/map/data/PointData'); +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var assert = require('assert'); + +describe('PointData', function() { + describe("constructor", function() { + it("from coordinates", function() { + var point = new google.maps.Point(2, 3.45); + var pointData = new PointData(point); + assert.ok(pointData); + assert.ok(pointData.getId()); + assert.ok(pointData.getPoint()); + assert.ok(pointData.getPoint() instanceof google.maps.Point); + }); + it("from javaObj", function() { + + var pointData = new PointData({ + idObject : "Point2D.Double[2.0, 3.0]" + }); + assert.equal(pointData.getPoint().x, 2.0); + assert.equal(pointData.getPoint().y, 3.0); + }); + + it("from IdentifiedObject", function() { + + var pointData = new PointData({ + idObject : "Point2D.Double[2.0, 3.0]" + }, 102); + var ie = new IdentifiedElement(pointData); + var pointData2 = new PointData(ie); + assert.equal(pointData.getModelId(), pointData2.getModelId()); + }); + }); +}); diff --git a/frontend-js/src/test/js/map/data/Project-test.js b/frontend-js/src/test/js/map/data/Project-test.js index f498364fbe53ef7d500578d8297bae07561ef504..a3e56f1806f550605021a4c2ddffeb92623675f1 100644 --- a/frontend-js/src/test/js/map/data/Project-test.js +++ b/frontend-js/src/test/js/map/data/Project-test.js @@ -1,43 +1,44 @@ -"use strict"; - -var Project = require('../../../../main/js/map/data/Project'); - -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; - -describe('Project', function() { - describe("constructor", function() { - it("default", function() { - return ServerConnector.sendGetRequest("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { - var project = new Project(res); - assert.ok(project); - - assert.equal(project.getVersion(), "0"); - assert.equal(project.getId(), 14898); - assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); - assert.equal(project.getProjectId(), "sample"); - assert.deepEqual(project.getOverviewImages(), []); - - assert.equal(logger.getWarnings().length, 0); - }); - }); - it("from Project obj", function() { - return ServerConnector.sendGetRequest("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function(res) { - var tmpProject = new Project(res); - - var project = new Project(tmpProject); - assert.ok(project); - - assert.equal(project.getVersion(), "0"); - assert.equal(project.getId(), 14898); - assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); - assert.equal(project.getProjectId(), "sample"); - assert.deepEqual(project.getOverviewImages(), []); - - assert.equal(logger.getWarnings().length, 0); - }); - }); - }); -}); +"use strict"; + +var Project = require('../../../../main/js/map/data/Project'); +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('Project', function () { + describe("constructor", function () { + it("default", function () { + return ServerConnector.sendGetRequest("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function (res) { + var project = new Project(res); + assert.ok(project); + + assert.equal(project.getVersion(), "0"); + assert.equal(project.getId(), 14898); + assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); + assert.equal(project.getProjectId(), "sample"); + assert.deepEqual(project.getOverviewImages(), []); + + assert.equal(logger.getWarnings().length, 0); + }); + }); + it("from Project obj", function () { + return ServerConnector.sendGetRequest("testFiles/apiCalls/projects/sample/token=MOCK_TOKEN_ID&").then(function (res) { + var tmpProject = new Project(res); + + var project = new Project(tmpProject); + assert.ok(project); + + assert.equal(project.getVersion(), "0"); + assert.equal(project.getId(), 14898); + assert.equal(project.getName(), "UNKNOWN DISEASE MAP"); + assert.equal(project.getProjectId(), "sample"); + assert.deepEqual(project.getOverviewImages(), []); + + assert.equal(logger.getWarnings().length, 0); + }); + }); + }); +}); diff --git a/frontend-js/src/test/js/map/data/Reaction-test.js b/frontend-js/src/test/js/map/data/Reaction-test.js index f7aea569e35fcc95be20875fab56c939cef913d8..c1d97443cdbe4e4d5fd55d7ae1b0cef5fd4f14fc 100644 --- a/frontend-js/src/test/js/map/data/Reaction-test.js +++ b/frontend-js/src/test/js/map/data/Reaction-test.js @@ -1,49 +1,49 @@ -"use strict"; - -require("../../mocha-config.js"); - -var Reaction = require('../../../../main/js/map/data/Reaction'); -var assert = require('assert'); - -var logger = require('../../logger'); - -describe('Reaction', function() { - - it("constructor from invalid", function() { - var javaObject = { - lines : [ { - start : Object, - end : Object, - type : "UNK" - } ], - - }; - try { - new Reaction(javaObject); - } catch (exception) { - assert.ok(exception.message.indexOf("Unknown line type") >= 0); - } - }); - - it("constructor from invalid 2", function() { - var javaObject = { - lines : [], - - }; - try { - new Reaction(javaObject); - } catch (exception) { - assert.ok(exception.message.indexOf("undefined center") >= 0); - } - }); - - it("constructor from Reaction", function() { - var reaction = helper.createReaction(); - var reaction2 = new Reaction(reaction); - assert.equal(reaction2.getId(), reaction.getId()); - assert.equal(reaction2.getCenter(), reaction.getCenter()); - assert.equal(reaction2.getModelId(), reaction.getModelId()); - assert.deepEqual(reaction2.getLines(), reaction.getLines()); - assert.equal(logger.getWarnings().length, 0); - }); -}); +"use strict"; + +require("../../mocha-config.js"); + +var Reaction = require('../../../../main/js/map/data/Reaction'); +var assert = require('assert'); + +var logger = require('../../logger'); + +describe('Reaction', function () { + + it("constructor from invalid", function () { + var javaObject = { + lines: [{ + start: Object, + end: Object, + type: "UNK" + }] + + }; + try { + new Reaction(javaObject); + } catch (exception) { + assert.ok(exception.message.indexOf("Unknown line type") >= 0); + } + }); + + it("constructor from invalid 2", function () { + var javaObject = { + lines: [] + + }; + try { + new Reaction(javaObject); + } catch (exception) { + assert.ok(exception.message.indexOf("undefined center") >= 0); + } + }); + + it("constructor from Reaction", function () { + var reaction = helper.createReaction(); + var reaction2 = new Reaction(reaction); + assert.equal(reaction2.getId(), reaction.getId()); + assert.equal(reaction2.getCenter(), reaction.getCenter()); + assert.equal(reaction2.getModelId(), reaction.getModelId()); + assert.deepEqual(reaction2.getLines(), reaction.getLines()); + assert.equal(logger.getWarnings().length, 0); + }); +}); diff --git a/frontend-js/src/test/js/map/data/ReferenceGenome-test.js b/frontend-js/src/test/js/map/data/ReferenceGenome-test.js index c3eff93fddb8ccece1cf1c500dc3ad459af72550..b001486d62b6f371b27916007a138f003e4ae8dc 100644 --- a/frontend-js/src/test/js/map/data/ReferenceGenome-test.js +++ b/frontend-js/src/test/js/map/data/ReferenceGenome-test.js @@ -1,44 +1,44 @@ -"use strict"; - -var ReferenceGenome = require('../../../../main/js/map/data/ReferenceGenome'); -var assert = require('assert'); - -describe('ReferenceGenome', function () { - describe("constructor", function () { - it("full", function () { - var data = { - type: "TYP", - version: "v3", - localUrl: "http://google.pl/", - sourceUrl: "http://google.pl/", - }; - var genome = new ReferenceGenome(data); - assert.equal(genome.getType(), data.type); - assert.equal(genome.getVersion(), data.version); - assert.equal(genome.getUrl(), data.localUrl); - assert.equal(genome.getGeneMappings().length, 0); - }); - it("simple", function () { - var data = { - sourceUrl: "http://google.pl/", - geneMapping: [{}], - }; - var genome = new ReferenceGenome(data); - assert.equal(genome.getUrl(), data.sourceUrl); - assert.equal(genome.getGeneMappings().length, 1); - }); - - it("empty argument", function () { - var genome = new ReferenceGenome(); - assert.ok(genome); - }); - - it("null argument", function () { - var genome = new ReferenceGenome(null); - assert.ok(genome); - }); - - }); - - -}); +"use strict"; + +var ReferenceGenome = require('../../../../main/js/map/data/ReferenceGenome'); +var assert = require('assert'); + +describe('ReferenceGenome', function () { + describe("constructor", function () { + it("full", function () { + var data = { + type: "TYP", + version: "v3", + localUrl: "http://google.pl/", + sourceUrl: "http://google.pl/" + }; + var genome = new ReferenceGenome(data); + assert.equal(genome.getType(), data.type); + assert.equal(genome.getVersion(), data.version); + assert.equal(genome.getUrl(), data.localUrl); + assert.equal(genome.getGeneMappings().length, 0); + }); + it("simple", function () { + var data = { + sourceUrl: "http://google.pl/", + geneMapping: [{}] + }; + var genome = new ReferenceGenome(data); + assert.equal(genome.getUrl(), data.sourceUrl); + assert.equal(genome.getGeneMappings().length, 1); + }); + + it("empty argument", function () { + var genome = new ReferenceGenome(); + assert.ok(genome); + }); + + it("null argument", function () { + var genome = new ReferenceGenome(null); + assert.ok(genome); + }); + + }); + + +}); diff --git a/frontend-js/src/test/js/map/data/ReferenceGenomeGeneMapping-test.js b/frontend-js/src/test/js/map/data/ReferenceGenomeGeneMapping-test.js index 9b05299fba13bb7ad25e523bd84bdc4a771f3b1e..3a55bbfb6bc426aa4f7b6bada2b0c66716ff3bcc 100644 --- a/frontend-js/src/test/js/map/data/ReferenceGenomeGeneMapping-test.js +++ b/frontend-js/src/test/js/map/data/ReferenceGenomeGeneMapping-test.js @@ -1,16 +1,16 @@ -"use strict"; - -var ReferenceGenomeGeneMapping = require('../../../../main/js/map/data/ReferenceGenomeGeneMapping'); -var assert = require('assert'); - -describe('ReferenceGenomeGeneMapping', function() { - it("constructor", function() { - var data = { - name: "TYPe", - localUrl : "http://google.pl/", - }; - var mapping = new ReferenceGenomeGeneMapping(data); - assert.equal(mapping.getName(), data.name); - assert.equal(mapping.getUrl(), data.localUrl); - }); -}); +"use strict"; + +var ReferenceGenomeGeneMapping = require('../../../../main/js/map/data/ReferenceGenomeGeneMapping'); +var assert = require('assert'); + +describe('ReferenceGenomeGeneMapping', function () { + it("constructor", function () { + var data = { + name: "TYPe", + localUrl: "http://google.pl/" + }; + var mapping = new ReferenceGenomeGeneMapping(data); + assert.equal(mapping.getName(), data.name); + assert.equal(mapping.getUrl(), data.localUrl); + }); +}); diff --git a/frontend-js/src/test/js/map/data/TargettingStructure-test.js b/frontend-js/src/test/js/map/data/TargettingStructure-test.js index 66a2c4816945e5107d32e28d060f41a3aa5c07f9..b0f5612d5cbf55ea89a1e4a074edb5a526fe8522 100644 --- a/frontend-js/src/test/js/map/data/TargettingStructure-test.js +++ b/frontend-js/src/test/js/map/data/TargettingStructure-test.js @@ -1,41 +1,40 @@ -"use strict"; - -/* exported logger */ - -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); - -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; - -describe('TargettingStructure', function() { - it("getTargetsForIdentifiedElement", function() { - helper.setUrl("http://test/?id=drug_target_sample"); - - var map, searchDb; - return ServerConnector.getProject("drug_target_sample").then(function(project) { - map = helper.createCustomMap(project); - searchDb = helper.createDrugDbOverlay(map); - return searchDb.searchByQuery("NADH"); - }).then(function(drugs) { - var drug = drugs[0][0]; - var ie = new IdentifiedElement({ - id : 436152, - modelId : 20637, - type : 'ALIAS' - }); - var targets = drug.getTargetsForIdentifiedElement(ie); - assert.equal(targets.length, 1); - - ie = new IdentifiedElement({ - id : 111111111111, - modelId : 20637, - type : 'ALIAS' - }); - targets = drug.getTargetsForIdentifiedElement(ie); - assert.equal(targets.length, 0); - - }); - }); -}); +"use strict"; + +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('TargettingStructure', function () { + it("getTargetsForIdentifiedElement", function () { + helper.setUrl("http://test/?id=drug_target_sample"); + + var map, searchDb; + return ServerConnector.getProject("drug_target_sample").then(function (project) { + map = helper.createCustomMap(project); + searchDb = helper.createDrugDbOverlay(map); + return searchDb.searchByQuery("NADH"); + }).then(function (drugs) { + var drug = drugs[0][0]; + var ie = new IdentifiedElement({ + id: 436152, + modelId: 20637, + type: 'ALIAS' + }); + var targets = drug.getTargetsForIdentifiedElement(ie); + assert.equal(targets.length, 1); + + ie = new IdentifiedElement({ + id: 111111111111, + modelId: 20637, + type: 'ALIAS' + }); + targets = drug.getTargetsForIdentifiedElement(ie); + assert.equal(targets.length, 0); + assert.equal(0, logger.getWarnings().length); + }); + }); +}); diff --git a/frontend-js/src/test/js/map/data/User-test.js b/frontend-js/src/test/js/map/data/User-test.js index a8ec996794c0a1ca81f757855f9880bb1ff015db..6b432464293cb1aeaa5d02dde6326da8585ad5f3 100644 --- a/frontend-js/src/test/js/map/data/User-test.js +++ b/frontend-js/src/test/js/map/data/User-test.js @@ -1,58 +1,59 @@ -"use strict"; - -require("../../mocha-config"); - -var User = require('../../../../main/js/map/data/User'); - -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; - -describe('Project', function () { - describe("constructor", function () { - it("empty data", function () { - var user = new User({}); - assert.ok(user); - - assert.equal(logger.getWarnings().length, 0); - }); - }); - - describe("setPrivilege", function () { - it("non existing data", function () { - var user = new User({}); - assert.ok(user); - - return ServerConnector.getConfiguration().then(function (configuration) { - var privilegeType = configuration.getPrivilegeTypes()[0]; - user.setPrivilege({type: privilegeType, value: true}); - assert.ok(user.hasPrivilege(privilegeType)); - }); - }); - - it("existing data", function () { - var user = new User({}); - assert.ok(user); - - return ServerConnector.getConfiguration().then(function (configuration) { - var privilegeType = configuration.getPrivilegeTypes()[0]; - user.setPrivilege({type: privilegeType, value: false}); - user.setPrivilege({type: privilegeType, value: true}); - assert.ok(user.hasPrivilege(privilegeType)); - }); - }); - - it("undefined value", function () { - var user = new User({}); - assert.ok(user); - - return ServerConnector.getConfiguration().then(function (configuration) { - var privilegeType = configuration.getPrivilegeTypes()[0]; - user.setPrivilege({type: privilegeType, value: false}); - user.setPrivilege({type: privilegeType}); - assert.ok(user.hasPrivilege(privilegeType)); - }); - }); - }); -}); +"use strict"; + +require("../../mocha-config"); + +var User = require('../../../../main/js/map/data/User'); +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('Project', function () { + describe("constructor", function () { + it("empty data", function () { + var user = new User({}); + assert.ok(user); + + assert.equal(logger.getWarnings().length, 0); + }); + }); + + describe("setPrivilege", function () { + it("non existing data", function () { + var user = new User({}); + assert.ok(user); + + return ServerConnector.getConfiguration().then(function (configuration) { + var privilegeType = configuration.getPrivilegeTypes()[0]; + user.setPrivilege({type: privilegeType, value: true}); + assert.ok(user.hasPrivilege(privilegeType)); + }); + }); + + it("existing data", function () { + var user = new User({}); + assert.ok(user); + + return ServerConnector.getConfiguration().then(function (configuration) { + var privilegeType = configuration.getPrivilegeTypes()[0]; + user.setPrivilege({type: privilegeType, value: false}); + user.setPrivilege({type: privilegeType, value: true}); + assert.ok(user.hasPrivilege(privilegeType)); + }); + }); + + it("undefined value", function () { + var user = new User({}); + assert.ok(user); + + return ServerConnector.getConfiguration().then(function (configuration) { + var privilegeType = configuration.getPrivilegeTypes()[0]; + user.setPrivilege({type: privilegeType, value: false}); + user.setPrivilege({type: privilegeType}); + assert.ok(user.hasPrivilege(privilegeType)); + }); + }); + }); +}); diff --git a/frontend-js/src/test/js/map/data/UserPreferences-test.js b/frontend-js/src/test/js/map/data/UserPreferences-test.js index 6a940f7717ada5fb8f4ea83d0edc83b4e4de430b..95299f8f97abe90e48e6bb811e4e0c900882af41 100644 --- a/frontend-js/src/test/js/map/data/UserPreferences-test.js +++ b/frontend-js/src/test/js/map/data/UserPreferences-test.js @@ -1,27 +1,27 @@ -"use strict"; - -require("../../mocha-config"); -/* exported logger */ - -var UserPreferences = require('../../../../main/js/map/data/UserPreferences'); - -var logger = require('../../logger'); - -var chai = require('chai'); -var assert = chai.assert; - -describe('UserPreferences', function () { - it("constructor", function () { - return helper.readFile("testFiles/preferences.json").then(function (content) { - var object = new UserPreferences(JSON.parse(content)); - assert.ok(object); - assert.notOk(object.getProjectUpload().autoResize); - assert.ok(object.getProjectUpload().cacheData); - - assert.ok(object.getElementAnnotators("lcsb.mapviewer.model.map.species.Protein").length > 0); - assert.ok(object.getElementValidAnnotations("lcsb.mapviewer.model.map.species.Protein").length > 0); - assert.ok(object.getElementRequiredAnnotations("lcsb.mapviewer.model.map.species.Protein").requiredAtLeastOnce); - assert.ok(object.getElementRequiredAnnotations("lcsb.mapviewer.model.map.species.Protein").list.length > 0); - }); - }); -}); +"use strict"; + +require("../../mocha-config"); + +var UserPreferences = require('../../../../main/js/map/data/UserPreferences'); + +var logger = require('../../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +describe('UserPreferences', function () { + it("constructor", function () { + return helper.readFile("testFiles/preferences.json").then(function (content) { + var object = new UserPreferences(JSON.parse(content)); + assert.ok(object); + assert.notOk(object.getProjectUpload().autoResize); + assert.ok(object.getProjectUpload().cacheData); + + assert.ok(object.getElementAnnotators("lcsb.mapviewer.model.map.species.Protein").length > 0); + assert.ok(object.getElementValidAnnotations("lcsb.mapviewer.model.map.species.Protein").length > 0); + assert.ok(object.getElementRequiredAnnotations("lcsb.mapviewer.model.map.species.Protein").requiredAtLeastOnce); + assert.ok(object.getElementRequiredAnnotations("lcsb.mapviewer.model.map.species.Protein").list.length > 0); + assert.equal(0, logger.getWarnings().length); + }); + }); +}); diff --git a/frontend-js/src/test/js/map/marker/AliasMarker-test.js b/frontend-js/src/test/js/map/marker/AliasMarker-test.js index a272d9b704a6cb759b578839c5ca071d0ec86da2..f7f10ead74c5b8aea29e9cefe937a41862f05b27 100644 --- a/frontend-js/src/test/js/map/marker/AliasMarker-test.js +++ b/frontend-js/src/test/js/map/marker/AliasMarker-test.js @@ -1,106 +1,106 @@ -"use strict"; - -require("../../mocha-config.js"); - -var ServerConnector = require('../../ServerConnector-mock'); - -var logger = require('../../logger'); - -var AliasMarker = require('../../../../main/js/map/marker/AliasMarker'); -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var assert = require('assert'); - -describe('AliasMarker', function () { - - it("Constructor", function () { - var map, 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({ - element: identifiedElement, - map: map - }); - - assert.equal(alias.getId(), marker.getId()); - assert.equal(map, marker.getCustomMap()); - assert.equal("empty.png", marker.getIcon()); - return marker.init(); - }).then(function () { - assert.equal(alias, marker.getAliasData()); - assert.ok(marker._marker); - assert.ok(marker.getBounds()); - assert.equal(0, logger.getWarnings().length); - }); - }); - - it("getIcon", function () { - var map = helper.createCustomMap(); - var element = helper.createAlias(map); - var marker = new AliasMarker({ - element: new IdentifiedElement(element), - map: map - }); - var icon = "test.png"; - marker.addIcon("test.png"); - assert.equal(icon, marker.getIcon()); - marker.addIcon("test.png"); - assert.equal(icon, marker.getIcon()); - marker.removeIcon("test.png"); - assert.equal(icon, marker.getIcon()); - marker.removeIcon("test.png"); - assert.equal(undefined, marker.getIcon()); - }); - - it("click on marker", function () { - var map; - var marker; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - return map.getModel().getAliasById(329171); - }).then(function (alias) { - - var identifiedElement = new IdentifiedElement(alias); - - marker = new AliasMarker({ - element: identifiedElement, - map: map - }); - return marker.init(); - }).then(function () { - return google.maps.event.trigger(marker.getGoogleMarker(), "click"); - }); - }); - - it("click on marker when chemical is not available", function () { - var projectId = "complex_model_with_submaps"; - helper.setUrl("http://test/?id=" + projectId); - var map; - var marker; - return ServerConnector.getProject(projectId).then(function (project) { - map = helper.createCustomMap(project); - var ov = helper.createChemicalDbOverlay(map); - ov.setAllowGeneralSearch(false); - ov.setAllowSearchById(false); - return map.getModel().getAliasById(345334); - }).then(function (alias) { - var identifiedElement = new IdentifiedElement(alias); - - marker = new AliasMarker({ - element: identifiedElement, - map: map - }); - return marker.init(); - }).then(function () { - - return google.maps.event.trigger(marker.getGoogleMarker(), "click"); - }); - }); - -}); +"use strict"; + +require("../../mocha-config.js"); + +var ServerConnector = require('../../ServerConnector-mock'); + +var logger = require('../../logger'); + +var AliasMarker = require('../../../../main/js/map/marker/AliasMarker'); +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var assert = require('assert'); + +describe('AliasMarker', function () { + + it("Constructor", function () { + var map, 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({ + element: identifiedElement, + map: map + }); + + assert.equal(alias.getId(), marker.getId()); + assert.equal(map, marker.getCustomMap()); + assert.equal("empty.png", marker.getIcon()); + return marker.init(); + }).then(function () { + assert.equal(alias, marker.getAliasData()); + assert.ok(marker._marker); + assert.ok(marker.getBounds()); + assert.equal(0, logger.getWarnings().length); + }); + }); + + it("getIcon", function () { + var map = helper.createCustomMap(); + var element = helper.createAlias(map); + var marker = new AliasMarker({ + element: new IdentifiedElement(element), + map: map + }); + var icon = "test.png"; + marker.addIcon("test.png"); + assert.equal(icon, marker.getIcon()); + marker.addIcon("test.png"); + assert.equal(icon, marker.getIcon()); + marker.removeIcon("test.png"); + assert.equal(icon, marker.getIcon()); + marker.removeIcon("test.png"); + assert.equal(undefined, marker.getIcon()); + }); + + it("click on marker", function () { + var map; + var marker; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + return map.getModel().getAliasById(329171); + }).then(function (alias) { + + var identifiedElement = new IdentifiedElement(alias); + + marker = new AliasMarker({ + element: identifiedElement, + map: map + }); + return marker.init(); + }).then(function () { + return google.maps.event.trigger(marker.getGoogleMarker(), "click"); + }); + }); + + it("click on marker when chemical is not available", function () { + var projectId = "complex_model_with_submaps"; + helper.setUrl("http://test/?id=" + projectId); + var map; + var marker; + return ServerConnector.getProject(projectId).then(function (project) { + map = helper.createCustomMap(project); + var ov = helper.createChemicalDbOverlay(map); + ov.setAllowGeneralSearch(false); + ov.setAllowSearchById(false); + return map.getModel().getAliasById(345334); + }).then(function (alias) { + var identifiedElement = new IdentifiedElement(alias); + + marker = new AliasMarker({ + element: identifiedElement, + map: map + }); + return marker.init(); + }).then(function () { + + return google.maps.event.trigger(marker.getGoogleMarker(), "click"); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/marker/MarkerSurfaceCollection-test.js b/frontend-js/src/test/js/map/marker/MarkerSurfaceCollection-test.js index d237863b0fd9b7954a556e55738dcd7aebced1af..c091f31dac8140d2572b97356a6f8537dce33cd4 100644 --- a/frontend-js/src/test/js/map/marker/MarkerSurfaceCollection-test.js +++ b/frontend-js/src/test/js/map/marker/MarkerSurfaceCollection-test.js @@ -1,134 +1,134 @@ -"use strict"; - -require("../../mocha-config.js"); - -var ServerConnector = require('../../ServerConnector-mock'); - -/* exported logger */ - -// noinspection JSUnusedLocalSymbols -var logger = require('../../logger'); - -var MarkerSurfaceCollection = require('../../../../main/js/map/marker/MarkerSurfaceCollection'); -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var assert = require('assert'); - -describe('MarkerSurfaceCollection', function () { - - describe("addMarker", function () { - it("update marker", function () { - var map, marker1, marker2, collection; - var element = new IdentifiedElement({ - id: 329159, - modelId: 15781, - type: "ALIAS" - }); - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - collection = map.getMarkerSurfaceCollection(); - return collection.addMarker({element: element, icons: ["empty.png"]}); - }).then(function (result) { - marker1 = result; - element.setIcon("another.png"); - return collection.addMarker({element: element, icons: ["empty2.png"]}); - }).then(function (result) { - marker2 = result; - assert.equal(marker1, marker2); - }); - }); - - it("reaction marker", function () { - var map, overlay, collection; - var element = new IdentifiedElement({ - id: 153508, - modelId: 15781, - type: "REACTION" - }); - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - overlay = helper.createDbOverlay(map); - collection = map.getMarkerSurfaceCollection(); - return collection.addMarker({element: element, icons: ["empty.png"]}); - }).then(function (result) { - assert.ok(result.getReactionData()); - }); - }); - - it("click on marker", function () { - var map, marker, collection; - var element = new IdentifiedElement({ - id: 329159, - modelId: 15781, - type: "ALIAS" - }); - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - collection = map.getMarkerSurfaceCollection(); - return collection.addMarker({element: element, icons: ["empty.png"]}); - }).then(function (result) { - marker = result; - return marker.onClickHandler(); - }); - }); - - }); - - describe("createSurfaceForDbOverlay", function () { - it("click on element surface", function () { - var map, collection, overlay; - var element = new IdentifiedElement({ - id: 329159, - modelId: 15781, - type: "ALIAS" - }); - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - overlay = helper.createSearchDbOverlay(map); - collection = map.getMarkerSurfaceCollection(); - return collection.createSurfaceForDbOverlay(element, overlay); - }).then(function (surface) { - return surface.onClickHandler(); - }); - }); - - it("click on reaction surface", function () { - var map, collection, overlay; - var element = new IdentifiedElement({ - id: 153508, - modelId: 15781, - type: "REACTION" - }); - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - overlay = helper.createSearchDbOverlay(map); - collection = map.getMarkerSurfaceCollection(); - return collection.createSurfaceForDbOverlay(element, overlay); - }).then(function (surface) { - return surface.onClickHandler(); - }); - }); - it("update surface", function () { - var map, collection, marker1, marker2, overlay; - var element = new IdentifiedElement({ - id: 329159, - modelId: 15781, - type: "ALIAS" - }); - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - overlay = helper.createDbOverlay(map); - collection = map.getMarkerSurfaceCollection(); - return collection.createSurfaceForDbOverlay(element, overlay); - }).then(function (result) { - marker1 = result; - element.setColor("another.png"); - return collection.createSurfaceForDbOverlay(element, overlay); - }).then(function (result) { - marker2 = result; - assert.equal(marker1, marker2); - }); - }); - - }); - -}); +"use strict"; + +require("../../mocha-config.js"); + +var ServerConnector = require('../../ServerConnector-mock'); + +/* exported logger */ + +// noinspection JSUnusedLocalSymbols +var logger = require('../../logger'); + +var MarkerSurfaceCollection = require('../../../../main/js/map/marker/MarkerSurfaceCollection'); +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var assert = require('assert'); + +describe('MarkerSurfaceCollection', function () { + + describe("addMarker", function () { + it("update marker", function () { + var map, marker1, marker2, collection; + var element = new IdentifiedElement({ + id: 329159, + modelId: 15781, + type: "ALIAS" + }); + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + collection = map.getMarkerSurfaceCollection(); + return collection.addMarker({element: element, icons: ["empty.png"]}); + }).then(function (result) { + marker1 = result; + element.setIcon("another.png"); + return collection.addMarker({element: element, icons: ["empty2.png"]}); + }).then(function (result) { + marker2 = result; + assert.equal(marker1, marker2); + }); + }); + + it("reaction marker", function () { + var map, overlay, collection; + var element = new IdentifiedElement({ + id: 153508, + modelId: 15781, + type: "REACTION" + }); + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + overlay = helper.createDbOverlay(map); + collection = map.getMarkerSurfaceCollection(); + return collection.addMarker({element: element, icons: ["empty.png"]}); + }).then(function (result) { + assert.ok(result.getReactionData()); + }); + }); + + it("click on marker", function () { + var map, marker, collection; + var element = new IdentifiedElement({ + id: 329159, + modelId: 15781, + type: "ALIAS" + }); + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + collection = map.getMarkerSurfaceCollection(); + return collection.addMarker({element: element, icons: ["empty.png"]}); + }).then(function (result) { + marker = result; + return marker.onClickHandler(); + }); + }); + + }); + + describe("createSurfaceForDbOverlay", function () { + it("click on element surface", function () { + var map, collection, overlay; + var element = new IdentifiedElement({ + id: 329159, + modelId: 15781, + type: "ALIAS" + }); + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + overlay = helper.createSearchDbOverlay(map); + collection = map.getMarkerSurfaceCollection(); + return collection.createSurfaceForDbOverlay(element, overlay); + }).then(function (surface) { + return surface.onClickHandler(); + }); + }); + + it("click on reaction surface", function () { + var map, collection, overlay; + var element = new IdentifiedElement({ + id: 153508, + modelId: 15781, + type: "REACTION" + }); + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + overlay = helper.createSearchDbOverlay(map); + collection = map.getMarkerSurfaceCollection(); + return collection.createSurfaceForDbOverlay(element, overlay); + }).then(function (surface) { + return surface.onClickHandler(); + }); + }); + it("update surface", function () { + var map, collection, marker1, marker2, overlay; + var element = new IdentifiedElement({ + id: 329159, + modelId: 15781, + type: "ALIAS" + }); + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + overlay = helper.createDbOverlay(map); + collection = map.getMarkerSurfaceCollection(); + return collection.createSurfaceForDbOverlay(element, overlay); + }).then(function (result) { + marker1 = result; + element.setColor("another.png"); + return collection.createSurfaceForDbOverlay(element, overlay); + }).then(function (result) { + marker2 = result; + assert.equal(marker1, marker2); + }); + }); + + }); + +}); diff --git a/frontend-js/src/test/js/map/overlay/AbstractDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/AbstractDbOverlay-test.js index 809e7fd87ae5523ef118db2cdeaf8ecd484497ac..a29201f29f023de0708f59e05b41a3b84cdece13 100644 --- a/frontend-js/src/test/js/map/overlay/AbstractDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/AbstractDbOverlay-test.js @@ -1,99 +1,99 @@ -"use strict"; - -var AbstractDbOverlay = require('../../../../main/js/map/overlay/AbstractDbOverlay'); - -var assert = require('assert'); -var logger = require('../../logger'); - -describe('AbstractDbOverlay', function() { - var mapMock = { - registerDbOverlay : function() { - }, - refreshInfoWindows : function() { - }, - updateInfoWindowForIdentifiedElement : function() { - }, - }; - - it("constructor 1", function() { - var oc = new AbstractDbOverlay({ - map : mapMock, - name : 'test name' - }); - assert.ok(oc); - assert.equal(oc.getName(), 'test name'); - assert.equal(logger.getWarnings().length, 0); - }); - - it("constructor 2", function() { - var oc = new AbstractDbOverlay({ - map : mapMock, - name : 'test name', - allowSearchById : true - }); - assert.ok(oc); - assert.ok(oc.allowSearchById()); - }); - - it("constructor 3", function() { - var oc = new AbstractDbOverlay({ - map : mapMock, - name : 'test name', - allowSearchById : false, - allowGeneralSearch : true - }); - assert.ok(oc); - assert.ok(oc.allowGeneralSearch()); - }); - - it("splitQuery", function() { - var map = helper.createCustomMap(); - - var oc = helper.createSearchDbOverlay(map); - - var result = oc.splitQuery("test q"); - assert.equal(result[0], "test q"); - }); - - it("splitQuery 2", function() { - var map = helper.createCustomMap(); - - var oc = helper.createSearchDbOverlay(map); - - var result = oc.splitQuery("test,q"); - assert.equal(result[0], "test"); - assert.equal(result[1], "q"); - }); - - it("splitQuery 3", function() { - var map = helper.createCustomMap(); - - var oc = helper.createSearchDbOverlay(map); - - var result = oc.splitQuery("test;q"); - assert.equal(result[0], "test"); - assert.equal(result[1], "q"); - }); - - it("splitQuery 4", function() { - var map = helper.createCustomMap(); - - var oc = helper.createSearchDbOverlay(map); - - var result = oc.splitQuery("test;q,bla"); - assert.equal(result[0], "test"); - assert.equal(result[1], "q,bla"); - assert.equal(result.length, 2); - }); - - it("splitQuery 5", function() { - var map = helper.createCustomMap(); - - var oc = helper.createSearchDbOverlay(map); - - var result = oc.splitQuery("test;q,bla", true); - assert.equal(result[0], "test"); - assert.equal(result[1], "q,bla"); - assert.equal(result[2], "test;q,bla"); - }); -}); +"use strict"; + +var AbstractDbOverlay = require('../../../../main/js/map/overlay/AbstractDbOverlay'); + +var assert = require('assert'); +var logger = require('../../logger'); + +describe('AbstractDbOverlay', function () { + var mapMock = { + registerDbOverlay: function () { + }, + refreshInfoWindows: function () { + }, + updateInfoWindowForIdentifiedElement: function () { + } + }; + + it("constructor 1", function () { + var oc = new AbstractDbOverlay({ + map: mapMock, + name: 'test name' + }); + assert.ok(oc); + assert.equal(oc.getName(), 'test name'); + assert.equal(logger.getWarnings().length, 0); + }); + + it("constructor 2", function () { + var oc = new AbstractDbOverlay({ + map: mapMock, + name: 'test name', + allowSearchById: true + }); + assert.ok(oc); + assert.ok(oc.allowSearchById()); + }); + + it("constructor 3", function () { + var oc = new AbstractDbOverlay({ + map: mapMock, + name: 'test name', + allowSearchById: false, + allowGeneralSearch: true + }); + assert.ok(oc); + assert.ok(oc.allowGeneralSearch()); + }); + + it("splitQuery", function () { + var map = helper.createCustomMap(); + + var oc = helper.createSearchDbOverlay(map); + + var result = oc.splitQuery("test q"); + assert.equal(result[0], "test q"); + }); + + it("splitQuery 2", function () { + var map = helper.createCustomMap(); + + var oc = helper.createSearchDbOverlay(map); + + var result = oc.splitQuery("test,q"); + assert.equal(result[0], "test"); + assert.equal(result[1], "q"); + }); + + it("splitQuery 3", function () { + var map = helper.createCustomMap(); + + var oc = helper.createSearchDbOverlay(map); + + var result = oc.splitQuery("test;q"); + assert.equal(result[0], "test"); + assert.equal(result[1], "q"); + }); + + it("splitQuery 4", function () { + var map = helper.createCustomMap(); + + var oc = helper.createSearchDbOverlay(map); + + var result = oc.splitQuery("test;q,bla"); + assert.equal(result[0], "test"); + assert.equal(result[1], "q,bla"); + assert.equal(result.length, 2); + }); + + it("splitQuery 5", function () { + var map = helper.createCustomMap(); + + var oc = helper.createSearchDbOverlay(map); + + var result = oc.splitQuery("test;q,bla", true); + assert.equal(result[0], "test"); + assert.equal(result[1], "q,bla"); + assert.equal(result[2], "test;q,bla"); + }); +}); diff --git a/frontend-js/src/test/js/map/overlay/ChemicalDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/ChemicalDbOverlay-test.js index 63d2e6c1eb7ff2ffba9d1fd48e803bb796a6c2cb..4fa5426a826f8505a77d7bace8b58aa4b0511d1b 100644 --- a/frontend-js/src/test/js/map/overlay/ChemicalDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/ChemicalDbOverlay-test.js @@ -1,59 +1,59 @@ -"use strict"; - -var logger = require('../../logger'); - -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var ChemicalDbOverlay = require('../../../../main/js/map/overlay/ChemicalDbOverlay'); - -var assert = require('assert'); - -describe('ChemicalDbOverlay', function() { - - it("constructor 1", function() { - var map = helper.createCustomMap(); - var oc = new ChemicalDbOverlay({ - map : map, - name : 'chemical' - }); - assert.ok(oc); - assert.equal(oc.getName(), 'chemical'); - - assert.equal(logger.getWarnings.length, 0); - }); - - it("searchByQuery", function() { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var searchDb = helper.createChemicalDbOverlay(map); - return searchDb.searchByQuery("rotenone").then(function(chemicals) { - assert.equal(chemicals.length, 1); - assert.equal(searchDb.getQueries().length, 1); - return searchDb.getElementsByQuery(searchDb.getQueries()[0]); - }).then(function(elements) { - //these are targets - assert.ok(elements.length>0); - var chemical = elements.element; - assert.equal(chemical.getName(), "Rotenone"); - return searchDb.getIdentifiedElements(); - }).then(function(elements) { - assert.equal(elements.length,0); - }); - }); - - it("searchNamesByTarget", function() { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var searchDb = helper.createChemicalDbOverlay(map); - - var target = new IdentifiedElement({ - type : "ALIAS", - id : 329170, - modelId : 15781, - }); - - return searchDb.searchNamesByTarget(target).then(function(chemicalNames) { - assert.equal(chemicalNames.length, 0); - }); - }); - -}); +"use strict"; + +var logger = require('../../logger'); + +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var ChemicalDbOverlay = require('../../../../main/js/map/overlay/ChemicalDbOverlay'); + +var assert = require('assert'); + +describe('ChemicalDbOverlay', function() { + + it("constructor 1", function() { + var map = helper.createCustomMap(); + var oc = new ChemicalDbOverlay({ + map : map, + name : 'chemical' + }); + assert.ok(oc); + assert.equal(oc.getName(), 'chemical'); + + assert.equal(logger.getWarnings.length, 0); + }); + + it("searchByQuery", function() { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var searchDb = helper.createChemicalDbOverlay(map); + return searchDb.searchByQuery("rotenone").then(function(chemicals) { + assert.equal(chemicals.length, 1); + assert.equal(searchDb.getQueries().length, 1); + return searchDb.getElementsByQuery(searchDb.getQueries()[0]); + }).then(function(elements) { + //these are targets + assert.ok(elements.length>0); + var chemical = elements.element; + assert.equal(chemical.getName(), "Rotenone"); + return searchDb.getIdentifiedElements(); + }).then(function(elements) { + assert.equal(elements.length,0); + }); + }); + + it("searchNamesByTarget", function() { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var searchDb = helper.createChemicalDbOverlay(map); + + var target = new IdentifiedElement({ + type : "ALIAS", + id : 329170, + modelId : 15781 + }); + + return searchDb.searchNamesByTarget(target).then(function(chemicalNames) { + assert.equal(chemicalNames.length, 0); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/overlay/CommentDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/CommentDbOverlay-test.js index 70c616b099ba1f34e8d42f867691a44e6112b8a2..7e148461ffdeee9a58a37de7ee163d503f6b1cdd 100644 --- a/frontend-js/src/test/js/map/overlay/CommentDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/CommentDbOverlay-test.js @@ -1,42 +1,42 @@ -"use strict"; - -var logger = require('../../logger'); - -var CommentDbOverlay = require('../../../../main/js/map/overlay/CommentDbOverlay'); -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); - -var assert = require('assert'); - -describe('CommentDbOverlay', function() { - - it("constructor", function() { - var map = helper.createCustomMap(); - var oc = new CommentDbOverlay({ - map : map, - name : 'test name' - }); - assert.ok(oc); - assert.equal(oc.getName(), 'test name'); - - assert.equal(logger.getWarnings.length, 0); - }); - - describe("getDetailDataByIdentifiedElement ", function() { - it("get by point", function() { - var map = helper.createCustomMap(); - var oc = new CommentDbOverlay({ - map : map, - name : 'test name' - }); - - return oc.getDetailDataByIdentifiedElement(new IdentifiedElement({ - id : "(1.00,200.00)", - type : "POINT", - modelId : 15781 - })).then(function(data) { - assert.ok(data.length > 0); - }); - }); - }); - -}); +"use strict"; + +var logger = require('../../logger'); + +var CommentDbOverlay = require('../../../../main/js/map/overlay/CommentDbOverlay'); +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); + +var assert = require('assert'); + +describe('CommentDbOverlay', function () { + + it("constructor", function () { + var map = helper.createCustomMap(); + var oc = new CommentDbOverlay({ + map: map, + name: 'test name' + }); + assert.ok(oc); + assert.equal(oc.getName(), 'test name'); + + assert.equal(logger.getWarnings.length, 0); + }); + + describe("getDetailDataByIdentifiedElement ", function () { + it("get by point", function () { + var map = helper.createCustomMap(); + var oc = new CommentDbOverlay({ + map: map, + name: 'test name' + }); + + return oc.getDetailDataByIdentifiedElement(new IdentifiedElement({ + id: "(1.00,200.00)", + type: "POINT", + modelId: 15781 + })).then(function (data) { + assert.ok(data.length > 0); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js b/frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js index eb795f3b24856b04c1376c423cb8f42a4aa15e81..61e9788ce8f404554775cbe11d97cd8d14885cd4 100644 --- a/frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js +++ b/frontend-js/src/test/js/map/overlay/DbOverlayCollection-test.js @@ -1,18 +1,18 @@ -"use strict"; - -var logger = require('../../logger'); - -var DbOverlayCollection = require('../../../../main/js/map/overlay/DbOverlayCollection'); - -var assert = require('assert'); - -describe('DbOverlayCollection', function() { - it("constructor", function() { - var map = helper.createCustomMap(); - new DbOverlayCollection({ - map : map, - }); - - assert.equal(logger.getWarnings.length, 0); - }); -}); +"use strict"; + +var logger = require('../../logger'); + +var DbOverlayCollection = require('../../../../main/js/map/overlay/DbOverlayCollection'); + +var assert = require('assert'); + +describe('DbOverlayCollection', function () { + it("constructor", function () { + var map = helper.createCustomMap(); + new DbOverlayCollection({ + map: map + }); + + assert.equal(logger.getWarnings.length, 0); + }); +}); diff --git a/frontend-js/src/test/js/map/overlay/DrugDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/DrugDbOverlay-test.js index da99679c858f222d701819aa9f32fc2b336c94df..44629660a5fe56a6f63f75516d9e735503fdc0f0 100644 --- a/frontend-js/src/test/js/map/overlay/DrugDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/DrugDbOverlay-test.js @@ -1,60 +1,61 @@ -"use strict"; - -var logger = require('../../logger'); - -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var DrugDbOverlay = require('../../../../main/js/map/overlay/DrugDbOverlay'); - -var assert = require('assert'); - -describe('DrugDbOverlay', function() { - it("constructor 1", function() { - var map = helper.createCustomMap(); - var oc = new DrugDbOverlay({ - map : map, - name : 'drug' - }); - assert.ok(oc); - assert.equal(oc.getName(), 'drug'); - - assert.equal(logger.getWarnings.length, 0); - }); - - it("searchByQuery", function() { - helper.setUrl("http://test/?id=drug_target_sample"); - - var map, searchDb; - return ServerConnector.getProject("drug_target_sample").then(function(project) { - map = helper.createCustomMap(project); - searchDb = helper.createDrugDbOverlay(map); - return searchDb.searchByQuery("NADH"); - }).then(function(drugs) { - assert.equal(drugs.length, 1); - assert.equal(searchDb.getQueries().length, 1); - return searchDb.getElementsByQuery(searchDb.getQueries()[0]); - }).then(function(elements) { - assert.ok(elements.length > 1); - return searchDb.getIdentifiedElements(); - }).then(function(elements) { - assert.equal(elements.length, 1); - }); - }); - - it("searchNamesByTarget", function() { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var searchDb = helper.createDrugDbOverlay(map); - - var target = new IdentifiedElement({ - type : "ALIAS", - id : 329170, - modelId : 15781, - }); - - return searchDb.searchNamesByTarget(target).then(function(drugNames) { - assert.equal(drugNames.length, 1); - assert.equal(drugNames[0], "NADH"); - }); - }); - -}); +"use strict"; + +var logger = require('../../logger'); + +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var DrugDbOverlay = require('../../../../main/js/map/overlay/DrugDbOverlay'); +var ServerConnector = require('../../ServerConnector-mock'); + +var assert = require('assert'); + +describe('DrugDbOverlay', function () { + it("constructor 1", function () { + var map = helper.createCustomMap(); + var oc = new DrugDbOverlay({ + map: map, + name: 'drug' + }); + assert.ok(oc); + assert.equal(oc.getName(), 'drug'); + + assert.equal(logger.getWarnings.length, 0); + }); + + it("searchByQuery", function () { + helper.setUrl("http://test/?id=drug_target_sample"); + + var map, searchDb; + return ServerConnector.getProject("drug_target_sample").then(function (project) { + map = helper.createCustomMap(project); + searchDb = helper.createDrugDbOverlay(map); + return searchDb.searchByQuery("NADH"); + }).then(function (drugs) { + assert.equal(drugs.length, 1); + assert.equal(searchDb.getQueries().length, 1); + return searchDb.getElementsByQuery(searchDb.getQueries()[0]); + }).then(function (elements) { + assert.ok(elements.length > 1); + return searchDb.getIdentifiedElements(); + }).then(function (elements) { + assert.equal(elements.length, 1); + }); + }); + + it("searchNamesByTarget", function () { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var searchDb = helper.createDrugDbOverlay(map); + + var target = new IdentifiedElement({ + type: "ALIAS", + id: 329170, + modelId: 15781 + }); + + return searchDb.searchNamesByTarget(target).then(function (drugNames) { + assert.equal(drugNames.length, 1); + assert.equal(drugNames[0], "NADH"); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/overlay/MiRnaDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/MiRnaDbOverlay-test.js index d1cab3e25ed6b2169dd8928668be5a96fd42ab32..3364a97e466747bcea6ca81f233a13e5052b9ee1 100644 --- a/frontend-js/src/test/js/map/overlay/MiRnaDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/MiRnaDbOverlay-test.js @@ -1,57 +1,58 @@ -"use strict"; - -var logger = require('../../logger'); - -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var MiRnaDbOverlay = require('../../../../main/js/map/overlay/MiRnaDbOverlay'); - -var assert = require('assert'); - -describe('MiRnaDbOverlay', function() { - it("constructor 1", function() { - var map = helper.createCustomMap(); - var oc = new MiRnaDbOverlay({ - map : map, - name : 'miRna' - }); - assert.ok(oc); - assert.equal(oc.getName(), 'miRna'); - - assert.equal(logger.getWarnings.length, 0); - }); - - it("searchByQuery", function() { - var map, searchDb; - return ServerConnector.getProject().then(function(project) { - map = helper.createCustomMap(project); - searchDb = helper.createMiRnaDbOverlay(map); - return searchDb.searchByQuery("hsa-miR-125a-3p"); - }).then(function(miRnas) { - assert.equal(miRnas.length, 1); - assert.equal(searchDb.getQueries().length, 1); - return searchDb.getElementsByQuery(searchDb.getQueries()[0]); - }).then(function(elements) { - assert.equal(elements.length, 3); - return searchDb.getIdentifiedElements(); - }).then(function(elements) { - assert.equal(elements.length, 0); - }); - }); - - it("searchNamesByTarget", function() { - var map = helper.createCustomMap(); - map.getModel().setId(15781); - var searchDb = helper.createMiRnaDbOverlay(map); - - var target = new IdentifiedElement({ - type : "ALIAS", - id : 329170, - modelId : 15781, - }); - - return searchDb.searchNamesByTarget(target).then(function(miRnaNames) { - assert.equal(miRnaNames.length, 0); - }); - }); - -}); +"use strict"; + +var logger = require('../../logger'); + +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var MiRnaDbOverlay = require('../../../../main/js/map/overlay/MiRnaDbOverlay'); +var ServerConnector = require('../../ServerConnector-mock'); + +var assert = require('assert'); + +describe('MiRnaDbOverlay', function() { + it("constructor 1", function() { + var map = helper.createCustomMap(); + var oc = new MiRnaDbOverlay({ + map : map, + name : 'miRna' + }); + assert.ok(oc); + assert.equal(oc.getName(), 'miRna'); + + assert.equal(logger.getWarnings.length, 0); + }); + + it("searchByQuery", function() { + var map, searchDb; + return ServerConnector.getProject().then(function(project) { + map = helper.createCustomMap(project); + searchDb = helper.createMiRnaDbOverlay(map); + return searchDb.searchByQuery("hsa-miR-125a-3p"); + }).then(function(miRnas) { + assert.equal(miRnas.length, 1); + assert.equal(searchDb.getQueries().length, 1); + return searchDb.getElementsByQuery(searchDb.getQueries()[0]); + }).then(function(elements) { + assert.equal(elements.length, 3); + return searchDb.getIdentifiedElements(); + }).then(function(elements) { + assert.equal(elements.length, 0); + }); + }); + + it("searchNamesByTarget", function() { + var map = helper.createCustomMap(); + map.getModel().setId(15781); + var searchDb = helper.createMiRnaDbOverlay(map); + + var target = new IdentifiedElement({ + type : "ALIAS", + id : 329170, + modelId : 15781 + }); + + return searchDb.searchNamesByTarget(target).then(function(miRnaNames) { + assert.equal(miRnaNames.length, 0); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/overlay/SearchDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/SearchDbOverlay-test.js index e466e58026f69561c1293cfd1d0e701ce84cec4c..3b2f590424bab6f119dce1589e977b279dea1b20 100644 --- a/frontend-js/src/test/js/map/overlay/SearchDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/SearchDbOverlay-test.js @@ -1,191 +1,192 @@ -"use strict"; - -var logger = require('../../logger'); - -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var SearchDbOverlay = require('../../../../main/js/map/overlay/SearchDbOverlay'); -var AbstractDbOverlay = require('../../../../main/js/map/overlay/AbstractDbOverlay'); - -var assert = require('assert'); -var Promise = require('bluebird'); - -describe('SearchDbOverlay', function() { - it("constructor 1", function() { - var map = helper.createCustomMap(); - var oc = new SearchDbOverlay({ - map : map, - name : 'search' - }); - assert.ok(oc); - assert.equal(oc.getName(), 'search'); - - assert.equal(logger.getWarnings.length, 0); - }); - - it("searchByCoordinates with too far alias as result", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - - var searchParams = { - modelId : map.getModel().getId(), - coordinates : new google.maps.Point(207.73, 479.18), - zoom : 4, - }; - return searchDb.searchByCoordinates(searchParams); - }).then(function(result) { - assert.equal(result.length, 0); - }); - }); - - describe("searchByQuery", function() { - it("with perfectMatch", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - map.getModel().setId(15781); - var searchDb = helper.createSearchDbOverlay(map); - - return searchDb.searchByQuery("s1", true); - }).then(function(result) { - assert.equal(result.length, 1); - assert.equal(result[0].length, 1); - }); - }); - it("check state when network problems", function() { - var problematicQuery = "sxx1"; - var searchDb; - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - searchDb = helper.createSearchDbOverlay(map); - - return searchDb.searchByQuery(problematicQuery); - }).then(null, function() { - var queries = searchDb.getQueries(); - var promises = []; - for (var i = 0; i < queries.length; i++) { - promises.push(searchDb.getElementsByQuery(queries[i])); - } - return Promise.all(promises); - }); - }); - }); - - it("searchByEncodedQuery", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - var point = new google.maps.Point(316.05, 253.61); - var queryType = AbstractDbOverlay.QueryType.SEARCH_BY_COORDINATES; - var query = searchDb.encodeQuery(queryType, map.getModel().getId(), point, 2); - return searchDb.searchByEncodedQuery(query); - }).then(function(result) { - assert.ok(result.length > 0); - }); - }); - - describe("searchByCoordinates", function() { - it("with too far reaction as result", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - - var searchParams = { - modelId : map.getModel().getId(), - coordinates : new google.maps.Point(553.10, 479.18), - zoom : 4, - }; - return searchDb.searchByCoordinates(searchParams); - }).then(function(result) { - assert.equal(result.length, 0); - }); - - }); - - it("on empty map", function() { - helper.setUrl("http://test/?id=empty"); - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - - var searchParams = { - modelId : map.getModel().getId(), - coordinates : new google.maps.Point(553.10, 479.18), - zoom : 4, - }; - return searchDb.searchByCoordinates(searchParams); - }).then(function(result) { - assert.equal(result.length, 0); - }); - - }); - - it("on hidden nested object", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - - var searchParams = { - modelId : map.getModel().getId(), - coordinates : new google.maps.Point(316.05, 253.61), - zoom : 2, - }; - return searchDb.searchByCoordinates(searchParams); - }).then(function(result) { - // id of the parent - assert.equal(result[0].getId(), 329159); - }); - - }); - - it("on nested object", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - - var searchParams = { - modelId : map.getModel().getId(), - coordinates : new google.maps.Point(316.05, 253.61), - zoom : 4, - }; - return searchDb.searchByCoordinates(searchParams); - }).then(function(result) { - assert.equal(result[0].getId(), 329159); - }); - }); - }); - - describe("getDetailDataByIdentifiedElement", function() { - it("get by alias", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - - var searchParams = new IdentifiedElement({ - type : "ALIAS", - id : 329177, - modelId : project.getModel().getId(), - }); - return searchDb.getDetailDataByIdentifiedElement(searchParams); - }).then(function(result) { - assert.equal(result.getId(), 329177); - }); - - }); - it("get by point", function() { - return ServerConnector.getProject().then(function(project) { - var map = helper.createCustomMap(project); - var searchDb = helper.createSearchDbOverlay(map); - - var searchParams = new IdentifiedElement({ - type : "POINT", - id : "2,3", - modelId : project.getModel().getId(), - }); - return searchDb.getDetailDataByIdentifiedElement(searchParams); - }).then(function(result) { - assert.equal(result, null); - }); - }); - }); - -}); +"use strict"; + +var logger = require('../../logger'); + +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var SearchDbOverlay = require('../../../../main/js/map/overlay/SearchDbOverlay'); +var AbstractDbOverlay = require('../../../../main/js/map/overlay/AbstractDbOverlay'); +var ServerConnector = require('../../ServerConnector-mock'); + +var assert = require('assert'); +var Promise = require('bluebird'); + +describe('SearchDbOverlay', function() { + it("constructor 1", function() { + var map = helper.createCustomMap(); + var oc = new SearchDbOverlay({ + map : map, + name : 'search' + }); + assert.ok(oc); + assert.equal(oc.getName(), 'search'); + + assert.equal(logger.getWarnings.length, 0); + }); + + it("searchByCoordinates with too far alias as result", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + + var searchParams = { + modelId : map.getModel().getId(), + coordinates : new google.maps.Point(207.73, 479.18), + zoom : 4 + }; + return searchDb.searchByCoordinates(searchParams); + }).then(function(result) { + assert.equal(result.length, 0); + }); + }); + + describe("searchByQuery", function() { + it("with perfectMatch", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + map.getModel().setId(15781); + var searchDb = helper.createSearchDbOverlay(map); + + return searchDb.searchByQuery("s1", true); + }).then(function(result) { + assert.equal(result.length, 1); + assert.equal(result[0].length, 1); + }); + }); + it("check state when network problems", function() { + var problematicQuery = "sxx1"; + var searchDb; + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + searchDb = helper.createSearchDbOverlay(map); + + return searchDb.searchByQuery(problematicQuery); + }).then(null, function() { + var queries = searchDb.getQueries(); + var promises = []; + for (var i = 0; i < queries.length; i++) { + promises.push(searchDb.getElementsByQuery(queries[i])); + } + return Promise.all(promises); + }); + }); + }); + + it("searchByEncodedQuery", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + var point = new google.maps.Point(316.05, 253.61); + var queryType = AbstractDbOverlay.QueryType.SEARCH_BY_COORDINATES; + var query = searchDb.encodeQuery(queryType, map.getModel().getId(), point, 2); + return searchDb.searchByEncodedQuery(query); + }).then(function(result) { + assert.ok(result.length > 0); + }); + }); + + describe("searchByCoordinates", function() { + it("with too far reaction as result", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + + var searchParams = { + modelId : map.getModel().getId(), + coordinates : new google.maps.Point(553.10, 479.18), + zoom : 4 + }; + return searchDb.searchByCoordinates(searchParams); + }).then(function(result) { + assert.equal(result.length, 0); + }); + + }); + + it("on empty map", function() { + helper.setUrl("http://test/?id=empty"); + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + + var searchParams = { + modelId : map.getModel().getId(), + coordinates : new google.maps.Point(553.10, 479.18), + zoom : 4 + }; + return searchDb.searchByCoordinates(searchParams); + }).then(function(result) { + assert.equal(result.length, 0); + }); + + }); + + it("on hidden nested object", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + + var searchParams = { + modelId : map.getModel().getId(), + coordinates : new google.maps.Point(316.05, 253.61), + zoom : 2 + }; + return searchDb.searchByCoordinates(searchParams); + }).then(function(result) { + // id of the parent + assert.equal(result[0].getId(), 329159); + }); + + }); + + it("on nested object", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + + var searchParams = { + modelId : map.getModel().getId(), + coordinates : new google.maps.Point(316.05, 253.61), + zoom : 4 + }; + return searchDb.searchByCoordinates(searchParams); + }).then(function(result) { + assert.equal(result[0].getId(), 329159); + }); + }); + }); + + describe("getDetailDataByIdentifiedElement", function() { + it("get by alias", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + + var searchParams = new IdentifiedElement({ + type : "ALIAS", + id : 329177, + modelId : project.getModel().getId() + }); + return searchDb.getDetailDataByIdentifiedElement(searchParams); + }).then(function(result) { + assert.equal(result.getId(), 329177); + }); + + }); + it("get by point", function() { + return ServerConnector.getProject().then(function(project) { + var map = helper.createCustomMap(project); + var searchDb = helper.createSearchDbOverlay(map); + + var searchParams = new IdentifiedElement({ + type : "POINT", + id : "2,3", + modelId : project.getModel().getId() + }); + return searchDb.getDetailDataByIdentifiedElement(searchParams); + }).then(function(result) { + assert.equal(result, null); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js b/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js index 4a89b3d057a239868395ee6b9871bd49431fcc9a..6acfcabcc571ed4f80c7f37575be58dd67c58f55 100644 --- a/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js +++ b/frontend-js/src/test/js/map/overlay/UserDbOverlay-test.js @@ -1,110 +1,111 @@ -"use strict"; - -var logger = require('../../logger'); -require("../../mocha-config"); - -var CustomMap = require('../../../../main/js/map//CustomMap'); -var InvalidArgumentError = require('../../../../main/js/InvalidArgumentError'); -var UserDbOverlay = require('../../../../main/js/map/overlay/UserDbOverlay'); - -var assert = require('assert'); - -describe('UserDbOverlay', function() { - it("constructor 1", function() { - var map = helper.createCustomMap(); - var oc = new UserDbOverlay({ - map : map, - name : 'user' - }); - assert.ok(oc); - assert.equal(oc.getName(), 'user'); - - assert.equal(logger.getWarnings.length, 0); - }); - - it("clear", function() { - var overlay; - return ServerConnector.getProject().then(function(project) { - var options = helper.createCustomMapOptions(project); - var map = new CustomMap(options); - overlay = new UserDbOverlay({ - map : map, - name : 'user' - }); - return overlay.addMarker({ - element : { - id : 329171, - modelId : 15781, - type : "ALIAS" - }, - options : { - type : "SURFACE" - } - }); - }).then(function() { - return overlay.getIdentifiedElements(); - }).then(function(elements) { - assert.equal(elements.length, 1); - return overlay.clear(); - }).then(function() { - return overlay.getIdentifiedElements(); - }).then(function(elements) { - assert.equal(elements.length, 0); - }); - }); - - describe("addMarker", function() { - it("add non existing object", function() { - var overlay; - return ServerConnector.getProject().then(function(project) { - var options = helper.createCustomMapOptions(project); - var map = new CustomMap(options); - overlay = new UserDbOverlay({ - map : map, - name : 'user' - }); - return overlay.addMarker({ - element : { - id : -1, - modelId : 15781, - type : "ALIAS" - }, - options : { - type : "SURFACE" - } - }); - }).then(function() { - assert.ok(false, "Exception expected"); - }, function(error) { - assert.ok(error instanceof InvalidArgumentError); - }); - }); - - it("add to non existing map", function() { - var overlay; - return ServerConnector.getProject().then(function(project) { - var options = helper.createCustomMapOptions(project); - var map = new CustomMap(options); - overlay = new UserDbOverlay({ - map : map, - name : 'user' - }); - return overlay.addMarker({ - element : { - id : 329171, - modelId : -1, - type : "ALIAS" - }, - options : { - type : "SURFACE" - } - }); - }).then(function() { - assert.ok(false, "Exception expected"); - }, function(error) { - assert.ok(error instanceof InvalidArgumentError); - }); - }); - }); - -}); +"use strict"; + +var logger = require('../../logger'); +require("../../mocha-config"); + +var CustomMap = require('../../../../main/js/map/CustomMap'); +var InvalidArgumentError = require('../../../../main/js/InvalidArgumentError'); +var UserDbOverlay = require('../../../../main/js/map/overlay/UserDbOverlay'); +var ServerConnector = require('../../ServerConnector-mock'); + +var assert = require('assert'); + +describe('UserDbOverlay', function () { + it("constructor 1", function () { + var map = helper.createCustomMap(); + var oc = new UserDbOverlay({ + map: map, + name: 'user' + }); + assert.ok(oc); + assert.equal(oc.getName(), 'user'); + + assert.equal(logger.getWarnings.length, 0); + }); + + it("clear", function () { + var overlay; + return ServerConnector.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + var map = new CustomMap(options); + overlay = new UserDbOverlay({ + map: map, + name: 'user' + }); + return overlay.addMarker({ + element: { + id: 329171, + modelId: 15781, + type: "ALIAS" + }, + options: { + type: "SURFACE" + } + }); + }).then(function () { + return overlay.getIdentifiedElements(); + }).then(function (elements) { + assert.equal(elements.length, 1); + return overlay.clear(); + }).then(function () { + return overlay.getIdentifiedElements(); + }).then(function (elements) { + assert.equal(elements.length, 0); + }); + }); + + describe("addMarker", function () { + it("add non existing object", function () { + var overlay; + return ServerConnector.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + var map = new CustomMap(options); + overlay = new UserDbOverlay({ + map: map, + name: 'user' + }); + return overlay.addMarker({ + element: { + id: -1, + modelId: 15781, + type: "ALIAS" + }, + options: { + type: "SURFACE" + } + }); + }).then(function () { + assert.ok(false, "Exception expected"); + }, function (error) { + assert.ok(error instanceof InvalidArgumentError); + }); + }); + + it("add to non existing map", function () { + var overlay; + return ServerConnector.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + var map = new CustomMap(options); + overlay = new UserDbOverlay({ + map: map, + name: 'user' + }); + return overlay.addMarker({ + element: { + id: 329171, + modelId: -1, + type: "ALIAS" + }, + options: { + type: "SURFACE" + } + }); + }).then(function () { + assert.ok(false, "Exception expected"); + }, function (error) { + assert.ok(error instanceof InvalidArgumentError); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/map/surface/AliasSurface-test.js b/frontend-js/src/test/js/map/surface/AliasSurface-test.js index 571affd8c54bb501034e89d41b0541bfacd6fc8a..d31f5e49351a32d57de8748548d7f53ee8a80a60 100644 --- a/frontend-js/src/test/js/map/surface/AliasSurface-test.js +++ b/frontend-js/src/test/js/map/surface/AliasSurface-test.js @@ -1,97 +1,98 @@ -"use strict"; - -var logger = require('../../logger'); - -var AliasSurface = require('../../../../main/js/map/surface/AliasSurface'); -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); - -var assert = require('assert'); - -describe('AliasSurface', function() { - it("constructor", function() { - var map = helper.createCustomMap(); - var alias = helper.createAlias(map); - var layoutAlias = helper.createLayoutAlias(alias); - - return AliasSurface.create({ - overlayAlias : layoutAlias, - alias : alias, - map : map, - startX : 1, - endX : 2 - }).then(function(result) { - assert.ok(result instanceof AliasSurface); - assert.equal(logger.getWarnings.length, 0); - }); - }); - - it("createFromIdentifiedElement", function() { - var map; - var alias; - 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); - - return AliasSurface.createFromIdentifiedElement({ - element : identifiedElement, - map : map - }); - }).then(function(result) { - assert.ok(result instanceof AliasSurface); - assert.equal(logger.getWarnings.length, 0); - }); - }); - it("setBoundsForAlias", function() { - var map; - var alias; - 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); - - return AliasSurface.createFromIdentifiedElement({ - element : identifiedElement, - map : map - }); - }).then(function(result) { - var bounds = result.getBounds(); - result.setBoundsForAlias(1, 3); - var bounds2 = result.getBounds(); - assert.equal(bounds.getSouthWest().lat(), bounds2.getSouthWest().lat()); - assert.ok(bounds.getSouthWest().lng() !== bounds2.getSouthWest().lng()); - }); - }); - - describe('click', function() { - it("default", function() { - var map; - var alias; - var clicked = false; - 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); - return AliasSurface.createFromIdentifiedElement({ - element : identifiedElement, - map : map, - onClick : function() { - clicked = true; - } - }); - }).then(function(result) { - return result.onClickHandler(); - }).then(function() { - assert.ok(clicked); - }); - }); - - }); - -}); +"use strict"; + +var logger = require('../../logger'); + +var AliasSurface = require('../../../../main/js/map/surface/AliasSurface'); +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var ServerConnector = require('../../ServerConnector-mock'); + +var assert = require('assert'); + +describe('AliasSurface', function() { + it("constructor", function() { + var map = helper.createCustomMap(); + var alias = helper.createAlias(map); + var layoutAlias = helper.createLayoutAlias(alias); + + return AliasSurface.create({ + overlayAlias : layoutAlias, + alias : alias, + map : map, + startX : 1, + endX : 2 + }).then(function(result) { + assert.ok(result instanceof AliasSurface); + assert.equal(logger.getWarnings.length, 0); + }); + }); + + it("createFromIdentifiedElement", function() { + var map; + var alias; + 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); + + return AliasSurface.createFromIdentifiedElement({ + element : identifiedElement, + map : map + }); + }).then(function(result) { + assert.ok(result instanceof AliasSurface); + assert.equal(logger.getWarnings.length, 0); + }); + }); + it("setBoundsForAlias", function() { + var map; + var alias; + 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); + + return AliasSurface.createFromIdentifiedElement({ + element : identifiedElement, + map : map + }); + }).then(function(result) { + var bounds = result.getBounds(); + result.setBoundsForAlias(1, 3); + var bounds2 = result.getBounds(); + assert.equal(bounds.getSouthWest().lat(), bounds2.getSouthWest().lat()); + assert.ok(bounds.getSouthWest().lng() !== bounds2.getSouthWest().lng()); + }); + }); + + describe('click', function() { + it("default", function() { + var map; + var alias; + var clicked = false; + 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); + return AliasSurface.createFromIdentifiedElement({ + element : identifiedElement, + map : map, + onClick : function() { + clicked = true; + } + }); + }).then(function(result) { + return result.onClickHandler(); + }).then(function() { + assert.ok(clicked); + }); + }); + + }); + +}); diff --git a/frontend-js/src/test/js/map/surface/ReactionSurface-test.js b/frontend-js/src/test/js/map/surface/ReactionSurface-test.js index c2e3290e116151eca5a8039557f3a8f1ef916ea1..c8a81162dc4e1244185126d171bd98cbe1c36224 100644 --- a/frontend-js/src/test/js/map/surface/ReactionSurface-test.js +++ b/frontend-js/src/test/js/map/surface/ReactionSurface-test.js @@ -1,113 +1,114 @@ -"use strict"; - -require("../../mocha-config"); -var ReactionSurface = require('../../../../main/js/map/surface/ReactionSurface'); - -var assert = require('assert'); - -var logger = require('../../logger'); - -describe('ReactionSurface', function () { - it("Constructor", function () { - var map = helper.createAbstractCustomMap(); - var reaction = helper.createReaction(map); - - var reactionOverlay = new ReactionSurface({ - reaction: reaction, - map: map, - customized: false - }); - - assert.ok(reactionOverlay.getGoogleMapObjects().length > 0); - assert.ok(reactionOverlay.getColor()); - assert.ok(reactionOverlay.getWidth()); - assert.ok(reactionOverlay.getBounds()); - assert.ok(reactionOverlay.getReactionData()); - assert.ok(reactionOverlay.getCustomMap()); - assert.ok(reactionOverlay.getId()); - assert.ok(typeof reactionOverlay.getColor() === "string"); - }); - it("create", function () { - var map = helper.createAbstractCustomMap(); - var reaction = helper.createReaction(map); - var layoutReaction = helper.createLayoutReaction(reaction); - - return ReactionSurface.create({ - layoutReaction: layoutReaction, - reaction: reaction, - map: map, - customized: false - }).then(function(reactionOverlay){ - - assert.ok(reactionOverlay.getGoogleMapObjects().length > 0); - assert.ok(reactionOverlay.getColor()); - assert.ok(reactionOverlay.getWidth()); - assert.ok(reactionOverlay.getBounds()); - assert.ok(reactionOverlay.getReactionData()); - assert.ok(reactionOverlay.getCustomMap()); - assert.ok(reactionOverlay.getId()); - assert.ok(typeof reactionOverlay.getColor() === "string"); - }); - }); - - it("show", function () { - var map = helper.createCustomMap(); - var reaction = helper.createReaction(map); - var layoutReaction = helper.createLayoutReaction(reaction); - - var reactionOverlay = new ReactionSurface({ - overlayData: layoutReaction, - reaction: reaction, - map: map, - customized: false - }); - - reactionOverlay.hide(); - assert.equal(reactionOverlay.isShown(), false); - - reactionOverlay.show(); - assert.ok(reactionOverlay.isShown()); - - assert.equal(logger.getWarnings().length, 0); - - reactionOverlay.show(); - assert.ok(reactionOverlay.isShown()); - assert.equal(logger.getWarnings().length, 1); - - }); - - it("changedToCustomized", function() { - var map = helper.createCustomMap(); - var reaction = helper.createReaction(map); - var layoutReaction = helper.createLayoutReaction(reaction); - - var reactionOverlay = new ReactionSurface({ - overlayData: layoutReaction, - reaction: reaction, - map: map, - customized: false - }); - - reactionOverlay.changedToCustomized(); - assert.ok(reactionOverlay.isCustomized()); - - }); - - it("createLine", function() { - var map = helper.createAbstractCustomMap(); - - var line = ReactionSurface.createLine({ - start: { - x: 0, - y: 10 - }, - end: { - x: 100, - y: 100 - }, - }, "#000000", 3, map); - - assert.ok(line); - - }); -}); +"use strict"; + +require("../../mocha-config"); +var ReactionSurface = require('../../../../main/js/map/surface/ReactionSurface'); +var ServerConnector = require('../../ServerConnector-mock'); + +var assert = require('assert'); + +var logger = require('../../logger'); + +describe('ReactionSurface', function () { + it("Constructor", function () { + var map = helper.createAbstractCustomMap(); + var reaction = helper.createReaction(map); + + var reactionOverlay = new ReactionSurface({ + reaction: reaction, + map: map, + customized: false + }); + + assert.ok(reactionOverlay.getGoogleMapObjects().length > 0); + assert.ok(reactionOverlay.getColor()); + assert.ok(reactionOverlay.getWidth()); + assert.ok(reactionOverlay.getBounds()); + assert.ok(reactionOverlay.getReactionData()); + assert.ok(reactionOverlay.getCustomMap()); + assert.ok(reactionOverlay.getId()); + assert.ok(typeof reactionOverlay.getColor() === "string"); + }); + it("create", function () { + var map = helper.createAbstractCustomMap(); + var reaction = helper.createReaction(map); + var layoutReaction = helper.createLayoutReaction(reaction); + + return ReactionSurface.create({ + layoutReaction: layoutReaction, + reaction: reaction, + map: map, + customized: false + }).then(function(reactionOverlay){ + + assert.ok(reactionOverlay.getGoogleMapObjects().length > 0); + assert.ok(reactionOverlay.getColor()); + assert.ok(reactionOverlay.getWidth()); + assert.ok(reactionOverlay.getBounds()); + assert.ok(reactionOverlay.getReactionData()); + assert.ok(reactionOverlay.getCustomMap()); + assert.ok(reactionOverlay.getId()); + assert.ok(typeof reactionOverlay.getColor() === "string"); + }); + }); + + it("show", function () { + var map = helper.createCustomMap(); + var reaction = helper.createReaction(map); + var layoutReaction = helper.createLayoutReaction(reaction); + + var reactionOverlay = new ReactionSurface({ + overlayData: layoutReaction, + reaction: reaction, + map: map, + customized: false + }); + + reactionOverlay.hide(); + assert.equal(reactionOverlay.isShown(), false); + + reactionOverlay.show(); + assert.ok(reactionOverlay.isShown()); + + assert.equal(logger.getWarnings().length, 0); + + reactionOverlay.show(); + assert.ok(reactionOverlay.isShown()); + assert.equal(logger.getWarnings().length, 1); + + }); + + it("changedToCustomized", function() { + var map = helper.createCustomMap(); + var reaction = helper.createReaction(map); + var layoutReaction = helper.createLayoutReaction(reaction); + + var reactionOverlay = new ReactionSurface({ + overlayData: layoutReaction, + reaction: reaction, + map: map, + customized: false + }); + + reactionOverlay.changedToCustomized(); + assert.ok(reactionOverlay.isCustomized()); + + }); + + it("createLine", function() { + var map = helper.createAbstractCustomMap(); + + var line = ReactionSurface.createLine({ + start: { + x: 0, + y: 10 + }, + end: { + x: 100, + y: 100 + }, + }, "#000000", 3, map); + + assert.ok(line); + + }); +}); diff --git a/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js b/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js index fda6cba7e906ee73638c3317a55294ca654c840a..566a46241afdafe4a649d642e33fd9994aa7523a 100644 --- a/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js +++ b/frontend-js/src/test/js/map/window/AliasInfoWindow-test.js @@ -1,324 +1,325 @@ -"use strict"; -require("../../mocha-config"); - -var Promise = require("bluebird"); - -var functions = require('../../../../main/js/Functions'); - -var Alias = require('../../../../main/js/map/data/Alias'); -var Drug = require('../../../../main/js/map/data/Drug'); -var AliasInfoWindow = require('../../../../main/js/map/window/AliasInfoWindow'); -var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); -var LayoutData = require('../../../../main/js/map/data/LayoutData'); - -var assert = require('assert'); - -var logger = require('../../logger'); - -describe('AliasInfoWindow', function () { - describe('constructor', function () { - it("default", function () { - var map = helper.createCustomMap(); - - var alias = helper.createAlias(); - alias.setId(30001); - alias.setIsComplete(false); - alias.setModelId(map.getId()); - map.getModel().addAlias(alias); - - var aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - - assert.equal(alias, aliasWindow.getAlias()); - assert.equal(map, aliasWindow.getCustomMap()); - assert.ok(aliasWindow.getContent().innerHTML.indexOf("loading") >= 0); - assert.equal(logger.getWarnings().length, 0); - }); - it("loading data", function () { - var map = helper.createCustomMap(); - map.getOverlayDataForAlias = function () { - return Promise.resolve([]); - }; - - var javaObject = { - bounds: { - x: 190, - y: 44, - width: 80, - height: 40 - }, - modelId: map.getId(), - idObject: 30001 - }; - var alias = new Alias(javaObject); - map.getModel().addAlias(alias); - - var aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - - assert.equal(alias, aliasWindow.alias); - assert.equal(map, aliasWindow.customMap); - assert.ok(aliasWindow.getContent().innerHTML.indexOf("loading") > -1); - }); - }); - - it("createOverlayInfoDiv", function () { - var map = helper.createCustomMap(); - - var oc = helper.createDrugDbOverlay(map); - - var alias = helper.createAlias(map); - var aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - - oc.searchNamesByTarget = function () { - return Promise.resolve(["xField"]); - }; - oc.getElementsByQueryFromServer = function () { - return Promise.resolve([new Drug({ - name: "xField", - references: [], - targets: [], - })]); - }; - - return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function (data) { - var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); - assert.ok(functions.isDomElement(overlayDiv)); - assert.ok(overlayDiv.innerHTML.indexOf('xField') >= 0); - }); - - }); - - it("createDrugOverlayInfoDiv", function () { - helper.setUrl("http://test/?id=drug_target_sample"); - - var map, ie, aliasWindow, oc; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - - oc = helper.createDrugDbOverlay(map); - - ie = new IdentifiedElement({ - id: 436152, - modelId: map.getId(), - type: "ALIAS" - }); - - return map.getModel().getByIdentifiedElement(ie, true); - }).then(function (alias) { - aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - return oc.getDetailDataByIdentifiedElement(ie, true); - }).then(function (data) { - var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); - assert.ok(functions.isDomElement(overlayDiv)); - assert.ok(overlayDiv.innerHTML.indexOf('NADH') >= 0); - - }); - }); - - it("createChemicalOverlayInfoDiv", function () { - var map, ie, aliasWindow, oc; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - - oc = helper.createChemicalDbOverlay(map); - - ie = new IdentifiedElement({ - id: 329170, - modelId: map.getId(), - type: "ALIAS" - }); - - return map.getModel().getByIdentifiedElement(ie, true); - }).then(function (alias) { - aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - return oc.getDetailDataByIdentifiedElement(ie, true); - }).then(function (data) { - var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); - assert.ok(functions.isDomElement(overlayDiv)); - }); - }); - - it("createCommentOverlayInfoDiv", function () { - var map = helper.createCustomMap(); - - var oc = helper.createCommentDbOverlay(map); - - var alias = helper.createAlias(); - alias.setId(3001); - alias.setIsComplete(true); - alias.setModelId(map.getId()); - map.getModel().addAlias(alias); - - var aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - - return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function (data) { - var comment = helper.createComment(alias); - comment.setContent("test comment Content"); - - data[0] = comment; - data['__FULL__'] = null; - - var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); - - assert.ok(functions.isDomElement(overlayDiv)); - assert.ok(overlayDiv.innerHTML.indexOf(comment.getContent()) >= 0); - assert.ok(overlayDiv.innerHTML.indexOf(comment.getId()) >= 0); - }); - - }); - - it("createGeneticsDiv", function () { - var map; - var overlay; - - var layoutAlias; - var win; - - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - overlay = new LayoutData(18077, "xxx"); - return overlay.init(); - }).then(function () { - return overlay.getFullAliasById(overlay.getAliases()[0].getId()); - }).then(function (data) { - layoutAlias = data; - return map.getModel().getAliasById(layoutAlias.getId()); - }).then(function (alias) { - win = new AliasInfoWindow({ - alias: alias, - map: map - }); - return win.init(); - }).then(function () { - win.layoutAliases = [layoutAlias]; - win.layoutNames = ["xxx"]; - return win.createGenomicDiv(); - }).then(function (div) { - assert.ok(div); - assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") === -1); - win.destroy(); - }); - - }); - - it("createGeneticsDiv with no genetic data", function () { - var map; - - var win; - var aliasId = 329173; - - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - var overlay = new LayoutData(18077, "xxx"); - return overlay.init(); - }).then(function () { - return map.getModel().getAliasById(aliasId); - }).then(function (alias) { - win = new AliasInfoWindow({ - alias: alias, - map: map - }); - return win.init(); - }).then(function () { - win.layoutAliases = [undefined]; - return win.createGenomicDiv(); - }).then(function (div) { - assert.ok(div); - assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") === -1); - win.destroy(); - }); - - }); - - it("createGeneticsDivForUnknownOrganism", function () { - var map; - var overlay; - - var layoutAlias; - var win; - - return ServerConnector.getProject().then(function (project) { - project.setOrganism({ - type: "TAXONOMY", - resource: "123456" - }); - map = helper.createCustomMap(project); - overlay = new LayoutData(18077, "xxx"); - return overlay.init(); - }).then(function () { - return overlay.getFullAliasById(overlay.getAliases()[0].getId()); - }).then(function (data) { - layoutAlias = data; - return map.getModel().getAliasById(layoutAlias.getId()); - }).then(function (alias) { - win = new AliasInfoWindow({ - alias: alias, - map: map - }); - return win.init(); - }).then(function () { - win.layoutAliases = [layoutAlias]; - return win.createGenomicDiv(); - }).then(function (div) { - assert.ok(div); - assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") >= -1); - win.destroy(); - }); - - }); - - it("createWaitingContentDiv", function () { - var map = helper.createCustomMap(); - var alias = helper.createAlias(map); - alias.setIsComplete(true); - - var aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - - assert.ok(functions.isDomElement(aliasWindow.createWaitingContentDiv())); - }); - - it("createChartDiv ", function () { - var map, ie, aliasWindow; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - ie = new IdentifiedElement({ - id: 329170, - modelId: map.getId(), - type: "ALIAS" - }); - - return map.getModel().getByIdentifiedElement(ie, true); - }).then(function (alias) { - aliasWindow = new AliasInfoWindow({ - alias: alias, - map: map - }); - aliasWindow.layoutAliases = [helper.createLayoutAlias(alias), null]; - aliasWindow.layoutNames = ["x", "y"]; - return aliasWindow.createChartDiv(); - }).then(function (div) { - assert.ok(div); - }); - }); - -}); +"use strict"; +require("../../mocha-config"); +var ServerConnector = require('../../ServerConnector-mock'); + +var Promise = require("bluebird"); + +var functions = require('../../../../main/js/Functions'); + +var Alias = require('../../../../main/js/map/data/Alias'); +var Drug = require('../../../../main/js/map/data/Drug'); +var AliasInfoWindow = require('../../../../main/js/map/window/AliasInfoWindow'); +var IdentifiedElement = require('../../../../main/js/map/data/IdentifiedElement'); +var LayoutData = require('../../../../main/js/map/data/LayoutData'); + +var assert = require('assert'); + +var logger = require('../../logger'); + +describe('AliasInfoWindow', function () { + describe('constructor', function () { + it("default", function () { + var map = helper.createCustomMap(); + + var alias = helper.createAlias(); + alias.setId(30001); + alias.setIsComplete(false); + alias.setModelId(map.getId()); + map.getModel().addAlias(alias); + + var aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + + assert.equal(alias, aliasWindow.getAlias()); + assert.equal(map, aliasWindow.getCustomMap()); + assert.ok(aliasWindow.getContent().innerHTML.indexOf("loading") >= 0); + assert.equal(logger.getWarnings().length, 0); + }); + it("loading data", function () { + var map = helper.createCustomMap(); + map.getOverlayDataForAlias = function () { + return Promise.resolve([]); + }; + + var javaObject = { + bounds: { + x: 190, + y: 44, + width: 80, + height: 40 + }, + modelId: map.getId(), + idObject: 30001 + }; + var alias = new Alias(javaObject); + map.getModel().addAlias(alias); + + var aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + + assert.equal(alias, aliasWindow.alias); + assert.equal(map, aliasWindow.customMap); + assert.ok(aliasWindow.getContent().innerHTML.indexOf("loading") > -1); + }); + }); + + it("createOverlayInfoDiv", function () { + var map = helper.createCustomMap(); + + var oc = helper.createDrugDbOverlay(map); + + var alias = helper.createAlias(map); + var aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + + oc.searchNamesByTarget = function () { + return Promise.resolve(["xField"]); + }; + oc.getElementsByQueryFromServer = function () { + return Promise.resolve([new Drug({ + name: "xField", + references: [], + targets: [] + })]); + }; + + return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function (data) { + var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); + assert.ok(functions.isDomElement(overlayDiv)); + assert.ok(overlayDiv.innerHTML.indexOf('xField') >= 0); + }); + + }); + + it("createDrugOverlayInfoDiv", function () { + helper.setUrl("http://test/?id=drug_target_sample"); + + var map, ie, aliasWindow, oc; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + oc = helper.createDrugDbOverlay(map); + + ie = new IdentifiedElement({ + id: 436152, + modelId: map.getId(), + type: "ALIAS" + }); + + return map.getModel().getByIdentifiedElement(ie, true); + }).then(function (alias) { + aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + return oc.getDetailDataByIdentifiedElement(ie, true); + }).then(function (data) { + var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); + assert.ok(functions.isDomElement(overlayDiv)); + assert.ok(overlayDiv.innerHTML.indexOf('NADH') >= 0); + + }); + }); + + it("createChemicalOverlayInfoDiv", function () { + var map, ie, aliasWindow, oc; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + + oc = helper.createChemicalDbOverlay(map); + + ie = new IdentifiedElement({ + id: 329170, + modelId: map.getId(), + type: "ALIAS" + }); + + return map.getModel().getByIdentifiedElement(ie, true); + }).then(function (alias) { + aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + return oc.getDetailDataByIdentifiedElement(ie, true); + }).then(function (data) { + var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); + assert.ok(functions.isDomElement(overlayDiv)); + }); + }); + + it("createCommentOverlayInfoDiv", function () { + var map = helper.createCustomMap(); + + var oc = helper.createCommentDbOverlay(map); + + var alias = helper.createAlias(); + alias.setId(3001); + alias.setIsComplete(true); + alias.setModelId(map.getId()); + map.getModel().addAlias(alias); + + var aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + + return oc.getDetailDataByIdentifiedElement(new IdentifiedElement(alias), true).then(function (data) { + var comment = helper.createComment(alias); + comment.setContent("test comment Content"); + + data[0] = comment; + data['__FULL__'] = null; + + var overlayDiv = aliasWindow.createOverlayInfoDiv(oc, data); + + assert.ok(functions.isDomElement(overlayDiv)); + assert.ok(overlayDiv.innerHTML.indexOf(comment.getContent()) >= 0); + assert.ok(overlayDiv.innerHTML.indexOf(comment.getId()) >= 0); + }); + + }); + + it("createGeneticsDiv", function () { + var map; + var overlay; + + var layoutAlias; + var win; + + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + overlay = new LayoutData(18077, "xxx"); + return overlay.init(); + }).then(function () { + return overlay.getFullAliasById(overlay.getAliases()[0].getId()); + }).then(function (data) { + layoutAlias = data; + return map.getModel().getAliasById(layoutAlias.getId()); + }).then(function (alias) { + win = new AliasInfoWindow({ + alias: alias, + map: map + }); + return win.init(); + }).then(function () { + win.layoutAliases = [layoutAlias]; + win.layoutNames = ["xxx"]; + return win.createGenomicDiv(); + }).then(function (div) { + assert.ok(div); + assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") === -1); + win.destroy(); + }); + + }); + + it("createGeneticsDiv with no genetic data", function () { + var map; + + var win; + var aliasId = 329173; + + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + var overlay = new LayoutData(18077, "xxx"); + return overlay.init(); + }).then(function () { + return map.getModel().getAliasById(aliasId); + }).then(function (alias) { + win = new AliasInfoWindow({ + alias: alias, + map: map + }); + return win.init(); + }).then(function () { + win.layoutAliases = [undefined]; + return win.createGenomicDiv(); + }).then(function (div) { + assert.ok(div); + assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") === -1); + win.destroy(); + }); + + }); + + it("createGeneticsDivForUnknownOrganism", function () { + var map; + var overlay; + + var layoutAlias; + var win; + + return ServerConnector.getProject().then(function (project) { + project.setOrganism({ + type: "TAXONOMY", + resource: "123456" + }); + map = helper.createCustomMap(project); + overlay = new LayoutData(18077, "xxx"); + return overlay.init(); + }).then(function () { + return overlay.getFullAliasById(overlay.getAliases()[0].getId()); + }).then(function (data) { + layoutAlias = data; + return map.getModel().getAliasById(layoutAlias.getId()); + }).then(function (alias) { + win = new AliasInfoWindow({ + alias: alias, + map: map + }); + return win.init(); + }).then(function () { + win.layoutAliases = [layoutAlias]; + return win.createGenomicDiv(); + }).then(function (div) { + assert.ok(div); + assert.ok(div.innerHTML.indexOf("No reference genome data available on minerva platform") >= -1); + win.destroy(); + }); + + }); + + it("createWaitingContentDiv", function () { + var map = helper.createCustomMap(); + var alias = helper.createAlias(map); + alias.setIsComplete(true); + + var aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + + assert.ok(functions.isDomElement(aliasWindow.createWaitingContentDiv())); + }); + + it("createChartDiv ", function () { + var map, ie, aliasWindow; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + ie = new IdentifiedElement({ + id: 329170, + modelId: map.getId(), + type: "ALIAS" + }); + + return map.getModel().getByIdentifiedElement(ie, true); + }).then(function (alias) { + aliasWindow = new AliasInfoWindow({ + alias: alias, + map: map + }); + aliasWindow.layoutAliases = [helper.createLayoutAlias(alias), null]; + aliasWindow.layoutNames = ["x", "y"]; + return aliasWindow.createChartDiv(); + }).then(function (div) { + assert.ok(div); + }); + }); + +}); diff --git a/frontend-js/src/test/js/minerva-test.js b/frontend-js/src/test/js/minerva-test.js index aa17ce693a54703205d7b43c2b756b58642921ef..9c743127841a5697b4725329b25ad589302997dc 100644 --- a/frontend-js/src/test/js/minerva-test.js +++ b/frontend-js/src/test/js/minerva-test.js @@ -1,268 +1,268 @@ -"use strict"; - -require("./mocha-config"); - -var minerva = require('../../main/js/minerva'); -var ServerConnectorMock = require('./ServerConnector-mock'); -var ProxyAccessPlugin = require('./plugin/ProxyAccessPlugin'); - -var chai = require('chai'); -var assert = chai.assert; -var logger = require('./logger'); - -describe('minerva global', function () { - beforeEach(function () { - global.ServerConnector = undefined; - }); - - afterEach(function () { - global.ServerConnector = ServerConnectorMock; - }); - - describe('create', function () { - it('default', function () { - var options = null; - return ServerConnectorMock.getProject().then(function (project) { - options = helper.createCustomMapOptions(project); - - return minerva.create(options); - }).then(function (result) { - assert.ok(result); - assert.equal(logger.getWarnings().length, 0); - return result.destroy(); - }); - }); - it('invalid projectId', function () { - var options = { - projectId: "unknownId", - element: testDiv - }; - return minerva.create(options).then(function () { - assert.ok(false); - }, function (error) { - assert.ok(error.message.indexOf("Project with given id doesn't exist") >= 0); - }); - }); - it('with overview', function () { - helper.setUrl("http://test/?id=complex_model_with_images"); - var customMap; - return ServerConnectorMock.getProject().then(function (project) { - var options = helper.createOptions(project); - - return minerva.create(options); - }).then(function (result) { - customMap = result; - assert.ok(result); - assert.equal(logger.getWarnings().length, 0); - var showOverviewButton = document.getElementsByName("showOverviewButton")[0]; - return showOverviewButton.onclick(); - }).then(function () { - return customMap.destroy(); - }); - }); - }); - - - it("showComments", function () { - var options = null; - var map ; - return ServerConnectorMock.getProject().then(function (project) { - options = helper.createCustomMapOptions(project); - return minerva.create(options); - }).then(function (result) { - map = result; - var commentCheckbox = document.getElementsByName("commentCheckbox")[0]; - commentCheckbox.checked = true; - return commentCheckbox.onclick(); - }).then(function () { - assert.ok(ServerConnectorMock.getSessionData(options.getProject()).getShowComments()); - return map.destroy(); - }); - }); - - describe("constructor", function () { - - it("with GET zoom param", function () { - helper.setUrl("http://test/?zoom=5"); - var options; - return ServerConnectorMock.getProject().then(function (project) { - options = helper.createCustomMapOptions(project); - return minerva.create(options); - }).then(function (result) { - var sessionData = ServerConnectorMock.getSessionData(options.getProject()); - assert.equal(sessionData.getZoomLevel(options.getProject().getModel()), 5); - return result.destroy(); - }); - }); - - it("with GET coordinates param", function () { - helper.setUrl("http://test/?x=5&y=6"); - var options; - return ServerConnectorMock.getProject().then(function (project) { - options = helper.createCustomMapOptions(project); - return minerva.create(options); - }).then(function (result) { - 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); - return result.destroy(); - }); - }); - - it("simple", function () { - var options = { - projectId: "sample", - element: testDiv - }; - return minerva.create(options).then(function (result) { - assert.ok(result); - result.destroy(); - }); - }); - }); - - it('create with layout', function () { - var layout, project, plugin, map; - return ServerConnectorMock.getProject().then(function (result) { - project = result; - var options = helper.createCustomMapOptions(project); - - plugin = new ProxyAccessPlugin({}); - options.getPlugins().push(plugin); - - layout = project.getModel().getLayouts()[1]; - - helper.setUrl("http://test/?layout=" + layout.getName()); - - return minerva.create(options); - }).then(function (result) { - map = result; - assert.ok(result); - // input file is not available so it's the background - return plugin.getMinervaPluginProxy().project.map.getVisibleDataOverlays(); - }).then(function (visibleDataOverlays) { - // input file is available so it's not the background file but overlay - assert.equal(visibleDataOverlays.length, 0); - assert.equal(ServerConnectorMock.getSessionData(project).getSelectedBackgroundOverlay(), layout.getId()); - assert.equal(logger.getWarnings().length, 0); - return map.destroy(); - }); - }); - - it('create with layout from session data', function () { - var layout; - return ServerConnectorMock.getProject().then(function (project) { - var options = helper.createCustomMapOptions(project); - - layout = project.getModel().getLayouts()[1]; - - ServerConnectorMock.getSessionData(project).setSelectedBackgroundOverlay(layout.getId()); - - return minerva.create(options); - }).then(function (result) { - assert.equal(ServerConnectorMock.getSessionData().getSelectedBackgroundOverlay(), layout.getId()); - return result.destroy(); - }); - }); - - it('create with layout 2', function () { - helper.setUrl("http://test/?layout=xxx"); - var globalObject, plugin; - return ServerConnectorMock.getProject().then(function (project) { - var options = helper.createCustomMapOptions(project); - plugin = new ProxyAccessPlugin(); - options.getPlugins().push(plugin); - return minerva.create(options); - }).then(function (result) { - globalObject = result; - assert.ok(result); - return plugin.getMinervaPluginProxy().project.map.getVisibleDataOverlays(); - }).then(function (visibleDataOverlays) { - // input file is available so it's not the background file but overlay - assert.equal(visibleDataOverlays.length, 1); - assert.equal(logger.getWarnings().length, 0); - return globalObject.destroy(); - }); - }); - - it('create with search overlay and GET search param', function () { - helper.setUrl("http://test/?search=s1"); - - var globalObject, plugin; - return ServerConnectorMock.getProject().then(function (project) { - var options = helper.createCustomMapOptions(project); - plugin = new ProxyAccessPlugin(); - options.getPlugins().push(plugin); - return minerva.create(options); - }).then(function (result) { - globalObject = result; - return plugin.getMinervaPluginProxy().project.map.getHighlightedBioEntities("search"); - }).then(function (elements) { - assert.ok(elements.length > 0); - return globalObject.destroy(); - }); - }); - - it('create with show submodel GET param', function () { - helper.setUrl("http://test/?submap=15781"); - - var project = helper.createProject(); - project.getModel().setId(15781); - - return ServerConnectorMock.getProject().then(function (project) { - var options = helper.createCustomMapOptions(project); - - return minerva.create(options); - }).then(function (result) { - return result.destroy(); - }); - }); - - it("constructor with touch enabled", function () { - return ServerConnectorMock.getProject().then(function (project) { - var options = helper.createCustomMapOptions(project); - options.setCustomTouchInterface(true); - return minerva.create(options).then(function (result) { - assert.ok(result); - return result.destroy(); - }); - }); - }); - - - it('create Export', function () { - var options = null; - return ServerConnectorMock.getProject().then(function (project) { - options = helper.createCustomMapOptions(project); - - return minerva.createExport(options); - }).then(function (result) { - assert.ok(result); - assert.equal(logger.getWarnings().length, 0); - }); - }); - - it('create Admin', function () { - var options = null; - return ServerConnectorMock.getProject().then(function (project) { - options = helper.createCustomMapOptions(project); - - return minerva.createAdmin(options); - }).then(function (result) { - assert.ok(result); - assert.equal(logger.getWarnings().length, 0); - result.destroy(); - }); - }); - it('getProject', function () { - return ServerConnectorMock.getProject().then(function (project) { - var options = helper.createCustomMapOptions(project); - return minerva.create(options); - }).then(function (result) { - assert.equal(result.getProject().getProjectId(), "sample"); - return result.destroy(); - }); - }); - -}); +"use strict"; + +require("./mocha-config"); + +var minerva = require('../../main/js/minerva'); +var ServerConnectorMock = require('./ServerConnector-mock'); +var ProxyAccessPlugin = require('./plugin/ProxyAccessPlugin'); + +var chai = require('chai'); +var assert = chai.assert; +var logger = require('./logger'); + +describe('minerva global', function () { + beforeEach(function () { + global.ServerConnector = undefined; + }); + + afterEach(function () { + global.ServerConnector = ServerConnectorMock; + }); + + describe('create', function () { + it('default', function () { + var options = null; + return ServerConnectorMock.getProject().then(function (project) { + options = helper.createCustomMapOptions(project); + + return minerva.create(options); + }).then(function (result) { + assert.ok(result); + assert.equal(logger.getWarnings().length, 0); + return result.destroy(); + }); + }); + it('invalid projectId', function () { + var options = { + projectId: "unknownId", + element: testDiv + }; + return minerva.create(options).then(function () { + assert.ok(false); + }, function (error) { + assert.ok(error.message.indexOf("Project with given id doesn't exist") >= 0); + }); + }); + it('with overview', function () { + helper.setUrl("http://test/?id=complex_model_with_images"); + var customMap; + return ServerConnectorMock.getProject().then(function (project) { + var options = helper.createOptions(project); + + return minerva.create(options); + }).then(function (result) { + customMap = result; + assert.ok(result); + assert.equal(logger.getWarnings().length, 0); + var showOverviewButton = document.getElementsByName("showOverviewButton")[0]; + return showOverviewButton.onclick(); + }).then(function () { + return customMap.destroy(); + }); + }); + }); + + + it("showComments", function () { + var options = null; + var map ; + return ServerConnectorMock.getProject().then(function (project) { + options = helper.createCustomMapOptions(project); + return minerva.create(options); + }).then(function (result) { + map = result; + var commentCheckbox = document.getElementsByName("commentCheckbox")[0]; + commentCheckbox.checked = true; + return commentCheckbox.onclick(); + }).then(function () { + assert.ok(ServerConnectorMock.getSessionData(options.getProject()).getShowComments()); + return map.destroy(); + }); + }); + + describe("constructor", function () { + + it("with GET zoom param", function () { + helper.setUrl("http://test/?zoom=5"); + var options; + return ServerConnectorMock.getProject().then(function (project) { + options = helper.createCustomMapOptions(project); + return minerva.create(options); + }).then(function (result) { + var sessionData = ServerConnectorMock.getSessionData(options.getProject()); + assert.equal(sessionData.getZoomLevel(options.getProject().getModel()), 5); + return result.destroy(); + }); + }); + + it("with GET coordinates param", function () { + helper.setUrl("http://test/?x=5&y=6"); + var options; + return ServerConnectorMock.getProject().then(function (project) { + options = helper.createCustomMapOptions(project); + return minerva.create(options); + }).then(function (result) { + 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); + return result.destroy(); + }); + }); + + it("simple", function () { + var options = { + projectId: "sample", + element: testDiv + }; + return minerva.create(options).then(function (result) { + assert.ok(result); + result.destroy(); + }); + }); + }); + + it('create with layout', function () { + var layout, project, plugin, map; + return ServerConnectorMock.getProject().then(function (result) { + project = result; + var options = helper.createCustomMapOptions(project); + + plugin = new ProxyAccessPlugin({}); + options.getPlugins().push(plugin); + + layout = project.getModel().getLayouts()[1]; + + helper.setUrl("http://test/?layout=" + layout.getName()); + + return minerva.create(options); + }).then(function (result) { + map = result; + assert.ok(result); + // input file is not available so it's the background + return plugin.getMinervaPluginProxy().project.map.getVisibleDataOverlays(); + }).then(function (visibleDataOverlays) { + // input file is available so it's not the background file but overlay + assert.equal(visibleDataOverlays.length, 0); + assert.equal(ServerConnectorMock.getSessionData(project).getSelectedBackgroundOverlay(), layout.getId()); + assert.equal(logger.getWarnings().length, 0); + return map.destroy(); + }); + }); + + it('create with layout from session data', function () { + var layout; + return ServerConnectorMock.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + + layout = project.getModel().getLayouts()[1]; + + ServerConnectorMock.getSessionData(project).setSelectedBackgroundOverlay(layout.getId()); + + return minerva.create(options); + }).then(function (result) { + assert.equal(ServerConnectorMock.getSessionData().getSelectedBackgroundOverlay(), layout.getId()); + return result.destroy(); + }); + }); + + it('create with layout 2', function () { + helper.setUrl("http://test/?layout=xxx"); + var globalObject, plugin; + return ServerConnectorMock.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + plugin = new ProxyAccessPlugin(); + options.getPlugins().push(plugin); + return minerva.create(options); + }).then(function (result) { + globalObject = result; + assert.ok(result); + return plugin.getMinervaPluginProxy().project.map.getVisibleDataOverlays(); + }).then(function (visibleDataOverlays) { + // input file is available so it's not the background file but overlay + assert.equal(visibleDataOverlays.length, 1); + assert.equal(logger.getWarnings().length, 0); + return globalObject.destroy(); + }); + }); + + it('create with search overlay and GET search param', function () { + helper.setUrl("http://test/?search=s1"); + + var globalObject, plugin; + return ServerConnectorMock.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + plugin = new ProxyAccessPlugin(); + options.getPlugins().push(plugin); + return minerva.create(options); + }).then(function (result) { + globalObject = result; + return plugin.getMinervaPluginProxy().project.map.getHighlightedBioEntities("search"); + }).then(function (elements) { + assert.ok(elements.length > 0); + return globalObject.destroy(); + }); + }); + + it('create with show submodel GET param', function () { + helper.setUrl("http://test/?submap=15781"); + + var project = helper.createProject(); + project.getModel().setId(15781); + + return ServerConnectorMock.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + + return minerva.create(options); + }).then(function (result) { + return result.destroy(); + }); + }); + + it("constructor with touch enabled", function () { + return ServerConnectorMock.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + options.setCustomTouchInterface(true); + return minerva.create(options).then(function (result) { + assert.ok(result); + return result.destroy(); + }); + }); + }); + + + it('create Export', function () { + var options = null; + return ServerConnectorMock.getProject().then(function (project) { + options = helper.createCustomMapOptions(project); + + return minerva.createExport(options); + }).then(function (result) { + assert.ok(result); + assert.equal(logger.getWarnings().length, 0); + }); + }); + + it('create Admin', function () { + var options = null; + return ServerConnectorMock.getProject().then(function (project) { + options = helper.createCustomMapOptions(project); + + return minerva.createAdmin(options); + }).then(function (result) { + assert.ok(result); + assert.equal(logger.getWarnings().length, 0); + result.destroy(); + }); + }); + it('getProject', function () { + return ServerConnectorMock.getProject().then(function (project) { + var options = helper.createCustomMapOptions(project); + return minerva.create(options); + }).then(function (result) { + assert.equal(result.getProject().getProjectId(), "sample"); + return result.destroy(); + }); + }); + +}); diff --git a/frontend-js/src/test/js/mocha-config.js b/frontend-js/src/test/js/mocha-config.js index 9822eb85167b59678c335bbc85b94560cbcd60a4..9daf31dbe28dcb0c16e4dafa6a53509a21c9bb7f 100644 --- a/frontend-js/src/test/js/mocha-config.js +++ b/frontend-js/src/test/js/mocha-config.js @@ -1,152 +1,152 @@ -"use strict"; - -var Promise = require("bluebird"); -var Cookies = require('js-cookie'); - -var Helper = require('./helper'); - -var GuiConnector = require('./GuiConnector-mock'); - -var path = require('path'); - -// ----------------------------- - -var logger = require('./logger'); - -function removeCookies() { - var cookies = Cookies.get(); - for (var cookie in cookies) { - Cookies.remove(cookie); - } -} - -function mockBootstrap() { - $.fn.typeahead = function () { - logger.debug("Mock typeahead function call"); - }; -} - -before(function () { - // requirejs.config({ - // baseUrl: path.dirname(require.main.filename) + "/../../../" - // }); - -// GLOBAL configuration - global.navigator = { - userAgent: 'node.js', - appName: 'MinervaUnitTest', - appVersion: '0.0.1' - - }; - - var jsdom = require('jsdom'); - global.dom = new jsdom.JSDOM(); - global.window = global.dom.window; - global.document = window.document; - global.document.elementFromPoint = function () { - }; - - global.$ = require('jquery'); - global.jQuery = $; - global.window.$ = $; - -// additions to jsdom implementations: - global.Option = window.Option; - global.Blob = window.Blob; - global.MouseEvent = window.MouseEvent; - global.FileReader = window.FileReader; - - var originalCreateElement = document.createElement; - document.createElement = function (arg) { - var result = originalCreateElement.call(this, arg); - // workaround for: https://github.com/tmpvar/jsdom/issues/961 - if ("li" === arg) { - result.dataset = []; - } - return result; - }; - - window.open = function () { - var result = {}; - result.focus = function () { - - }; - return result; - }; - window.URL.createObjectURL = function () { - - }; - -// pileup is using heavily some browser defined javascript - var pileup = require('pileup'); - pileup.create = function () { - return { - destroy: function () { - } - }; - }; - pileup.formats.twoBit = function () { - return {}; - }; - pileup.formats.bigBed = function () { - return {}; - }; -// --- - - require('jquery-ui-dist/jquery-ui.js'); - - require("bootstrap"); - - require('datatables.net')(window, $); - require('spectrum-colorpicker'); - global.tinycolor = window.tinycolor; - require('jstree'); - - global.google = require('./google-map-mock'); - - global.ServerConnector = require('./ServerConnector-mock'); - - Promise.longStackTraces(); - - mockBootstrap(); -}); - -beforeEach(function () { - window.onresize = undefined; - - logger.flushBuffer(); - - removeCookies(); - - ServerConnector.init(); - - ServerConnector.getSessionData(null).setToken("MOCK_TOKEN_ID"); - ServerConnector.getSessionData(null).setLogin("anonymous"); - - - global.testDiv = document.createElement("div"); - global.testDiv.id = "test"; - document.body.appendChild(testDiv); - - return ServerConnector.getConfiguration().then(function (configuration) { - global.helper = new Helper(configuration); - helper.setUrl("http://test/"); - GuiConnector.init(); - }); - -}); - -afterEach(function () { - document.body.removeChild(global.testDiv); - delete global.testDiv; - if (this.currentTest.state !== 'failed') { - if (document.body.hasChildNodes()) { - var content = document.body.innerHTML; - document.body.innerHTML = ""; - this.test.error(new Error("Test didn't left clean document. Found: " + content)); - } else if ($._data(window, "events").resize) { - logger.debug($._data(window, "events").resize); - this.test.error(new Error("Test didn't left clean resize events handlers.")); - } - } -}); +"use strict"; + +var Promise = require("bluebird"); +var Cookies = require('js-cookie'); + +var Helper = require('./helper'); + +var GuiConnector = require('./GuiConnector-mock'); + +var path = require('path'); + +// ----------------------------- + +var logger = require('./logger'); + +function removeCookies() { + var cookies = Cookies.get(); + for (var cookie in cookies) { + Cookies.remove(cookie); + } +} + +function mockBootstrap() { + $.fn.typeahead = function () { + logger.debug("Mock typeahead function call"); + }; +} + +before(function () { + // requirejs.config({ + // baseUrl: path.dirname(require.main.filename) + "/../../../" + // }); + +// GLOBAL configuration + global.navigator = { + userAgent: 'node.js', + appName: 'MinervaUnitTest', + appVersion: '0.0.1' + + }; + + var jsdom = require('jsdom'); + global.dom = new jsdom.JSDOM(); + global.window = global.dom.window; + global.document = window.document; + global.document.elementFromPoint = function () { + }; + + global.$ = require('jquery'); + global.jQuery = $; + global.window.$ = $; + +// additions to jsdom implementations: + global.Option = window.Option; + global.Blob = window.Blob; + global.MouseEvent = window.MouseEvent; + global.FileReader = window.FileReader; + + var originalCreateElement = document.createElement; + document.createElement = function (arg) { + var result = originalCreateElement.call(this, arg); + // workaround for: https://github.com/tmpvar/jsdom/issues/961 + if ("li" === arg) { + result.dataset = []; + } + return result; + }; + + window.open = function () { + var result = {}; + result.focus = function () { + + }; + return result; + }; + window.URL.createObjectURL = function () { + + }; + +// pileup is using heavily some browser defined javascript + var pileup = require('pileup'); + pileup.create = function () { + return { + destroy: function () { + } + }; + }; + pileup.formats.twoBit = function () { + return {}; + }; + pileup.formats.bigBed = function () { + return {}; + }; +// --- + + require('jquery-ui-dist/jquery-ui.js'); + + require("bootstrap"); + + require('datatables.net')(window, $); + require('spectrum-colorpicker'); + global.tinycolor = window.tinycolor; + require('jstree'); + + global.google = require('./google-map-mock'); + + global.ServerConnector = require('./ServerConnector-mock'); + + Promise.longStackTraces(); + + mockBootstrap(); +}); + +beforeEach(function () { + window.onresize = undefined; + + logger.flushBuffer(); + + removeCookies(); + + ServerConnector.init(); + + ServerConnector.getSessionData(null).setToken("MOCK_TOKEN_ID"); + ServerConnector.getSessionData(null).setLogin("anonymous"); + + + global.testDiv = document.createElement("div"); + global.testDiv.id = "test"; + document.body.appendChild(testDiv); + + return ServerConnector.getConfiguration().then(function (configuration) { + global.helper = new Helper(configuration); + helper.setUrl("http://test/"); + GuiConnector.init(); + }); + +}); + +afterEach(function () { + document.body.removeChild(global.testDiv); + delete global.testDiv; + if (this.currentTest.state !== 'failed') { + if (document.body.hasChildNodes()) { + var content = document.body.innerHTML; + document.body.innerHTML = ""; + this.test.error(new Error("Test didn't left clean document. Found: " + content)); + } else if ($._data(window, "events").resize) { + logger.debug($._data(window, "events").resize); + this.test.error(new Error("Test didn't left clean resize events handlers.")); + } + } +}); diff --git a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js index dec73809dc8a0cb8b1c9ae354efd912c2eb6c5c2..ef6bb30f5fca0f800d87f7fe151fcb01256a7518 100644 --- a/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js +++ b/frontend-js/src/test/js/plugin/MinervaPluginProxy-test.js @@ -1,443 +1,443 @@ -"use strict"; - -require("../mocha-config"); - -var Alias = require('../../../main/js/map/data/Alias'); -var MinervaPluginProxy = require('../../../main/js/plugin/MinervaPluginProxy'); -var ServerConnector = require('../ServerConnector-mock'); - -var logger = require('../logger'); - -var chai = require('chai'); -var assert = chai.assert; - -function createProxy(map) { - return new MinervaPluginProxy({ - map: map, - element: testDiv, - pluginId: "xx", - configuration: helper.getConfiguration() - }); -} - -describe('MinervaPluginProxy', function () { - it('constructor', function () { - var map = helper.createCustomMap(); - var proxy = new MinervaPluginProxy({ - map: map, - element: testDiv, - pluginId: "xx", - configuration: helper.getConfiguration() - }); - assert.ok(proxy); - assert.ok(proxy.pluginId); - assert.ok(proxy.element); - assert.ok(proxy.project); - assert.ok(proxy.configuration); - assert.equal(0, logger.getWarnings().length); - }); - - it('add search listener', function () { - var callbackOk = false; - var map; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - helper.createSearchDbOverlay(map); - var proxy = createProxy(map); - - proxy.project.map.addListener({ - dbOverlayName: "search", - type: "onSearch", - callback: function (elements) { - assert.ok(elements.length > 0); - assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); - callbackOk = true; - } - }); - return map.getOverlayByName("search").searchByQuery("s1"); - }).then(function () { - assert.ok(callbackOk); - callbackOk = false; - return map.getOverlayByName("search").searchByQuery("s1"); - }).then(function () { - assert.ok(callbackOk); - callbackOk = false; - var params = { - coordinates: new google.maps.Point(184.79, 365.76), - zoom: 2, - modelId: map.getProject().getModel().getId() - }; - return map.getOverlayByName("search").searchByCoordinates(params); - }).then(function () { - assert.ok(callbackOk); - return map.destroy(); - }); - }); - - describe('removeListener', function () { - it('valid listener', function () { - var callbackOk = false; - var map, options; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - helper.createSearchDbOverlay(map); - var proxy = createProxy(map); - - options = { - dbOverlayName: "search", - type: "onSearch", - callback: function (elements) { - assert.ok(elements.length > 0); - assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); - callbackOk = true; - } - }; - proxy.project.map.addListener(options); - proxy.project.map.removeListener(options); - assert.equal(0, logger.getWarnings().length); - return map.destroy(); - }); - }); - it('unknown listener', function () { - var callbackOk = false; - var map, options; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - helper.createSearchDbOverlay(map); - var proxy = createProxy(map); - - options = { - dbOverlayName: "search", - type: "onSearch", - callback: function (elements) { - assert.ok(elements.length > 0); - assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); - callbackOk = true; - } - }; - proxy.project.map.addListener(options); - proxy.project.map.removeListener({}); - }).then(function () { - assert.notOk("Exception expected"); - }, function (error) { - assert.ok(error.message.indexOf("Listener doesn't exist") >= 0); - - return map.destroy(); - }); - }); - }); - describe('removeAllListeners', function () { - it('valid listener', function () { - var callbackOk = false; - var map, options; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - helper.createSearchDbOverlay(map); - var proxy = createProxy(map); - - options = { - dbOverlayName: "search", - type: "onSearch", - callback: function (elements) { - assert.ok(elements.length > 0); - assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); - callbackOk = true; - } - }; - proxy.project.map.addListener(options); - var removedListeners = proxy.project.map.removeAllListeners(); - assert.equal(1, removedListeners.length); - return map.destroy(); - }); - }); - it('no listeners', function () { - var map; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - helper.createSearchDbOverlay(map); - var proxy = createProxy(map); - var removedListeners = proxy.project.map.removeAllListeners(); - assert.equal(0, removedListeners.length); - return map.destroy(); - }); - }); - }); - - describe("getBioEntityById", function () { - it("for alias", function () { - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - return proxy.project.data.getBioEntityById({ - id: 329177, - modelId: 15781, - type: "ALIAS" - }); - }).then(function (result) { - assert.ok(result); - }).then(function () { - map.destroy(); - }); - }); - - it("for reaction", function () { - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - return proxy.project.data.getBioEntityById({ - id: 153508, - modelId: 15781, - type: "REACTION" - }); - }).then(function (result) { - assert.ok(result); - assert.ok(result.getReactants()[0] instanceof Alias); - }).then(function () { - map.destroy(); - }); - }); - }); - - describe("showElement", function () { - it("alias", function () { - var elementToShow = { - element: { - id: 329171, - modelId: 15781, - type: "ALIAS" - }, - type: "ICON" - }; - - var elementToShow2 = { - element: { - id: 329171, - modelId: 15781, - type: "ALIAS" - }, - type: "SURFACE", - options: { - color: "#FF0000" - } - }; - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - return proxy.project.map.showBioEntity(elementToShow); - }).then(function () { - return proxy.project.map.getHighlightedBioEntities(); - }).then(function (elements) { - assert.equal(elements.length, 1); - return proxy.project.map.showBioEntity(elementToShow2); - }).then(function () { - return proxy.project.map.getHighlightedBioEntities(); - }).then(function (elements) { - assert.equal(elements.length, 2); - return proxy.project.map.hideBioEntity(elementToShow); - }).then(function () { - return proxy.project.map.getHighlightedBioEntities(); - }).then(function (elements) { - assert.equal(elements.length, 1); - return proxy.project.map.hideBioEntity(elementToShow2); - }).then(function () { - return proxy.project.map.getHighlightedBioEntities(); - }).then(function (elements) { - assert.equal(elements.length, 0); - map.destroy(); - }); - }); - - it("show twice", function () { - var elementToShow = { - element: { - id: 329171, - modelId: 15781, - type: "ALIAS" - }, - type: "ICON" - }; - var elementToShow2 = { - element: { - id: 329171, - modelId: 15781, - type: "ALIAS" - }, - type: "SURFACE", - options: { - color: "#FF0000" - } - }; - - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - proxy.project.map.showBioEntity(elementToShow); - return proxy.project.map.showBioEntity(elementToShow2); - }).then(function () { - map.destroy(); - assert.ok(false, "Should be rejected due to fact that there is show in progress"); - }, function (error) { - assert.ok(error.message.indexOf("wait until previous Promise for showBioEntity/hideBioEntity is resolved") >= 0); - map.destroy(); - }); - }); - }); - - it("setCenter", function () { - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - return proxy.project.map.setCenter({ - modelId: 15781, - x: 10, - y: 20 - }); - }).then(function () { - var sessionData = ServerConnector.getSessionData(map.getProject()); - var center = sessionData.getCenter(map.getProject().getModel()); - assert.ok(center instanceof google.maps.Point); - assert.closeTo(parseFloat(center.x), 10, helper.EPSILON); - assert.closeTo(parseFloat(center.y), 20, helper.EPSILON); - }).then(function () { - map.destroy(); - }); - }); - - it("setZoom", function () { - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - return proxy.project.map.setZoom({ - modelId: 15781, - zoom: 10 - }); - }).then(function () { - var sessionData = ServerConnector.getSessionData(map.getProject()); - var zoom = sessionData.getZoomLevel(map.getProject().getModel()); - assert.equal(zoom, 10); - }).then(function () { - map.destroy(); - }); - }); - - it("getReactionByParticipantId", function () { - var ie = { - modelId: 15781, - type: "ALIAS", - id: 329167 - }; - - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - return proxy.project.data.getReactionsWithElement(ie); - }).then(function (reactions) { - assert.equal(reactions.length, 5); - }).then(function () { - map.destroy(); - }); - - }); - - it("getAllBioEntities", function () { - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - return proxy.project.data.getAllBioEntities(); - }).then(function (result) { - assert.ok(result); - assert.ok(result.length > 0); - }).then(function () { - map.destroy(); - }); - }); - - describe("configuration", function () { - it("elementTypes", function () { - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - assert.ok(proxy.configuration.elementTypes.length > 0); - map.destroy(); - }); - }); - }); - - it("fitBounds", function () { - var map, proxy; - return ServerConnector.getProject().then(function (project) { - map = helper.createCustomMap(project); - proxy = createProxy(map); - var center = map.getGoogleMap().getCenter(); - proxy.project.map.fitBounds({ - id: 329177, - modelId: 15781, - type: "ALIAS" - }); - var center2 = map.getGoogleMap().getCenter(); - assert.ok(center.lat() !== center2.lat() || center.lng() !== center2.lng()); - }).then(function () { - map.destroy(); - }); - }); - - it("getProjectId", function () { - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - var proxy = createProxy(map); - assert.equal("sample", proxy.project.data.getProjectId()); - map.destroy(); - }); - }); - it("getName", function () { - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - var proxy = createProxy(map); - assert.equal("UNKNOWN DISEASE MAP", proxy.project.data.getName()); - map.destroy(); - }); - }); - it("getVersion", function () { - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - var proxy = createProxy(map); - assert.equal("0", proxy.project.data.getVersion()); - map.destroy(); - }); - }); - it("getDisease", function () { - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - var proxy = createProxy(map); - assert.ok(proxy.project.data.getDisease()); - map.destroy(); - }); - }); - it("getOrganism", function () { - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - var proxy = createProxy(map); - assert.ok(proxy.project.data.getOrganism()); - map.destroy(); - }); - }); - it("getModels", function () { - return ServerConnector.getProject().then(function (project) { - var map = helper.createCustomMap(project); - var proxy = createProxy(map); - assert.equal(1, proxy.project.data.getModels().length); - map.destroy(); - }); - }); - - -}); +"use strict"; + +require("../mocha-config"); + +var Alias = require('../../../main/js/map/data/Alias'); +var MinervaPluginProxy = require('../../../main/js/plugin/MinervaPluginProxy'); +var ServerConnector = require('../ServerConnector-mock'); + +var logger = require('../logger'); + +var chai = require('chai'); +var assert = chai.assert; + +function createProxy(map) { + return new MinervaPluginProxy({ + map: map, + element: testDiv, + pluginId: "xx", + configuration: helper.getConfiguration() + }); +} + +describe('MinervaPluginProxy', function () { + it('constructor', function () { + var map = helper.createCustomMap(); + var proxy = new MinervaPluginProxy({ + map: map, + element: testDiv, + pluginId: "xx", + configuration: helper.getConfiguration() + }); + assert.ok(proxy); + assert.ok(proxy.pluginId); + assert.ok(proxy.element); + assert.ok(proxy.project); + assert.ok(proxy.configuration); + assert.equal(0, logger.getWarnings().length); + }); + + it('add search listener', function () { + var callbackOk = false; + var map; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + helper.createSearchDbOverlay(map); + var proxy = createProxy(map); + + proxy.project.map.addListener({ + dbOverlayName: "search", + type: "onSearch", + callback: function (elements) { + assert.ok(elements.length > 0); + assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); + callbackOk = true; + } + }); + return map.getOverlayByName("search").searchByQuery("s1"); + }).then(function () { + assert.ok(callbackOk); + callbackOk = false; + return map.getOverlayByName("search").searchByQuery("s1"); + }).then(function () { + assert.ok(callbackOk); + callbackOk = false; + var params = { + coordinates: new google.maps.Point(184.79, 365.76), + zoom: 2, + modelId: map.getProject().getModel().getId() + }; + return map.getOverlayByName("search").searchByCoordinates(params); + }).then(function () { + assert.ok(callbackOk); + return map.destroy(); + }); + }); + + describe('removeListener', function () { + it('valid listener', function () { + var callbackOk = false; + var map, options; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + helper.createSearchDbOverlay(map); + var proxy = createProxy(map); + + options = { + dbOverlayName: "search", + type: "onSearch", + callback: function (elements) { + assert.ok(elements.length > 0); + assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); + callbackOk = true; + } + }; + proxy.project.map.addListener(options); + proxy.project.map.removeListener(options); + assert.equal(0, logger.getWarnings().length); + return map.destroy(); + }); + }); + it('unknown listener', function () { + var callbackOk = false; + var map, options; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + helper.createSearchDbOverlay(map); + var proxy = createProxy(map); + + options = { + dbOverlayName: "search", + type: "onSearch", + callback: function (elements) { + assert.ok(elements.length > 0); + assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); + callbackOk = true; + } + }; + proxy.project.map.addListener(options); + proxy.project.map.removeListener({}); + }).then(function () { + assert.notOk("Exception expected"); + }, function (error) { + assert.ok(error.message.indexOf("Listener doesn't exist") >= 0); + + return map.destroy(); + }); + }); + }); + describe('removeAllListeners', function () { + it('valid listener', function () { + var callbackOk = false; + var map, options; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + helper.createSearchDbOverlay(map); + var proxy = createProxy(map); + + options = { + dbOverlayName: "search", + type: "onSearch", + callback: function (elements) { + assert.ok(elements.length > 0); + assert.ok(elements[0].length !== undefined, "Array of arrays expected as onSearch result"); + callbackOk = true; + } + }; + proxy.project.map.addListener(options); + var removedListeners = proxy.project.map.removeAllListeners(); + assert.equal(1, removedListeners.length); + return map.destroy(); + }); + }); + it('no listeners', function () { + var map; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + helper.createSearchDbOverlay(map); + var proxy = createProxy(map); + var removedListeners = proxy.project.map.removeAllListeners(); + assert.equal(0, removedListeners.length); + return map.destroy(); + }); + }); + }); + + describe("getBioEntityById", function () { + it("for alias", function () { + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + return proxy.project.data.getBioEntityById({ + id: 329177, + modelId: 15781, + type: "ALIAS" + }); + }).then(function (result) { + assert.ok(result); + }).then(function () { + map.destroy(); + }); + }); + + it("for reaction", function () { + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + return proxy.project.data.getBioEntityById({ + id: 153508, + modelId: 15781, + type: "REACTION" + }); + }).then(function (result) { + assert.ok(result); + assert.ok(result.getReactants()[0] instanceof Alias); + }).then(function () { + map.destroy(); + }); + }); + }); + + describe("showElement", function () { + it("alias", function () { + var elementToShow = { + element: { + id: 329171, + modelId: 15781, + type: "ALIAS" + }, + type: "ICON" + }; + + var elementToShow2 = { + element: { + id: 329171, + modelId: 15781, + type: "ALIAS" + }, + type: "SURFACE", + options: { + color: "#FF0000" + } + }; + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + return proxy.project.map.showBioEntity(elementToShow); + }).then(function () { + return proxy.project.map.getHighlightedBioEntities(); + }).then(function (elements) { + assert.equal(elements.length, 1); + return proxy.project.map.showBioEntity(elementToShow2); + }).then(function () { + return proxy.project.map.getHighlightedBioEntities(); + }).then(function (elements) { + assert.equal(elements.length, 2); + return proxy.project.map.hideBioEntity(elementToShow); + }).then(function () { + return proxy.project.map.getHighlightedBioEntities(); + }).then(function (elements) { + assert.equal(elements.length, 1); + return proxy.project.map.hideBioEntity(elementToShow2); + }).then(function () { + return proxy.project.map.getHighlightedBioEntities(); + }).then(function (elements) { + assert.equal(elements.length, 0); + map.destroy(); + }); + }); + + it("show twice", function () { + var elementToShow = { + element: { + id: 329171, + modelId: 15781, + type: "ALIAS" + }, + type: "ICON" + }; + var elementToShow2 = { + element: { + id: 329171, + modelId: 15781, + type: "ALIAS" + }, + type: "SURFACE", + options: { + color: "#FF0000" + } + }; + + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + proxy.project.map.showBioEntity(elementToShow); + return proxy.project.map.showBioEntity(elementToShow2); + }).then(function () { + map.destroy(); + assert.ok(false, "Should be rejected due to fact that there is show in progress"); + }, function (error) { + assert.ok(error.message.indexOf("wait until previous Promise for showBioEntity/hideBioEntity is resolved") >= 0); + map.destroy(); + }); + }); + }); + + it("setCenter", function () { + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + return proxy.project.map.setCenter({ + modelId: 15781, + x: 10, + y: 20 + }); + }).then(function () { + var sessionData = ServerConnector.getSessionData(map.getProject()); + var center = sessionData.getCenter(map.getProject().getModel()); + assert.ok(center instanceof google.maps.Point); + assert.closeTo(parseFloat(center.x), 10, helper.EPSILON); + assert.closeTo(parseFloat(center.y), 20, helper.EPSILON); + }).then(function () { + map.destroy(); + }); + }); + + it("setZoom", function () { + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + return proxy.project.map.setZoom({ + modelId: 15781, + zoom: 10 + }); + }).then(function () { + var sessionData = ServerConnector.getSessionData(map.getProject()); + var zoom = sessionData.getZoomLevel(map.getProject().getModel()); + assert.equal(zoom, 10); + }).then(function () { + map.destroy(); + }); + }); + + it("getReactionByParticipantId", function () { + var ie = { + modelId: 15781, + type: "ALIAS", + id: 329167 + }; + + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + return proxy.project.data.getReactionsWithElement(ie); + }).then(function (reactions) { + assert.equal(reactions.length, 5); + }).then(function () { + map.destroy(); + }); + + }); + + it("getAllBioEntities", function () { + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + return proxy.project.data.getAllBioEntities(); + }).then(function (result) { + assert.ok(result); + assert.ok(result.length > 0); + }).then(function () { + map.destroy(); + }); + }); + + describe("configuration", function () { + it("elementTypes", function () { + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + assert.ok(proxy.configuration.elementTypes.length > 0); + map.destroy(); + }); + }); + }); + + it("fitBounds", function () { + var map, proxy; + return ServerConnector.getProject().then(function (project) { + map = helper.createCustomMap(project); + proxy = createProxy(map); + var center = map.getGoogleMap().getCenter(); + proxy.project.map.fitBounds({ + id: 329177, + modelId: 15781, + type: "ALIAS" + }); + var center2 = map.getGoogleMap().getCenter(); + assert.ok(center.lat() !== center2.lat() || center.lng() !== center2.lng()); + }).then(function () { + map.destroy(); + }); + }); + + it("getProjectId", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal("sample", proxy.project.data.getProjectId()); + map.destroy(); + }); + }); + it("getName", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal("UNKNOWN DISEASE MAP", proxy.project.data.getName()); + map.destroy(); + }); + }); + it("getVersion", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal("0", proxy.project.data.getVersion()); + map.destroy(); + }); + }); + it("getDisease", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.ok(proxy.project.data.getDisease()); + map.destroy(); + }); + }); + it("getOrganism", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.ok(proxy.project.data.getOrganism()); + map.destroy(); + }); + }); + it("getModels", function () { + return ServerConnector.getProject().then(function (project) { + var map = helper.createCustomMap(project); + var proxy = createProxy(map); + assert.equal(1, proxy.project.data.getModels().length); + map.destroy(); + }); + }); + + +}); diff --git a/frontend-js/src/test/js/plugin/Plugin-test.js b/frontend-js/src/test/js/plugin/Plugin-test.js index cac782f04f88cb35a5a70a6fd1fdbbcf5b659caf..ae4bb0cbebbb4e871e499bd998d96b7bc2c56a2b 100644 --- a/frontend-js/src/test/js/plugin/Plugin-test.js +++ b/frontend-js/src/test/js/plugin/Plugin-test.js @@ -1,102 +1,100 @@ -"use strict"; - -/* exported logger */ -/* exported assert */ - -require("../mocha-config"); - -var Plugin = require('../../../main/js/plugin/Plugin'); - -var logger = require('../logger'); -var assert = require('assert'); - -var fs = require('fs'); - -describe('Plugin', function () { - it('constructor', function () { - var plugin = new Plugin({ - url: "./testFiles/plugin/empty.js", - configuration: helper.getConfiguration() - }); - assert.ok(plugin); - }); - - it('test plugins', function () { - var map = helper.createCustomMap(); - var promises = []; - - fs.readdirSync('./testFiles/plugin/').forEach(function (file) { - var element = document.createElement("div"); - testDiv.appendChild(element); - var plugin = new Plugin({ - url: "./testFiles/plugin/" + file, - map: map, - element: element, - configuration: helper.getConfiguration() - }); - promises.push(plugin.load()); - }); - return Promise.all(promises); - }); - - describe('load', function () { - it('default', function () { - var map = helper.createCustomMap(); - - var plugin = new Plugin({ - url: "./testFiles/plugin/empty.js", - map: map, - configuration: helper.getConfiguration() - }); - return plugin.load().then(function () { - assert.equal("test plugin", plugin.getName()); - assert.equal("0.0.1", plugin.getVersion()); - assert.equal(0, logger.getWarnings().length); - }); - }); - - it('invalid javascript code', function () { - var plugin = new Plugin({ - url: "./testFiles/plugin-invalid/invalid_javascript.js", - map: helper.createCustomMap(), - configuration: helper.getConfiguration() - }); - return plugin.load().then(function () { - assert.false("expected error"); - }, function (error) { - assert.ok(error.message.indexOf("Unexpected identifier") >= 0); - }); - }); - - it('plugin register crash', function () { - var plugin = new Plugin({ - url: "./testFiles/plugin-invalid/invalid_register.js", - map: helper.createCustomMap(), - configuration: helper.getConfiguration() - }); - return plugin.load().then(function () { - assert.false("expected error"); - }, function (error) { - assert.ok(error.message.indexOf("Let's crash") >= 0); - }); - }); - }); - describe('unload', function () { - it('warning about cleaning', function () { - var map = helper.createCustomMap(); - helper.createSearchDbOverlay(map); - - var plugin = new Plugin({ - url: "./testFiles/plugin-invalid/unclean-unregister.js", - map: map, - configuration: helper.getConfiguration() - }); - return plugin.load().then(function () { - assert.equal(0, logger.getWarnings().length); - return plugin.unload(); - }).then(function () { - assert.equal(1, logger.getWarnings().length); - }); - }); - }); -}); +"use strict"; + +require("../mocha-config"); + +var Plugin = require('../../../main/js/plugin/Plugin'); + +var logger = require('../logger'); +var chai = require('chai'); +var assert = chai.assert; + +var fs = require('fs'); + +describe('Plugin', function () { + it('constructor', function () { + var plugin = new Plugin({ + url: "./testFiles/plugin/empty.js", + configuration: helper.getConfiguration() + }); + assert.ok(plugin); + }); + + it('test plugins', function () { + var map = helper.createCustomMap(); + var promises = []; + + fs.readdirSync('./testFiles/plugin/').forEach(function (file) { + var element = document.createElement("div"); + testDiv.appendChild(element); + var plugin = new Plugin({ + url: "./testFiles/plugin/" + file, + map: map, + element: element, + configuration: helper.getConfiguration() + }); + promises.push(plugin.load()); + }); + return Promise.all(promises); + }); + + describe('load', function () { + it('default', function () { + var map = helper.createCustomMap(); + + var plugin = new Plugin({ + url: "./testFiles/plugin/empty.js", + map: map, + configuration: helper.getConfiguration() + }); + return plugin.load().then(function () { + assert.equal("test plugin", plugin.getName()); + assert.equal("0.0.1", plugin.getVersion()); + assert.equal(0, logger.getWarnings().length); + }); + }); + + it('invalid javascript code', function () { + var plugin = new Plugin({ + url: "./testFiles/plugin-invalid/invalid_javascript.js", + map: helper.createCustomMap(), + configuration: helper.getConfiguration() + }); + return plugin.load().then(function () { + assert.notOk("expected error"); + }, function (error) { + assert.ok(error.message.indexOf("Unexpected identifier") >= 0); + }); + }); + + it('plugin register crash', function () { + var plugin = new Plugin({ + url: "./testFiles/plugin-invalid/invalid_register.js", + map: helper.createCustomMap(), + configuration: helper.getConfiguration() + }); + return plugin.load().then(function () { + assert.false("expected error"); + }, function (error) { + assert.ok(error.message.indexOf("Let's crash") >= 0); + }); + }); + }); + describe('unload', function () { + it('warning about cleaning', function () { + var map = helper.createCustomMap(); + helper.createSearchDbOverlay(map); + + var plugin = new Plugin({ + url: "./testFiles/plugin-invalid/unclean-unregister.js", + map: map, + configuration: helper.getConfiguration() + }); + return plugin.load().then(function () { + assert.equal(0, logger.getWarnings().length); + return plugin.unload(); + }).then(function () { + assert.equal(1, logger.getWarnings().length); + }); + }); + }); +}); diff --git a/frontend-js/src/test/js/plugin/PluginManager-test.js b/frontend-js/src/test/js/plugin/PluginManager-test.js index f37e2cfeee5c2c6e391f57eb9ca6e1ac156e8d09..8a289f88e6fef708a6b5a16014b2aca9ddd22d13 100644 --- a/frontend-js/src/test/js/plugin/PluginManager-test.js +++ b/frontend-js/src/test/js/plugin/PluginManager-test.js @@ -1,96 +1,93 @@ -"use strict"; - -/* exported logger */ -/* exported assert */ - -require("../mocha-config"); - -var Plugin = require('../../../main/js/plugin/Plugin'); -var PluginManager = require('../../../main/js/plugin/PluginManager'); -var ProxyAccessPlugin = require('./ProxyAccessPlugin'); - - -var logger = require('../logger'); -var assert = require('assert'); - -describe('PluginManager', function () { - var createParams = function () { - var map = helper.createCustomMap(); - return { - map: map, - configuration: helper.getConfiguration(), - element: testDiv - }; - }; - it('constructor', function () { - var manager = new PluginManager(createParams()); - assert.ok(manager); - assert.equal(0, logger.getWarnings().length); - }); - - it('getPlugins', function () { - var manager = new PluginManager(createParams()); - assert.equal(0, manager.getPlugins().length); - }); - - describe('addPlugin', function () { - it('default', function () { - var manager = new PluginManager(createParams()); - return manager.addPlugin({url: "./testFiles/plugin/empty.js"}).then(function () { - assert.equal(1, manager.getPlugins().length); - }); - }); - it('with min width', function () { - var manager = new PluginManager(createParams()); - return manager.addPlugin({url: "./testFiles/plugin/min-width.js"}).then(function () { - assert.equal("200px", $(manager.getElement()).css("min-width")); - }); - }); - it('with onResize listener', function () { - var manager = new PluginManager(createParams()); - var plugin = new ProxyAccessPlugin({}); - var listenerCalled = false; - return manager.addPlugin(plugin).then(function () { - plugin.getMinervaPluginProxy().project.map.addListener({ - object: "plugin", type: "onResize", callback: function () { - listenerCalled = true; - } - }); - return manager.addPlugin({url: "./testFiles/plugin/min-width.js"}); - }).then(function () { - assert.ok(listenerCalled); - }); - }); - it('after removal', function () { - var manager = new PluginManager(createParams()); - return manager.addPlugin({url: "./testFiles/plugin/empty.js"}).then(function (plugin) { - return manager.removePlugin(plugin); - }).then(function () { - return manager.addPlugin({url: "./testFiles/plugin/empty.js"}); - }).then(function () { - assert.equal(1, manager.getPlugins().length); - }); - }); - }); - - describe('removePlugin', function () { - it('default', function () { - var manager = new PluginManager(createParams()); - return manager.addPlugin({url: "testFiles/plugin/empty.js"}).then(function (plugin) { - return manager.removePlugin(plugin); - }).then(function () { - assert.equal(0, manager.getPlugins().length); - }); - }); - it('removing non existing plugin', function () { - var manager = new PluginManager(createParams()); - var plugin = new Plugin({url: "testFiles/plugin/empty.js"}); - return manager.removePlugin(plugin).then(function () { - assert.false("Error expected"); - }, function (error) { - assert.ok(error.message.indexOf("Plugin not registered") >= 0); - }); - }); - }); - -}); +"use strict"; + +require("../mocha-config"); + +var Plugin = require('../../../main/js/plugin/Plugin'); +var PluginManager = require('../../../main/js/plugin/PluginManager'); +var ProxyAccessPlugin = require('./ProxyAccessPlugin'); + +var logger = require('../logger'); +var chai = require('chai'); +var assert = chai.assert; + +describe('PluginManager', function () { + var createParams = function () { + var map = helper.createCustomMap(); + return { + map: map, + configuration: helper.getConfiguration(), + element: testDiv + }; + }; + it('constructor', function () { + var manager = new PluginManager(createParams()); + assert.ok(manager); + assert.equal(0, logger.getWarnings().length); + }); + + it('getPlugins', function () { + var manager = new PluginManager(createParams()); + assert.equal(0, manager.getPlugins().length); + }); + + describe('addPlugin', function () { + it('default', function () { + var manager = new PluginManager(createParams()); + return manager.addPlugin({url: "./testFiles/plugin/empty.js"}).then(function () { + assert.equal(1, manager.getPlugins().length); + }); + }); + it('with min width', function () { + var manager = new PluginManager(createParams()); + return manager.addPlugin({url: "./testFiles/plugin/min-width.js"}).then(function () { + assert.equal("200px", $(manager.getElement()).css("min-width")); + }); + }); + it('with onResize listener', function () { + var manager = new PluginManager(createParams()); + var plugin = new ProxyAccessPlugin({}); + var listenerCalled = false; + return manager.addPlugin(plugin).then(function () { + plugin.getMinervaPluginProxy().project.map.addListener({ + object: "plugin", type: "onResize", callback: function () { + listenerCalled = true; + } + }); + return manager.addPlugin({url: "./testFiles/plugin/min-width.js"}); + }).then(function () { + assert.ok(listenerCalled); + }); + }); + it('after removal', function () { + var manager = new PluginManager(createParams()); + return manager.addPlugin({url: "./testFiles/plugin/empty.js"}).then(function (plugin) { + return manager.removePlugin(plugin); + }).then(function () { + return manager.addPlugin({url: "./testFiles/plugin/empty.js"}); + }).then(function () { + assert.equal(1, manager.getPlugins().length); + }); + }); + }); + + describe('removePlugin', function () { + it('default', function () { + var manager = new PluginManager(createParams()); + return manager.addPlugin({url: "testFiles/plugin/empty.js"}).then(function (plugin) { + return manager.removePlugin(plugin); + }).then(function () { + assert.equal(0, manager.getPlugins().length); + }); + }); + it('removing non existing plugin', function () { + var manager = new PluginManager(createParams()); + var plugin = new Plugin({url: "testFiles/plugin/empty.js"}); + return manager.removePlugin(plugin).then(function () { + assert.notOk("Error expected"); + }, function (error) { + assert.ok(error.message.indexOf("Plugin not registered") >= 0); + }); + }); + }); + +}); diff --git a/frontend-js/src/test/js/plugin/ProxyAccessPlugin.js b/frontend-js/src/test/js/plugin/ProxyAccessPlugin.js index 696549ef59ca79472fa1082f85f7ed6735fe1350..a546e8725a88fbef76d957e0ae481c2b5a97f5d9 100644 --- a/frontend-js/src/test/js/plugin/ProxyAccessPlugin.js +++ b/frontend-js/src/test/js/plugin/ProxyAccessPlugin.js @@ -1,44 +1,44 @@ -"use strict"; - -var Plugin = require('../../../main/js/plugin/Plugin'); -var MinervaPluginProxy = require('../../../main/js/plugin/MinervaPluginProxy'); - -var Promise = require('bluebird'); - -var logger = require('../logger'); - -function ProxyAccessPlugin(options) { - Plugin.call(this); -} - -ProxyAccessPlugin.prototype = Object.create(Plugin.prototype); -ProxyAccessPlugin.prototype.constructor = ProxyAccessPlugin; - -ProxyAccessPlugin.prototype.setOptions = function (options) { - if (options !== undefined) { - options.plugin = this; - this.setMinervaPluginProxy(new MinervaPluginProxy(options)); - } -}; - -ProxyAccessPlugin.prototype.load = function () { - this.setLoadedPluginData({ - getName: function () { - return "ProxyAccessPlugin" - }, - getVersion: function () { - return "0.0.1"; - }, - unregister: function () { - logger.debug("un-registering ProxyAccessPlugin"); - }, - register: function () { - logger.debug("registering ProxyAccessPlugin"); - } - }); - return Promise.resolve(); -}; -ProxyAccessPlugin.prototype.unload = function () { - return Promise.resolve(); -}; -module.exports = ProxyAccessPlugin; +"use strict"; + +var Plugin = require('../../../main/js/plugin/Plugin'); +var MinervaPluginProxy = require('../../../main/js/plugin/MinervaPluginProxy'); + +var Promise = require('bluebird'); + +var logger = require('../logger'); + +function ProxyAccessPlugin(options) { + Plugin.call(this); +} + +ProxyAccessPlugin.prototype = Object.create(Plugin.prototype); +ProxyAccessPlugin.prototype.constructor = ProxyAccessPlugin; + +ProxyAccessPlugin.prototype.setOptions = function (options) { + if (options !== undefined) { + options.plugin = this; + this.setMinervaPluginProxy(new MinervaPluginProxy(options)); + } +}; + +ProxyAccessPlugin.prototype.load = function () { + this.setLoadedPluginData({ + getName: function () { + return "ProxyAccessPlugin" + }, + getVersion: function () { + return "0.0.1"; + }, + unregister: function () { + logger.debug("un-registering ProxyAccessPlugin"); + }, + register: function () { + logger.debug("registering ProxyAccessPlugin"); + } + }); + return Promise.resolve(); +}; +ProxyAccessPlugin.prototype.unload = function () { + return Promise.resolve(); +}; +module.exports = ProxyAccessPlugin;