/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* 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.events;
import org.keycloak.testsuite.console.page.fragment.DataTable;
import org.keycloak.testsuite.page.Form;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
/**
* @author tkyjovsk
* @author mhajas
*/
public class AdminEvents extends Events {
@Override
public String getUriFragment() {
return super.getUriFragment() + "/admin-events";
}
@FindBy(tagName = "table")
private AdminEventsTable table;
public AdminEventsTable table() {
return table;
}
public class AdminEventsTable extends DataTable {
@FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
private WebElement filterButton;
@FindBy(tagName = "form")
private AdminEventsTableFilterForm filterForm;
public void update() {
clickHeaderButton("Update");
}
public void reset() {
clickHeaderButton("Reset");
}
public void filter() {
filterButton.click();
}
public AdminEventsTableFilterForm filterForm() {
return filterForm;
}
public class AdminEventsTableFilterForm extends Form {
@FindBy(id = "resource")
private WebElement resourcePathInput;
@FindBy(id = "realm")
private WebElement realmInput;
@FindBy(id = "client")
private WebElement clientInput;
@FindBy(id = "user")
private WebElement userInput;
@FindBy(id = "ipAddress")
private WebElement ipAddressInput;
@FindBy(xpath = "//div[@id='s2id_adminEnabledEventOperations']/ul")
private WebElement operationTypesInput;
@FindBy(xpath = "//div[@id='select2-drop']")
private WebElement operationTypesValues;
public void addOperationType(String type) {
operationTypesInput.click();
operationTypesValues.findElement(By.xpath("//div[text() = '" + type + "']")).click();
}
public void removeOperationType(String type) {
operationTypesInput.findElement(By.xpath("//div[text()='" + type + "']/../a")).click();
}
public void setResourcePathInput(String value) {
setInputValue(resourcePathInput, value);
}
public void setRealmInput(String value) {
setInputValue(realmInput, value);
}
public void setClientInput(String value) {
setInputValue(clientInput, value);
}
public void setUserInput(String value) {
setInputValue(userInput, value);
}
public void setIpAddressInput(String value) {
setInputValue(ipAddressInput, value);
}
}
}
}