diff --git a/html/admin/js/graphViewer/graph/JSONAdapter.js b/html/admin/js/graphViewer/graph/JSONAdapter.js
index bc3a5185ed..28d668f10a 100644
--- a/html/admin/js/graphViewer/graph/JSONAdapter.js
+++ b/html/admin/js/graphViewer/graph/JSONAdapter.js
@@ -127,32 +127,32 @@ function JSONAdapter(jsonPath, nodes, edges, width, height) {
});
};
- self.loadNodeFromTreeByAttributeValue = function(attribute, value, callback){
- alert("Sorry this adapter is read-only");
+ self.loadNodeFromTreeByAttributeValue = function(attribute, value, callback) {
+ throw "Sorry this adapter is read-only";
};
self.createEdge = function(edgeToCreate, callback){
- alert("Sorry this adapter is read-only");
+ throw "Sorry this adapter is read-only";
};
self.deleteEdge = function(edgeToDelete, callback){
- alert("Sorry this adapter is read-only");
+ throw "Sorry this adapter is read-only";
};
self.patchEdge = function(edgeToPatch, patchData, callback){
- alert("Sorry this adapter is read-only");
+ throw "Sorry this adapter is read-only";
};
self.createNode = function(nodeToCreate, callback){
- alert("Sorry this adapter is read-only");
+ throw "Sorry this adapter is read-only";
};
self.deleteNode = function(nodeToDelete, callback){
- alert("Sorry this adapter is read-only");
+ throw "Sorry this adapter is read-only";
};
self.patchNode = function(nodeToPatch, patchData, callback){
- alert("Sorry this adapter is read-only");
+ throw "Sorry this adapter is read-only";
};
diff --git a/html/admin/js/graphViewer/jasmine_test/specGraphViewer/graphViewerUISpec.js b/html/admin/js/graphViewer/jasmine_test/specGraphViewer/graphViewerUISpec.js
index 8c91bd9e07..151eb029c9 100644
--- a/html/admin/js/graphViewer/jasmine_test/specGraphViewer/graphViewerUISpec.js
+++ b/html/admin/js/graphViewer/jasmine_test/specGraphViewer/graphViewerUISpec.js
@@ -42,9 +42,23 @@
var div,
ui,
- adapterConfig;
+ adapterConfig,
+ adapterMockCall;
beforeEach(function() {
+ //Mock for jsonAdapter
+ var tmp = JSONAdapter;
+ JSONAdapter = function (jsonPath, nodes, edges, width, height) {
+ var r = new tmp(jsonPath, nodes, edges, width, height);
+ r.loadNodeFromTreeByAttributeValue = function(attribute, value, callback) {
+ adapterMockCall = {
+ attribute: attribute,
+ value: value
+ }
+ }
+ return r;
+ }
+
div = document.createElement("div");
div.id = "contentDiv";
div.style.width = "200px";
@@ -194,12 +208,13 @@
*/
it('should contain a field to load a node by attribute', function() {
- expect($("#contentDiv #menubar #attribute").length).toEqual(1);
- expect($("#contentDiv #menubar #value").length).toEqual(1);
- expect($("#contentDiv #menubar #loadnode").length).toEqual(1);
- var attrfield = $("#contentDiv #menubar #attribute")[0],
- valfield = $("#contentDiv #menubar #value")[0],
- btn = $("#contentDiv #menubar #loadnode")[0];
+ var barSelector = "#contentDiv #menubar";
+ expect($(barSelector + " #attribute").length).toEqual(1);
+ expect($(barSelector + " #value").length).toEqual(1);
+ expect($(barSelector + " #loadnode").length).toEqual(1);
+ var attrfield = $(barSelector + " #attribute")[0],
+ valfield = $(barSelector + " #value")[0],
+ btn = $(barSelector + " #loadnode")[0];
expect(attrfield).toBeTag("input");
expect(attrfield.type).toEqual("text");
expect(attrfield.className).toEqual("searchInput");
@@ -280,9 +295,68 @@
});
});
+ describe('checking to load a graph', function() {
+
+ var waittime = 100;
+
+ beforeEach(function() {
+ this.addMatchers({
+ toBeDisplayed: function() {
+ var nodes = this.actual,
+ nonDisplayed = [];
+ this.message = function(){
+ var msg = "Nodes: [";
+ _.each(nonDisplayed, function(n) {
+ msg += n + " ";
+ });
+ msg += "] are not displayed.";
+ return msg;
+ };
+ _.each(nodes, function(n) {
+ if ($("svg #" + n)[0] === undefined) {
+ nonDisplayed.push(n);
+ }
+ });
+ return nonDisplayed.length === 0;
+ }
+ });
+ });
+
+ it('should load the graph by _id', function() {
+
+ runs(function() {
+ $("#contentDiv #menubar #value").attr("value", "0");
+ helper.simulateMouseEvent("click", "loadnode");
+ });
+
+ waits(waittime);
+
+ runs(function() {
+ expect([0, 1, 2, 3, 4]).toBeDisplayed();
+ });
+
+ });
+
+ it('should load the graph by attribute and value', function() {
+
+ runs(function() {
+ adapterMockCall = {};
+ $("#contentDiv #menubar #attribute").attr("value", "name");
+ $("#contentDiv #menubar #value").attr("value", "0");
+ helper.simulateMouseEvent("click", "loadnode");
+ expect(adapterMockCall).toEqual({
+ attribute: "name",
+ value: "0"
+ });
+ });
+
+ });
+
+ });
+
describe('set up with jsonAdapter and click Expand rest default', function() {
- // This waittime is rather opcimistic, on a slow machine this has to be increased
+ // This waittime is rather optimistic, on a slow machine this has to be increased
var waittime = 100,
clickOnNode = function(id) {
@@ -346,7 +420,7 @@
});
runs (function() {
- $("#contentDiv #menubar #nodeid").attr("value", "0");
+ $("#contentDiv #menubar #value").attr("value", "0");
helper.simulateMouseEvent("click", "loadnode");
helper.simulateMouseEvent("click", "control_expand");
});
@@ -355,9 +429,7 @@
});
- it('should have loaded the graph', function() {
- expect([0, 1, 2, 3, 4]).toBeDisplayed();
- });
+
it("should be able to expand a node", function() {