/* * 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 LoginEvents extends Events { @Override public String getUriFragment() { return super.getUriFragment() + "/events"; } @FindBy(tagName = "table") private LoginEventsTable table; public LoginEventsTable table() { return table; } public class LoginEventsTable extends DataTable { @FindBy(xpath = "//button[text()[contains(.,'Filter')]]") private WebElement filterButton; @FindBy(tagName = "form") private LoginEventsTableFilterForm filterForm; public void update() { clickHeaderButton("Update"); } public void reset() { clickHeaderButton("Reset"); } public void filter() { filterButton.click(); } public LoginEventsTableFilterForm filterForm() { return filterForm; } public class LoginEventsTableFilterForm extends Form { @FindBy(id = "client") private WebElement clientInput; @FindBy(id = "user") private WebElement userInput; @FindBy(xpath = "//div[@id='s2id_eventTypes']/ul") private WebElement eventTypeInput; @FindBy(xpath = "//div[@id='select2-drop']") private WebElement eventTypeValues; public void addEventType(String type) { eventTypeInput.click(); eventTypeValues.findElement(By.xpath("//div[text()='" + type + "']")).click(); } public void removeOperationType(String type) { eventTypeInput.findElement(By.xpath("//div[text()='" + type + "']/../a]")).click(); } public void setClientInput(String value) { setInputValue(clientInput, value); } public void setUserInput(String value) { setInputValue(userInput, value); } } } }