diff --git a/.gitignore b/.gitignore index 16b1dbfdac..2863ec0cb7 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,7 @@ node_modules # Build documentation docs + +# Protractor logs +protractor/logs + diff --git a/README.md b/README.md index c6791d3d06..c36cbea653 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,19 @@ as described above. An example of this is expressed in `platform/framework`, which follows bundle conventions. +### Regression Testing + +The tests described above are all at the unit-level; an additional +test suite using [Protractor](https://angular.github.io/protractor/) +us under development, in the `protractor` folder. + +To run: + +* Install protractor following the instructions above. +* `webdriver-manager start` +* `node app.js -p 1984 -x platform/persistence/elastic -i example/persistence +* `protractor protractor/conf.js` + ## Build Open MCT Web includes a Maven command line build. Although Open MCT Web diff --git a/platform/features/layout/src/LayoutController.js b/platform/features/layout/src/LayoutController.js index 1c58f92988..643ed952a3 100644 --- a/platform/features/layout/src/LayoutController.js +++ b/platform/features/layout/src/LayoutController.js @@ -27,7 +27,8 @@ define( "use strict"; var DEFAULT_DIMENSIONS = [ 12, 8 ], - DEFAULT_GRID_SIZE = [32, 32]; + DEFAULT_GRID_SIZE = [ 32, 32 ], + MINIMUM_FRAME_SIZE = [ 320, 180 ]; /** * The LayoutController is responsible for supporting the @@ -67,12 +68,22 @@ define( }; } + // Generate default positions for a new panel + function defaultDimensions() { + return MINIMUM_FRAME_SIZE.map(function (min, i) { + return Math.max( + Math.ceil(min / gridSize[i]), + DEFAULT_DIMENSIONS[i] + ); + }); + } + // Generate a default position (in its raw format) for a frame. // Use an index to ensure that default positions are unique. function defaultPosition(index) { return { position: [index, index], - dimensions: DEFAULT_DIMENSIONS + dimensions: defaultDimensions() }; } @@ -107,6 +118,18 @@ define( ids.forEach(populatePosition); } + // Update grid size when it changed + function updateGridSize(layoutGrid) { + var oldSize = gridSize; + + gridSize = layoutGrid || DEFAULT_GRID_SIZE; + + // Only update panel positions if this actually changed things + if (gridSize[0] !== oldSize[0] || gridSize[1] !== oldSize[1]) { + lookupPanels(Object.keys(positions)); + } + } + // Position a panel after a drop event function handleDrop(e, id, position) { if (e.defaultPrevented) { @@ -138,6 +161,9 @@ define( e.preventDefault(); } + // Watch for changes to the grid size in the model + $scope.$watch("model.layoutGrid", updateGridSize); + // Position panes when the model field changes $scope.$watch("model.composition", lookupPanels); diff --git a/platform/features/layout/test/LayoutControllerSpec.js b/platform/features/layout/test/LayoutControllerSpec.js index 5ec80755f4..b0ab7a13fb 100644 --- a/platform/features/layout/test/LayoutControllerSpec.js +++ b/platform/features/layout/test/LayoutControllerSpec.js @@ -175,6 +175,23 @@ define( ); expect(testConfiguration.panels.d).not.toBeDefined(); }); + + it("ensures a minimum frame size", function () { + var styleB, styleC; + + // Start with a very small frame size + testModel.layoutGrid = [ 1, 1 ]; + + // White-boxy; we know which watch is which + mockScope.$watch.calls[0].args[1](testModel.layoutGrid); + mockScope.$watch.calls[1].args[1](testModel.composition); + + styleB = controller.getFrameStyle("b"); + + // Resulting size should still be reasonably large pixel-size + expect(parseInt(styleB.width, 10)).toBeGreaterThan(63); + expect(parseInt(styleB.width, 10)).toBeGreaterThan(31); + }); }); } ); diff --git a/pom.xml b/pom.xml index 72779efb65..8ca3cd6edb 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ gov.nasa.arc.wtd open-mct-web Open MCT Web - 0.7.2-SNAPSHOT + 0.8.0-SNAPSHOT war @@ -40,6 +40,8 @@ **/bundle.json + protractor/**/* + node_modules/**/* platform/core/bundle.json example/**/* **/test/lib/* @@ -162,6 +164,7 @@ **/lib/** app.js node_modules/**/* + protractor/**/* diff --git a/protractor/StressTest.js b/protractor/StressTest.js new file mode 100644 index 0000000000..5e4a8b1507 --- /dev/null +++ b/protractor/StressTest.js @@ -0,0 +1,75 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +//TODO Add filter for duplications/ +var itemCreate = require("./common/CreateItem"); +var itemEdit = require("./common/EditItem"); +var right_click = require("./common/RightMenu.js"); + +describe('Create Folder', function() { + var clickClass = new right_click(); + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Folder"; + var ITEM_TYPE = "folder"; + var ITEM_MENU_GLYPH = 'F\nFolder'; + var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; + var ITEM_SIDE_SELECT = ">\nF\nFolder" + + beforeEach(function() { + browser.ignoreSynchronization = true; + browser.get('http://localhost:1984/warp/'); + browser.sleep(2000); // 20 seconds + }); + it('should Create new Folder', function(){ + browser.sleep(5000); + for(var i=0; i < 50; i++){ + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE); + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + browser.sleep(1000); + // if(i === 1){ + clickClass.delete(ITEM_SIDE_SELECT, true); + element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).click(); + // }else{ + browser.sleep(1000); + + // clickClass.delete(ITEM_SIDE_SELECT, false); + // } + }); + } + browser.pause(); + + }); + +}); diff --git a/protractor/UI/DragDrop.js b/protractor/UI/DragDrop.js new file mode 100644 index 0000000000..446de9e934 --- /dev/null +++ b/protractor/UI/DragDrop.js @@ -0,0 +1,135 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var fullScreenFile = require("../common/Buttons"); +var createItem = require("../common/CreateItem") +var itemEdit = require("../common/EditItem"); +var rightMenu = require("../common/RightMenu"); +var Drag = require("../common/drag"); + +describe('Test Drag and Drop', function() { + var fullScreenClass = new fullScreenFile(); + var createClass = new createItem(); + var editItemClass = new itemEdit(); + var rightMenuClass = new rightMenu(); + var dragDrop = new Drag(); + + beforeEach(require('../common/Launch')); + + it('should create a folder', function(){ + var ITEM_NAME = "Folder"; + var ITEM_TYPE = "folder"; + var ITEM_MENU_GLYPH = 'F\nFolder'; + var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; + + browser.wait(function() { + return createClass.createButton().click(); + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE); + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1000); + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + }); + it('should create a timer',function (){ + var ITEM_NAME = "Timer"; + var ITEM_TYPE = "timer"; + var ITEM_MENU_GLYPH = 'õ\nTimer'; + var ITEM_GRID_SELECT = 'P\nõ\nTimer'; + + browser.wait(function() { + return createClass.createButton().click(); + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1500); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + + }); + it('should drag timer into folder', function(){ + var ITEM_SIDE_SELECT = ">\nF\nFolder" + var name = "õ\nTimer"; + + rightMenuClass.select(ITEM_SIDE_SELECT, true).click(); + browser.sleep(2000); + var object = element.all(by.css('.ng-isolate-scope.ng-pristine.ng-valid')).filter(function (ele){ + return ele.getText().then(function(text) { + return text === name; + }); + }); + var clock = object.get(1); + var panel = element(by.css('.items-holder.grid.abs.ng-scope')); + + //drag + expect(panel.isPresent()).toBe(true) + expect(clock.isPresent()).toBe(true) + browser.executeScript(dragDrop.DragDrop,clock.getWebElement(),panel.getWebElement()) + browser.sleep(3000); + //check + var dragObject = element.all(by.repeater('childObject in composition')).filter(function (ele) { + return ele.getText().then(function(text) { + return text === "P\nõ\nTimer" + }) + })//output console.log + /*expect(dragObject.get(0).isPresent()).toBe(true); + browser.manage().logs().get('browser').then(function(browserLogs) { + browserLogs.forEach(function(log){ + console.log(log.message); + }); + });*/ + }); + it('should delete the Folder Item', function(){ + var ITEM_SIDE_SELECT = ">\nF\nFolder" + browser.wait(function() { + return element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).isDisplayed(); + }); + rightMenuClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + it('should delete the Timer Item', function(){ + var ITEM_SIDE_SELECT = "õ\nTimer"; + browser.wait(function() { + return element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).isDisplayed(); + }); + rightMenuClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); +}); diff --git a/protractor/UI/Fullscreen.js b/protractor/UI/Fullscreen.js new file mode 100644 index 0000000000..3c1c785228 --- /dev/null +++ b/protractor/UI/Fullscreen.js @@ -0,0 +1,50 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +//TODO Add filter for duplications/ +var fullScreenFile = require("../common/Buttons"); + +describe('Test Fullscreen', function() { + var fullScreenClass = new fullScreenFile(); + + beforeEach(require('../common/Launch')); + + beforeEach(function() { + browser.wait(function(){ + return element(by.css('[title="Enter full screen mode"]')).isPresent(); + }, 7000); + browser.sleep(1000); + }); + + it('should find fullscreen button', function(){ + expect(element(by.css('[title="Enter full screen mode"]')).isDisplayed()).toBeTruthy(); + + });it('should enter fullscreen when fullscreen button is pressed', function(){ + function getFullScreen(){ + return document.webkitIsFullScreen; + } + var fullscreen = browser.executeScript(getFullScreen) + expect(fullscreen).toBeFalsy(); + fullScreenClass.fullScreen() + fullscreen = browser.executeScript(getFullScreen) + expect(fullscreen).toBeTruthy(); + }); +}); diff --git a/protractor/UI/InfoBubble.js b/protractor/UI/InfoBubble.js new file mode 100644 index 0000000000..274b7966b0 --- /dev/null +++ b/protractor/UI/InfoBubble.js @@ -0,0 +1,43 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var fullScreenFile = require("../common/Buttons"); +var createItem = require("../common/CreateItem") +var itemEdit = require("../common/EditItem"); +var rightMenu = require("../common/RightMenu"); +var Drag = require("../common/drag"); + +describe('Test Info Bubble', function() { + var fullScreenClass = new fullScreenFile(); + var createClass = new createItem(); + var editItemClass = new itemEdit(); + var rightMenuClass = new rightMenu(); + var dragDrop = new Drag(); + + beforeEach(require('../common/Launch')); + + it('should detect info bubble', function(){ + var myitem = (element.all(by.repeater('child in composition'))).get(0); + browser.actions().mouseMove(myitem).perform(); + browser.sleep(4000); + expect(element(by.css('.t-infobubble.s-infobubble.l-infobubble-wrapper')).isDisplayed()).toBe(true); + }); +}); diff --git a/protractor/UI/NewWindow.js b/protractor/UI/NewWindow.js new file mode 100644 index 0000000000..7a714d79a2 --- /dev/null +++ b/protractor/UI/NewWindow.js @@ -0,0 +1,90 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var fullScreenFile = require("../common/Buttons"); +var createClassFile = require("../common/CreateItem") +var itemEdit = require("../common/EditItem"); +var rightMenu = require("../common/RightMenu.js"); + +describe('Test New Window', function() { + var fullScreenClass = new fullScreenFile(); + var createClass = new createClassFile(); + var editItemClass = new itemEdit(); + var rightMenuClass = new rightMenu(); + + var ITEM_NAME = "Folder"; + var ITEM_TYPE = "folder"; + var ITEM_MENU_GLYPH = 'F\nFolder'; + var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; + var ITEM_SIDE_SELECT = ">\nF\nFolder" + + beforeEach(require('../common/Launch')); + + it('should create an object and open it in new window', function(){ + function replaceString(string){ + //used to remove timestamp on the output so files can be compared + return string.replace(new RegExp("([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]","g"),"z"); + } + browser.wait(function() { + return createClass.createButton().click(); + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE); + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + //open file in new page + var before = browser.driver.getPageSource(); + before = browser.executeScript(replaceString, before) + + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + fullScreenClass.newWidnow().click(); + + var after = browser.driver.getPageSource(); + after = browser.executeScript(replaceString, after) + + browser.getAllWindowHandles().then(function (handles) { + browser.driver.switchTo().window(handles[1]); + browser.sleep(1000); + expect(before).toEqual(after); + browser.sleep(1000); + browser.driver.close(); + browser.driver.switchTo().window(handles[0]); + }); + }); + }); + it('should delete the object in the new window', function(){ + browser.wait(function() { + return element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).isDisplayed(); + }); + rightMenuClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/UI/RightClick.js b/protractor/UI/RightClick.js new file mode 100644 index 0000000000..0ae4dd0708 --- /dev/null +++ b/protractor/UI/RightClick.js @@ -0,0 +1,48 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Right Click Interations', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Folder"; + var ITEM_TYPE = "folder"; + var ITEM_MENU_GLYPH = 'F\nFolder'; + + beforeEach(require('../common/Launch')); + + it('should delete the specified object', function(){ + createClass.createButton().click(); + var folder = createClass.selectNewItem(ITEM_TYPE); + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + browser.sleep(1000); + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + clickClass.delete(ITEM_NAME); + browser.sleep(1000); + }); + +}); diff --git a/protractor/common/Buttons.js b/protractor/common/Buttons.js new file mode 100644 index 0000000000..7587be71e0 --- /dev/null +++ b/protractor/common/Buttons.js @@ -0,0 +1,41 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var Buttons = (function () { + function Buttons() { + } + //finds the Edit Button + Buttons.prototype.fullScreen = function () { + element(by.css('[title="Enter full screen mode"]')).click(); + + }; + Buttons.prototype.newWidnow = function () { + return element.all(by.css('[ng-click="parameters.action.perform()"]')).filter(function (arg) { + return arg.getAttribute("title").then(function (title){ + //expect(title).toEqual("Edit this object."); + return title == 'Open in a new browser tab'; + }) + }); + }; + return Buttons; + +})(); +module.exports = Buttons; diff --git a/protractor/common/CreateItem.js b/protractor/common/CreateItem.js new file mode 100644 index 0000000000..53916e7bf2 --- /dev/null +++ b/protractor/common/CreateItem.js @@ -0,0 +1,194 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var CreateItem = (function () { + function CreateItem() {} + //finds the Create Button + CreateItem.prototype.createButton = function () { + return element.all(by.css('[ng-click="createController.toggle()"]')); + }; + function getFolderType(arg) { + switch(arg) { + case 'folder': + return "F\nFolder" + break; + case 'display': + return "L\nDisplay Layout" + break; + case 'telemetry': + return "t\nTelemetry Panel" + break; + case 'webpage': + return "ê\nWeb Page" + break; + case 'clock': + return "C\nClock" + break; + case 'timer': + return "õ\nTimer" + case 'timeline': + return "S\nTimeline" + break; + case 'activity': + return "a\nActivity" + break; + case 'activity-mode': + return "A\nActivity Mode" + break; + case 'sinewave': + return "T\nSine Wave Generator" + break; + default: + throw new Error("Unexpect State"); + } + } + //Selects Object from Create Menu + CreateItem.prototype.selectNewItem = function (itemText) { + item = getFolderType(itemText); + browser.wait(function(){ + return element(by.css('[ng-click="createAction.perform()"]')).isPresent(); + }, 6000); + this.els =element.all(by.css('[ng-click="createAction.perform()"]')); + this.todoButton = this.els.filter(function(elem) { + return elem.getText().then(function(text) { + return text === item; + }); + }); + return this.todoButton; + }; + //Fills Out Folder Forum + CreateItem.prototype.fillFolderForum = function (folderName, type) { + this.namefields = element.all(by.css('[ng-required="ngRequired"]')).filter(function (elem) { + return elem.getAttribute('type').then(function(text) { + return text === 'text'; + }); + }); + + browser.sleep(1000); + this.namefields.clear(); + browser.sleep(1000); + + this.namefields.get(0).sendKeys(folderName); + switch(type) { + case 'folder': + // return "F\nFolder" + break; + case 'display': + this.namefields.get(1).sendKeys("1"); + browser.sleep(1000); + this.namefields.get(2).sendKeys("2"); + break; + case 'telemetry': + this.namefields.get(1).sendKeys("1"); + browser.sleep(1000); + this.namefields.get(2).sendKeys("2"); + this.dropdownElement = element.all(by.model('ngModel[field]')).filter(function(elem) { + return elem.getTagName().then(function(tag) { + return tag === 'select'; + }); + }); + this.dropdownElement.click(); + this.dropdownElement.all(by.css('option')).get(1).click(); + browser.sleep(1000); + break; + case 'webpage': + this.namefields.get(1).sendKeys("http://test.com"); + browser.sleep(1000); + break; + case 'clock': + this.dropdownElement = element.all(by.model('ngModel[field]')).filter(function(elem) { + return elem.getTagName().then(function(tag) { + return tag === 'select'; + }); + }); + this.dropdownElement.get(0).click(); + this.dropdownElement.get(0).all(by.css('option')).get(0).click(); + browser.sleep(1000); + this.dropdownElement.get(1).click(); + this.dropdownElement.get(1).all(by.css('option')).get(0).click(); + browser.sleep(1000); + + break; + case 'timer': + this.timerDate = element.all(by.model('datetime.date')); + browser.sleep(1000); + this.timerDate.clear().sendKeys("2015-07-22"); + browser.sleep(1000); + this.timerDate = element.all(by.model('datetime.hour')); + this.timerDate.get(0).sendKeys("7"); + this.timerDate = element.all(by.model('datetime.min')); + this.timerDate.get(0).sendKeys("30"); + this.timerDate = element.all(by.model('datetime.sec')); + this.timerDate.get(0).sendKeys("000"); + browser.sleep(1000); + break; + case 'timeline': + this.timerDate = element.all(by.model('datetime.days')); + this.timerDate.clear().sendKeys("10"); + browser.sleep(1000); + this.timerDate = element.all(by.model('datetime.hours')); + this.timerDate.get(0).sendKeys("7"); + this.timerDate = element.all(by.model('datetime.minutes')); + this.timerDate.get(0).sendKeys("30"); + this.timerDate = element.all(by.model('datetime.seconds')); + this.timerDate.get(0).sendKeys("3"); + browser.sleep(1000); + break; + case 'activity': + this.startDay = element.all(by.model('datetime.days')); + this.startDay.clear().sendKeys("10"); + this.startHours = element.all(by.model('datetime.hours')); + this.startHours.get(0).clear().sendKeys("7"); + this.startMinutes = element.all(by.model('datetime.minutes')); + this.startMinutes.get(0).clear().sendKeys("30"); + this.startSeconds = element.all(by.model('datetime.seconds')); + this.startSeconds.get(0).clear().sendKeys("3"); + browser.sleep(1000); + //Duration + this.startDay.get(1).clear().sendKeys("1"); + this.startHours.get(1).clear().sendKeys("1"); + this.startMinutes.get(1).clear().sendKeys("0"); + this.startSeconds.get(1).clear().sendKeys("0"); + browser.sleep(1000); + break; + case 'activity-mode': + this.namefields.get(1).sendKeys("55"); + browser.sleep(1000); + this.namefields.get(2).sendKeys("10"); + break; + case 'sinewave': + this.namefields.get(1).sendKeys("10"); + browser.sleep(1000); + break; + default: + throw new Error("Unexpect State"); + } + return element.all(by.css('[ng-click="ngModel.confirm()"]')); + + }; + //TODO USAGE FOR CLICK ON OBJECT ONCE CREATED + CreateItem.prototype.findFolder = function (){ + return element.all(by.css('[ng-click="action.perform("navigate")"]')); + }; + return CreateItem; + +})(); +module.exports = CreateItem; diff --git a/protractor/common/EditItem.js b/protractor/common/EditItem.js new file mode 100644 index 0000000000..fffd8108a9 --- /dev/null +++ b/protractor/common/EditItem.js @@ -0,0 +1,66 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var EditItem = (function () { + function EditItem() { + } + //finds the Edit Button + EditItem.prototype.SelectItem = function (item_title) { + return element.all(by.css('.item.grid-item.ng-scope')).filter(function (arg){ + return arg.getText().then(function (text) { + // expect(text).toEqual("fh"); + return text == item_title; + }); + }); + }; + EditItem.prototype.EditButton = function () { + return element.all(by.css('[ng-click="parameters.action.perform()"]')).filter(function (arg) { + return arg.getAttribute("title").then(function (title){ + //expect(title).toEqual("Edit this object."); + return title == 'Edit this object.'; + }) + }); + }; + EditItem.prototype.CreateActivity = function () { + element.all(by.css('[ng-controller="ClickAwayController as toggle"]')).click(); + browser.sleep(1000); + var list = element.all(by.css('[ng-repeat="option in structure.options"]')).filter(function (arg){ + return arg.getText().then(function (text){ + //expect(text).toEqual("Edit this object."); + return text == "a\nActivity"; + }); + }).click(); + }; + EditItem.prototype.saveButton = function () { + element.all(by.css('[ng-click="currentAction.perform()"]')).filter(function (args){ + return args.getText().then(function (text) { + //expect(text).toEqual("Save"); + return text == "Save"; + }); + }).click(); + }; + function getFolderType(arg) { + + } + return EditItem; + +})(); +module.exports = EditItem; diff --git a/protractor/common/Launch.js b/protractor/common/Launch.js new file mode 100644 index 0000000000..2b700672cc --- /dev/null +++ b/protractor/common/Launch.js @@ -0,0 +1,29 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +/*global module,browser*/ + +module.exports = function launch() { + 'use strict'; + browser.ignoreSynchronization = true; + browser.get('http://localhost:1984/'); + browser.sleep(2000); // 20 seconds +}; diff --git a/protractor/common/RightMenu.js b/protractor/common/RightMenu.js new file mode 100644 index 0000000000..490d876d87 --- /dev/null +++ b/protractor/common/RightMenu.js @@ -0,0 +1,111 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ + +var RightMenu = (function () { + + function RightMenu() { + } + //RightMenu Click on Object + RightMenu.prototype.delete = function (name, flag) { + if(typeof flag === 'undefined'){ + flag = true; + } + if(flag === true){ + var carrot = element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).get(0).click(); + } + browser.sleep(1000) + var object = element.all(by.repeater('child in composition')).filter(function (ele){ + return ele.getText().then(function(text) { + //expect(text).toEqual("3"); + return text === name; + }); + }); + browser.sleep(1000) + browser.actions().mouseMove(object.get(0)).perform(); + browser.actions().click(protractor.Button.RIGHT).perform(); + browser.sleep(1000) + var remove = element.all(by.css('.ng-binding')).filter(function (ele){ + return ele.getText().then(function (text) { + return text == "Z\nRemove"; + }) + }).click(); + browser.sleep(1000) + element.all(by.repeater('child in composition')).filter(function (ele){ + return ele.getText().then(function(text) { + return text === name; + }); + }).then(function (folder) { + expect(folder.length).toBe(0); + }); + }; + RightMenu.prototype.reset = function (name) { + var carrot = element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).click(); + browser.sleep(1000) + var object = element.all(by.repeater('child in composition')).filter(function (ele){ + return ele.getText().then(function(text) { + //expect(text).toEqual("3"); + return text === name; + }); + }).click(); + browser.sleep(1000) + browser.actions().mouseMove(object.get(0)).perform(); + browser.actions().click(protractor.Button.RIGHT).perform(); + browser.sleep(1000) + var remove = element.all(by.css('.ng-binding')).filter(function (ele){ + return ele.getText().then(function (text) { + return text == "r\nRestart at 0"; + }) + }).click(); + }; + RightMenu.prototype.select = function(name, flag){ + if(typeof flag == "undefined"){ + flag = true; + } + //click '<', true==yes false==no + if(flag == true){ + var carrot = element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).click(); + } + browser.sleep(1000) + return element.all(by.repeater('child in composition')).filter(function (ele){ + return ele.getText().then(function(text) { + // expect(text).toEqual("3"); + return text === name; + }); + }); + + }; + RightMenu.prototype.dragDrop = function(name){ + var object = element.all(by.repeater('child in composition')).filter(function (ele){ + return ele.getText().then(function(text) { + //expect(text).toEqual("3"); + return text === name; + }); + }); + var folder = object.get(0); + var panel = element(by.css('.items-holder.grid.abs.ng-scope')); + + browser.actions().dragAndDrop(folder, panel).perform(); + }; + return RightMenu; + +})(); +module.exports = RightMenu; diff --git a/protractor/common/drag.js b/protractor/common/drag.js new file mode 100644 index 0000000000..da11cb35e4 --- /dev/null +++ b/protractor/common/drag.js @@ -0,0 +1,70 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +//drag function +/* +var e = document.createEvent("Event"); +e.initEvent('dragstart',true,false); +_element.dispatchEvent(e); +*/ +// qux.js +var Drag = (function () { + + function Drag() {}; + Drag.prototype.DragDrop = function(elem, zone){ + createEvent = function(type) { + var event = document.createEvent("event"); + event.initEvent(type, true, false); + event.dataTransfer = { + data: { + }, + setData: function(type, val){ + event.dataTransfer.data[type] = val; + }, + getData: function(type){ + return event.dataTransfer.data[type]; + } + }; + return event; + } + var event = createEvent('dragstart'); + event.effectAllowed = "copyMove"; + elem.dispatchEvent(event); + + var ele = createEvent('dragover'); + ele.preventDefault(); + zone.dispatchEvent(ele); + + var dropEvent = createEvent('drop', {}); + dropEvent.dataTransfer = event.dataTransfer; + dropEvent.preventDefault(); + zone.dispatchEvent(dropEvent); + + var dragEndEvent = createEvent('dragend', {}); + dragEndEvent.dataTransfer = event.dataTransfer; + elem.dispatchEvent(dragEndEvent); + }; + return Drag; +})(); +module.exports = Drag; + + + diff --git a/protractor/conf.js b/protractor/conf.js new file mode 100644 index 0000000000..c33e196157 --- /dev/null +++ b/protractor/conf.js @@ -0,0 +1,67 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +/*global exports,process*/ + +// conf.js +exports.config = { + allScriptsTimeout: 500000, + defaultTimeoutInterval: 60000, + seleniumAddress: 'http://localhost:4444/wd/hub', + //specs: ['StressTest.js'], + specs: [ + //'create/CreateActivity.js', + //'delete/DeleteActivity.js', + //'create/CreateActivityMode.js', + //'delete/DeleteActivityMode.js', + //'create/CreateActivityMode.js', + //'create/CreateClock.js', + //'delete/DeleteClock.js', + 'create/CreateDisplay.js', + //'delete/DeleteDisplay.js', + 'create/CreateFolder.js', + //'delete/DeleteFolder.js', + 'create/CreateTelemetry.js', + //'delete/DeleteTelemetry.js', + //'create/CreateTimeline.js', + //'delete/DeleteTimeline.js', + //'create/CreateTimer.js', + //'delete/DeleteTimer.js', + 'create/CreateWebPage.js', + //'delete/DeleteWebPage.js', + 'UI/Fullscreen.js', + 'create/CreateButton.js', + //"UI/DragDrop.js", + //"UI/NewWindow.js", + 'UI/InfoBubble.js' + ], + capabilities: { + 'browserName': 'chrome', // or 'safari' + 'chromeOptions': {} + } +}; + +// Allow specifying binary location as an environment variable, +// for cases where Chrome is not installed in a usual location. +if (process.env.PROTRACTOR_CHROME_BINARY) { + exports.config.capabilities.chromeOptions.binary = + process.env.PROTRACTOR_CHROME_BINARY; +} diff --git a/protractor/create/CreateActivity.js b/protractor/create/CreateActivity.js new file mode 100644 index 0000000000..4cfefbceec --- /dev/null +++ b/protractor/create/CreateActivity.js @@ -0,0 +1,57 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); + +describe('Create Activity', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Activity"; + var ITEM_TYPE = "activity"; + var ITEM_MENU_GLYPH = 'a\nActivity'; + var ITEM_GRID_SELECT = 'P\na\nActivity\n0 Items'; + beforeEach(require('../common/Launch')); + it('should Create new Activity', function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + var ok = createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1000); + //ok.click(); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + }); + + }); + +}); diff --git a/protractor/create/CreateActivityMode.js b/protractor/create/CreateActivityMode.js new file mode 100644 index 0000000000..e9469749aa --- /dev/null +++ b/protractor/create/CreateActivityMode.js @@ -0,0 +1,58 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); + +describe('Create Web Page', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Activity Mode"; + var ITEM_TYPE = "activity-mode"; + var ITEM_MENU_GLYPH = 'A\nActivity Mode'; + var ITEM_GRID_SELECT = 'P\nA\nActivity Mode'; + beforeEach(require('../common/Launch')); + it('should Create new Activity Mode', function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); + browser.sleep(1000); + + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + + }); + +}); diff --git a/protractor/create/CreateButton.js b/protractor/create/CreateButton.js new file mode 100644 index 0000000000..c67e394455 --- /dev/null +++ b/protractor/create/CreateButton.js @@ -0,0 +1,40 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +//TODO Add filter for duplications/ +describe('Create Button', function() { + beforeEach(require('../common/Launch')); + //it('should hava title "My Items"', function(){ + // expect(browser.getTitle()).toEqual('My Items'); + //}); + it('should find create menu to be invisible', function(){ + expect(element(by.css('[ng-show="createController.isActive()"]')).isDisplayed()).toBeFalsy(); + }); + it('should find create menu only visable after the create button clicked', function(){ + element(by.css('[ng-click="createController.toggle()"]')).click(); + expect(element(by.css('[ng-show="createController.isActive()"]')).isDisplayed()).toBeTruthy(); + }); + it('should find create menu only visable after the create button clicked', function(){ + element(by.css('[ng-click="createController.toggle()"]')).click(); + expect(element(by.css('[ng-show="createController.isActive()"]')).isDisplayed()).toBeTruthy(); + }); + +}); diff --git a/protractor/create/CreateClock.js b/protractor/create/CreateClock.js new file mode 100644 index 0000000000..d1dc781b58 --- /dev/null +++ b/protractor/create/CreateClock.js @@ -0,0 +1,101 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); +var rightClick = require("../common/RightMenu"); +describe('Create Clock', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var rightClickClass = new rightClick(); + + var ITEM_NAME = "Clock"; + var ITEM_TYPE = "clock"; + var ITEM_MENU_GLYPH = 'C\nClock'; + var ITEM_GRID_SELECT = 'P\nC\nClock'; + beforeEach(require('../common/Launch')); + it('should Create new Clock', function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + + }); + it('should check clock', function () { + + function getTime() { + function addZero(time){ + if(time < 10){ + return '0' + time; + } + return time; + } + var currentdate = new Date(); + + + var month = currentdate.getMonth() + 1; + month = addZero(month); + + var day = currentdate.getDate(); + day = addZero(day); + + var hour = currentdate.getHours() - 5; + hour = addZero(hour); + + var second = currentdate.getSeconds(); + second = addZero(second); + + var minute = currentdate.getMinutes(); + minute = addZero(minute); + + return ("UTC " + currentdate.getFullYear() + "/" + (month) + "/" + + day + " " + (hour) + ":" + minute + ":" + second + " PM"); + } + + var current,clock; + rightClickClass.select(ITEM_MENU_GLYPH, true).click().then(function () { + browser.sleep(1000); + current = browser.executeScript(getTime); + }).then(function () { + clock = element(by.css('.l-time-display.l-digital.l-clock.s-clock.ng-scope')); + clock.getText().then(function (time) { + expect(current).toEqual(time); + }) + }) + + }); +}); diff --git a/protractor/create/CreateDisplay.js b/protractor/create/CreateDisplay.js new file mode 100644 index 0000000000..f0d9e6ce03 --- /dev/null +++ b/protractor/create/CreateDisplay.js @@ -0,0 +1,58 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); + +describe('Create Display', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Display"; + var ITEM_TYPE = "display"; + var ITEM_MENU_GLYPH = 'L\nDisplay Layout'; + var ITEM_GRID_SELECT = 'P\nL\nDisplay\n0 Items'; + + beforeEach(require('../common/Launch')); + it('should Create new Display', function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + + }); + +}); diff --git a/protractor/create/CreateFolder.js b/protractor/create/CreateFolder.js new file mode 100644 index 0000000000..2a830733a3 --- /dev/null +++ b/protractor/create/CreateFolder.js @@ -0,0 +1,59 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +//TODO Add filter for duplications/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); + +describe('Create Folder', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Folder"; + var ITEM_TYPE = "folder"; + var ITEM_MENU_GLYPH = 'F\nFolder'; + var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; + + beforeEach(require('../common/Launch')); + it('should Create new Folder', function(){ + + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE); + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + + }); + +}); diff --git a/protractor/create/CreateSineWave.js b/protractor/create/CreateSineWave.js new file mode 100644 index 0000000000..1f4632db0a --- /dev/null +++ b/protractor/create/CreateSineWave.js @@ -0,0 +1,59 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); + +describe('Create Sine Wave Generator', function() { + var createClass = new itemCreate(); + var ITEM_NAME = "Sine Wave G"; + var ITEM_TYPE = "sinewave"; + var ITEM_MENU_GLYPH = 'T\nSine Wave Generator' + beforeEach(require('../common/Launch')); + it('should Create new Sin Wave Generator' , function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + var ok = createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE); + browser.sleep(1000); + ok.click(); + }).then(function (){ + var checkfolder = element.all(by.css('.title.ng-binding')).filter(function (ele) { + return ele.getTagName('div').then(function (tag){ + return tag == 'div'; + }); + }) + expect(checkfolder.getText()).toEqual([ '', 'Sine Wave G' ]); + + }); + + }); + +}); diff --git a/protractor/create/CreateTelemetry.js b/protractor/create/CreateTelemetry.js new file mode 100644 index 0000000000..0a3be9b8d1 --- /dev/null +++ b/protractor/create/CreateTelemetry.js @@ -0,0 +1,59 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); + +describe('Create Telemetry', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Telemetry"; + var ITEM_TYPE = "telemetry"; + var ITEM_MENU_GLYPH = 't\nTelemetry Panel' + var ITEM_GRID_SELECT = 'P\nt\nTelemetry\n0 Items'; + + beforeEach(require('../common/Launch')); + + it('should Create new Telemetry', function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + + }); + +}); diff --git a/protractor/create/CreateTimeline.js b/protractor/create/CreateTimeline.js new file mode 100644 index 0000000000..fe0b37fdd4 --- /dev/null +++ b/protractor/create/CreateTimeline.js @@ -0,0 +1,81 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); + +describe('Create Timeline', function() { + var createItemClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Timeline"; + var ITEM_TYPE = "timeline"; + var ITEM_MENU_GLYPH = 'S\nTimeline'; + var ITEM_GRID_SELECT = 'P\nS\nTimeline\n0 Items'; + beforeEach(require('../common/Launch')); + it('should Create Timeline', function(){ + //button.click() + browser.wait(function() { + createItemClass.createButton().click(); + return true; + }).then(function (){ + var folder = createItemClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createItemClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + var fo= element.all(by.css('.item.grid-item.ng-scope')).filter(function (arg){ + return arg.getText().then(function (text) { + expect(text).toEqual("fh"); + return text == ITEM_GRID_SELECT; + }); + }); + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + + }); + }); + it('should Create Timeline Activity', function(){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + item.click(); + browser.sleep(1000); + expect(browser.getTitle()).toEqual(ITEM_NAME); + browser.sleep(1000); + var edit = editItemClass.EditButton(); + expect(edit.count()).toBe(1); + edit.click(); + browser.sleep(1000); + editItemClass.CreateActivity(); + var ok = createItemClass.fillFolderForum("Activity", "activity"); + browser.sleep(1000); + ok.click(); + browser.sleep(1000); + editItemClass.saveButton(); + //save.click(); + browser.sleep(5000); + }); + +}); diff --git a/protractor/create/CreateTimer.js b/protractor/create/CreateTimer.js new file mode 100644 index 0000000000..d8059c1f59 --- /dev/null +++ b/protractor/create/CreateTimer.js @@ -0,0 +1,70 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); +var rightClick = require("../common/RightMenu"); + +describe('Create Timer', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var rightMenu = new rightClick(); + + var ITEM_NAME = "Timer"; + var ITEM_TYPE = "timer"; + var ITEM_MENU_GLYPH = 'õ\nTimer'; + var ITEM_GRID_SELECT = 'P\nõ\nTimer'; + + beforeEach(require('../common/Launch')); + + it('should Create Timer', function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem(ITEM_TYPE) + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); + browser.sleep(1500); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + }); + it('should test Timer', function(){ + browser.sleep(2000) + rightMenu.reset(ITEM_MENU_GLYPH); + browser.sleep(1000) + var timer = element(by.css('.value.ng-binding.active')) + timer.getText().then(function (time) { + expect(time).toEqual("0D 00:00:01") + }) + }); + +}); diff --git a/protractor/create/CreateWebPage.js b/protractor/create/CreateWebPage.js new file mode 100644 index 0000000000..3a05c45a74 --- /dev/null +++ b/protractor/create/CreateWebPage.js @@ -0,0 +1,59 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var itemCreate = require("../common/CreateItem"); +var itemEdit = require("../common/EditItem"); + +describe('Create Web Page', function() { + var createClass = new itemCreate(); + var editItemClass = new itemEdit(); + var ITEM_NAME = "Webpage"; + var ITEM_TYPE = "webpage"; + var ITEM_MENU_GLYPH = 'ê\nWeb Page'; + var ITEM_GRID_SELECT = 'P\nê\nWebpage'; + + beforeEach(require('../common/Launch')); + + it('should Create new Web Page', function(){ + //button.click() + browser.wait(function() { + createClass.createButton().click(); + return true; + }).then(function (){ + var folder = createClass.selectNewItem('webpage') + expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); + browser.sleep(1000); + folder.click() + }).then(function() { + browser.wait(function () { + return element.all(by.model('ngModel[field]')).isDisplayed(); + }) + createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); + browser.sleep(1000); + }).then(function (){ + var item = editItemClass.SelectItem(ITEM_GRID_SELECT); + expect(item.count()).toBe(1); + browser.sleep(1000); + }); + + }); + +}); diff --git a/protractor/ctrl.sh b/protractor/ctrl.sh new file mode 100755 index 0000000000..04d6ebcc45 --- /dev/null +++ b/protractor/ctrl.sh @@ -0,0 +1,60 @@ +#! /bin/bash +ARGUMENT=$1; +DIRECTORY=/Users/jsanderf/Applications; + +if [ $# != 1 ]; then + echo "Expected 1 Aurgument. Received " $# 1>&2; + exit 1 +fi +#Start webdrive and http-server +if [ $ARGUMENT == start ]; then + echo + echo "Starting MMAP ..." + $DIRECTORY/MAMP/ctlscript.sh start > logs/MAMP.log 2>&1 & + wait $! + if [ $? != 0 ]; then + echo " Error: MMAP" + echo " Check Log file" + echo + else + echo " Started: MMAP" + echo + fi + echo "Starting webdriver ..." + webdriver-manager start > logs/webdriver.log 2>&1 & + sleep 3; + if grep -iq "Exception" logs/webdriver.log; then + echo " Error: webdriver-manager" + echo " Check Log file" + echo + else + echo " Started: webdriver-manager" + fi + echo "Starting Elastic Search..." + elasticsearch > logs/elasticSearch.log 2>&1 & + sleep 3; + if grep -iq "Exception" logs/elasticSearch.log; then + echo " Error: ElasticSearch" + echo " Check Log file" + echo + else + echo " Started: ElasticSearch" + fi +#Runs Protractor tests +elif [ $ARGUMENT == run ]; then + protractor ./conf.js +#Kill Process +elif [ $ARGUMENT == stop ]; then + echo "Stopping MAMP" + $DIRECTORY/MAMP/ctlscript.sh stop >> logs/MAMP.log 2>&1 & + sleep 1; + echo "Stopping webdriver ..." + kill $(ps aux | grep "[p]rotractor" | awk '{print $2}'); + kill $(ps aux | grep "[w]ebdriver-manager" | awk '{print $2}'); + sleep 1; + echo "Stopping Elastic..." + kill $(ps aux | grep "[e]lastic" | awk '{print $2}'); + sleep 1; +else + echo "Unkown: Command" $1; +fi diff --git a/protractor/delete/DeleteActivity.js b/protractor/delete/DeleteActivity.js new file mode 100644 index 0000000000..f0c29d356c --- /dev/null +++ b/protractor/delete/DeleteActivity.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Activity', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Activity"; + var ITEM_TYPE = "activity"; + var ITEM_MENU_GLYPH = 'a\nActivity'; + //var ITEM_GRID_SELECT = 'P\nS\nTimeline\n0 Items'; + var ITEM_SIDE_SELECT = ">\na\nActivity" + beforeEach(require('../common/Launch')); + it('should delete the Activity', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteActivityMode.js b/protractor/delete/DeleteActivityMode.js new file mode 100644 index 0000000000..5a79be831a --- /dev/null +++ b/protractor/delete/DeleteActivityMode.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Activity Mode', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Activity Mode"; + var ITEM_TYPE = "activity-mode"; + var ITEM_MENU_GLYPH = 'A\nActivity Mode'; + var ITEM_GRID_SELECT = 'P\nA\nActivity Mode'; + var ITEM_SIDE_SELECT = "A\nActivity Mode" + beforeEach(require('../common/Launch')); + it('should delete the Activty Mode', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteClock.js b/protractor/delete/DeleteClock.js new file mode 100644 index 0000000000..b55a4a4b89 --- /dev/null +++ b/protractor/delete/DeleteClock.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Clock', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Clock"; + var ITEM_TYPE = "clock"; + var ITEM_MENU_GLYPH = 'C\nClock'; + var ITEM_GRID_SELECT = 'P\nC\nClock'; + var ITEM_SIDE_SELECT = "C\nClock"; + beforeEach(require('../common/Launch')); + it('should delete the Clock', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteDisplay.js b/protractor/delete/DeleteDisplay.js new file mode 100644 index 0000000000..fb4143daca --- /dev/null +++ b/protractor/delete/DeleteDisplay.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Display', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Display"; + var ITEM_TYPE = "display"; + var ITEM_MENU_GLYPH = 'L\nDisplay Layout'; + var ITEM_GRID_SELECT = 'P\nL\nDisplay Layout'; + var ITEM_SIDE_SELECT = ">\nL\nDisplay" + beforeEach(require('../common/Launch')); + it('should delete the Dispay', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteFolder.js b/protractor/delete/DeleteFolder.js new file mode 100644 index 0000000000..1b0b55bdc9 --- /dev/null +++ b/protractor/delete/DeleteFolder.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Folder', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Folder"; + var ITEM_TYPE = "folder"; + var ITEM_MENU_GLYPH = 'F\nFolder'; + var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; + var ITEM_SIDE_SELECT = ">\nF\nFolder" + beforeEach(require('../common/Launch')); + it('should delete the folder', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteTelemetry.js b/protractor/delete/DeleteTelemetry.js new file mode 100644 index 0000000000..30937993a4 --- /dev/null +++ b/protractor/delete/DeleteTelemetry.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Telemetry', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Telemetry"; + var ITEM_TYPE = "telemetry"; + var ITEM_MENU_GLYPH = 't\nTelemetry Panel' + var ITEM_GRID_SELECT = 'P\nt\nTelemetry\n0 Items'; + var ITEM_SIDE_SELECT = ">\nt\nTelemetry" + beforeEach(require('../common/Launch')); + it('should delete the Telemetry', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteTimeline.js b/protractor/delete/DeleteTimeline.js new file mode 100644 index 0000000000..c5db3bba9c --- /dev/null +++ b/protractor/delete/DeleteTimeline.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Timeline', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Timeline"; + var ITEM_TYPE = "timeline"; + var ITEM_MENU_GLYPH = 'S\nTimeline'; + var ITEM_GRID_SELECT = 'P\nS\nTimeline\n0 Items'; + var ITEM_SIDE_SELECT = ">\nS\nTimeline" + beforeEach(require('../common/Launch')); + it('should delete the specified object', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteTimer.js b/protractor/delete/DeleteTimer.js new file mode 100644 index 0000000000..a1dcb7d456 --- /dev/null +++ b/protractor/delete/DeleteTimer.js @@ -0,0 +1,38 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Timer', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Timer"; + var ITEM_TYPE = "timer"; + var ITEM_MENU_GLYPH = 'õ\nTimer'; + var ITEM_GRID_SELECT = 'P\nõ\nTimer'; + var ITEM_SIDE_SELECT = "õ\nTimer" + beforeEach(require('../common/Launch')); + it('should delete the Timer', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +}); diff --git a/protractor/delete/DeleteWebPage.js b/protractor/delete/DeleteWebPage.js new file mode 100644 index 0000000000..f3b39310cb --- /dev/null +++ b/protractor/delete/DeleteWebPage.js @@ -0,0 +1,37 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +var right_click = require("../common/RightMenu.js"); +var Create = require("../common/CreateItem") +describe('Delete Webpage', function() { + var clickClass = new right_click(); + var createClass = new Create(); + var ITEM_NAME = "Webpage"; + var ITEM_TYPE = "webpage"; + var ITEM_MENU_GLYPH = 'ê\nWeb Page'; + var ITEM_SIDE_SELECT = "ê\nWebpage" + beforeEach(require('../common/Launch')); + it('should delete the Webpage', function(){ + clickClass.delete(ITEM_SIDE_SELECT); + browser.sleep(1000); + }); + +});