mirror of
https://github.com/nasa/openmct.git
synced 2024-12-22 14:32:22 +00:00
7e7754f9aa
Add license headers to protractor test scripts, WTD-1489.
195 lines
8.1 KiB
JavaScript
195 lines
8.1 KiB
JavaScript
/*****************************************************************************
|
|
* 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;
|