+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-
-/**
- */
-public abstract class AbstractArchivaTestCase
- extends AbstractSeleniumTestCase
-{
- private String baseUrl = "http://localhost:9696/archiva";
-
- protected String getApplicationName()
- {
- return "Archiva";
- }
-
- protected String getInceptionYear()
- {
- return "2005";
- }
-
- protected void postAdminUserCreation()
- {
- if ( getTitle().equals( getTitlePrefix() + "Configuration" ) )
- {
- //Add Managed Repository
- setFieldValue( "id", "test-repository" );
- setFieldValue( "urlName", "test-repository" );
- setFieldValue( "name", "Web UI Test Managed Repository" );
- setFieldValue( "directory", getBasedir() + "/target/repository" );
- clickButtonWithValue( "Add Repository" );
-
- //Set Index location
- assertPage( "Configuration" );
- setFieldValue( "indexPath", getBasedir() + "/target/index" );
- clickButtonWithValue( "Save Configuration" );
- assertPage( "Administration" );
- }
- }
-
- public void assertHeader()
- {
- assertTrue( "banner is missing", getSelenium().isElementPresent( "xpath=//div[@id='banner']" ) );
- assertTrue( "bannerLeft is missing",
- getSelenium().isElementPresent( "xpath=//div[@id='banner']" + "/span[@id='bannerLeft']" ) );
- assertTrue( "bannerLeft link is missing", getSelenium().isElementPresent(
- "xpath=//div[@id='banner']" + "/span[@id='bannerLeft']/a[@href='http://maven.apache.org/archiva/']" ) );
- assertTrue( "bannerLeft img is missing", getSelenium().isElementPresent( "xpath=//div[@id='banner']" +
- "/span[@id='bannerLeft']/a[@href='http://maven.apache.org/archiva/']" + "/img[@src='" + getWebContext() +
- "/images/archiva.png']" ) );
-
- assertTrue( "bannerRight is missing",
- getSelenium().isElementPresent( "xpath=//div[@id='banner']/span[@id='bannerRight']" ) );
- }
-
- protected String getTitlePrefix()
- {
- return "Maven Archiva :: ";
- }
-
- public String getBaseUrl()
- {
- return baseUrl;
- }
-
- protected String getWebContext()
- {
- return "/archiva";
- }
-}
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-import com.thoughtworks.selenium.DefaultSelenium;
-import com.thoughtworks.selenium.Selenium;
-import junit.framework.TestCase;
-import org.codehaus.plexus.util.StringUtils;
-
-import java.io.File;
-import java.util.Calendar;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
- * @version $Id$
- */
-public abstract class AbstractSeleniumTestCase
- extends TestCase
-{
- public static final String CHECKBOX_CHECK = "on";
-
- public static final String CHECKBOX_UNCHECK = "off";
-
- private Selenium sel;
-
- protected String adminUsername;
-
- protected String adminPassword;
-
- protected String adminFullName = getApplicationName() + " Admin";
-
- protected String adminEmail = "admin@localhost.localdomain";
-
- protected String maxWaitTimeInMs;
-
- protected String baseUrl;
-
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- Properties p = new Properties();
- p.load ( this.getClass().getClassLoader().getResourceAsStream( "it.properties" ) );
-
- baseUrl = p.getProperty( "BASE_URL" );
- maxWaitTimeInMs = p.getProperty( "MAX_WAIT_TIME_IN_MS" );
- adminUsername = p.getProperty( "ADMIN_USERNAME" );
- adminPassword = p.getProperty( "ADMIN_PASSWORD" );
- String seleniumHost = p.getProperty( "SELENIUM_HOST" );
- int seleniumPort = Integer.parseInt( (p.getProperty( "SELENIUM_PORT" ) ) );
-
- String browser = System.getProperty( "browser" );
- if ( StringUtils.isEmpty( browser ) )
- {
- browser = p.getProperty( "SELENIUM_BROWSER" );
- }
-
- sel = new DefaultSelenium( seleniumHost, seleniumPort, browser, baseUrl );
- sel.start();
- initialize();
- }
-
- public void tearDown()
- throws Exception
- {
- sel.stop();
- }
-
- public Selenium getSelenium()
- {
- return sel;
- }
-
- public abstract String getBaseUrl();
-
- /**
- * We create an admin user if it doesn't exist
- */
- protected void initialize()
- {
- open( getWebContext() );
-
- if ( getTitle().endsWith( "Create Admin User" ) )
- {
- assertCreateAdminUserPage();
- submitCreateAdminUserPage( adminFullName, adminEmail, adminPassword, adminPassword );
- assertLoginPage();
- submitLoginPage( adminUsername, adminPassword );
- postAdminUserCreation();
- logout();
- }
- }
-
- /**
- * where webapp initial configurations can be done
- */
- protected void postAdminUserCreation()
- {
- if ( getTitle().endsWith( "Continuum - Configuration" ) )
- {
- setFieldValue("baseUrl", baseUrl);
- clickButtonWithValue( "Save" );
- }
- }
-
- protected abstract String getApplicationName();
-
- /**
- * some webapps have
- *
- * @return the page prefix set by the webapp
- */
- protected String getTitlePrefix()
- {
- return "";
- }
-
- protected abstract String getInceptionYear();
-
- protected String getWebContext()
- {
- return "/";
- }
-
- public void open( String url )
- {
- sel.open( url );
- }
-
- public String getTitle()
- {
- return sel.getTitle();
- }
-
- public String getHtmlContent()
- {
- return getSelenium().getHtmlSource();
- }
-
- public void assertTextPresent( String text )
- {
- assertTrue( "'" + text + "' isn't present.", sel.isTextPresent( text ) );
- }
-
- public void assertTextNotPresent( String text )
- {
- assertFalse( "'" + text + "' is present.", sel.isTextPresent( text ) );
- }
-
- public void assertElementPresent( String elementLocator )
- {
- assertTrue( "'" + elementLocator + "' isn't present.", isElementPresent( elementLocator ) );
- }
-
- public void assertElementNotPresent( String elementLocator )
- {
- assertFalse( "'" + elementLocator + "' is present.", isElementPresent( elementLocator ) );
- }
-
- public void assertLinkPresent( String text )
- {
- assertTrue( "The link '" + text + "' isn't present.", isElementPresent( "link=" + text ) );
- }
-
- public void assertLinkNotPresent( String text )
- {
- assertFalse( "The link '" + text + "' is present.", isElementPresent( "link=" + text ) );
- }
-
- public void assertImgWithAlt( String alt )
- {
- assertElementPresent( "//img[@alt='" + alt + "']" );
- }
-
- public void assertImgWithAltAtRowCol( boolean isALink, String alt, int row, int column )
- {
- String locator = "//tr[" + row + "]/td[" + column + "]/";
- locator += isALink ? "a/" : "";
- locator += "img[@alt='" + alt + "']";
-
- assertElementPresent( locator );
- }
-
- public void assertCellValueFromTable( String expected, String tableElement, int row, int column )
- {
- assertEquals( expected, getCellValueFromTable( tableElement, row, column ) );
- }
-
- public boolean isTextPresent( String text )
- {
- return sel.isTextPresent( text );
- }
-
- public boolean isLinkPresent( String text )
- {
- return isElementPresent( "link=" + text );
- }
-
- public boolean isElementPresent( String locator )
- {
- return sel.isElementPresent( locator );
- }
-
- public void waitPage()
- {
- waitPage( 180000 );
- }
-
- public void waitPage( int nbMillisecond )
- {
- sel.waitForPageToLoad( String.valueOf( nbMillisecond ) );
- }
-
- public void assertPage( String title )
- {
- assertEquals( getTitlePrefix() + title, getTitle() );
- assertHeader();
- assertFooter();
- }
-
- public abstract void assertHeader();
-
-
- public void assertFooter()
- {
- int currentYear = Calendar.getInstance().get( Calendar.YEAR );
- assertTrue( getSelenium().getText( "xpath=//div[@id='footer']/div[1]" ).endsWith(
- "Copyright © " + getInceptionYear() + "-" + currentYear + " The Apache Software Foundation" ) );
- }
-
- public String getFieldValue( String fieldName )
- {
- return sel.getValue( fieldName );
- }
-
- public String getCellValueFromTable( String tableElement, int row, int column )
- {
- return getSelenium().getTable( tableElement + "." + row + "." + column );
- }
-
- public void selectValue( String locator, String value )
- {
- getSelenium().select( locator, "label=" + value );
- }
-
- public void submit()
- {
- clickLinkWithXPath( "//input[@type='submit']" );
- }
-
- public void assertButtonWithValuePresent( String text )
- {
- assertTrue( "'" + text + "' button isn't present", isButtonWithValuePresent( text ) );
- }
-
- public void assertButtonWithValueNotPresent( String text )
- {
- assertFalse( "'" + text + "' button is present", isButtonWithValuePresent( text ) );
- }
-
- public boolean isButtonWithValuePresent( String text )
- {
- return isElementPresent( "//button[@value='" + text + "']" ) || isElementPresent( "//input[@value='" + text + "']" );
- }
-
- public void clickButtonWithValue( String text )
- {
- clickButtonWithValue( text, true );
- }
-
- public void clickButtonWithValue( String text, boolean wait )
- {
- assertButtonWithValuePresent( text );
-
- if ( isElementPresent( "//button[@value='" + text + "']" ) )
- {
- clickLinkWithXPath( "//button[@value='" + text + "']", wait );
- }
- else
- {
- clickLinkWithXPath( "//input[@value='" + text + "']", wait );
- }
- }
-
- public void clickSubmitWithLocator( String locator )
- {
- clickLinkWithLocator( locator );
- }
-
- public void clickSubmitWithLocator( String locator, boolean wait )
- {
- clickLinkWithLocator( locator, wait );
- }
-
- public void clickImgWithAlt( String alt )
- {
- clickLinkWithLocator( "//img[@alt='" + alt + "']" );
- }
-
- public void clickLinkWithText( String text )
- {
- clickLinkWithText( text, true );
- }
-
- public void clickLinkWithText( String text, boolean wait )
- {
- clickLinkWithLocator( "link=" + text, wait );
- }
-
- public void clickLinkWithXPath( String xpath )
- {
- clickLinkWithXPath( xpath, true );
- }
-
- public void clickLinkWithXPath( String xpath, boolean wait )
- {
- clickLinkWithLocator( "xpath=" + xpath, wait );
- }
-
- public void clickLinkWithLocator( String locator )
- {
- clickLinkWithLocator( locator, true );
- }
-
- public void clickLinkWithLocator( String locator, boolean wait )
- {
- assertElementPresent( locator );
- sel.click( locator );
- if ( wait )
- {
- waitPage();
- }
- }
-
- public void setFieldValues( Map fieldMap )
- {
- Map.Entry entry;
-
- for ( Iterator entries = fieldMap.entrySet().iterator(); entries.hasNext(); )
- {
- entry = (Map.Entry) entries.next();
-
- sel.type( (String) entry.getKey(), (String) entry.getValue() );
- }
- }
-
- public void setFieldValue( String fieldName, String value )
- {
- sel.type( fieldName, value );
- }
-
- public void checkField( String locator )
- {
- sel.check( locator );
- }
-
- public void uncheckField( String locator )
- {
- sel.uncheck( locator );
- }
-
- public boolean isChecked( String locator )
- {
- return sel.isChecked( locator );
- }
-
- //////////////////////////////////////
- // Login
- //////////////////////////////////////
- public void goToLoginPage()
- {
- clickLinkWithText( "Login" );
-
- assertLoginPage();
- }
-
- public void login( String username, String password )
- {
- login( username, password, true, "Login Page" );
- }
-
- public void login( String username, String password, boolean valid, String assertReturnPage )
- {
- if ( isLinkPresent( "Login" ) )
- {
- goToLoginPage();
-
- submitLoginPage( username, password, false, valid, assertReturnPage );
- }
- }
-
- public void assertLoginPage()
- {
- assertPage( "Login Page" );
- assertTextPresent( "Login" );
- assertTextPresent( "Username" );
- assertTextPresent( "Password" );
- assertTextPresent( "Remember Me" );
- assertFalse( isChecked( "rememberMe" ) );
- }
-
- public void submitLoginPage( String username, String password )
- {
- submitLoginPage( username, password, false, true, "Login Page" );
- }
-
- public void submitLoginPage( String username, String password, boolean validUsernamePassword )
- {
- submitLoginPage( username, password, false, validUsernamePassword, "Login Page" );
- }
-
- public void submitLoginPage( String username, String password, boolean rememberMe, boolean validUsernamePassword,
- String assertReturnPage )
- {
- assertLoginPage();
- setFieldValue( "username", username );
- setFieldValue( "password", password );
- if ( rememberMe )
- {
- checkField( "rememberMe" );
- }
- clickButtonWithValue( "Login" );
-
- if ( validUsernamePassword )
- {
- //assertTextPresent( "Current User:" );
- assertTextPresent( username );
- assertLinkPresent( "Edit Details" );
- assertLinkPresent( "Logout" );
- }
- else
- {
- if ( "Login Page".equals( assertReturnPage ) )
- {
- assertLoginPage();
- }
- else
- {
- assertPage( assertReturnPage );
- }
- }
- }
-
- public boolean isAuthenticated()
- {
- return !( isLinkPresent( "Login" ) && isLinkPresent( "Register" ) );
- }
-
- //////////////////////////////////////
- // Logout
- //////////////////////////////////////
- public void logout()
- {
- assertTrue( "User wasn't authenticated.", isAuthenticated() );
- clickLinkWithText( "Logout" );
- assertFalse( "The user is always authenticated after a logout.", isAuthenticated() );
- }
-
- //////////////////////////////////////
- // My Account
- //////////////////////////////////////
- public void goToMyAccount()
- {
- clickLinkWithText( "Edit Details" );
- }
-
- public void assertMyAccountDetails( String username, String newFullName, String newEmailAddress )
- throws Exception
- {
- assertPage( "Account Details" );
-
- //isTextPresent( "Username" );
- assertTextPresent( "Username:" );
- assertElementPresent( "registerForm_user_username" );
- assertCellValueFromTable( username, "//form/table", 0, 1 );
-
- assertTextPresent( "Full Name*:" );
- assertElementPresent( "user.fullName" );
- assertEquals( newFullName, getFieldValue( "user.fullName" ) );
-
- assertTextPresent( "Email Address*:" );
- assertElementPresent( "user.email" );
- assertEquals( newEmailAddress, getFieldValue( "user.email" ) );
-
- assertTextPresent("Current Password*:");
- assertElementPresent("oldPassword");
-
- assertTextPresent( "New Password*:" );
- assertElementPresent( "user.password" );
-
- assertTextPresent( "Confirm Password*:" );
- assertElementPresent( "user.confirmPassword" );
-
- assertTextPresent( "Last Password Change" );
- assertElementPresent( "registerForm_user_timestampLastPasswordChange" );
-
- }
-
- public void editMyUserInfo( String newFullName, String newEmailAddress, String oldPassword, String newPassword,
- String confirmNewPassword )
- {
- goToMyAccount();
-
- setFieldValue( "user.fullName", newFullName );
- setFieldValue( "user.email", newEmailAddress );
- setFieldValue( "oldPassword", oldPassword );
- setFieldValue( "user.password", newPassword );
- setFieldValue( "user.confirmPassword", confirmNewPassword );
- clickButtonWithValue( "Submit" );
- }
-
- //////////////////////////////////////
- // Users
- //////////////////////////////////////
- public void assertUsersListPage()
- {
- assertPage( "[Admin] User List" );
- }
-
- public void assertCreateUserPage()
- {
- assertPage( "[Admin] User Create" );
- assertTextPresent( "Username" );
- assertTextPresent( "Full Name" );
- assertTextPresent( "Email Address" );
- assertTextPresent( "Password" );
- assertTextPresent( "Confirm Password" );
- }
-
- public void assertUserRolesPage()
- {
- assertPage( "[Admin] User Edit" );
- assertTextPresent( "[Admin] User Roles" );
- assertTextPresent( "Assigned Roles" );
- assertTextPresent( "Available Roles" );
- }
-
- public void assertDeleteUserPage( String username )
- {
- assertPage( "[Admin] User Delete" );
- assertTextPresent( "[Admin] User Delete" );
- assertTextPresent( "The following user will be deleted: " + username );
- assertButtonWithValuePresent( "Delete User" );
- }
-
- //////////////////////////////////////
- // Create Admin User
- //////////////////////////////////////
- public void assertCreateAdminUserPage()
- {
- assertPage( "Create Admin User" );
- assertTextPresent( "Create Admin User" );
- assertTextPresent( "Username" );
- assertElementPresent( "user.username" );
- assertTextPresent( "Full Name" );
- assertElementPresent( "user.fullName" );
- assertTextPresent( "Email Address" );
- assertElementPresent( "user.email" );
- assertTextPresent( "Password" );
- assertElementPresent( "user.password" );
- assertTextPresent( "Confirm Password" );
- assertElementPresent( "user.confirmPassword" );
- }
-
- public void submitCreateAdminUserPage( String fullName, String email, String password, String confirmPassword )
- {
- setFieldValue( "user.fullName", fullName );
- setFieldValue( "user.email", email );
- setFieldValue( "user.password", password );
- setFieldValue( "user.confirmPassword", confirmPassword );
- submit();
- waitPage();
- }
-
- public String getBasedir()
- {
- String basedir = System.getProperty( "basedir" );
-
- if ( basedir == null )
- {
- basedir = new File( "" ).getAbsolutePath();
- }
-
- return basedir;
- }
-
-}
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-/**
- * Archiva's webapp UI test for browsing the indexed repository.
- *
- */
-public class BrowseRepositoryTest
- extends AbstractArchivaTestCase
-{
- private void browseArtifact()
- {
- clickLinkWithText( "Browse" );
- assertPage( "Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertLinkPresent( "org.apache.maven.archiva.web.test/" );
-
- clickLinkWithText( "org.apache.maven.archiva.web.test/" );
- assertPage( "Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertTextPresent( "Artifacts" );
- assertLinkPresent( "artifact-a/" );
-
- clickLinkWithText( "artifact-a/" );
- assertPage( "Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertTextPresent( "Versions" );
- assertLinkPresent( "1.0/" );
-
- clickLinkWithText( "1.0/" );
- assertPage( "Browse Repository" );
- assertTextPresent( "artifact-a" );
- assertLinkPresent( "Main" );
- }
-
- public void testBrowseArtifactInfo()
- {
- browseArtifact();
-
- assertTextPresent( "Info" );
- assertLinkPresent( "Dependencies" );
- assertLinkPresent( "Dependency Tree" );
- assertLinkPresent( "Used By" );
- assertLinkPresent( "Mailing Lists" );
-
- assertEquals("Group ID", getSelenium().getTable("//table[1].0.0"));
- assertEquals("org.apache.maven.archiva.web.test", getSelenium().getTable("//table[1].0.1"));
- assertEquals("Artifact ID", getSelenium().getTable("//table[1].1.0"));
- assertEquals("artifact-a", getSelenium().getTable("//table[1].1.1"));
- assertEquals("Version", getSelenium().getTable("//table[1].2.0"));
- assertEquals("1.0", getSelenium().getTable("//table[1].2.1"));
- assertEquals("Packaging", getSelenium().getTable("//table[1].3.0"));
- assertEquals("jar", getSelenium().getTable("//table[1].3.1"));
- }
-
- public void testBrowseArtifactDependencies()
- {
- browseArtifact();
-
- clickLinkWithText( "Dependencies" );
- assertLinkPresent( "Info" );
- assertTextPresent( "Dependencies" );
- assertLinkPresent( "Dependency Tree" );
- assertLinkPresent( "Used By" );
- assertLinkPresent( "Mailing Lists" );
-
- assertPage( "Browse Repository" );
- assertTextPresent( "artifact-a" );
- assertLinkPresent( "artifact-b" );
- }
-
- public void testBrowseArtifactDependencyTree()
- {
- browseArtifact();
-
- clickLinkWithText( "Dependency Tree" );
- assertLinkPresent( "Info" );
- assertLinkPresent( "Dependencies" );
- assertTextPresent( "Dependency Tree" );
- assertLinkPresent( "Used By" );
- assertLinkPresent( "Mailing Lists" );
-
- assertPage( "Browse Repository" );
- assertTextPresent( "artifact-a" );
- assertLinkPresent( "artifact-b" );
- assertLinkPresent( "artifact-c" );
- }
-
- public void testBrowseArtifactUsedBy()
- {
- browseArtifact();
-
- clickLinkWithText( "Used By" );
- assertLinkPresent( "Info" );
- assertLinkPresent( "Dependencies" );
- assertLinkPresent( "Dependency Tree" );
- assertTextPresent( "Used By" );
- assertLinkPresent( "Mailing Lists" );
-
- assertPage( "Browse Repository" );
- assertTextPresent( "artifact-a" );
- assertLinkPresent( "artifact-s" );
- }
-
- public void testBrowseArtifactMailingLists()
- {
- browseArtifact();
-
- clickLinkWithText( "Mailing Lists" );
- assertLinkPresent( "Info" );
- assertLinkPresent( "Dependencies" );
- assertLinkPresent( "Dependency Tree" );
- assertLinkPresent( "Used By" );
- assertTextPresent( "Mailing Lists" );
-
- assertPage( "Browse Repository" );
- assertTextPresent( "artifact-a" );
- assertTextPresent( "No mailing lists" );
- }
-
- public void testBrowseUpRepositoryDirectory()
- {
- browseArtifact();
-
- assertLinkPresent( "artifact-a" );
-
- clickLinkWithText( "artifact-a" );
- assertPage( "Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertTextPresent( "artifact-a" );
- assertTextPresent( "Versions" );
- assertLinkPresent( "1.0/" );
- assertLinkPresent( "test" );
-
- clickLinkWithText( "test" );
- assertPage( "Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertTextPresent( "Artifacts" );
- assertLinkPresent( "artifact-a/" );
- assertLinkPresent( "web" );
-
- clickLinkWithText( "web" );
- assertPage( "Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertTextPresent( "Groups" );
- assertLinkPresent( "org.apache.maven.archiva.web.test/" );
- assertLinkPresent( "[top]" );
-
- clickLinkWithText( "[top]" );
- assertPage( "Browse Repository" );
- assertTextPresent( "Browse Repository" );
- assertTextPresent( "Groups" );
- assertLinkPresent( "org.apache.maven.archiva.web.test/" );
- }
-
- public void testBrowseDependencyArtifact()
- {
- browseArtifact();
-
- clickLinkWithText( "Dependencies" );
- assertPage( "Browse Repository" );
- assertTextPresent( "artifact-a" );
- assertLinkPresent( "artifact-b" );
-
- clickLinkWithText( "artifact-b" );
- assertEquals("Group ID", getSelenium().getTable("//table[1].0.0"));
- assertEquals("org.apache.maven.archiva.web.test", getSelenium().getTable("//table[1].0.1"));
- assertEquals("Artifact ID", getSelenium().getTable("//table[1].1.0"));
- assertEquals("artifact-b", getSelenium().getTable("//table[1].1.1"));
- assertEquals("Version", getSelenium().getTable("//table[1].2.0"));
- assertEquals("2.0", getSelenium().getTable("//table[1].2.1"));
- assertEquals("Packaging", getSelenium().getTable("//table[1].3.0"));
- assertEquals("jar", getSelenium().getTable("//table[1].3.1"));
- }
-}
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-/**
- */
-public class LoginTest
- extends AbstractArchivaTestCase
-{
- public void testBadLogin()
- {
- goToLoginPage();
- submitLoginPage( "badUsername", "badPassword", false );
- assertTextPresent( "You have entered an incorrect username and/or password" );
- }
-
- public void testUserLogin()
- {
- createUser( "test-user", "temp-pass" );
-
- goToLoginPage();
- submitLoginPage( "test-user", "temp-pass" );
-
- // change of password required for new users
- if ( getTitle().equals( getTitlePrefix() + "Change Password" ) )
- {
- setFieldValue( "existingPassword", "temp-pass" );
- setFieldValue( "newPassword", "p4ssw0rd" );
- setFieldValue( "newPasswordConfirm", "p4ssw0rd" );
- clickButtonWithValue( "Change Password" );
- }
-
- logout();
-
- deleteUser( "test-user" );
- }
-
- private void createUser( String username, String password )
- {
- goToLoginPage();
- submitLoginPage( adminUsername, adminPassword );
-
- clickLinkWithText( "User Management" );
- //assertPage( "[Admin] User List" );
- //assertLinkNotPresent( username );
- clickButtonWithValue( "Create New User" );
-
- //assertPage( "[Admin] User Create" );
- setFieldValue( "user.username", username );
- setFieldValue( "user.fullName", username + " FullName" );
- setFieldValue( "user.email", username + "@localhost.com" );
- setFieldValue( "user.password", password );
- setFieldValue( "user.confirmPassword", password );
- clickButtonWithValue( "Create User" );
- waitPage();
- //assertPage( "[Admin] User List" );
- //assertLinkPresent( username );
-
- logout();
- }
-
- private void deleteUser( String username )
- {
- goToLoginPage();
- submitLoginPage( adminUsername, adminPassword );
-
- clickLinkWithText( "User Management" );
- assertPage( "[Admin] User List" );
- assertLinkPresent( username );
-
- //this does not work bec the image is pointing to /archiva/archiva/images/pss/admin/delete.gif
- // when ran in selenium
- // clickLinkWithXPath( "//a[@href='/security/userdelete.action?username=" + username + "']" );
- //so instead we use this
- open( "/archiva/security/userdelete.action?username=" + username );
-
- assertPage( "[Admin] User Delete" );
- assertTextPresent( "The following user will be deleted: " + username );
- clickButtonWithValue( "Delete User" );
- assertPage( "[Admin] User List" );
-
- logout();
- }
-}
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-/**
- * Archiva's webapp UI test for adding/editing/deleting managed repositories.
- *
- */
-public class ManagedRepositoryTest
- extends AbstractArchivaTestCase
-{
- private static final String TEST_REPOSITORY_ID = "test-repository-id";
-
- private static final String TEST_REPOSITORY_URL = "test-repository-url";
-
- private static final String TEST_REPOSITORY_NAME = "test-repository-name";
-
- private static final String TEST_REPOSITORY_DIRECTORY = "test-repository-directory";
-
-
- private void clickManagedRepositories()
- {
- goToLoginPage();
- submitLoginPage( adminUsername, adminPassword );
-
- clickLinkWithText( "Managed Repositories" );
- assertPage( "Administration" );
- assertTextPresent( "Administration" );
- }
-
- private void createManagedRepository( String id, String url, String name, String directory )
- {
- clickManagedRepositories();
-
- clickLinkWithText( "Add Repository" );
- assertTextPresent( "Configuration" );
-
- setFieldValue( "addRepository_id", id );
- setFieldValue( "urlName", url );
- setFieldValue( "addRepository_name", name );
- setFieldValue( "addRepository_directory", directory );
-
- clickButtonWithValue( "Add Repository", false );
- }
-
- private void removeManagedRepository( String id )
- {
- logout();
-
- clickManagedRepositories();
-
- clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + id + "')]" );
- clickLinkWithLocator( "deleteRepository_operationdelete-contents", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextNotPresent( TEST_REPOSITORY_ID );
- }
-
- public void testAddRepositoryWithValidValues()
- {
- createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_ID );
-
- removeManagedRepository( TEST_REPOSITORY_ID );
- }
-
- public void testAddRepositoryWithInvalidValues()
- {
- createManagedRepository( "", "", "", "" );
-
- assertTextPresent( "You must enter the repository identifier." );
- assertTextPresent( "You must enter the url name." );
- assertTextPresent( "You must enter the repository name." );
- assertTextPresent( "You must enter the repository directory." );
- }
-
- public void testEditRepositoryWithValidValues()
- {
- createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_NAME );
-
- clickLinkWithLocator( "//a[contains(@href, '/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
- assertPage( "Configuration" );
- assertTextPresent( "Configuration" );
-
- assertTextPresent( "Edit Managed Repository" );
- assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) );
- assertEquals( TEST_REPOSITORY_NAME, getFieldValue( "editRepository_name" ) );
- assertTrue( getFieldValue( "editRepository_directory" ).endsWith( TEST_REPOSITORY_DIRECTORY ) );
-
- setFieldValue( "urlName", "edited-" + TEST_REPOSITORY_URL );
- setFieldValue( "editRepository_name", "edited-" + TEST_REPOSITORY_NAME );
- setFieldValue( "editRepository_directory", "edited-" + TEST_REPOSITORY_DIRECTORY );
-
- clickButtonWithValue( "Update Repository" );
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_ID );
- assertTextPresent( "edited-" + TEST_REPOSITORY_NAME );
-
- removeManagedRepository( TEST_REPOSITORY_ID );
- }
-
- public void testEditRepositoryWithInvalidValues()
- {
- createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_NAME );
-
- clickLinkWithLocator( "//a[contains(@href, '/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
- assertPage( "Configuration" );
- assertTextPresent( "Configuration" );
-
- assertTextPresent( "Edit Managed Repository" );
- assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) );
- assertEquals( TEST_REPOSITORY_NAME, getFieldValue( "editRepository_name" ) );
- assertTrue( getFieldValue( "editRepository_directory" ).endsWith( TEST_REPOSITORY_DIRECTORY ) );
-
- setFieldValue( "urlName", "" );
- setFieldValue( "editRepository_name", "" );
- setFieldValue( "editRepository_directory", "" );
-
- clickButtonWithValue( "Update Repository", false );
- assertTextPresent( "You must enter the url name." );
- assertTextPresent( "You must enter the repository name." );
- assertTextPresent( "You must enter the repository directory." );
-
- removeManagedRepository( TEST_REPOSITORY_ID );
- }
-
- public void testDeleteRepositoryButLeaveUnmodified()
- {
- createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_ID );
-
- clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
- clickLinkWithLocator( "deleteRepository_operationunmodified", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_ID );
-
- removeManagedRepository( TEST_REPOSITORY_ID );
- }
-
- public void testDeleteRepositoryAndContents()
- {
- createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_ID );
-
- removeManagedRepository( TEST_REPOSITORY_ID );
- }
-
- public void testDeleteRepositoryButLeaveContentsUnmodified()
- {
- createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( TEST_REPOSITORY_ID );
-
- clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
- clickLinkWithLocator( "deleteRepository_operationdelete-entry", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextNotPresent( TEST_REPOSITORY_ID );
- }
-}
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-import org.codehaus.plexus.util.cli.CommandLineUtils;
-import org.codehaus.plexus.util.cli.Commandline;
-import org.codehaus.plexus.util.cli.StreamConsumer;
-import org.codehaus.plexus.util.cli.WriterStreamConsumer;
-import org.codehaus.plexus.commandline.ExecutableResolver;
-import org.codehaus.plexus.commandline.DefaultExecutableResolver;
-import org.jdom.input.SAXBuilder;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.output.XMLOutputter;
-import org.jdom.xpath.XPath;
-
-import java.io.File;
-import java.io.Writer;
-import java.io.FileWriter;
-import java.io.FileReader;
-import java.io.BufferedReader;
-import java.util.List;
-import java.util.Collections;
-
-
-/**
- * Test maven connection to archiva
- *
- */
-public class MavenConnectionTest
- extends AbstractArchivaTestCase
-{
- public static final String PATH_TO_ARCHIVA_XML = "/target/appserver-base/conf/archiva.xml";
-
- public static final String PATH_TO_SETTINGS_XML = "/target/local-repo/settings.xml";
-
- public static final String NEW_LOCAL_REPO_VALUE = "/target/local-repo";
-
- /**
- * @throws Exception
- */
- public void setUp()
- throws Exception
- {
- super.setUp();
-
- String newValue = getBasedir() + NEW_LOCAL_REPO_VALUE;
- updateXml( new File( getBasedir(), PATH_TO_ARCHIVA_XML ), newValue );
- updateXml( new File( getBasedir(), PATH_TO_SETTINGS_XML ), newValue );
- }
-
- /**
- * Update localRepository element value
- *
- * @param f
- * @param newValue
- * @throws Exception
- */
- private void updateXml( File f, String newValue )
- throws Exception
- {
- SAXBuilder builder = new SAXBuilder();
- FileReader reader = new FileReader( f );
- Document document = builder.build( reader );
-
- Element localRepository =
- (Element) XPath.newInstance( "./" + "localRepository" ).selectSingleNode( document.getRootElement() );
- localRepository.setText( newValue );
-
- // re-write xml file
- FileWriter writer = new FileWriter( f );
- XMLOutputter output = new XMLOutputter();
- output.output( document, writer );
- }
-
- private void clickManagedRepositories()
- {
- goToLoginPage();
- submitLoginPage( adminUsername, adminPassword );
-
- clickLinkWithText( "Managed Repositories" );
- assertPage( "Administration" );
- assertTextPresent( "Administration" );
- }
-
- private void removeManagedRepository( String id )
- {
- clickManagedRepositories();
-
- clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + id + "')]" );
- clickLinkWithLocator( "deleteRepository_operationdelete-contents", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- }
-
- /**
- * Click Settings from the navigation menu
- */
- private void clickProxiedRepositories()
- {
- goToLoginPage();
- submitLoginPage( adminUsername, adminPassword );
-
- clickLinkWithText( "Proxied Repositories" );
- assertPage( "Administration" );
- assertTextPresent( "Proxied Repositories" );
- }
-
- /**
- * Remove the created test repo
- */
- protected void removeProxiedRepository()
- {
- if ( !isLinkPresent( "Login" ) )
- {
- logout();
- }
-
- clickProxiedRepositories();
-
- if ( isTextPresent( "Delete Repository " ) )
- {
- clickLinkWithText( "Delete Repository" );
- assertPage( "Configuration" );
- clickLinkWithLocator( "deleteProxiedRepository_operationdelete-entry", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextNotPresent( "Test Proxied Repository" );
- }
-
- logout();
- }
-
- /**
- * Execute 'mvn' from commandline
- *
- * @param workingDir
- * @param outputFile
- * @return
- * @throws Exception
- */
- private int executeMaven( String workingDir, File outputFile )
- throws Exception
- {
-
- ExecutableResolver executableResolver = new DefaultExecutableResolver();
-
- String actualExecutable = "mvn";
- File workingDirectory = new File( workingDir );
-
- List path = executableResolver.getDefaultPath();
-
- if ( path == null )
- {
- path = Collections.EMPTY_LIST;
- }
-
- File e = executableResolver.findExecutable( "mvn", path );
-
- if ( e != null )
- {
- actualExecutable = e.getAbsolutePath();
- }
-
- File actualExecutableFile = new File( actualExecutable );
-
- if ( !actualExecutableFile.exists() )
- {
- actualExecutable = "mvn";
- }
-
- // Set command line
- Commandline cmd = new Commandline();
-
- cmd.addSystemEnvironment();
-
- cmd.addEnvironment( "MAVEN_TERMINATE_CMD", "on" );
-
- cmd.setExecutable( actualExecutable );
-
- cmd.setWorkingDirectory( workingDirectory.getAbsolutePath() );
-
- cmd.createArgument().setValue( "clean" );
-
- cmd.createArgument().setValue( "install" );
-
- cmd.createArgument().setValue( "-s" );
-
- cmd.createArgument().setValue( getBasedir() + "/target/local-repo/settings.xml" );
-
- // Excute command
-
- Writer writer = new FileWriter( outputFile );
-
- StreamConsumer consumer = new WriterStreamConsumer( writer );
-
- int exitCode = CommandLineUtils.executeCommandLine( cmd, consumer, consumer );
-
- writer.flush();
-
- writer.close();
-
- return exitCode;
- }
-
- public void testBadDependency()
- throws Exception
- {
- File outputFile = new File( getBasedir(), "/target/projects/bad-dependency/bad-dependency.log" );
- int exitCode = executeMaven( getBasedir() + "/target/projects/bad-dependency", outputFile );
-
- assertEquals( 1, exitCode );
-
- File f = new File( getBasedir(),
- "/target/local-repo/org/apache/mavem/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar" );
- assertTrue( !f.exists() );
-
- BufferedReader reader = new BufferedReader( new FileReader( outputFile ) );
- String str;
- boolean foundSnapshot = false, foundBadDep = false;
-
- while ( ( str = reader.readLine() ) != null )
- {
- //System.out.println( str );
- if ( str.indexOf(
- "mvn install:install-file -DgroupId=org.apache.maven.archiva.web.test -DartifactId=foo-bar" ) != -1 )
- {
- foundSnapshot = true;
- }
- else if ( str.indexOf(
- "mvn install:install-file -DgroupId=org.apache.maven.archiva.web.test -DartifactId=bad-dependency" ) !=
- -1 )
- {
- foundBadDep = true;
- }
- }
-
- reader.close();
-
- assertTrue( foundSnapshot );
- assertTrue( foundBadDep );
- }
-
- /*
- @todo: commented out since tests are currently failing due to MRM-323
-
- public void testDownloadArtifactFromManagedRepo()
- throws Exception
- {
- clickManagedRepositories();
-
- clickLinkWithText( "Add Repository" );
- assertTextPresent( "Configuration" );
-
- setFieldValue( "addRepository_id", "snapshots" );
- setFieldValue( "urlName", "snapshots" );
- setFieldValue( "addRepository_name", "snapshots-repository" );
- setFieldValue( "addRepository_directory", getBasedir() + "/target/snapshots" );
-
- clickButtonWithValue( "Add Repository" );
- assertPage( "Administration" );
-
- clickLinkWithText( "User Management" );
- clickLinkWithLocator( "//a[contains(@href, '/security/useredit.action?username=admin')]" );
- clickLinkWithText( "Edit Roles" );
- checkField( "addRolesToUser_addSelectedRolesRepository Observer - snapshots" );
- checkField( "addRolesToUser_addSelectedRolesRepository Manager - snapshots" );
-
- clickButtonWithValue( "Add Selected Roles" );
- assertPage( "[Admin] User List" );
-
- logout();
-
- File outputFile = new File( getBasedir(), "/target/projects/bad-dependency/bad-dependency2.log" );
- int exitCode = executeMaven( getBasedir() + "/target/projects/bad-dependency",
- outputFile );
-
- assertEquals( 0, exitCode );
-
- File f = new File( getBasedir(),
- "/target/local-repo/org/apache/maven/archiva/web/test/foo-bar-1.0-SNAPSHOT.jar" );
- assertTrue( f.exists() );
-
- BufferedReader reader = new BufferedReader( new FileReader( outputFile ) );
- String str;
-
- while( ( str = reader.readLine() ) != null)
- {
- System.out.println( str );
- }
- reader.close();
-
- removeManagedRepository( "snapshots" );
- }
-
-
- public void testDownloadArtifactFromProxiedRepo()
- throws Exception
- {
- //add managed repository
- clickManagedRepositories();
-
- clickLinkWithText( "Add Repository" );
- assertTextPresent( "Configuration" );
-
- setFieldValue( "addRepository_id", "repository" );
- setFieldValue( "urlName", "repository" );
- setFieldValue( "addRepository_name", "repository" );
- setFieldValue( "addRepository_directory", getBasedir() + "/target/repository" );
-
- clickButtonWithValue( "Add Repository" );
- waitPage();
- assertPage( "Administration" );
-
- clickLinkWithText( "User Management" );
- clickLinkWithLocator( "//a[contains(@href, '/security/useredit.action?username=admin')]" );
- clickLinkWithText( "Edit Roles" );
- checkField( "addRolesToUser_addSelectedRolesRepository Observer - repository" );
- checkField( "addRolesToUser_addSelectedRolesRepository Manager - repository" );
-
- clickButtonWithValue( "Add Selected Roles" );
- assertPage( "[Admin] User List" );
- logout();
-
- //add proxied repository
- clickProxiedRepositories();
- clickLinkWithText( "Add Repository" );
- assertPage( "Configuration" );
- setFieldValue( "id", "central" );
- setFieldValue( "name", "Central Repository" );
- setFieldValue( "url", "http://mirrors.ibiblio.org/pub/mirrors/maven2" );
- clickButtonWithValue( "Add Repository" );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( "Central Repository" );
- assertLinkPresent( "Edit Repository" );
-
- logout();
-
- File outputFile = new File( getBasedir(), "/target/projects/dependency-in-proxied/dependency-in-proxied.log" );
- int exitCode = executeMaven( getBasedir() + "/target/projects/dependency-in-proxied",
- outputFile );
-
- assertEquals( 0, exitCode );
-
- File f = new File( getBasedir(),"/target/repository/com/lowagie/itext/1.3/itext-1.3.jar" );
- assertTrue( f.exists() );
-
- f = new File( getBasedir(), "/target/local-repo/com/lowagie/itext/1.3/itext-1.3.jar" );
- assertTrue( f.exists() );
-
-
- BufferedReader reader = new BufferedReader( new FileReader( outputFile ) );
- String str;
-
- while( ( str = reader.readLine() ) != null)
- {
- System.out.println( str );
- }
- reader.close();
-
- removeProxiedRepository();
- removeManagedRepository( "repository" );
- }
-
- */
-
- /**
- * @throws Exception
- */
- public void tearDown()
- throws Exception
- {
- super.tearDown();
- }
-}
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-/**
- * Test archiva proxied repositories configuration
- *
- */
-public class ProxiedRepositoryTest
- extends AbstractArchivaTestCase
-{
- /**
- *
- */
- protected void initialize()
- {
- super.initialize();
-
- createTestRepo();
- }
-
- /**
- * Create a proxied repo which will be used for testing
- */
- private void createTestRepo()
- {
- clickProxiedRepositories();
-
- if ( isTextPresent( "There are no proxied repositories configured yet." ) )
- {
- clickLinkWithText( "Add Repository" );
- assertPage( "Configuration" );
- setFieldValue( "id", "test-proxied" );
- setFieldValue( "name", "Test Proxied Repository" );
- setFieldValue( "url", "http://test.com/test-proxied" );
- clickButtonWithValue( "Add Repository" );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( "Test Proxied Repository" );
- assertLinkPresent( "Edit Repository" );
- }
-
- logout();
- }
-
- /**
- * Test add proxied repo with invalid data
- */
- public void testInvalidAddProxiedRepoConfiguration()
- {
- clickProxiedRepositories();
-
- clickLinkWithText( "Add Repository" );
- assertPage( "Configuration" );
-
- clickButtonWithValue( "Add Repository", false );
- assertPage( "Configuration" );
- assertTextPresent( "You must enter the repository identifier." );
- assertTextPresent( "You must enter the repository name." );
- assertTextPresent( "You must enter the repository URL." );
-
- logout();
- }
-
- /**
- * Test edit proxied repo with valid data
- */
- public void testValidEditProxiedRepoConfiguration()
- {
- clickProxiedRepositories();
- clickLinkWithText( "Edit Repository" );
-
- assertPage( "Configuration" );
- assertTextPresent( "Edit Proxied Repository" );
- setFieldValue( "name", "Test Valid" );
- setFieldValue( "url", "http://valid.org/test-valid" );
- clickButtonWithValue( "Update Repository" );
- waitPage();
-
- assertPage( "Administration" );
- assertTextPresent( "Test Valid" );
- assertLinkPresent( "Edit Repository" );
-
- logout();
- }
-
- /**
- * Test edit proxied repo with invalid data
- */
- public void testInvalidEditProxiedRepoConfiguration()
- {
- clickProxiedRepositories();
- clickLinkWithText( "Edit Repository" );
-
- assertPage( "Configuration" );
- assertTextPresent( "Edit Proxied Repository" );
- setFieldValue( "name", "" );
- setFieldValue( "url", "" );
- clickButtonWithValue( "Update Repository", false );
-
- assertPage( "Configuration" );
- assertTextPresent( "You must enter the repository name." );
- assertTextPresent( "You must enter the repository URL." );
-
- logout();
- }
-
- /**
- * Test delete repository, unmodified entry and contents
- */
- public void testDeleteRepoUnmodified()
- {
- clickProxiedRepositories();
- clickLinkWithText( "Delete Repository" );
-
- assertPage( "Configuration" );
- assertTextPresent( "Delete Proxied Repository" );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextPresent( "Test Proxied Repository" );
-
- logout();
- }
-
- /**
- * Test delete repository including contents
- */
- public void testDeleteRepoRemoveFromDisk()
- {
- clickProxiedRepositories();
- clickLinkWithText( "Delete Repository" );
-
- assertPage( "Configuration" );
- clickLinkWithLocator( "deleteProxiedRepository_operationdelete-contents", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextNotPresent( "Test Proxied Repository" );
-
- logout();
- }
-
- /**
- * Test delete repository, unmodified contents/entry deleted
- */
- public void testDeleteRepoUnmodifiedContents()
- {
- clickProxiedRepositories();
- clickLinkWithText( "Delete Repository" );
-
- assertPage( "Configuration" );
- clickLinkWithLocator( "deleteProxiedRepository_operationdelete-entry", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextNotPresent( "Test Proxied Repository" );
-
- logout();
- }
-
- /**
- * Click Settings from the navigation menu
- */
- private void clickProxiedRepositories()
- {
- goToLoginPage();
- submitLoginPage( adminUsername, adminPassword );
-
- clickLinkWithText( "Proxied Repositories" );
- assertPage( "Administration" );
- assertTextPresent( "Proxied Repositories" );
- }
-
- /**
- * Remove the created test repo
- */
- protected void removeTestRepo()
- {
- if ( !isLinkPresent( "Login" ) )
- {
- logout();
- }
-
- clickProxiedRepositories();
-
- if ( isTextPresent( "Delete Repository " ) )
- {
- clickLinkWithText( "Delete Repository" );
- assertPage( "Configuration" );
- clickLinkWithLocator( "deleteProxiedRepository_operationdelete-entry", false );
- clickButtonWithValue( "Go" );
-
- assertPage( "Administration" );
- assertTextNotPresent( "Test Proxied Repository" );
- }
-
- logout();
- }
-
- /**
- * Revert to original value
- *
- * @throws Exception
- */
- public void tearDown()
- throws Exception
- {
- removeTestRepo();
-
- super.tearDown();
- }
-
-}
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-public class SearchTest
- extends AbstractArchivaTestCase
-{
- private static int PAGE_LOAD_WAIT = 1500;
-
- public void testSearchNonExistingArtifact()
- {
- searchForArtifact( "asdf" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- assertTextPresent( "No results found" );
- }
-
- public void testSearchExistingArtifact()
- {
- searchForArtifact( "artifact-a" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- assertPage( "Search Results" );
-
- assertTextPresent( "artifact-a" );
- }
-
- public void testViewSearchedArtifact()
- {
- // test viewing artifact (header link) listed in search results
-
- searchForArtifact( "artifact-a" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- getSelenium().click( "link=artifact-a" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- assertPage( "Browse Repository" );
-
- assertTextPresent( "artifact-a" );
-
- //test viewing artifact listed in search results
-
- searchForArtifact( "artifact-a" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- clickLinkWithText( "1.0" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- assertPage( "Browse Repository" );
-
- assertTextPresent( "Artifact ID" );
-
- assertTextPresent( "artifact-a" );
-
- assertTextPresent( "Version" );
-
- assertTextPresent( "1.0" );
- }
-
- public void testBrowseSearchedArtifact()
- {
- // test viewing artifact listed in search results
-
- searchForArtifact( "artifact-a" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- getSelenium().click("//p[1]/span/a[1]");
-
- waitPage( PAGE_LOAD_WAIT );
-
- assertPage( "Browse Repository" );
-
- assertTextPresent( "artifact-a" );
- }
-
- public void testBrowseRepoFromSearchResults()
- {
- searchForArtifact( "artifact-a" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- clickLinkWithText( "[top]" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- assertPage( "Browse Repository" );
- }
-
- private void searchForArtifact( String artifactId )
- {
- if ( !"Maven Archiva :: Quick Search".equals( getSelenium().getTitle() ) )
- {
- clickLinkWithText( "Search" );
-
- waitPage( PAGE_LOAD_WAIT );
-
- assertPage( "Quick Search" );
- }
-
- setFieldValue( "quickSearch_q", artifactId );
-
- clickButtonWithValue( "Submit" );
- }
-}
\ No newline at end of file
+++ /dev/null
-package org.apache.maven.archiva.web.test;
-
-/*
- * 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.
- */
-
-
-/**
- * Test archiva 'Settings'
- *
- */
-public class SettingsTest
- extends AbstractArchivaTestCase
-{
- /*
- public void testRunIndexer()
- {
- clickSettings();
-
- clickLinkWithText( "Run Now" );
- waitPage();
-
- assertPage( "Administration" );
-
- logout();
- } */
-
- public void testEditIndexDirectory()
- {
- clickEditConfiguration();
-
- setFieldValue( "indexPath", getBasedir() + "/target/web-ui-index" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Administration" );
- assertTextPresent( getBasedir() + "/target/web-ui-index" );
-
- logout();
- }
-
- public void testValidIndexSchedule()
- {
- clickEditConfiguration();
-
- setFieldValue( "second", "*" );
- setFieldValue( "minute", "*" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Administration" );
-
- logout();
- }
-
- public void testInvalidIndexSchedule()
- {
- clickEditConfiguration();
- setFieldValue( "second", "asdf" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Configuration" );
- assertTextPresent( "Invalid Cron Expression" );
-
- logout();
- }
-
- public void testEditProxyHost()
- {
- clickEditConfiguration();
-
- setFieldValue( "proxy.host", "asdf" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Administration" );
-
- logout();
- }
-
- public void testValidProxyPort()
- {
- clickEditConfiguration();
-
- setFieldValue( "proxy.port", "32143" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Administration" );
-
- logout();
- }
-
- public void testInvalidProxyPort()
- {
- clickEditConfiguration();
- setFieldValue( "proxy.port", "asdf" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Configuration" );
- assertTextPresent( "Port" );
- assertTextPresent( "Invalid field value for field \"proxy.port\"" );
-
- setFieldValue( "proxy.port", "-1" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Administration" );
-
- logout();
- }
-
- public void testEditProxyCredentials()
- {
- clickEditConfiguration();
-
- setFieldValue( "proxy.username", "asdf" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Administration" );
-
- logout();
- }
-
- /**
- * Click Edit Configuration link
- */
- private void clickEditConfiguration()
- {
- clickSettings();
-
- clickLinkWithText( "Edit Configuration" );
- assertPage( "Configuration" );
- }
-
- /**
- * Click Settings from the navigation menu
- */
- private void clickSettings()
- {
- goToLoginPage();
- submitLoginPage( adminUsername, adminPassword );
-
- clickLinkWithText( "Settings" );
- assertPage( "Administration" );
- }
-
- public void tearDown()
- throws Exception
- {
- clickEditConfiguration();
- setFieldValue( "indexPath", getBasedir() + "/target/web-ui-index" );
- setFieldValue( "second", "0" );
- setFieldValue( "minute", "0,30" );
- setFieldValue( "hour", "*" );
- setFieldValue( "dayOfMonth", "*" );
- setFieldValue( "month", "*" );
- setFieldValue( "dayOfWeek", "?" );
- setFieldValue( "year", "" );
- setFieldValue( "proxy.port", "8080" );
- setFieldValue( "proxy.host", "" );
- setFieldValue( "proxy.username", "" );
- setFieldValue( "proxy.password", "" );
- clickButtonWithValue( "Save Configuration" );
- waitPage();
- assertPage( "Administration" );
-
- logout();
-
- super.tearDown();
- }
-
-}