mirror of https://gitee.com/bigwinds/arangodb
436 lines
14 KiB
JavaScript
436 lines
14 KiB
JavaScript
/*jslint indent: 2, nomen: true, maxlen: 100, white: true plusplus: true, browser: true*/
|
|
/*global describe, beforeEach, afterEach, it, spyOn, expect*/
|
|
/*global runs, waitsFor, jasmine, waits*/
|
|
/*global $, console, arangoHelper */
|
|
(function () {
|
|
"use strict";
|
|
describe("Collections View", function () {
|
|
var myStore,
|
|
isCoordinator,
|
|
myView,
|
|
div,
|
|
edgeCol,
|
|
docCol,
|
|
sysCol;
|
|
|
|
beforeEach(function () {
|
|
isCoordinator = false;
|
|
div = document.createElement("div");
|
|
div.id = "content";
|
|
document.body.appendChild(div);
|
|
edgeCol = new window.arangoCollectionModel({
|
|
id: "e",
|
|
type: "edge",
|
|
isSystem: false,
|
|
name: "e",
|
|
status: "loaded"
|
|
});
|
|
docCol = new window.arangoCollectionModel({
|
|
id: "d",
|
|
type: "document",
|
|
isSystem: false,
|
|
name: "d",
|
|
status: "loaded"
|
|
});
|
|
sysCol = new window.arangoCollectionModel({
|
|
id: "s",
|
|
type: "document",
|
|
isSystem: true,
|
|
name: "_sys",
|
|
status: "loaded"
|
|
});
|
|
|
|
|
|
var cols = [edgeCol, docCol, sysCol];
|
|
spyOn($, "ajax").andCallFake(function (url) {
|
|
return {done: function () {
|
|
}};
|
|
});
|
|
myStore = new window.arangoCollections(cols);
|
|
spyOn(window, "isCoordinator").andReturn(isCoordinator);
|
|
myView = new window.CollectionsView({
|
|
collection: myStore
|
|
});
|
|
|
|
});
|
|
|
|
afterEach(function () {
|
|
document.body.removeChild(div);
|
|
});
|
|
|
|
describe("Check Collection Display Settings", function () {
|
|
|
|
it("Check if System Collections should not be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.checkSystem();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if System Collections should be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
$('#checkSystem').click();
|
|
myView.checkSystem();
|
|
expect(wasRendered).toBeTruthy();
|
|
});
|
|
|
|
it("Check if Edge Collections should not be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.checkEdge();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if Edge Collections should be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
|
|
$('#checkEdge').click();
|
|
myView.checkEdge();
|
|
expect(wasRendered).toBeTruthy();
|
|
});
|
|
|
|
it("Check if Document Collections should not be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.checkDocument();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if Document Collections should be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
|
|
$('#checkDocument').click();
|
|
myView.checkDocument();
|
|
expect(wasRendered).toBeTruthy();
|
|
});
|
|
|
|
it("Check if Loaded Collections should not be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.checkLoaded();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if Loaded Collections should be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
|
|
$('#checkLoaded').click();
|
|
myView.checkLoaded();
|
|
expect(wasRendered).toBeTruthy();
|
|
});
|
|
|
|
it("Check if Unloaded Collections should not be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.checkUnloaded();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if Unloaded Collections should be drawn", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
|
|
$('#checkUnloaded').click();
|
|
expect(wasRendered).toBeTruthy();
|
|
wasRendered = false;
|
|
myView.checkUnloaded();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if Name Sort is inactive", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.sortName();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if Name Sort is active", function () {
|
|
var old = myView.collection.searchOptions,
|
|
wasRendered;
|
|
myView.render();
|
|
myView.collection.searchOptions = {sortBy: [1, 2, 3]};
|
|
|
|
spyOn(myView, 'render').andCallFake(function () {
|
|
wasRendered = true;
|
|
});
|
|
myView.sortName();
|
|
expect(wasRendered).toBeTruthy();
|
|
myView.collection.searchOptions = old;
|
|
});
|
|
|
|
it("Check if Type is inactive", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.sortType();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if Type is active", function () {
|
|
var old = myView.collection.searchOptions,
|
|
wasRendered;
|
|
myView.render();
|
|
myView.collection.searchOptions = {sortBy: [1, 2, 3]};
|
|
|
|
spyOn(myView, 'render').andCallFake(function () {
|
|
wasRendered = true;
|
|
});
|
|
myView.sortType();
|
|
expect(wasRendered).toBeTruthy();
|
|
myView.collection.searchOptions = old;
|
|
});
|
|
|
|
it("Check if sortOrder is inactive", function () {
|
|
myView.render();
|
|
var wasRendered;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = false;
|
|
});
|
|
myView.sortOrder();
|
|
expect(wasRendered).toBeFalsy();
|
|
});
|
|
|
|
it("Check if sortOrder is active", function () {
|
|
var old = myView.collection.searchOptions,
|
|
wasRendered;
|
|
myView.render();
|
|
myView.collection.searchOptions = {sortOrder: [1, 2, 3]};
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
myView.sortOrder();
|
|
expect(wasRendered).toBeTruthy();
|
|
myView.collection.searchOptions = old;
|
|
});
|
|
|
|
|
|
it("Check Filter Values", function () {
|
|
myView.render();
|
|
var check = false;
|
|
$.each(myView.collection.searchOptions, function () {
|
|
if (this === undefined) {
|
|
check = false;
|
|
return;
|
|
}
|
|
check = true;
|
|
});
|
|
expect(check).toBeTruthy();
|
|
});
|
|
});
|
|
|
|
describe("Check Collection Search Functions", function () {
|
|
|
|
it("Check if search needs to be executed (false)", function () {
|
|
myView.render();
|
|
var wasRendered = false,
|
|
old;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
old = myView.collection.searchOptions;
|
|
$('#searchInput').val("HalloPeter");
|
|
myView.collection.searchOptions.searchPhrase = "HalloPeter";
|
|
myView.search();
|
|
expect(wasRendered).toBeFalsy();
|
|
myView.collection.searchOptions = old;
|
|
});
|
|
|
|
it("Check if search needs to be executed (true)", function () {
|
|
myView.render();
|
|
var wasRendered = false;
|
|
|
|
spyOn(myView, 'render').andCallFake(function (request) {
|
|
wasRendered = true;
|
|
});
|
|
|
|
$('#searchInput').val("HalloPeter");
|
|
myView.collection.searchOptions.searchPhrase = "HalloMax";
|
|
myView.search();
|
|
|
|
expect(wasRendered).toBeTruthy();
|
|
});
|
|
|
|
it("Reset search phrase", function () {
|
|
myView.render();
|
|
myView.resetSearch();
|
|
expect(myView.collection.searchOptions.searchPhrase).toBe(null);
|
|
});
|
|
|
|
it("Reset search timeout", function () {
|
|
myView.render();
|
|
myView.searchTimeout = 1;
|
|
myView.resetSearch();
|
|
expect(myView.searchTimeout).toBe(null);
|
|
});
|
|
|
|
it("Check restrictToSearchPhraseKey function", function () {
|
|
myView.render();
|
|
var resetSearch, newSearch;
|
|
|
|
spyOn(myView, 'resetSearch').andCallFake(function (request) {
|
|
resetSearch = true;
|
|
});
|
|
|
|
spyOn(myView, 'search').andCallFake(function (request) {
|
|
newSearch = true;
|
|
});
|
|
|
|
runs(function () {
|
|
myView.restrictToSearchPhraseKey();
|
|
});
|
|
waits(300);
|
|
runs(function () {
|
|
expect(resetSearch).toBeTruthy();
|
|
expect(newSearch).toBeTruthy();
|
|
});
|
|
});
|
|
|
|
|
|
it("test toggleView", function () {
|
|
myView.render();
|
|
var a = {
|
|
toggleClass: function () {
|
|
},
|
|
slideToggle: function () {
|
|
}
|
|
};
|
|
|
|
spyOn(window, "$").andReturn(a);
|
|
|
|
spyOn(a, 'toggleClass');
|
|
spyOn(a, 'slideToggle');
|
|
myView.toggleView();
|
|
expect(a.toggleClass).toHaveBeenCalledWith('activated');
|
|
expect(a.slideToggle).toHaveBeenCalledWith(200);
|
|
});
|
|
|
|
it("test checkBoxes", function () {
|
|
myView.render();
|
|
var e = {
|
|
currentTarget: {
|
|
id: 1
|
|
}
|
|
},
|
|
a = {
|
|
click: function () {
|
|
}
|
|
};
|
|
|
|
spyOn(window, "$").andReturn(a);
|
|
|
|
spyOn(a, 'click');
|
|
myView.checkBoxes(e);
|
|
expect(a.click).toHaveBeenCalled();
|
|
});
|
|
|
|
it(
|
|
"test set #collectionsToggle is deactivated when " +
|
|
"#collectionsDropdown2 is invisible",
|
|
function () {
|
|
var a = {
|
|
css: function () {
|
|
return 'none';
|
|
},
|
|
is: function () {
|
|
return true;
|
|
},
|
|
show: function () {
|
|
},
|
|
append: function () {
|
|
return {
|
|
render: function () {
|
|
return {el: 1};
|
|
}
|
|
};
|
|
},
|
|
removeClass: function () {
|
|
},
|
|
val: function () {
|
|
},
|
|
focus: function () {
|
|
},
|
|
html: function () {
|
|
},
|
|
attr: function () {
|
|
}
|
|
|
|
};
|
|
spyOn(window, "CollectionListItemView").andReturn({
|
|
render: function () {
|
|
return {el: 1};
|
|
}
|
|
});
|
|
spyOn(arangoHelper, "fixTooltips").andReturn();
|
|
spyOn(window, "$").andReturn(a);
|
|
spyOn(a, "removeClass");
|
|
|
|
myView.render();
|
|
expect(a.removeClass).toHaveBeenCalledWith('activated');
|
|
});
|
|
});
|
|
|
|
it("test restrictToSearchPhrase", function () {
|
|
myView.render();
|
|
spyOn(myView, "resetSearch");
|
|
spyOn(myView, "search");
|
|
|
|
|
|
myView.restrictToSearchPhrase();
|
|
expect(myView.resetSearch).toHaveBeenCalled();
|
|
expect(myView.search).toHaveBeenCalled();
|
|
});
|
|
|
|
|
|
});
|
|
}());
|