/* * JBoss, Home of Professional Open Source * * Copyright 2013 Red Hat, Inc. and/or its affiliates. * * 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. */ package org.keycloak.testsuite.console.page.idp; import org.jboss.arquillian.graphene.findby.FindByJQuery; import org.keycloak.testsuite.console.page.AdminConsoleRealm; import org.keycloak.testsuite.model.Provider; import org.keycloak.testsuite.model.SocialProvider; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.Select; import java.util.ArrayList; import java.util.List; import static org.openqa.selenium.By.tagName; /** * * @author Petr Mensik */ public class IdentityProviderSettings extends AdminConsoleRealm { @Override public String getUriFragment() { return super.getUriFragment() + "identity-provider-settings"; } @FindBy(tagName = "select") private Select newProviderSelect; @FindByJQuery("input[class*='form-control']:eq(1)") private WebElement providerKey; @FindByJQuery("input[class*='form-control']:eq(2)") private WebElement providerSecret; @FindBy(tagName = "tbody") private WebElement providersTable; public void addNewProvider(Provider provider) { newProviderSelect.selectByVisibleText(provider.providerName.getName()); providerKey.sendKeys(provider.key); providerSecret.sendKeys(provider.secret); primaryButton.click(); } public void editProvider(SocialProvider oldProvider, Provider newProvider) { Provider p = find(oldProvider); if (p == null) { throw new AssertionError("Provider should have been found"); } log.info(p.providerName); } public Provider find(SocialProvider provider) { List<Provider> list = getAllRows(); for (Provider p : list) { if (p.providerName == provider) { return p; } } return null; } private List<Provider> getAllRows() { List<Provider> rows = new ArrayList<>(); for (WebElement rowElement : providersTable.findElements(tagName("tr"))) { Provider provider = new Provider(); List<WebElement> tds = rowElement.findElements(tagName("td")); if (!(tds.isEmpty() || tds.get(0).getText().isEmpty())) { provider.providerName = SocialProvider.valueOf(tds.get(0).getText()); provider.key = tds.get(1).getText(); provider.secret = tds.get(2).getText(); rows.add(provider); } } return rows; } }