////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2009-2013 Denim Group, Ltd.
//
// The contents of this file are subject to the Mozilla Public 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.mozilla.org/MPL/
//
// Software distributed under the License is distributed on an "AS IS"
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
// License for the specific language governing rights and limitations
// under the License.
//
// The Original Code is ThreadFix.
//
// The Initial Developer of the Original Code is Denim Group, Ltd.
// Portions created by Denim Group, Ltd. are Copyright (C)
// Denim Group, Ltd. All Rights Reserved.
//
// Contributor(s): Denim Group, Ltd.
//
////////////////////////////////////////////////////////////////////////
package com.denimgroup.threadfix.selenium.pages;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
public class RemoteProvidersIndexPage extends BasePage {
/*private List<WebElement> name = new ArrayList<WebElement>();
private List<WebElement> userName = new ArrayList<WebElement>();
private List<WebElement> apiKey = new ArrayList<WebElement>();
private List<WebElement> configureButton = new ArrayList<WebElement>();
private List<WebElement> appName = new ArrayList<WebElement>();
private List<WebElement> appTeam = new ArrayList<WebElement>();
private List<WebElement> appApplication = new ArrayList<WebElement>();
private List<WebElement> appEditLink = new ArrayList<WebElement>();
private List<WebElement> appImportScanLinks = new ArrayList<WebElement>();
private List<WebElement> updateAppsLink = new ArrayList<WebElement>();
private List<WebElement> clearConfig = new ArrayList<WebElement>();
*/
private WebElement qualysConfigButton;
private WebElement veracodeConfigButton;
private WebElement whiteHateConfigButton;
public RemoteProvidersIndexPage(WebDriver webDriver) {
super(webDriver);
qualysConfigButton = driver.findElementById("configure1");
veracodeConfigButton = driver.findElementById("configure2");
whiteHateConfigButton = driver.findElementById("configure3");
/*
for (int i = 1; i <= getNumEdit(); i++) {
name.add(driver.findElementById("name" + i));
userName.add(driver.findElementById("username" + i));
apiKey.add(driver.findElementById("apiKey" + i));
configureButton.add(driver.findElementById("configure" + i));
if (!driver.findElementById("username"+i).getText().equals("")
|| !driver.findElementById("apiKey"+i).getText().equals("")) {
updateAppsLink.add(driver.findElementById("updateApps"+i));
clearConfig.add(driver.findElementById("clearConfig"+i));
for (int j = 1; j <= getNumRows(); j++) {
appName.add(driver.findElementById("provider" + i + "appid" + j));
appTeam.add(driver.findElementById("provider" + i + "tfteamname"
+ j));
appApplication.add(driver.findElementById("provider" + i + "tfappname" + j));
appEditLink.add(driver.findElementById("provider" + i + "updateMapping" + j));
if (driver.findElementById("provider" + i + "tfteamname" + j)
.getText().equals("")) {
} else
appImportScanLinks.add(driver
.findElementById("provider" + i + "import" + j));
}
}
}*/
}
public RemoteProvidersIndexPage clickConfigureQualys(){
qualysConfigButton.click();
waitForElement(driver.findElementById("remoteProviderEditModal3"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage clickConfigureVeracode(){
veracodeConfigButton.click();
waitForElement(driver.findElementById("remoteProviderEditModal2"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage clickConfigureWhiteHat(){
whiteHateConfigButton.click();
waitForElement(driver.findElementById("remoteProviderEditModal1"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage setQualysUsername(String user){
driver.findElementsById("usernameInput").get(0).clear();
driver.findElementsById("usernameInput").get(0).sendKeys(user);
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage setQualysPassword(String password){
driver.findElementsById("passwordInput").get(0).clear();
driver.findElementsById("passwordInput").get(0).sendKeys(password);
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage setQualysUS(){
driver.findElementById("isEuropean1").click();
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage setQualysEU(){
driver.findElementById("isEuropean2").click();
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage saveQualys(){
driver.findElementById("submitRemoteProviderFormButton3").click();
waitForInvisibleElement(driver.findElementById("remoteProviderEditModal3"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage saveQualysInvalid(){
driver.findElementById("submitRemoteProviderFormButton3").click();
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage closeModal(){
driver.findElementByClassName("modal-footer").findElement(By.className("btn")).click();
waitForInvisibleElement(driver.findElementByClassName("modal"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage setVeraUsername(String user){
driver.findElementsById("usernameInput").get(1).clear();
driver.findElementsById("usernameInput").get(1).sendKeys(user);
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage setVeraPassword(String password){
driver.findElementsById("passwordInput").get(1).clear();
driver.findElementsById("passwordInput").get(1).sendKeys(password);
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage saveVera(){
driver.findElementById("submitRemoteProviderFormButton2").click();
waitForInvisibleElement(driver.findElementById("remoteProviderEditModal3"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage saveVeraInvalid(){
driver.findElementById("submitRemoteProviderFormButton2").click();
return new RemoteProvidersIndexPage(driver);
}
// WhiteHat Methods
public RemoteProvidersIndexPage setWhiteHatAPI(String api){
driver.findElementById("apiKeyInput").clear();
driver.findElementById("apiKeyInput").sendKeys(api);
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage saveWhiteHat(){
driver.findElementById("submitRemoteProviderFormButton1").click();
waitForInvisibleElement(driver.findElementById("remoteProviderEditModal3"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage saveWhiteHatInvalid(){
driver.findElementById("submitRemoteProviderFormButton1").click();
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage mapWhiteHatToTeamAndApp(int appRow, String team, String app){
clickEditWhiteHatButton(appRow);
selectTeamModal(team);
selectAppModal(app);
saveMappingWhiteHat();
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage saveMappingWhiteHat(){
driver.findElementByClassName("modal-footer").findElement(By.linkText("Update Application")).click();
waitForInvisibleElement(driver.findElementByClassName("modal"));
return new RemoteProvidersIndexPage(driver);
}
public RemoteProvidersIndexPage clickEditWhiteHatButton(int row){
driver.findElementById("provider3updateMapping" + row).click();
return new RemoteProvidersIndexPage(driver);
}
public UserIndexPage selectTeamModal(String role){
WebElement a = driver.findElementById("orgSelect1");
new Select(a).selectByVisibleText(role);
return new UserIndexPage(driver);
}
public UserIndexPage selectAppModal(String role){
WebElement a = driver.findElementById("appSelect1");
new Select(a).selectByVisibleText(role);
return new UserIndexPage(driver);
}
public String getErrorMessage(){
return driver.findElementByClassName("alert-error").getText();
}
public RemoteProvidersIndexPage clearWhiteHat(){
driver.findElementById("clearConfig3").click();
handleAlert();
return new RemoteProvidersIndexPage(driver);
}
public String successAlert(){
return driver.findElementByClassName("alert-success").getText();
}
//old methods
/*
public int getNumEdit() {
return driver.findElementsByLinkText("Configure").size();
}
public int getNumRows() {
return driver.findElementsByLinkText("Edit Mapping").size();
}
public String getNames(int num) {
return name.get(num).getText();
}
public String getUsernames(int num) {
return userName.get(num).getText();
}
public String getAPIKey(int num) {
return apiKey.get(num).getText();
}
public RemoteProviderCredentialsPage clickConfigure(int Row) {
configureButton.get(Row).click();
sleep(1000);
return new RemoteProviderCredentialsPage(driver);
}
public EditMappingPage clickEdit(int Row) {
appEditLink.get(Row).click();
sleep(1000);
return new EditMappingPage(driver);
}
public void clickImport(int Row) {
appImportScanLinks.get(Row).click();
sleep(1000);
}
public void clickUpdate(int Row) {
//UpdateAppsLink = driver.findElementById("updateApps1");
updateAppsLink.get(Row).click();
sleep(1000);
}
public RemoteProvidersIndexPage clickClearConfigButton(int rowNumber) {
clearConfig.get(rowNumber).click();
Alert alert = driver.switchTo().alert();
alert.accept();
return new RemoteProvidersIndexPage(driver);
}
*/
}