/*
* Copyright 2017 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.clients.authorization;
import org.jboss.arquillian.graphene.fragment.Root;
import org.jboss.arquillian.graphene.page.Page;
import org.keycloak.testsuite.console.page.clients.Client;
import org.keycloak.testsuite.console.page.clients.authorization.permission.Permissions;
import org.keycloak.testsuite.console.page.clients.authorization.policy.Policies;
import org.keycloak.testsuite.console.page.clients.authorization.resource.Resources;
import org.keycloak.testsuite.console.page.clients.authorization.scope.Scopes;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
/**
*
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
*/
public class Authorization extends Client {
@FindBy(id = "authz-tabs")
protected AuthorizationTabLinks authorizationTabLinks;
@Page
private AuthorizationSettingsForm authorizationSettingsForm;
@Page
private Resources resources;
@Page
private Scopes scopes;
@Page
private Permissions permissions;
@Page
private Policies policies;
public AuthorizationSettingsForm settings() {
return authorizationSettingsForm;
}
public AuthorizationTab authorizationTabs() {
return new AuthorizationTab(authorizationTabLinks);
}
@Override
public String getUriFragment() {
return super.getUriFragment() + "/authz/resource-server";
}
public class AuthorizationTab {
private final AuthorizationTabLinks links;
public AuthorizationTab(AuthorizationTabLinks links) {
this.links = links;
}
public Resources resources() {
links.resources();
return resources;
}
public Scopes scopes() {
links.scopes();
return scopes;
}
public Permissions permissions() {
links.permissions();
return permissions;
}
public Policies policies() {
links.policies();
return policies;
}
}
public class AuthorizationTabLinks {
@Root
private WebElement root;
@FindBy(linkText = "Settings")
private WebElement settingsLink;
@FindBy(linkText = "Resources")
private WebElement resourcesLink;
@FindBy(linkText = "Authorization Scopes")
private WebElement scopesLink;
@FindBy(linkText = "Permissions")
private WebElement permissionsLink;
@FindBy(linkText = "Policies")
private WebElement policiesLink;
public void settings() {
settingsLink.click();
}
public void resources() {
resourcesLink.click();
}
private void scopes() {
scopesLink.click();
}
private void permissions() {
permissionsLink.click();
}
private void policies() {
policiesLink.click();
}
}
}