package org.apache.archiva.web.test.parent;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import java.io.File;
import java.io.IOException;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
@RunWith( BlockJUnit4ClassRunner.class )
public abstract class AbstractArchivaTest
extends AbstractSeleniumTest
{
protected String username;
protected String fullname;
public String getUserEmail()
{
String email = getProperty( "USERROLE_EMAIL" );
return email;
}
public String getUserRolePassword()
{
String password = getProperty( "USERROLE_PASSWORD" );
return password;
}
public String getUserRoleNewPassword()
{
String password_new = getProperty( "NEW_USERROLE_PASSWORD" );
return password_new;
}
public String getBasedir()
{
String basedir = System.getProperty( "basedir" );
if ( basedir == null )
{
basedir = new File( "" ).getAbsolutePath();
}
return basedir;
}
public void submitUserData( String username, String password, boolean rememberme, boolean success )
{
setFieldValue( "username", username );
setFieldValue( "password", password );
if ( rememberme )
{
checkField( "rememberMe" );
}
submit();
if ( success )
{
assertUserLoggedIn( username );
}
else
{
assertLoginModal();
}
}
// User Management
public void createUser( String userName, String fullName, String email, String password, boolean valid )
{
createUser( userName, fullName, email, password, password, valid );
}
private void createUser( String userName, String fullName, String emailAd, String password, String confirmPassword,
boolean valid )
{
login( getAdminUsername(), getAdminPassword() );
clickLinkWithLocator( "menu-users-list-a", true );
clickLinkWithLocator( "users-view-tabs-li-user-edit-a", true );
assertCreateUserPage();
setFieldValue( "username", userName );
setFieldValue( "fullname", fullName );
setFieldValue( "email", emailAd );
setFieldValue( "password", password );
setFieldValue( "confirmPassword", confirmPassword );
clickLinkWithLocator( "user-create-form-register-button", true );
assertTextPresent( "User " + userName + " created." );
assertElementPresent( "users-grid-user-id-" + userName );
if ( valid )
{
//String[] columnValues = { userName, fullName, emailAd };
//assertElementPresent( XPathExpressionUtil.getTableRow( columnValues ) );
}
else
{
assertCreateUserPage();
}
}
public void deleteUser( String userName, String fullName, String emailAdd )
{
deleteUser( userName, fullName, emailAdd, false, false );
}
public void deleteUser( String userName, String fullName, String emailAd, boolean validated, boolean locked )
{
clickLinkWithLocator( "menu-users-list-a", true );
assertTextPresent( userName );
assertTextPresent( fullName );
clickLinkWithLocator( "users-grid-delete-" + userName );
clickLinkWithLocator( "dialog-confirm-modal-ok" );
assertTextPresent( "User " + userName + " deleted." );
clickLinkWithLocator( "alert-message-success-close-a" );
assertElementNotPresent( "users-grid-user-id-" + userName );
assertTextNotPresent( fullName );
}
// User Roles
public void assertCreateUserPage()
{
assertTextPresent( "Username" );
assertElementPresent( "username" );
assertTextPresent( "Full Name" );
assertElementPresent( "fullname" );
assertTextPresent( "Email Address" );
assertElementPresent( "email" );
assertTextPresent( "Password" );
assertElementPresent( "password" );
assertTextPresent( "Confirm Password" );
assertElementPresent( "confirmPassword" );
assertButtonWithIdPresent( "user-create-form-register-button" );
}
public void goToHomePage()
{
getSelenium().open( baseUrl );
}
protected void logout()
{
clickLinkWithText( "Logout" );
assertTextNotPresent( "Current User:" );
assertLinkNotVisible( "Edit Details" );
assertLinkNotVisible( "Logout" );
assertLinkVisible( "Login" );
}
protected String getAdminUserName()
{
return getProperty( "ADMIN_FULLNAME" );
}
}