[MRM-1276] Selenium tests need a clean up

- fixed poor formatting in the source code (tabs, etc) following the Maven Code Style



git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@931475 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Marecor M. Baclay 2010-04-07 09:27:05 +00:00
parent 45100a8806
commit ddeaa798b6
24 changed files with 2250 additions and 2253 deletions

View File

@ -23,29 +23,32 @@ import org.apache.archiva.web.test.parent.AbstractArchivaTest;
import org.testng.annotations.Test; import org.testng.annotations.Test;
@Test( groups = { "appearance" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true ) @Test( groups = { "appearance" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
public class AppearanceTest extends AbstractArchivaTest public class AppearanceTest
extends AbstractArchivaTest
{ {
public void testAddAppearanceNullValues() public void testAddAppearanceNullValues()
{ {
goToAppearancePage(); goToAppearancePage();
clickLinkWithText( "Edit" ); clickLinkWithText( "Edit" );
addEditAppearance( "", "", "" ); addEditAppearance( "", "", "" );
assertTextPresent( "You must enter a name" ); assertTextPresent( "You must enter a name" );
} }
@Test( dependsOnMethods = { "testAddAppearanceNullValues" }) @Test( dependsOnMethods = { "testAddAppearanceNullValues" } )
public void testAddAppearanceValidValues() public void testAddAppearanceValidValues()
{ {
addEditAppearance( "The Apache Software Foundation" , "http://www.apache.org/" , "http://www.apache.org/images/asf_logo_wide.gifs" ); addEditAppearance( "The Apache Software Foundation", "http://www.apache.org/",
assertTextPresent( "The Apache Software Foundation" ); "http://www.apache.org/images/asf_logo_wide.gifs" );
} assertTextPresent( "The Apache Software Foundation" );
}
@Test( dependsOnMethods = { "testAddAppearanceValidValues" }) @Test( dependsOnMethods = { "testAddAppearanceValidValues" } )
public void testEditAppearance() public void testEditAppearance()
{ {
clickLinkWithText( "Edit" ); clickLinkWithText( "Edit" );
addEditAppearance( "Apache Software Foundation" , "http://www.apache.org/" , "http://www.apache.org/images/asf_logo_wide.gifs" ); addEditAppearance( "Apache Software Foundation", "http://www.apache.org/",
assertTextPresent( "Apache Software Foundation" ); "http://www.apache.org/images/asf_logo_wide.gifs" );
} assertTextPresent( "Apache Software Foundation" );
}
} }

View File

@ -29,7 +29,7 @@ import org.testng.annotations.Test;
@Test( groups = { "about" }, alwaysRun = true ) @Test( groups = { "about" }, alwaysRun = true )
public class ArchivaAdminTest public class ArchivaAdminTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
@Override @Override
@ -50,7 +50,9 @@ public class ArchivaAdminTest
@BeforeTest @BeforeTest
@Parameters( { "baseUrl", "browser", "seleniumHost", "seleniumPort" } ) @Parameters( { "baseUrl", "browser", "seleniumHost", "seleniumPort" } )
public void initializeArchiva( String baseUrl, String browser, @Optional( "localhost" ) String seleniumHost, @Optional( "4444" ) int seleniumPort ) throws Exception public void initializeArchiva( String baseUrl, String browser, @Optional( "localhost" ) String seleniumHost,
@Optional( "4444" ) int seleniumPort )
throws Exception
{ {
super.open( baseUrl, browser, seleniumHost, seleniumPort ); super.open( baseUrl, browser, seleniumHost, seleniumPort );
getSelenium().open( baseUrl ); getSelenium().open( baseUrl );
@ -66,7 +68,7 @@ public class ArchivaAdminTest
assertUserLoggedIn( username ); assertUserLoggedIn( username );
submit(); submit();
clickLinkWithText( "Logout" ); clickLinkWithText( "Logout" );
} }
} }
} }

View File

@ -24,144 +24,145 @@ import org.testng.annotations.Test;
@Test( groups = { "artifactmanagement" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( groups = { "artifactmanagement" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public class ArtifactManagementTest public class ArtifactManagementTest
extends AbstractArtifactManagementTest extends AbstractArtifactManagementTest
{ {
public void testAddArtifactNullValues()
{
goToAddArtifactPage();
clickButtonWithValue( "Submit" );
assertTextPresent( "Please add a file to upload." );
assertTextPresent( "Invalid version." );
assertTextPresent( "You must enter a groupId." );
assertTextPresent( "You must enter an artifactId." );
assertTextPresent( "You must enter a version" );
assertTextPresent( "You must enter a packaging" );
}
public void testAddArtifactNullValues() @Test( dependsOnMethods = { "testAddArtifactNullValues" } )
{ public void testAddArtifactNoGroupId()
goToAddArtifactPage(); {
clickButtonWithValue( "Submit" ); addArtifact( " ", getArtifactId(), getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId() );
assertTextPresent( "Please add a file to upload." ); assertTextPresent( "You must enter a groupId." );
assertTextPresent( "Invalid version." ); }
assertTextPresent( "You must enter a groupId." );
assertTextPresent( "You must enter an artifactId." );
assertTextPresent( "You must enter a version" );
assertTextPresent( "You must enter a packaging" );
}
@Test(dependsOnMethods = { "testAddArtifactNullValues" } ) @Test( dependsOnMethods = { "testAddArtifactNoGroupId" } )
public void testAddArtifactNoGroupId() public void testAddArtifactNoArtifactId()
{ {
addArtifact( " " , getArtifactId(), getVersion(), getPackaging() , getArtifactFilePath(), getRepositoryId() );
assertTextPresent( "You must enter a groupId." );
}
@Test(dependsOnMethods = { "testAddArtifactNoGroupId" } ) addArtifact( getGroupId(), " ", getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId() );
public void testAddArtifactNoArtifactId() assertTextPresent( "You must enter an artifactId." );
{ }
addArtifact( getGroupId() , " ", getVersion(), getPackaging() , getArtifactFilePath(), getRepositoryId() ); @Test( dependsOnMethods = { "testAddArtifactNoGroupId" } )
assertTextPresent( "You must enter an artifactId." ); public void testAddArtifactNoVersion()
} {
addArtifact( getGroupId(), getArtifactId(), " ", getPackaging(), getArtifactFilePath(), getRepositoryId() );
assertTextPresent( "You must enter a version." );
}
@Test(dependsOnMethods = { "testAddArtifactNoGroupId" } ) @Test( dependsOnMethods = { "testAddArtifactNoGroupId" } )
public void testAddArtifactNoVersion() public void testAddArtifactInvalidVersion()
{ {
addArtifact( getGroupId() , getArtifactId(), " ", getPackaging() , getArtifactFilePath(), getRepositoryId() ); addArtifact( getGroupId(), getArtifactId(), "asdf", getPackaging(), getArtifactFilePath(), getRepositoryId() );
assertTextPresent( "You must enter a version." ); assertTextPresent( "Invalid version." );
} }
@Test(dependsOnMethods = { "testAddArtifactNoGroupId" } ) @Test( dependsOnMethods = { "testAddArtifactNoGroupId" } )
public void testAddArtifactInvalidVersion() public void testAddArtifactNoPackaging()
{ {
addArtifact( getGroupId() , getArtifactId(), "asdf", getPackaging() , getArtifactFilePath(), getRepositoryId() ); addArtifact( getGroupId(), getArtifactId(), getVersion(), " ", getArtifactFilePath(), getRepositoryId() );
assertTextPresent( "Invalid version." ); assertTextPresent( "You must enter a packaging." );
} }
@Test(dependsOnMethods = { "testAddArtifactNoGroupId" } ) @Test( dependsOnMethods = { "testAddArtifactNoGroupId" } )
public void testAddArtifactNoPackaging() public void testAddArtifactNoFilePath()
{ {
addArtifact( getGroupId() , getArtifactId(), getVersion(), " " , getArtifactFilePath(), getRepositoryId() ); addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), " ", getRepositoryId() );
assertTextPresent( "You must enter a packaging." ); assertTextPresent( "Please add a file to upload." );
} }
@Test(dependsOnMethods = { "testAddArtifactNoGroupId" } ) @Test( groups = "requiresUpload" )
public void testAddArtifactNoFilePath() public void testAddArtifactValidValues()
{ {
addArtifact( getGroupId() , getArtifactId(), getVersion(), getPackaging() , " ", getRepositoryId() ); String groupId = getProperty( "VALIDARTIFACT_GROUPID" );
assertTextPresent( "Please add a file to upload." ); String artifactId = getProperty( "VALIDARTIFACT_ARTIFACTID" );
}
@Test(groups = "requiresUpload") addArtifact( groupId, artifactId, getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId() );
public void testAddArtifactValidValues() assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion()
{ + "' was successfully deployed to repository 'internal'" );
String groupId = getProperty( "VALIDARTIFACT_GROUPID" ); }
String artifactId = getProperty( "VALIDARTIFACT_ARTIFACTID" );
addArtifact( groupId , artifactId, getVersion(), getPackaging() , getArtifactFilePath(), getRepositoryId() );
assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion() + "' was successfully deployed to repository 'internal'" );
}
@Test( groups = "requiresUpload" ) @Test( groups = "requiresUpload" )
public void testDotNetTypes() public void testDotNetTypes()
{ {
String groupId = getProperty( "GROUPID_DOTNETARTIFACT" ); String groupId = getProperty( "GROUPID_DOTNETARTIFACT" );
String artifactId = getProperty( "ARTIFACTID_DOTNETARTIFACT" ); String artifactId = getProperty( "ARTIFACTID_DOTNETARTIFACT" );
String packaging = getProperty ( "PACKAGING_DOTNETARTIFACT" ); String packaging = getProperty( "PACKAGING_DOTNETARTIFACT" );
addArtifact( groupId, artifactId, getVersion(), packaging, getArtifactFilePath(), addArtifact( groupId, artifactId, getVersion(), packaging, getArtifactFilePath(), getRepositoryId() );
getRepositoryId() ); assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion()
assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion() + "' was successfully deployed to repository 'internal'" ); + "' was successfully deployed to repository 'internal'" );
getSelenium().open( baseUrl + "/browse/" + groupId + "/" + artifactId + "/" + getVersion() ); getSelenium().open( baseUrl + "/browse/" + groupId + "/" + artifactId + "/" + getVersion() );
waitPage(); waitPage();
assertTextPresent( "<type>library</type>" ); assertTextPresent( "<type>library</type>" );
String basePath = String basePath =
"/archiva/repository/internal/" + groupId + "/" + artifactId + "/" + getVersion() + "/" + artifactId + "-" + "/archiva/repository/internal/" + groupId + "/" + artifactId + "/" + getVersion() + "/" + artifactId + "-"
getVersion(); + getVersion();
assertLinkPresent( ".NET Library" ); assertLinkPresent( ".NET Library" );
assertElementPresent( "//a[@href='" + basePath + ".dll']" ); assertElementPresent( "//a[@href='" + basePath + ".dll']" );
assertElementPresent( "//a[@href='" + basePath + ".pom']" ); assertElementPresent( "//a[@href='" + basePath + ".pom']" );
} }
//MRM-747 // MRM-747
@Test(groups = "requiresUpload") @Test( groups = "requiresUpload" )
public void testAddArtifactBlockRedeployments() public void testAddArtifactBlockRedeployments()
{ {
addArtifact( getGroupId() , getArtifactId(), getVersion(), getPackaging() , getArtifactFilePath(), getRepositoryId() ); addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getArtifactFilePath(),
assertTextPresent( "Overwriting released artifacts in repository '" + getRepositoryId() + "' is not allowed." ); getRepositoryId() );
} assertTextPresent( "Overwriting released artifacts in repository '" + getRepositoryId() + "' is not allowed." );
}
@Test(groups = "requiresUpload") @Test( groups = "requiresUpload" )
public void testDeleteArtifact() public void testDeleteArtifact()
{ {
//prep // prep
String groupId = getProperty( "GROUPID1" ); String groupId = getProperty( "GROUPID1" );
String artifactId = getProperty( "ARTIFACTID1" ); String artifactId = getProperty( "ARTIFACTID1" );
String version = getProperty( "VERSION1" ); String version = getProperty( "VERSION1" );
String packaging = getProperty( "PACKAGING1" ); String packaging = getProperty( "PACKAGING1" );
String repositoryId = getProperty( "REPOSITORYID1" ); String repositoryId = getProperty( "REPOSITORYID1" );
// TODO: do this differently as it only works in Firefox's chrome mode // TODO: do this differently as it only works in Firefox's chrome mode
addArtifact( groupId , artifactId, version, packaging , getArtifactFilePath(), repositoryId ); addArtifact( groupId, artifactId, version, packaging, getArtifactFilePath(), repositoryId );
assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deployed to repository 'internal'" ); assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deployed to repository 'internal'" );
deleteArtifact( "delete", "delete", "1.0", "internal"); deleteArtifact( "delete", "delete", "1.0", "internal" );
assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deleted from repository 'internal'" ); assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deleted from repository 'internal'" );
} }
public void testDeleteArtifactNoGroupId() public void testDeleteArtifactNoGroupId()
{ {
deleteArtifact( " ", "delete", "1.0", "internal"); deleteArtifact( " ", "delete", "1.0", "internal" );
assertTextPresent( "You must enter a groupId." ); assertTextPresent( "You must enter a groupId." );
} }
public void testDeleteArtifactNoArtifactId() public void testDeleteArtifactNoArtifactId()
{ {
deleteArtifact( "delete", " ", "1.0", "internal"); deleteArtifact( "delete", " ", "1.0", "internal" );
assertTextPresent( "You must enter an artifactId." ); assertTextPresent( "You must enter an artifactId." );
} }
public void testDeleteArtifactNoVersion() public void testDeleteArtifactNoVersion()
{ {
deleteArtifact( "delete", "delete", " ", "internal"); deleteArtifact( "delete", "delete", " ", "internal" );
assertTextPresent( "Invalid version." ); assertTextPresent( "Invalid version." );
assertTextPresent( "You must enter a version." ); assertTextPresent( "You must enter a version." );
} }
public void testDeleteArtifactInvalidVersion() public void testDeleteArtifactInvalidVersion()
{ {
deleteArtifact( "delete", "delete", "asdf", "internal"); deleteArtifact( "delete", "delete", "asdf", "internal" );
assertTextPresent( "Invalid version." ); assertTextPresent( "Invalid version." );
} }
} }

View File

@ -45,7 +45,7 @@ public class AuditLogsReportTest
assertButtonWithValuePresent( "View Audit Log" ); assertButtonWithValuePresent( "View Audit Log" );
} }
@Test(dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public void testAuditLogsReport() public void testAuditLogsReport()
{ {
goToAuditLogReports(); goToAuditLogReports();
@ -53,7 +53,7 @@ public class AuditLogsReportTest
assertTextPresent( "Latest Events" ); assertTextPresent( "Latest Events" );
} }
@Test(dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public void testViewAuditLogsNoDataFound() public void testViewAuditLogsNoDataFound()
{ {
goToAuditLogReports(); goToAuditLogReports();
@ -68,7 +68,7 @@ public class AuditLogsReportTest
} }
// TODO: add test for adding via WebDAV // TODO: add test for adding via WebDAV
@Test (dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload") @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload" )
public void testViewAuditLogsDataFound() public void testViewAuditLogsDataFound()
{ {
goToAuditLogReports(); goToAuditLogReports();
@ -81,15 +81,15 @@ public class AuditLogsReportTest
assertAuditLogsReportPage(); assertAuditLogsReportPage();
assertTextPresent( "Results" ); assertTextPresent( "Results" );
assertTextNotPresent( "No audit logs found." ); assertTextNotPresent( "No audit logs found." );
assertTextPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + assertTextPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "."
"." + getProperty( "ARTIFACT_PACKAGING" ) ); + getProperty( "ARTIFACT_PACKAGING" ) );
assertTextPresent( "Uploaded File" ); assertTextPresent( "Uploaded File" );
assertTextPresent( "internal" ); assertTextPresent( "internal" );
assertTextPresent( "admin" ); assertTextPresent( "admin" );
} }
// TODO: add test for adding via WebDAV // TODO: add test for adding via WebDAV
@Test (dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload") @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload" )
public void testViewAuditLogsOnlyArtifactIdIsSpecified() public void testViewAuditLogsOnlyArtifactIdIsSpecified()
{ {
goToAuditLogReports(); goToAuditLogReports();
@ -103,13 +103,13 @@ public class AuditLogsReportTest
assertTextPresent( "If you specify an artifact ID, you must specify a group ID" ); assertTextPresent( "If you specify an artifact ID, you must specify a group ID" );
assertTextNotPresent( "Results" ); assertTextNotPresent( "Results" );
assertTextNotPresent( "No audit logs found." ); assertTextNotPresent( "No audit logs found." );
assertTextNotPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + assertTextNotPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "."
"." + getProperty( "ARTIFACT_PACKAGING" ) ); + getProperty( "ARTIFACT_PACKAGING" ) );
assertTextNotPresent( "Uploaded File" ); assertTextNotPresent( "Uploaded File" );
} }
// TODO: add test for adding via WebDAV // TODO: add test for adding via WebDAV
@Test (dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload") @Test( dependsOnMethods = { "testAddArtifactValidValues" }, groups = "requiresUpload" )
public void testViewAuditLogsForAllRepositories() public void testViewAuditLogsForAllRepositories()
{ {
goToAuditLogReports(); goToAuditLogReports();
@ -121,14 +121,14 @@ public class AuditLogsReportTest
assertAuditLogsReportPage(); assertAuditLogsReportPage();
assertTextPresent( "Results" ); assertTextPresent( "Results" );
assertTextNotPresent( "No audit logs found." ); assertTextNotPresent( "No audit logs found." );
assertTextPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + assertTextPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "."
"." + getProperty( "ARTIFACT_PACKAGING" ) ); + getProperty( "ARTIFACT_PACKAGING" ) );
assertTextPresent( "Uploaded File" ); assertTextPresent( "Uploaded File" );
assertTextPresent( "internal" ); assertTextPresent( "internal" );
assertTextPresent( "admin" ); assertTextPresent( "admin" );
} }
@Test (dependsOnMethods = { "testAddArtifactValidValues", "testUserWithRepoManagerInternalRole" }, groups = "requiresUpload") @Test( dependsOnMethods = { "testAddArtifactValidValues", "testUserWithRepoManagerInternalRole" }, groups = "requiresUpload" )
public void testViewAuditLogsViewAuditEventsForManageableRepositoriesOnly() public void testViewAuditLogsViewAuditEventsForManageableRepositoriesOnly()
{ {
String groupId = getProperty( "SNAPSHOT_GROUPID" ); String groupId = getProperty( "SNAPSHOT_GROUPID" );
@ -138,8 +138,8 @@ public class AuditLogsReportTest
String packaging = getProperty( "SNAPSHOT_PACKAGING" ); String packaging = getProperty( "SNAPSHOT_PACKAGING" );
addArtifact( groupId, artifactId, version, packaging, getProperty( "SNAPSHOT_ARTIFACTFILEPATH" ), repo ); addArtifact( groupId, artifactId, version, packaging, getProperty( "SNAPSHOT_ARTIFACTFILEPATH" ), repo );
assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + version + assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + version
"' was successfully deployed to repository '" + repo + "'" ); + "' was successfully deployed to repository '" + repo + "'" );
clickLinkWithText( "Logout" ); clickLinkWithText( "Logout" );
@ -154,7 +154,8 @@ public class AuditLogsReportTest
assertAuditLogsReportPage(); assertAuditLogsReportPage();
assertTextPresent( "Results" ); assertTextPresent( "Results" );
assertTextNotPresent( "No audit logs found." ); assertTextNotPresent( "No audit logs found." );
assertTextPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "." + packaging ); assertTextPresent( getProperty( "VALIDARTIFACT_ARTIFACTID" ) + "-" + getProperty( "ARTIFACT_VERSION" ) + "."
+ packaging );
assertTextPresent( "Uploaded File" ); assertTextPresent( "Uploaded File" );
assertTextPresent( "internal" ); assertTextPresent( "internal" );
assertTextPresent( "admin" ); assertTextPresent( "admin" );

View File

@ -26,26 +26,26 @@ import org.testng.annotations.Test;
@Test( groups = { "browse" }, dependsOnMethods = { "testAddArtifactNullValues" } ) @Test( groups = { "browse" }, dependsOnMethods = { "testAddArtifactNullValues" } )
public class BrowseTest public class BrowseTest
extends AbstractBrowseTest extends AbstractBrowseTest
{ {
public void testBrowseArtifact() public void testBrowseArtifact()
{ {
goToBrowsePage(); goToBrowsePage();
assertBrowsePage(); assertBrowsePage();
} }
public void testClickArtifactFromBrowse() public void testClickArtifactFromBrowse()
{ {
goToBrowsePage(); goToBrowsePage();
assertBrowsePage(); assertBrowsePage();
clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" ); clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
assertPage( "Apache Archiva \\ Browse Repository" ); assertPage( "Apache Archiva \\ Browse Repository" );
assertTextPresent( "Artifacts" ); assertTextPresent( "Artifacts" );
} }
// MRM-1278 // MRM-1278
@Test(groups = {"requiresUpload"}) @Test( groups = { "requiresUpload" } )
public void testCorrectRepositoryInBrowse() public void testCorrectRepositoryInBrowse()
{ {
String releasesRepo = getProperty( "RELEASES_REPOSITORY" ); String releasesRepo = getProperty( "RELEASES_REPOSITORY" );
@ -54,17 +54,19 @@ public class BrowseTest
goToRepositoriesPage(); goToRepositoriesPage();
clickLinkWithText( "Add" ); clickLinkWithText( "Add" );
addManagedRepository( getProperty( "RELEASES_REPOSITORY" ), "Releases Repository", addManagedRepository( getProperty( "RELEASES_REPOSITORY" ), "Releases Repository",
new File( getBasedir(), "target/repository/releases" ).getPath(), "", "Maven 2.x Repository", new File( getBasedir(), "target/repository/releases" ).getPath(), "",
"0 0 * * * ?", "", "" ); "Maven 2.x Repository", "0 0 * * * ?", "", "" );
assertTextPresent( "Releases Repository" ); assertTextPresent( "Releases Repository" );
String snapshotsRepo = getProperty( "SNAPSHOTS_REPOSITORY" ); String snapshotsRepo = getProperty( "SNAPSHOTS_REPOSITORY" );
String path = "src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar"; String path =
"src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar";
// TODO: do this differently as uploading doesn't work on browsers other than *chrome (below as well) // TODO: do this differently as uploading doesn't work on browsers other than *chrome (below as well)
// upload a snapshot artifact to repository 'releases' // upload a snapshot artifact to repository 'releases'
addArtifact( "archiva", "archiva-webapp", "1.0-SNAPSHOT", "jar", path, releasesRepo ); addArtifact( "archiva", "archiva-webapp", "1.0-SNAPSHOT", "jar", path, releasesRepo );
assertTextPresent( "Artifact 'archiva:archiva-webapp:1.0-SNAPSHOT' was successfully deployed to repository '" + releasesRepo + "'" ); assertTextPresent( "Artifact 'archiva:archiva-webapp:1.0-SNAPSHOT' was successfully deployed to repository '"
+ releasesRepo + "'" );
goToBrowsePage(); goToBrowsePage();
assertBrowsePage(); assertBrowsePage();
@ -74,7 +76,8 @@ public class BrowseTest
// upload a snapshot artifact to repository 'snapshots' // upload a snapshot artifact to repository 'snapshots'
addArtifact( "continuum", "continuum-core", "1.0-SNAPSHOT", "jar", path, snapshotsRepo ); addArtifact( "continuum", "continuum-core", "1.0-SNAPSHOT", "jar", path, snapshotsRepo );
assertTextPresent( "Artifact 'continuum:continuum-core:1.0-SNAPSHOT' was successfully deployed to repository '" + snapshotsRepo + "'" ); assertTextPresent( "Artifact 'continuum:continuum-core:1.0-SNAPSHOT' was successfully deployed to repository '"
+ snapshotsRepo + "'" );
goToBrowsePage(); goToBrowsePage();
assertBrowsePage(); assertBrowsePage();
@ -84,7 +87,8 @@ public class BrowseTest
} }
private void assertArtifactInfoPage( String version, String artifactInfoRepositoryId, String artifactInfoGroupId, private void assertArtifactInfoPage( String version, String artifactInfoRepositoryId, String artifactInfoGroupId,
String artifactInfoArtifactId, String artifactInfoVersion, String artifactInfoPackaging ) String artifactInfoArtifactId, String artifactInfoVersion,
String artifactInfoPackaging )
{ {
clickLinkWithText( version ); clickLinkWithText( version );
assertPage( "Apache Archiva \\ Browse Repository" ); assertPage( "Apache Archiva \\ Browse Repository" );

View File

@ -24,22 +24,22 @@ import org.testng.annotations.Test;
@Test( groups = { "findartifact" }, sequential = true ) @Test( groups = { "findartifact" }, sequential = true )
public class FindArtifactTest public class FindArtifactTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
public void testFindArtifactNullValues() public void testFindArtifactNullValues()
{ {
goToFindArtifactPage(); goToFindArtifactPage();
clickButtonWithValue( "Search" ); clickButtonWithValue( "Search" );
assertTextPresent( "You must select a file, or enter the checksum. If the file was given and you receive this message, there may have been an error generating the checksum." ); assertTextPresent( "You must select a file, or enter the checksum. If the file was given and you receive this message, there may have been an error generating the checksum." );
} }
public void testFindArtifactUsingChecksum() public void testFindArtifactUsingChecksum()
{ {
goToFindArtifactPage(); goToFindArtifactPage();
setFieldValue( "checksumSearch_q" , "8e896baea663a45d7bd2737f8e464481" ); setFieldValue( "checksumSearch_q", "8e896baea663a45d7bd2737f8e464481" );
clickButtonWithValue( "Search" ); clickButtonWithValue( "Search" );
assertTextPresent( "No results found" ); assertTextPresent( "No results found" );
} }
// TODO: test using file upload on Firefox versions that support getAsBinary (ie, no applet) // TODO: test using file upload on Firefox versions that support getAsBinary (ie, no applet)
} }

View File

@ -24,52 +24,52 @@ import org.testng.annotations.Test;
@Test( groups = { "legacysupport" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true ) @Test( groups = { "legacysupport" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
public class LegacySupportTest public class LegacySupportTest
extends AbstractArtifactManagementTest extends AbstractArtifactManagementTest
{ {
public void testAddLegacyArtifact_NullValues() public void testAddLegacyArtifact_NullValues()
{ {
goToLegacySupportPage(); goToLegacySupportPage();
clickLinkWithText( "Add" ); clickLinkWithText( "Add" );
addLegacyArtifactPath( "" , "" , "" , "" , "" , ""); addLegacyArtifactPath( "", "", "", "", "", "" );
assertTextPresent( "You must enter a legacy path." ); assertTextPresent( "You must enter a legacy path." );
assertTextPresent( "You must enter a groupId." ); assertTextPresent( "You must enter a groupId." );
assertTextPresent( "You must enter an artifactId." ); assertTextPresent( "You must enter an artifactId." );
assertTextPresent( "You must enter a version." ); assertTextPresent( "You must enter a version." );
assertTextPresent( "You must enter a type." ); assertTextPresent( "You must enter a type." );
} }
@Test( dependsOnMethods = { "testAddLegacyArtifact_NullValues" }) @Test( dependsOnMethods = { "testAddLegacyArtifact_NullValues" } )
public void testAddLegacyArtifact_NullLegacyPath() public void testAddLegacyArtifact_NullLegacyPath()
{ {
addLegacyArtifactPath( "" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , "jar"); addLegacyArtifactPath( "", "test", "test", "1.0-SNAPSHOT", "testing", "jar" );
assertTextPresent( "You must enter a legacy path." ); assertTextPresent( "You must enter a legacy path." );
} }
@Test( dependsOnMethods = { "testAddLegacyArtifact_NullLegacyPath" }) @Test( dependsOnMethods = { "testAddLegacyArtifact_NullLegacyPath" } )
public void testAddLegacyArtifact_NullGroupId() public void testAddLegacyArtifact_NullGroupId()
{ {
addLegacyArtifactPath( "test" , "" , "test" , "1.0-SNAPSHOT" , "testing" , "jar"); addLegacyArtifactPath( "test", "", "test", "1.0-SNAPSHOT", "testing", "jar" );
assertTextPresent( "You must enter a groupId." ); assertTextPresent( "You must enter a groupId." );
} }
@Test( dependsOnMethods = { "testAddLegacyArtifact_NullGroupId" }) @Test( dependsOnMethods = { "testAddLegacyArtifact_NullGroupId" } )
public void testAddLegacyArtifact_NullArtifactId() public void testAddLegacyArtifact_NullArtifactId()
{ {
addLegacyArtifactPath( "test" , "test" , "" , "1.0-SNAPSHOT" , "testing" , "jar"); addLegacyArtifactPath( "test", "test", "", "1.0-SNAPSHOT", "testing", "jar" );
assertTextPresent( "You must enter an artifactId." ); assertTextPresent( "You must enter an artifactId." );
} }
@Test( dependsOnMethods = { "testAddLegacyArtifact_NullArtifactId" }) @Test( dependsOnMethods = { "testAddLegacyArtifact_NullArtifactId" } )
public void testAddLegacyArtifact_NullVersion() public void testAddLegacyArtifact_NullVersion()
{ {
addLegacyArtifactPath( "test" , "test" , "test" , "" , "testing" , "jar"); addLegacyArtifactPath( "test", "test", "test", "", "testing", "jar" );
assertTextPresent( "You must enter a version." ); assertTextPresent( "You must enter a version." );
} }
@Test( dependsOnMethods = { "testAddLegacyArtifact_NullVersion" }) @Test( dependsOnMethods = { "testAddLegacyArtifact_NullVersion" } )
public void testAddLegacyArtifact_NullType() public void testAddLegacyArtifact_NullType()
{ {
addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , ""); addLegacyArtifactPath( "test", "test", "test", "1.0-SNAPSHOT", "testing", "" );
assertTextPresent( "You must enter a type." ); assertTextPresent( "You must enter a type." );
} }
} }

View File

@ -36,11 +36,11 @@ import org.testng.annotations.Test;
* @version $Id$ * @version $Id$
*/ */
@Test ( groups = { "login" } ) @Test( groups = { "login" } )
public class LoginTest public class LoginTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
public void testWithBadUsername() public void testWithBadUsername()
{ {
goToLoginPage(); goToLoginPage();
getSelenium().type( "loginForm_username", "badUsername" ); getSelenium().type( "loginForm_username", "badUsername" );
@ -93,7 +93,7 @@ public class LoginTest
assertTextPresent( getProperty( "ADMIN_USERNAME" ) ); assertTextPresent( getProperty( "ADMIN_USERNAME" ) );
} }
@BeforeTest @BeforeTest
public void open() public void open()
throws Exception throws Exception
{ {

View File

@ -24,73 +24,73 @@ import org.testng.annotations.Test;
@Test( groups = { "networkproxies" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( groups = { "networkproxies" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public class NetworkProxiesTest public class NetworkProxiesTest
extends AbstractRepositoryTest extends AbstractRepositoryTest
{ {
@Test (dependsOnMethods = { "testDeleteRepositoryGroup" } ) @Test( dependsOnMethods = { "testDeleteRepositoryGroup" } )
public void testAddNetworkProxyNullValues() public void testAddNetworkProxyNullValues()
{ {
goToNetworkProxiesPage(); goToNetworkProxiesPage();
addNetworkProxy( "", "", "", "", "", ""); addNetworkProxy( "", "", "", "", "", "" );
assertTextPresent( "You must enter an identifier." ); assertTextPresent( "You must enter an identifier." );
assertTextPresent( "You must enter a protocol." ); assertTextPresent( "You must enter a protocol." );
assertTextPresent( "You must enter a host." ); assertTextPresent( "You must enter a host." );
} }
@Test (dependsOnMethods = { "testAddNetworkProxyNullValues" } ) @Test( dependsOnMethods = { "testAddNetworkProxyNullValues" } )
public void testAddNetworkProxyNullIdentifier() public void testAddNetworkProxyNullIdentifier()
{ {
goToNetworkProxiesPage(); goToNetworkProxiesPage();
addNetworkProxy( "", "http", "localhost", "8080", "", ""); addNetworkProxy( "", "http", "localhost", "8080", "", "" );
assertTextPresent( "You must enter an identifier." ); assertTextPresent( "You must enter an identifier." );
} }
@Test (dependsOnMethods = { "testAddNetworkProxyNullIdentifier" } ) @Test( dependsOnMethods = { "testAddNetworkProxyNullIdentifier" } )
public void testAddNetworkProxyNullProtocol() public void testAddNetworkProxyNullProtocol()
{ {
goToNetworkProxiesPage(); goToNetworkProxiesPage();
addNetworkProxy( "testing123", "", "localhost", "8080", "", ""); addNetworkProxy( "testing123", "", "localhost", "8080", "", "" );
assertTextPresent( "You must enter a protocol." ); assertTextPresent( "You must enter a protocol." );
} }
@Test (dependsOnMethods = { "testAddNetworkProxyNullProtocol" } ) @Test( dependsOnMethods = { "testAddNetworkProxyNullProtocol" } )
public void testAddNetworkProxiesNullHostname() public void testAddNetworkProxiesNullHostname()
{ {
goToNetworkProxiesPage(); goToNetworkProxiesPage();
addNetworkProxy( "testing123", "http", "", "8080", "", ""); addNetworkProxy( "testing123", "http", "", "8080", "", "" );
assertTextPresent( "You must enter a host." ); assertTextPresent( "You must enter a host." );
} }
@Test (dependsOnMethods = { "testAddNetworkProxiesNullHostname" } ) @Test( dependsOnMethods = { "testAddNetworkProxiesNullHostname" } )
public void testAddNetworkProxiesValidValues() public void testAddNetworkProxiesValidValues()
{ {
goToNetworkProxiesPage(); goToNetworkProxiesPage();
addNetworkProxy( "testing123", "http", "localhost", "8080", "", ""); addNetworkProxy( "testing123", "http", "localhost", "8080", "", "" );
assertPage( "Apache Archiva \\ Administration - Network Proxies" ); assertPage( "Apache Archiva \\ Administration - Network Proxies" );
assertTextPresent( "testing123" ); assertTextPresent( "testing123" );
} }
@Test (dependsOnMethods = { "testAddNetworkProxiesValidValues" } ) @Test( dependsOnMethods = { "testAddNetworkProxiesValidValues" } )
public void testEditNetworkProxy() public void testEditNetworkProxy()
{ {
editNetworkProxies( "proxy.host", "localhost" ); editNetworkProxies( "proxy.host", "localhost" );
assertPage( "Apache Archiva \\ Administration - Network Proxies" ); assertPage( "Apache Archiva \\ Administration - Network Proxies" );
assertTextPresent( "localhost" ); assertTextPresent( "localhost" );
} }
@Test (dependsOnMethods = { "testEditNetworkProxy" } ) @Test( dependsOnMethods = { "testEditNetworkProxy" } )
public void testDeleteNetworkProxy() public void testDeleteNetworkProxy()
{ {
deleteNetworkProxy(); deleteNetworkProxy();
assertPage( "Apache Archiva \\ Administration - Network Proxies" ); assertPage( "Apache Archiva \\ Administration - Network Proxies" );
assertTextPresent( "There are no network proxies configured yet." ); assertTextPresent( "There are no network proxies configured yet." );
} }
@Test (dependsOnMethods = { "testDeleteNetworkProxy" } ) @Test( dependsOnMethods = { "testDeleteNetworkProxy" } )
public void testAddNetworkProxyAfterDelete() public void testAddNetworkProxyAfterDelete()
{ {
addNetworkProxy( "testing123", "http", "localhost", "8080", "", ""); addNetworkProxy( "testing123", "http", "localhost", "8080", "", "" );
assertPage( "Apache Archiva \\ Administration - Network Proxies" ); assertPage( "Apache Archiva \\ Administration - Network Proxies" );
assertTextPresent( "testing123" ); assertTextPresent( "testing123" );
} }
} }

View File

@ -24,78 +24,60 @@ import org.testng.annotations.Test;
@Test( groups = { "reports" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( groups = { "reports" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public class ReportsTest public class ReportsTest
extends AbstractArtifactReportsTest extends AbstractArtifactReportsTest
{ {
//TODO Tests for repository with defects // TODO Tests for repository with defects
public void testRepoStatisticsWithoutRepoCompared() public void testRepoStatisticsWithoutRepoCompared()
{ {
goToReportsPage(); goToReportsPage();
clickButtonWithValue( "View Statistics" ); clickButtonWithValue( "View Statistics" );
assertTextPresent( "Please select a repository (or repositories) from the list." ); assertTextPresent( "Please select a repository (or repositories) from the list." );
} }
@Test(dependsOnMethods = { "testRepoStatisticsWithoutRepoCompared" } ) @Test( dependsOnMethods = { "testRepoStatisticsWithoutRepoCompared" } )
public void testRepositoryStatisticsWithoutDate() public void testRepositoryStatisticsWithoutDate()
{ {
String repositoryName = getProperty( "REPOSITORY_NAME" ) ; String repositoryName = getProperty( "REPOSITORY_NAME" );
compareRepositories( "label=" + repositoryName, "", "" ); compareRepositories( "label=" + repositoryName, "", "" );
//TODO // TODO
//assertTextPresent( "Statistics Report" ); // assertTextPresent( "Statistics Report" );
} }
@Test(dependsOnMethods = { "testRepoStatisticsWithoutRepoCompared" } ) @Test( dependsOnMethods = { "testRepoStatisticsWithoutRepoCompared" } )
public void testRepositoryStatisticsEndEarlierThanStart() public void testRepositoryStatisticsEndEarlierThanStart()
{ {
String repositoryName = getProperty( "REPOSITORY_NAME" ) ; String repositoryName = getProperty( "REPOSITORY_NAME" );
String startDate = getProperty( "END_DATE" ); String startDate = getProperty( "END_DATE" );
String endDate = getProperty( "START_DATE" ); String endDate = getProperty( "START_DATE" );
compareRepositories( "label=" + repositoryName, startDate, endDate ); compareRepositories( "label=" + repositoryName, startDate, endDate );
//assertTextPresent( "Statistics for Repository '" + repositoryName + "'" ); // assertTextPresent( "Statistics for Repository '" + repositoryName + "'" );
assertPage( "Apache Archiva \\ Reports" ); assertPage( "Apache Archiva \\ Reports" );
assertTextPresent( "Start Date must be earlier than the End Date" ); assertTextPresent( "Start Date must be earlier than the End Date" );
} }
public void testRepositoryStatistics()
{
String repositoryName = getProperty( "REPOSITORY_NAME" ) ;
String startDate = getProperty( "START_DATE" );
String endDate = getProperty( "END_DATE" );
compareRepositories( "label=" + repositoryName, startDate, endDate );
//assertTextPresent( "Statistics for Repository '" + repositoryName + "'" );
//assertPage( "Apache Archiva \\ Reports" );
//assertTextPresent( "Statistics Report" );
}
/* @Test( dependsOnMethods = { "testRepositoryStatistics" } )
public void testRepositoriesStatisticComparisonReport()
{
//goToReportsPage();
clickButtonWithValue( "-->>" , false );
clickButtonWithValue( "View Statistics" );
assertTextPresent( "Statistics Report" );
}
public void testRepositoryHealthWithoutDefect()
{
goToReportsPage();
String groupId = getProperty( "ARTIFACT_GROUPID" );
getSelenium().type( "generateReport_groupId" , groupId );
clickButtonWithValue( "Show Report" );
assertPage( "Apache Archiva \\ Reports" );
assertTextPresent( "The operation generated an empty report." );
}
public void testRepositoryHealthWithoutGroupId()
{
goToReportsPage();
clickButtonWithValue( "Show Report" );
assertPage( "Apache Archiva \\ Reports" );
assertTextPresent( "The operation generated an empty report." );
//TODO As of the creation of the tests, GroupId is not a required field in showing the reports of repository health. GroupId should be required I think.
}*/
public void testRepositoryStatistics()
{
String repositoryName = getProperty( "REPOSITORY_NAME" );
String startDate = getProperty( "START_DATE" );
String endDate = getProperty( "END_DATE" );
compareRepositories( "label=" + repositoryName, startDate, endDate );
// assertTextPresent( "Statistics for Repository '" + repositoryName + "'" );
// assertPage( "Apache Archiva \\ Reports" );
// assertTextPresent( "Statistics Report" );
}
/*
* @Test( dependsOnMethods = { "testRepositoryStatistics" } ) public void
* testRepositoriesStatisticComparisonReport() { //goToReportsPage(); clickButtonWithValue( "-->>" , false );
* clickButtonWithValue( "View Statistics" ); assertTextPresent( "Statistics Report" ); } public void
* testRepositoryHealthWithoutDefect() { goToReportsPage(); String groupId = getProperty( "ARTIFACT_GROUPID" );
* getSelenium().type( "generateReport_groupId" , groupId ); clickButtonWithValue( "Show Report" ); assertPage(
* "Apache Archiva \\ Reports" ); assertTextPresent( "The operation generated an empty report." ); } public void
* testRepositoryHealthWithoutGroupId() { goToReportsPage(); clickButtonWithValue( "Show Report" ); assertPage(
* "Apache Archiva \\ Reports" ); assertTextPresent( "The operation generated an empty report." ); //TODO As of the
* creation of the tests, GroupId is not a required field in showing the reports of repository health. GroupId
* should be required I think. }
*/
} }

View File

@ -25,158 +25,164 @@ import org.testng.annotations.Test;
@Test( groups = { "reposcan" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true ) @Test( groups = { "reposcan" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
public class RepositoryScanningTest public class RepositoryScanningTest
extends AbstractRepositoryTest extends AbstractRepositoryTest
{ {
public void testAddArtifactFileType_NullValue() public void testAddArtifactFileType_NullValue()
{ {
goToRepositoryScanningPage(); goToRepositoryScanningPage();
clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[14]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[14]/td[2]/a/img" );
assertTextPresent( "Unable to process blank pattern." ); assertTextPresent( "Unable to process blank pattern." );
} }
@Test (dependsOnMethods = { "testAddArtifactFileType_NullValue" } ) @Test( dependsOnMethods = { "testAddArtifactFileType_NullValue" } )
public void testAddArtifactFileType() public void testAddArtifactFileType()
{ {
setFieldValue( "newpattern_0" , "**/*.dll" ); setFieldValue( "newpattern_0", "**/*.dll" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[14]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[14]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[1]/table.13.0"), "**/*.dll" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[1]/table.13.0" ), "**/*.dll" );
} }
@Test (dependsOnMethods = { "testAddArtifactFileType" } ) @Test( dependsOnMethods = { "testAddArtifactFileType" } )
public void testAddArtifactFileType_ExistingValue() public void testAddArtifactFileType_ExistingValue()
{ {
setFieldValue( "newpattern_0" , "**/*.zip" ); setFieldValue( "newpattern_0", "**/*.zip" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[15]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[15]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getText("//span[@class='errorMessage']"), "Not adding pattern \"**/*.zip\" to filetype artifacts as it already exists." ); Assert.assertEquals( getSelenium().getText( "//span[@class='errorMessage']" ),
} "Not adding pattern \"**/*.zip\" to filetype artifacts as it already exists." );
}
@Test (dependsOnMethods = { "testAddArtifactFileType_ExistingValue" } ) @Test( dependsOnMethods = { "testAddArtifactFileType_ExistingValue" } )
public void testDeleteArtifactFileType() public void testDeleteArtifactFileType()
{ {
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[1]/table.13.0"), "**/*.dll" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[1]/table.13.0" ), "**/*.dll" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[14]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[1]/table/tbody/tr[14]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[1]/table.13.0"), "" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[1]/table.13.0" ), "" );
} }
@Test (dependsOnMethods = { "testDeleteArtifactFileType" } ) @Test( dependsOnMethods = { "testDeleteArtifactFileType" } )
public void testAddAutoRemove_NullValue() public void testAddAutoRemove_NullValue()
{ {
setFieldValue( "newpattern_1" , "" ); setFieldValue( "newpattern_1", "" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" );
assertTextPresent( "Unable to process blank pattern." ); assertTextPresent( "Unable to process blank pattern." );
} }
@Test (dependsOnMethods = { "testAddAutoRemove_NullValue" } ) @Test( dependsOnMethods = { "testAddAutoRemove_NullValue" } )
public void testAddAutoRemove_ExistingValue() public void testAddAutoRemove_ExistingValue()
{ {
setFieldValue( "newpattern_1" , "**/*-" ); setFieldValue( "newpattern_1", "**/*-" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getText("//span[@class='errorMessage']"), "Not adding pattern \"**/*-\" to filetype auto-remove as it already exists." ); Assert.assertEquals( getSelenium().getText( "//span[@class='errorMessage']" ),
} "Not adding pattern \"**/*-\" to filetype auto-remove as it already exists." );
}
@Test (dependsOnMethods = { "testAddAutoRemove_ExistingValue" } ) @Test( dependsOnMethods = { "testAddAutoRemove_ExistingValue" } )
public void testAddAutoRemove() public void testAddAutoRemove()
{ {
setFieldValue( "newpattern_1" , "**/*.test" ); setFieldValue( "newpattern_1", "**/*.test" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[2]/table.3.0"), "**/*.test" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[2]/table.3.0" ), "**/*.test" );
} }
@Test (dependsOnMethods = { "testAddAutoRemove" } ) @Test( dependsOnMethods = { "testAddAutoRemove" } )
public void testDeleteAutoRemove() public void testDeleteAutoRemove()
{ {
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[2]/table.3.0"), "**/*.test" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[2]/table.3.0" ), "**/*.test" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[2]/table/tbody/tr[4]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[2]/table.3.0"), "" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[2]/table.3.0" ), "" );
} }
@Test (dependsOnMethods = { "testDeleteAutoRemove" } ) @Test( dependsOnMethods = { "testDeleteAutoRemove" } )
public void testAddIgnoredArtifacts_NullValue() public void testAddIgnoredArtifacts_NullValue()
{ {
setFieldValue( "newpattern_2" , "" ); setFieldValue( "newpattern_2", "" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getText("//span[@class='errorMessage']"), "Unable to process blank pattern." ); Assert.assertEquals( getSelenium().getText( "//span[@class='errorMessage']" ),
} "Unable to process blank pattern." );
}
@Test (dependsOnMethods = { "testAddIgnoredArtifacts_NullValue" } ) @Test( dependsOnMethods = { "testAddIgnoredArtifacts_NullValue" } )
public void testAddIgnoredArtifacts_ExistingValue() public void testAddIgnoredArtifacts_ExistingValue()
{ {
setFieldValue( "newpattern_2" , "**/*.sh" ); setFieldValue( "newpattern_2", "**/*.sh" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getText("//span[@class='errorMessage']"), "Not adding pattern \"**/*.sh\" to filetype ignored as it already exists." ); Assert.assertEquals( getSelenium().getText( "//span[@class='errorMessage']" ),
} "Not adding pattern \"**/*.sh\" to filetype ignored as it already exists." );
}
@Test (dependsOnMethods = { "testAddIgnoredArtifacts_ExistingValue" } ) @Test( dependsOnMethods = { "testAddIgnoredArtifacts_ExistingValue" } )
public void testAddIgnoredArtifacts() public void testAddIgnoredArtifacts()
{ {
setFieldValue( "newpattern_2" , "**/*.log" ); setFieldValue( "newpattern_2", "**/*.log" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[3]/table.6.0"), "**/*.log" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[3]/table.6.0" ), "**/*.log" );
} }
@Test (dependsOnMethods = { "testAddIgnoredArtifacts" } ) @Test( dependsOnMethods = { "testAddIgnoredArtifacts" } )
public void testDeleteIgnoredArtifacts() public void testDeleteIgnoredArtifacts()
{ {
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[3]/table.6.0"), "**/*.log" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[3]/table.6.0" ), "**/*.log" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[3]/table/tbody/tr[7]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[3]/table.6.0"), "" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[3]/table.6.0" ), "" );
} }
// //
@Test (dependsOnMethods = { "testDeleteIgnoredArtifacts" } ) @Test( dependsOnMethods = { "testDeleteIgnoredArtifacts" } )
public void testAddIndexableContent_NullValue() public void testAddIndexableContent_NullValue()
{ {
setFieldValue( "newpattern_3" , "" ); setFieldValue( "newpattern_3", "" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getText("//span[@class='errorMessage']"), "Unable to process blank pattern." ); Assert.assertEquals( getSelenium().getText( "//span[@class='errorMessage']" ),
} "Unable to process blank pattern." );
}
@Test (dependsOnMethods = { "testAddIndexableContent_NullValue" } ) @Test( dependsOnMethods = { "testAddIndexableContent_NullValue" } )
public void testAddIndexableContent_ExistingValue() public void testAddIndexableContent_ExistingValue()
{ {
setFieldValue( "newpattern_3" , "**/*.xml" ); setFieldValue( "newpattern_3", "**/*.xml" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getText("//span[@class='errorMessage']"), "Not adding pattern \"**/*.xml\" to filetype indexable-content as it already exists." ); Assert.assertEquals( getSelenium().getText( "//span[@class='errorMessage']" ),
} "Not adding pattern \"**/*.xml\" to filetype indexable-content as it already exists." );
}
@Test (dependsOnMethods = { "testAddIndexableContent_ExistingValue" } ) @Test( dependsOnMethods = { "testAddIndexableContent_ExistingValue" } )
public void testAddIndexableContent() public void testAddIndexableContent()
{ {
setFieldValue( "newpattern_3" , "**/*.html" ); setFieldValue( "newpattern_3", "**/*.html" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[4]/table.9.0"), "**/*.html" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[4]/table.9.0" ), "**/*.html" );
} }
@Test (dependsOnMethods = { "testAddIndexableContent" } ) @Test( dependsOnMethods = { "testAddIndexableContent" } )
public void testDeleteIndexableContent() public void testDeleteIndexableContent()
{ {
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[4]/table.9.0"), "**/*.html" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[4]/table.9.0" ), "**/*.html" );
clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[4]/table/tbody/tr[10]/td[2]/a/img" );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[4]/table.9.0"), "" ); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[4]/table.9.0" ), "" );
} }
@Test (dependsOnMethods = { "testDeleteIndexableContent" } ) @Test( dependsOnMethods = { "testDeleteIndexableContent" } )
public void testUpdateConsumers() public void testUpdateConsumers()
{ {
checkField( "enabledKnownContentConsumers" ); checkField( "enabledKnownContentConsumers" );
checkField( "//input[@name='enabledKnownContentConsumers' and @value='auto-rename']" ); checkField( "//input[@name='enabledKnownContentConsumers' and @value='auto-rename']" );
clickButtonWithValue( "Update Consumers" ); clickButtonWithValue( "Update Consumers" );
assertPage( "Apache Archiva \\ Administration - Repository Scanning" ); assertPage( "Apache Archiva \\ Administration - Repository Scanning" );
} }
@Test (dependsOnMethods = { "testUpdateConsumers" } ) @Test( dependsOnMethods = { "testUpdateConsumers" } )
public void testUpdateConsumers_UnsetAll() public void testUpdateConsumers_UnsetAll()
{ {
getSelenium().uncheck( "enabledKnownContentConsumers" ); getSelenium().uncheck( "enabledKnownContentConsumers" );
getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='auto-rename']" ); getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='auto-rename']" );
getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='create-missing-checksums']" ); getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='create-missing-checksums']" );
getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='index-content']" ); getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='index-content']" );
getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='metadata-updater']" ); getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='metadata-updater']" );
getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='repository-purge']" ); getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='repository-purge']" );
getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='validate-checksums']" ); getSelenium().uncheck( "//input[@name='enabledKnownContentConsumers' and @value='validate-checksums']" );
clickButtonWithValue( "Update Consumers" ); clickButtonWithValue( "Update Consumers" );
assertPage( "Apache Archiva \\ Administration - Repository Scanning" ); assertPage( "Apache Archiva \\ Administration - Repository Scanning" );
} }
} }

View File

@ -24,126 +24,131 @@ import org.testng.annotations.Test;
@Test( groups = { "repository" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true ) @Test( groups = { "repository" }, dependsOnMethods = { "testWithCorrectUsernamePassword" }, sequential = true )
public class RepositoryTest public class RepositoryTest
extends AbstractRepositoryTest extends AbstractRepositoryTest
{ {
public void testAddManagedRepoValidValues() public void testAddManagedRepoValidValues()
{ {
goToRepositoriesPage(); goToRepositoriesPage();
getSelenium().open( "/archiva/admin/addRepository.action" ); getSelenium().open( "/archiva/admin/addRepository.action" );
addManagedRepository( "managedrepo1", "Managed Repository Sample 1" , getRepositoryDir() + "repository/" , "", "Maven 2.x Repository", "0 0 * * * ?", "", "" ); addManagedRepository( "managedrepo1", "Managed Repository Sample 1", getRepositoryDir() + "repository/", "",
clickButtonWithValue( "Save" ); "Maven 2.x Repository", "0 0 * * * ?", "", "" );
assertTextPresent( "Managed Repository Sample 1" ); clickButtonWithValue( "Save" );
assertRepositoriesPage(); assertTextPresent( "Managed Repository Sample 1" );
} assertRepositoriesPage();
}
@Test(dependsOnMethods = { "testAddManagedRepoValidValues" } ) @Test( dependsOnMethods = { "testAddManagedRepoValidValues" } )
public void testAddManagedRepoInvalidValues() public void testAddManagedRepoInvalidValues()
{ {
goToRepositoriesPage(); goToRepositoriesPage();
getSelenium().open( "/archiva/admin/addRepository.action" ); getSelenium().open( "/archiva/admin/addRepository.action" );
addManagedRepository( "", "" , "" , "", "Maven 2.x Repository", "", "", "" ); addManagedRepository( "", "", "", "", "Maven 2.x Repository", "", "", "" );
assertTextPresent( "You must enter a repository identifier." ); assertTextPresent( "You must enter a repository identifier." );
assertTextPresent( "You must enter a repository name." ); assertTextPresent( "You must enter a repository name." );
assertTextPresent( "You must enter a directory." ); assertTextPresent( "You must enter a directory." );
assertTextPresent( "Invalid cron expression." ); assertTextPresent( "Invalid cron expression." );
} }
@Test(dependsOnMethods = { "testAddManagedRepoInvalidValues" } ) @Test( dependsOnMethods = { "testAddManagedRepoInvalidValues" } )
public void testAddManagedRepoNoIdentifier() public void testAddManagedRepoNoIdentifier()
{ {
addManagedRepository( "", "name" , "/home" , "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "" ); addManagedRepository( "", "name", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "" );
assertTextPresent( "You must enter a repository identifier." ); assertTextPresent( "You must enter a repository identifier." );
} }
@Test(dependsOnMethods = { "testAddManagedRepoNoIdentifier" } ) @Test( dependsOnMethods = { "testAddManagedRepoNoIdentifier" } )
public void testAddManagedRepoNoRepoName() public void testAddManagedRepoNoRepoName()
{ {
addManagedRepository( "identifier", "" , "/home" , "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "" ); addManagedRepository( "identifier", "", "/home", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "" );
assertTextPresent( "You must enter a repository name." ); assertTextPresent( "You must enter a repository name." );
} }
@Test(dependsOnMethods = { "testAddManagedRepoNoRepoName" } ) @Test( dependsOnMethods = { "testAddManagedRepoNoRepoName" } )
public void testAddManagedRepoNoDirectory() public void testAddManagedRepoNoDirectory()
{ {
addManagedRepository( "identifier", "name" , "" , "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "" ); addManagedRepository( "identifier", "name", "", "/.index", "Maven 2.x Repository", "0 0 * * * ?", "", "" );
assertTextPresent( "You must enter a directory." ); assertTextPresent( "You must enter a directory." );
} }
@Test(dependsOnMethods = { "testAddManagedRepoNoDirectory" } ) @Test( dependsOnMethods = { "testAddManagedRepoNoDirectory" } )
public void testAddManagedRepoNoCron() public void testAddManagedRepoNoCron()
{ {
addManagedRepository( "identifier", "name" , "/home" , "/.index", "Maven 2.x Repository", "", "", "" ); addManagedRepository( "identifier", "name", "/home", "/.index", "Maven 2.x Repository", "", "", "" );
assertTextPresent( "Invalid cron expression." ); assertTextPresent( "Invalid cron expression." );
} }
@Test(dependsOnMethods = { "testAddManagedRepoNoCron" } ) @Test( dependsOnMethods = { "testAddManagedRepoNoCron" } )
public void testAddManagedRepoForEdit() public void testAddManagedRepoForEdit()
{ {
goToRepositoriesPage(); goToRepositoriesPage();
getSelenium().open( "/archiva/admin/addRepository.action" ); getSelenium().open( "/archiva/admin/addRepository.action" );
addManagedRepository( "managedrepo", "Managed Repository Sample" , getRepositoryDir() + "local-repo/", "", "Maven 2.x Repository", "0 0 * * * ?", "", "" ); addManagedRepository( "managedrepo", "Managed Repository Sample", getRepositoryDir() + "local-repo/", "",
clickButtonWithValue( "Save" ); "Maven 2.x Repository", "0 0 * * * ?", "", "" );
assertTextPresent( "Managed Repository Sample" ); clickButtonWithValue( "Save" );
} assertTextPresent( "Managed Repository Sample" );
}
//TODO // TODO
@Test(dependsOnMethods = { "testAddManagedRepoForEdit" } ) @Test( dependsOnMethods = { "testAddManagedRepoForEdit" } )
public void testEditManagedRepo() public void testEditManagedRepo()
{ {
editManagedRepository( "repository.name" , "Managed Repo" ); editManagedRepository( "repository.name", "Managed Repo" );
assertTextPresent( "Managed Repository Sample" ); assertTextPresent( "Managed Repository Sample" );
} }
//TODO // TODO
@Test(dependsOnMethods = { "testEditManagedRepo" } ) @Test( dependsOnMethods = { "testEditManagedRepo" } )
public void testDeleteManageRepo() public void testDeleteManageRepo()
{ {
deleteManagedRepository(); deleteManagedRepository();
//assertTextNotPresent( "managedrepo" ); // assertTextNotPresent( "managedrepo" );
} }
@Test(dependsOnMethods = { "testAddRemoteRepoValidValues" } ) @Test( dependsOnMethods = { "testAddRemoteRepoValidValues" } )
public void testAddRemoteRepoNullValues() public void testAddRemoteRepoNullValues()
{ {
getSelenium().open( "/archiva/admin/addRemoteRepository.action" ); getSelenium().open( "/archiva/admin/addRemoteRepository.action" );
addRemoteRepository( "" , "" , "" , "" , "" , "" , "Maven 2.x Repository" ); addRemoteRepository( "", "", "", "", "", "", "Maven 2.x Repository" );
assertTextPresent( "You must enter a repository identifier." ); assertTextPresent( "You must enter a repository identifier." );
assertTextPresent( "You must enter a repository name." ); assertTextPresent( "You must enter a repository name." );
assertTextPresent( "You must enter a url." ); assertTextPresent( "You must enter a url." );
} }
@Test(dependsOnMethods = { "testAddRemoteRepoNullValues" } ) @Test( dependsOnMethods = { "testAddRemoteRepoNullValues" } )
public void testAddRemoteRepositoryNullIdentifier() public void testAddRemoteRepositoryNullIdentifier()
{ {
addRemoteRepository( "" , "Remote Repository Sample" , "http://repository.codehaus.org/org/codehaus/mojo/" , "" , "" , "" , "Maven 2.x Repository" ); addRemoteRepository( "", "Remote Repository Sample", "http://repository.codehaus.org/org/codehaus/mojo/", "",
assertTextPresent( "You must enter a repository identifier." ); "", "", "Maven 2.x Repository" );
} assertTextPresent( "You must enter a repository identifier." );
}
@Test(dependsOnMethods = { "testAddRemoteRepositoryNullIdentifier" } ) @Test( dependsOnMethods = { "testAddRemoteRepositoryNullIdentifier" } )
public void testAddRemoteRepoNullName() public void testAddRemoteRepoNullName()
{ {
addRemoteRepository( "remoterepo" , "" , "http://repository.codehaus.org/org/codehaus/mojo/" , "" , "" , "" , "Maven 2.x Repository" ); addRemoteRepository( "remoterepo", "", "http://repository.codehaus.org/org/codehaus/mojo/", "", "", "",
assertTextPresent( "You must enter a repository name." ); "Maven 2.x Repository" );
} assertTextPresent( "You must enter a repository name." );
}
@Test(dependsOnMethods = { "testAddRemoteRepoNullName" } ) @Test( dependsOnMethods = { "testAddRemoteRepoNullName" } )
public void testAddRemoteRepoNullURL() public void testAddRemoteRepoNullURL()
{ {
addRemoteRepository( "remoterepo" , "Remote Repository Sample" , "" , "" , "" , "" , "Maven 2.x Repository" ); addRemoteRepository( "remoterepo", "Remote Repository Sample", "", "", "", "", "Maven 2.x Repository" );
assertTextPresent( "You must enter a url." ); assertTextPresent( "You must enter a url." );
} }
@Test(dependsOnMethods = { "testDeleteManageRepo" } ) @Test( dependsOnMethods = { "testDeleteManageRepo" } )
public void testAddRemoteRepoValidValues() public void testAddRemoteRepoValidValues()
{ {
getSelenium().open( "/archiva/admin/addRemoteRepository.action" ); getSelenium().open( "/archiva/admin/addRemoteRepository.action" );
addRemoteRepository( "remoterepo" , "Remote Repository Sample" , "http://repository.codehaus.org/org/codehaus/mojo/" , "" , "" , "" , "Maven 2.x Repository" ); addRemoteRepository( "remoterepo", "Remote Repository Sample",
assertTextPresent( "Remote Repository Sample" ); "http://repository.codehaus.org/org/codehaus/mojo/", "", "", "", "Maven 2.x Repository" );
} assertTextPresent( "Remote Repository Sample" );
}
// *** BUNDLED REPOSITORY TEST *** // *** BUNDLED REPOSITORY TEST ***
@Test ( dependsOnMethods = { "testWithCorrectUsernamePassword" }, alwaysRun = true ) @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" }, alwaysRun = true )
public void testBundledRepository() public void testBundledRepository()
{ {
String repo1 = baseUrl + "repository/internal/"; String repo1 = baseUrl + "repository/internal/";

View File

@ -26,38 +26,38 @@ import org.testng.annotations.Test;
@Test( groups = { "search" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( groups = { "search" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public class SearchTest public class SearchTest
extends AbstractSearchTest extends AbstractSearchTest
{ {
public void testSearchNonExistingArtifact() public void testSearchNonExistingArtifact()
throws Exception throws Exception
{
searchForArtifact( getProperty( "SEARCH_BAD_ARTIFACT" ) );
assertTextPresent( "No results found" );
}
// TODO: make search tests more robust especially when comparing/asserting number of hits
public void testSearchExistingArtifact()
{
searchForArtifact( getProperty( "ARTIFACT_ARTIFACTID" ) );
assertTextPresent( "Results" );
assertTextPresent( "Hits: 1 to 1 of 1" );
assertLinkPresent( "test" );
}
public void testViewSearchedArtifact()
{ {
searchForArtifact( getProperty( "ARTIFACT_ARTIFACTID" ) ); searchForArtifact( getProperty( "SEARCH_BAD_ARTIFACT" ) );
clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) ); assertTextPresent( "No results found" );
assertPage( "Apache Archiva \\ Browse Repository" );
assertTextPresent( getProperty( "ARTIFACT_ARTIFACTID" ) );
clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
assertPage( "Apache Archiva \\ Browse Repository" );
} }
public void testSearchNonExistingArtifactInAdvancedSearch() // TODO: make search tests more robust especially when comparing/asserting number of hits
public void testSearchExistingArtifact()
{ {
searchForArtifactAdvancedSearch( null, getProperty( "SEARCH_BAD_ARTIFACT"), null, null, null, null ); searchForArtifact( getProperty( "ARTIFACT_ARTIFACTID" ) );
assertTextPresent( "Results" );
assertTextPresent( "Hits: 1 to 1 of 1" );
assertLinkPresent( "test" );
}
public void testViewSearchedArtifact()
{
searchForArtifact( getProperty( "ARTIFACT_ARTIFACTID" ) );
clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) );
assertPage( "Apache Archiva \\ Browse Repository" );
assertTextPresent( getProperty( "ARTIFACT_ARTIFACTID" ) );
clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
assertPage( "Apache Archiva \\ Browse Repository" );
}
public void testSearchNonExistingArtifactInAdvancedSearch()
{
searchForArtifactAdvancedSearch( null, getProperty( "SEARCH_BAD_ARTIFACT" ), null, null, null, null );
assertTextPresent( "No results found" ); assertTextPresent( "No results found" );
} }
@ -69,15 +69,17 @@ public class SearchTest
public void testSearchExistingArtifactUsingAdvancedSearchArtifactId() public void testSearchExistingArtifactUsingAdvancedSearchArtifactId()
{ {
searchForArtifactAdvancedSearch( null, getProperty( "ARTIFACT_ARTIFACTID" ), null, getProperty( "REPOSITORYID" ), null, null ); searchForArtifactAdvancedSearch( null, getProperty( "ARTIFACT_ARTIFACTID" ), null,
assertTextPresent( "Results" ); getProperty( "REPOSITORYID" ), null, null );
assertTextPresent( "Hits: 1 to 1 of 1" ); assertTextPresent( "Results" );
assertLinkPresent( "test" ); assertTextPresent( "Hits: 1 to 1 of 1" );
assertLinkPresent( "test" );
} }
public void testSearchExistingArtifactUsingAdvancedSearchGroupId() public void testSearchExistingArtifactUsingAdvancedSearchGroupId()
{ {
searchForArtifactAdvancedSearch( getProperty( "GROUPID" ), null, null, getProperty( "REPOSITORYID" ), null, null ); searchForArtifactAdvancedSearch( getProperty( "GROUPID" ), null, null, getProperty( "REPOSITORYID" ), null,
null );
assertTextPresent( "Results" ); assertTextPresent( "Results" );
assertTextPresent( "Hits: 1 to 1 of 1" ); assertTextPresent( "Hits: 1 to 1 of 1" );
assertLinkPresent( "test" ); assertLinkPresent( "test" );
@ -92,4 +94,3 @@ public class SearchTest
assertLinkNotPresent( "test" ); assertLinkNotPresent( "test" );
} }
} }

View File

@ -24,287 +24,259 @@ import org.testng.annotations.Test;
@Test( groups = { "userroles" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( groups = { "userroles" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public class UserRolesTest public class UserRolesTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
public void testBasicAddDeleteUser() public void testBasicAddDeleteUser()
{ {
username = getProperty( "GUEST_USERNAME" ); username = getProperty( "GUEST_USERNAME" );
fullname = getProperty( "GUEST_FULLNAME" ); fullname = getProperty( "GUEST_FULLNAME" );
createUser( username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
deleteUser( username, fullname, getUserEmail() ); deleteUser( username, fullname, getUserEmail() );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
@Test (dependsOnMethods = { "testBasicAddDeleteUser" } ) @Test( dependsOnMethods = { "testBasicAddDeleteUser" } )
public void testUserWithGuestRole() public void testUserWithGuestRole()
{ {
username = getProperty("GUEST_USERNAME"); username = getProperty( "GUEST_USERNAME" );
fullname = getProperty("GUEST_FULLNAME"); fullname = getProperty( "GUEST_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
clickLinkWithText( username ); clickLinkWithText( username );
clickLinkWithText( "Edit Roles" ); clickLinkWithText( "Edit Roles" );
checkUserRoleWithValue( fullname ); checkUserRoleWithValue( fullname );
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
@Test (dependsOnMethods = { "testUserWithGuestRole" } ) @Test( dependsOnMethods = { "testUserWithGuestRole" } )
public void testUserWithRegisteredUserRole() public void testUserWithRegisteredUserRole()
{ {
username = getProperty("REGISTERED_USERNAME"); username = getProperty( "REGISTERED_USERNAME" );
fullname = getProperty("REGISTERED_FULLNAME"); fullname = getProperty( "REGISTERED_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
clickLinkWithText( username ); clickLinkWithText( username );
clickLinkWithText( "Edit Roles" ); clickLinkWithText( "Edit Roles" );
checkUserRoleWithValue( fullname ); checkUserRoleWithValue( fullname );
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
@Test (dependsOnMethods = { "testUserWithRegisteredUserRole" } ) @Test( dependsOnMethods = { "testUserWithRegisteredUserRole" } )
public void testUserWithSysAdminUserRole() public void testUserWithSysAdminUserRole()
{ {
username = getProperty("SYSAD_USERNAME"); username = getProperty( "SYSAD_USERNAME" );
fullname = getProperty("SYSAD_FULLNAME"); fullname = getProperty( "SYSAD_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
clickLinkWithText( username ); clickLinkWithText( username );
clickLinkWithText( "Edit Roles" ); clickLinkWithText( "Edit Roles" );
checkUserRoleWithValue( fullname ); checkUserRoleWithValue( fullname );
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
@Test (dependsOnMethods = { "testUserWithSysAdminUserRole" } ) @Test( dependsOnMethods = { "testUserWithSysAdminUserRole" } )
public void testUserWithUserAdminUserRole() public void testUserWithUserAdminUserRole()
{ {
username = getProperty("USERADMIN_USERNAME"); username = getProperty( "USERADMIN_USERNAME" );
fullname = getProperty("USERADMIN_FULLNAME"); fullname = getProperty( "USERADMIN_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
clickLinkWithText( username ); clickLinkWithText( username );
clickLinkWithText( "Edit Roles" ); clickLinkWithText( "Edit Roles" );
checkUserRoleWithValue( fullname ); checkUserRoleWithValue( fullname );
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
@Test (dependsOnMethods = { "testUserWithUserAdminUserRole" } ) @Test( dependsOnMethods = { "testUserWithUserAdminUserRole" } )
public void testUserWithGlobalRepoManagerRole() public void testUserWithGlobalRepoManagerRole()
{ {
username = getProperty("GLOBALREPOMANAGER_USERNAME"); username = getProperty( "GLOBALREPOMANAGER_USERNAME" );
fullname = getProperty("GLOBALREPOMANAGER_FULLNAME"); fullname = getProperty( "GLOBALREPOMANAGER_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
clickLinkWithText( username ); clickLinkWithText( username );
clickLinkWithText( "Edit Roles" ); clickLinkWithText( "Edit Roles" );
checkUserRoleWithValue( fullname ); checkUserRoleWithValue( fullname );
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
@Test (dependsOnMethods = { "testUserWithGlobalRepoManagerRole" } ) @Test( dependsOnMethods = { "testUserWithGlobalRepoManagerRole" } )
public void testUserWithGlobalRepoObserverRole() public void testUserWithGlobalRepoObserverRole()
{ {
username = getProperty("GLOBALREPOOBSERVER_USERNAME"); username = getProperty( "GLOBALREPOOBSERVER_USERNAME" );
fullname = getProperty("GLOBALREPOOBSERVER_FULLNAME"); fullname = getProperty( "GLOBALREPOOBSERVER_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
clickLinkWithText( username ); clickLinkWithText( username );
clickLinkWithText( "Edit Roles" ); clickLinkWithText( "Edit Roles" );
checkUserRoleWithValue( fullname ); checkUserRoleWithValue( fullname );
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
@Test (dependsOnMethods = { "testUserWithGlobalRepoObserverRole" } ) @Test( dependsOnMethods = { "testUserWithGlobalRepoObserverRole" } )
public void testUserWithRepoManagerInternalRole() public void testUserWithRepoManagerInternalRole()
{ {
username = getProperty("REPOMANAGER_INTERNAL_USERNAME"); username = getProperty( "REPOMANAGER_INTERNAL_USERNAME" );
fullname = getProperty("REPOMANAGER_INTERNAL_FULLNAME"); fullname = getProperty( "REPOMANAGER_INTERNAL_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
clickLinkWithText( username ); clickLinkWithText( username );
clickLinkWithText( "Edit Roles" ); clickLinkWithText( "Edit Roles" );
checkResourceRoleWithValue( fullname ); checkResourceRoleWithValue( fullname );
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
/*@Test (dependsOnMethods = { "testUserWithRepoManagerInternalRole" } ) /*
public void testUserWithRepoManagerSnapshotsRole() * @Test (dependsOnMethods = { "testUserWithRepoManagerInternalRole" } ) public void
{ * testUserWithRepoManagerSnapshotsRole() { username = getProperty("REPOMANAGER_SNAPSHOTS_USERNAME"); fullname =
username = getProperty("REPOMANAGER_SNAPSHOTS_USERNAME"); * getProperty("REPOMANAGER_SNAPSHOTS_FULLNAME"); createUser(username, fullname, getUserEmail(),
fullname = getProperty("REPOMANAGER_SNAPSHOTS_FULLNAME"); * getUserRolePassword(), true); clickLinkWithText( username ); clickLinkWithText( "Edit Roles" );
* checkResourceRoleWithValue( fullname ); clickButtonWithValue( "Submit" ); clickLinkWithText("Logout");
* login(username, getUserRolePassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword()); // this
* section will be removed if issue from redback after changing password will be fixed. getSelenium().goBack();
* clickLinkWithText("Logout"); //assertTextPresent("You are already logged in."); login(username,
* getUserRoleNewPassword()); assertLeftNavMenuWithRole( fullname ); clickLinkWithText("Logout"); login(
* getAdminUsername() , getAdminPassword() ); }
*/
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); @Test( dependsOnMethods = { "testUserWithRepoManagerInternalRole" } )
clickLinkWithText( username ); public void testUserWithRepoObserverInternalRole()
clickLinkWithText( "Edit Roles" ); {
checkResourceRoleWithValue( fullname ); username = getProperty( "REPOOBSERVER_INTERNAL_USERNAME" );
clickButtonWithValue( "Submit" ); fullname = getProperty( "REPOOBSERVER_INTERNAL_FULLNAME" );
clickLinkWithText("Logout"); createUser( username, fullname, getUserEmail(), getUserRolePassword(), true );
login(username, getUserRolePassword()); clickLinkWithText( username );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); clickLinkWithText( "Edit Roles" );
checkResourceRoleWithValue( fullname );
// this section will be removed if issue from redback after changing password will be fixed. clickButtonWithValue( "Submit" );
getSelenium().goBack();
clickLinkWithText("Logout");
//assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword());
assertLeftNavMenuWithRole( fullname );
clickLinkWithText("Logout");
login( getAdminUsername() , getAdminPassword() );
}*/
@Test (dependsOnMethods = { "testUserWithRepoManagerInternalRole" } )
public void testUserWithRepoObserverInternalRole()
{
username = getProperty( "REPOOBSERVER_INTERNAL_USERNAME" );
fullname = getProperty( "REPOOBSERVER_INTERNAL_FULLNAME" );
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true);
clickLinkWithText( username );
clickLinkWithText( "Edit Roles" );
checkResourceRoleWithValue( fullname );
clickButtonWithValue( "Submit" );
logout(); logout();
login(username, getUserRolePassword()); login( username, getUserRolePassword() );
changePassword( getUserRolePassword(), getUserRoleNewPassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword() );
// this section will be removed if issue from redback after changing password will be fixed. // this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack(); getSelenium().goBack();
logout(); logout();
//assertTextPresent("You are already logged in."); // assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword()); login( username, getUserRoleNewPassword() );
assertLeftNavMenuWithRole( fullname ); assertLeftNavMenuWithRole( fullname );
logout(); logout();
login( getAdminUsername() , getAdminPassword() ); login( getAdminUsername(), getAdminPassword() );
} }
/*@Test (dependsOnMethods = { "testUserWithRepoObserverInternalRole" } ) /*
public void testUserWithRepoObserverSnapshotsRole() * @Test (dependsOnMethods = { "testUserWithRepoObserverInternalRole" } ) public void
{ * testUserWithRepoObserverSnapshotsRole() { username = getProperty( "REPOOBSERVER_SNAPSHOTS_USERNAME" ); fullname =
username = getProperty( "REPOOBSERVER_SNAPSHOTS_USERNAME" ); * getProperty( "REPOOBSERVER_SNAPSHOTS_FULLNAME" ); createUser(username, fullname, getUserEmail(),
fullname = getProperty( "REPOOBSERVER_SNAPSHOTS_FULLNAME" ); * getUserRolePassword(), true); clickLinkWithText( username ); clickLinkWithText( "Edit Roles" );
* checkResourceRoleWithValue( fullname ); clickButtonWithValue( "Submit" ); clickLinkWithText("Logout");
createUser(username, fullname, getUserEmail(), getUserRolePassword(), true); * login(username, getUserRolePassword()); changePassword( getUserRolePassword(), getUserRoleNewPassword()); // this
clickLinkWithText( username ); * section will be removed if issue from redback after changing password will be fixed. getSelenium().goBack();
clickLinkWithText( "Edit Roles" ); * clickLinkWithText("Logout"); //assertTextPresent("You are already logged in."); login(username,
checkResourceRoleWithValue( fullname ); * getUserRoleNewPassword()); assertLeftNavMenuWithRole( fullname ); clickLinkWithText("Logout"); login(
clickButtonWithValue( "Submit" ); * getAdminUsername() , getAdminPassword() ); }
*/
clickLinkWithText("Logout");
login(username, getUserRolePassword());
changePassword( getUserRolePassword(), getUserRoleNewPassword());
// this section will be removed if issue from redback after changing password will be fixed.
getSelenium().goBack();
clickLinkWithText("Logout");
//assertTextPresent("You are already logged in.");
login(username, getUserRoleNewPassword());
assertLeftNavMenuWithRole( fullname );
clickLinkWithText("Logout");
login( getAdminUsername() , getAdminPassword() );
}*/
} }

View File

@ -25,52 +25,51 @@ import org.testng.Assert;
@Test( groups = { "virtualrepository" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( groups = { "virtualrepository" }, dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public class VirtualRepositoryTest public class VirtualRepositoryTest
extends AbstractRepositoryTest extends AbstractRepositoryTest
{ {
public void testAddRepositoryGroupNullValue() public void testAddRepositoryGroupNullValue()
{ {
addRepositoryGroup( " " ); addRepositoryGroup( " " );
assertTextPresent( "Identifier field is required." ); assertTextPresent( "Identifier field is required." );
} }
@Test(dependsOnMethods = { "testWithCorrectUsernamePassword" } ) @Test( dependsOnMethods = { "testWithCorrectUsernamePassword" } )
public void testAddRepositoryGroupValidValue() public void testAddRepositoryGroupValidValue()
{ {
addRepositoryGroup( "testing" ); addRepositoryGroup( "testing" );
//assertAddedRepositoryLink( "testing" ); // assertAddedRepositoryLink( "testing" );
Assert.assertEquals( getSelenium().getText( "//div[@id='contentArea']/div[2]/div/div[1]/p[1]" ), "testing" ); Assert.assertEquals( getSelenium().getText( "//div[@id='contentArea']/div[2]/div/div[1]/p[1]" ), "testing" );
} }
@Test(dependsOnMethods = { "testAddRepositoryGroupValidValue" } ) @Test( dependsOnMethods = { "testAddRepositoryGroupValidValue" } )
public void testAddRepositoryToRepositoryGroup() public void testAddRepositoryToRepositoryGroup()
{ {
addRepositoryToRepositoryGroup( "testing", "internal" ); addRepositoryToRepositoryGroup( "testing", "internal" );
Assert.assertEquals( getSelenium().getText( "//div[@id='contentArea']/div[2]/div/div[3]/div[2]/p[1]" ), "internal" ); Assert.assertEquals( getSelenium().getText( "//div[@id='contentArea']/div[2]/div/div[3]/div[2]/p[1]" ),
//clickLinkWithXPath( "/html/body/div[4]/div/div/div[2]/div/div/p[2]/a" ); "internal" );
//getSelenium().goBack(); // clickLinkWithXPath( "/html/body/div[4]/div/div/div[2]/div/div/p[2]/a" );
} // getSelenium().goBack();
}
@Test(dependsOnMethods = { "testAddRepositoryToRepositoryGroup" } ) @Test( dependsOnMethods = { "testAddRepositoryToRepositoryGroup" } )
public void testDeleteRepositoryOfRepositoryGroup() public void testDeleteRepositoryOfRepositoryGroup()
{ {
deleteRepositoryInRepositoryGroups(); deleteRepositoryInRepositoryGroups();
assertTextPresent( "Repository Groups" ); assertTextPresent( "Repository Groups" );
assertTextNotPresent( "No Repository Groups Defined." ); assertTextNotPresent( "No Repository Groups Defined." );
Assert.assertFalse( getSelenium().isElementPresent( "//div[@id='contentArea']/div[2]/div/div[3]/div[2]/p[1]" ) ); Assert.assertFalse( getSelenium().isElementPresent( "//div[@id='contentArea']/div[2]/div/div[3]/div[2]/p[1]" ) );
} }
@Test(dependsOnMethods = { "testDeleteRepositoryOfRepositoryGroup" } ) @Test( dependsOnMethods = { "testDeleteRepositoryOfRepositoryGroup" } )
public void testDeleteRepositoryGroup() public void testDeleteRepositoryGroup()
{ {
assertRepositoryGroupsPage(); assertRepositoryGroupsPage();
deleteRepositoryGroup( "testing" ); deleteRepositoryGroup( "testing" );
assertTextPresent( "No Repository Groups Defined." ); assertTextPresent( "No Repository Groups Defined." );
} }
/*@Test(dependsOnMethods = { "testAddRepositoryToRepositoryGroup" } ) /*
public void testCheckRepositoryGroup() * @Test(dependsOnMethods = { "testAddRepositoryToRepositoryGroup" } ) public void testCheckRepositoryGroup() {
{ * clickLinkWithXPath( "/html/body/div[4]/div/div/div[2]/div/div/p[2]/a" ); getSelenium().goBack(); }
clickLinkWithXPath( "/html/body/div[4]/div/div/div[2]/div/div/p[2]/a" ); */
getSelenium().goBack();
}*/
} }

View File

@ -62,7 +62,7 @@ public class XPathExpressionUtil
xpathExpression += LIST; xpathExpression += LIST;
xpathExpression += START_NODE_TEST; xpathExpression += START_NODE_TEST;
for (int nIndex = 0; nIndex < values.length; nIndex++ ) for ( int nIndex = 0; nIndex < values.length; nIndex++ )
{ {
xpathExpression += ( ( nIndex > 0 ) ? AND : "" ); xpathExpression += ( ( nIndex > 0 ) ? AND : "" );
xpathExpression += contains( LINE + position( nIndex + 1 ), values[nIndex] ); xpathExpression += contains( LINE + position( nIndex + 1 ), values[nIndex] );
@ -77,7 +77,7 @@ public class XPathExpressionUtil
/** /**
* expression for acquiring an element in one of the table columns * expression for acquiring an element in one of the table columns
* *
* @param element the node element * @param element the node element
* @param elementIndex column index of the element, used for skipping * @param elementIndex column index of the element, used for skipping
* @param columnValues the values to be matched in each column, element column is included * @param columnValues the values to be matched in each column, element column is included
* @return * @return
@ -90,14 +90,13 @@ public class XPathExpressionUtil
/** /**
* expression for acquiring an element in one of the table columns * expression for acquiring an element in one of the table columns
* *
* @param element the node element * @param element the node element
* @param elementIndex column index of the element, used for skipping * @param elementIndex column index of the element, used for skipping
* @param elementValue the matched element value * @param elementValue the matched element value
* @param columnValues the values to be matched in each column, element column is included * @param columnValues the values to be matched in each column, element column is included
* @return * @return
*/ */
public static String getColumnElement( String element, int elementIndex, String elementValue, public static String getColumnElement( String element, int elementIndex, String elementValue, String[] columnValues )
String[] columnValues )
{ {
return getColumnElement( element, elementIndex, elementValue, "TEXT", columnValues ); return getColumnElement( element, elementIndex, elementValue, "TEXT", columnValues );
} }
@ -105,14 +104,13 @@ public class XPathExpressionUtil
/** /**
* expression for acquiring an element in one of the table columns * expression for acquiring an element in one of the table columns
* *
* @param element the node element * @param element the node element
* @param elementIndex column index of the element, used for skipping * @param elementIndex column index of the element, used for skipping
* @param imageName the matched image name * @param imageName the matched image name
* @param columnValues the values to be matched in each column, element column is included * @param columnValues the values to be matched in each column, element column is included
* @return * @return
*/ */
public static String getImgColumnElement( String element, int elementIndex, String imageName, public static String getImgColumnElement( String element, int elementIndex, String imageName, String[] columnValues )
String[] columnValues )
{ {
return getColumnElement( element, elementIndex, imageName, IMG, columnValues ); return getColumnElement( element, elementIndex, imageName, IMG, columnValues );
} }
@ -120,7 +118,7 @@ public class XPathExpressionUtil
/** /**
* expression for acquiring an element in one of the table columns * expression for acquiring an element in one of the table columns
* *
* @param element the node element * @param element the node element
* @param elementIndex column index of the element, used for skipping * @param elementIndex column index of the element, used for skipping
* @param imageName the matched image name * @param imageName the matched image name
* @param columnValues the values to be matched in each column, element column is included * @param columnValues the values to be matched in each column, element column is included
@ -160,8 +158,7 @@ public class XPathExpressionUtil
} }
/** /**
* expression for acquiring the table row that matches all column values with the same order * expression for acquiring the table row that matches all column values with the same order as the list
* as the list
* *
* @param columnValues the matched list of columnValues * @param columnValues the matched list of columnValues
* @return * @return

View File

@ -25,30 +25,31 @@ import org.apache.archiva.web.test.XPathExpressionUtil;
*/ */
public abstract class AbstractArchivaTest public abstract class AbstractArchivaTest
extends AbstractSeleniumTest extends AbstractSeleniumTest
{ {
protected String username; protected String username;
protected String fullname;
public String getUserEmail() protected String fullname;
{
String email = getProperty("USERROLE_EMAIL");
return email;
}
public String getUserRolePassword() public String getUserEmail()
{ {
String password = getProperty("USERROLE_PASSWORD"); String email = getProperty( "USERROLE_EMAIL" );
return password; return email;
} }
public String getUserRoleNewPassword() public String getUserRolePassword()
{ {
String password_new = getProperty( "NEW_USERROLE_PASSWORD" ); String password = getProperty( "USERROLE_PASSWORD" );
return password_new; return password;
} }
public String getBasedir() public String getUserRoleNewPassword()
{
String password_new = getProperty( "NEW_USERROLE_PASSWORD" );
return password_new;
}
public String getBasedir()
{ {
String basedir = System.getProperty( "basedir" ); String basedir = System.getProperty( "basedir" );
@ -60,165 +61,164 @@ public abstract class AbstractArchivaTest
return basedir; return basedir;
} }
public String getAdminUsername() public String getAdminUsername()
{ {
String adminUsername = getProperty( "ADMIN_USERNAME" ); String adminUsername = getProperty( "ADMIN_USERNAME" );
return adminUsername; return adminUsername;
} }
public String getAdminPassword() public String getAdminPassword()
{ {
String adminPassword = getProperty( "ADMIN_PASSWORD" ); String adminPassword = getProperty( "ADMIN_PASSWORD" );
return adminPassword; return adminPassword;
} }
public void assertCreateAdmin() public void assertCreateAdmin()
{ {
assertPage( "Apache Archiva \\ Create Admin User" ); assertPage( "Apache Archiva \\ Create Admin User" );
assertTextPresent( "Username" ); assertTextPresent( "Username" );
assertFieldValue( "admin", "user.username" ); assertFieldValue( "admin", "user.username" );
assertTextPresent( "Full Name*" ); assertTextPresent( "Full Name*" );
assertElementPresent( "user.fullName" ); assertElementPresent( "user.fullName" );
assertTextPresent( "Email Address*" ); assertTextPresent( "Email Address*" );
assertElementPresent( "user.email"); assertElementPresent( "user.email" );
assertTextPresent( "Password*" ); assertTextPresent( "Password*" );
assertElementPresent( "user.password" ); assertElementPresent( "user.password" );
assertTextPresent( "Confirm Password*" ); assertTextPresent( "Confirm Password*" );
assertElementPresent( "user.confirmPassword" ); assertElementPresent( "user.confirmPassword" );
assertButtonWithValuePresent( "Create Admin" ); assertButtonWithValuePresent( "Create Admin" );
} }
public void submitAdminData( String fullname, String email, String password ) public void submitAdminData( String fullname, String email, String password )
{ {
setFieldValue( "user.fullName", fullname ); setFieldValue( "user.fullName", fullname );
setFieldValue( "user.email", email ); setFieldValue( "user.email", email );
setFieldValue( "user.password", password ); setFieldValue( "user.password", password );
setFieldValue( "user.confirmPassword", password ); setFieldValue( "user.confirmPassword", password );
submit(); submit();
} }
//Go to Login Page // Go to Login Page
public void goToLoginPage() public void goToLoginPage()
{ {
getSelenium().open( baseUrl ); getSelenium().open( baseUrl );
clickLinkWithText( "Login"); clickLinkWithText( "Login" );
assertLoginPage(); assertLoginPage();
} }
public void submitUserData( String username, String password, boolean rememberme, boolean success ) public void submitUserData( String username, String password, boolean rememberme, boolean success )
{ {
setFieldValue( "username", username ); setFieldValue( "username", username );
setFieldValue( "password", password ); setFieldValue( "password", password );
if ( rememberme ) if ( rememberme )
{ {
checkField( "rememberMe" ); checkField( "rememberMe" );
} }
submit(); submit();
if ( success ) if ( success )
{ {
assertUserLoggedIn( username ); assertUserLoggedIn( username );
} }
else else
{ {
assertLoginPage(); assertLoginPage();
} }
} }
public void assertLoginPage() public void assertLoginPage()
{ {
assertPage( "Apache Archiva \\ Login Page" ); assertPage( "Apache Archiva \\ Login Page" );
assertTextPresent( "Login" ); assertTextPresent( "Login" );
assertTextPresent( "Register" ); assertTextPresent( "Register" );
assertTextPresent( "Username" ); assertTextPresent( "Username" );
assertElementPresent( "username" ); assertElementPresent( "username" );
assertTextPresent( "Password" ); assertTextPresent( "Password" );
assertElementPresent( "password" ); assertElementPresent( "password" );
assertTextPresent( "Remember Me" ); assertTextPresent( "Remember Me" );
assertElementPresent( "rememberMe" ); assertElementPresent( "rememberMe" );
assertButtonWithValuePresent( "Login" ); assertButtonWithValuePresent( "Login" );
assertButtonWithValuePresent( "Cancel" ); assertButtonWithValuePresent( "Cancel" );
assertTextPresent( "Need an Account? Register!" ); assertTextPresent( "Need an Account? Register!" );
assertTextPresent( "Forgot your Password? Request a password reset." ); assertTextPresent( "Forgot your Password? Request a password reset." );
} }
//User Management // User Management
public void goToUserManagementPage() public void goToUserManagementPage()
{ {
clickLinkWithText( "User Management" ); clickLinkWithText( "User Management" );
assertUserManagementPage(); assertUserManagementPage();
} }
public void assertUserManagementPage() public void assertUserManagementPage()
{ {
assertPage( "Apache Archiva \\ [Admin] User List" ); assertPage( "Apache Archiva \\ [Admin] User List" );
assertTextPresent( "[Admin] List of Users in Role: Any" ); assertTextPresent( "[Admin] List of Users in Role: Any" );
assertTextPresent( "Navigation" ); assertTextPresent( "Navigation" );
assertImgWithAlt( "First" ); assertImgWithAlt( "First" );
assertImgWithAlt( "Prev" ); assertImgWithAlt( "Prev" );
assertImgWithAlt( "Next" ); assertImgWithAlt( "Next" );
assertImgWithAlt( "Last" ); assertImgWithAlt( "Last" );
assertTextPresent( "Display Rows" ); assertTextPresent( "Display Rows" );
assertTextPresent( "Username" ); assertTextPresent( "Username" );
assertTextPresent( "Full Name" ); assertTextPresent( "Full Name" );
assertTextPresent( "Email" ); assertTextPresent( "Email" );
assertTextPresent( "Permanent" ); assertTextPresent( "Permanent" );
assertTextPresent( "Validated" ); assertTextPresent( "Validated" );
assertTextPresent( "Locked" ); assertTextPresent( "Locked" );
assertTextPresent( "Tasks" ); assertTextPresent( "Tasks" );
assertTextPresent( "Tools" ); assertTextPresent( "Tools" );
assertTextPresent( "Tasks" ); assertTextPresent( "Tasks" );
assertTextPresent( "The following tools are available for administrators to manipulate the user list." ); assertTextPresent( "The following tools are available for administrators to manipulate the user list." );
assertButtonWithValuePresent( "Create New User" ); assertButtonWithValuePresent( "Create New User" );
assertButtonWithValuePresent( "Show Users In Role" ); assertButtonWithValuePresent( "Show Users In Role" );
assertElementPresent( "roleName" ); assertElementPresent( "roleName" );
assertTextPresent( "Reports" ); assertTextPresent( "Reports" );
assertTextPresent( "Name" ); assertTextPresent( "Name" );
assertTextPresent( "Types" ); assertTextPresent( "Types" );
assertTextPresent( "User List" ); assertTextPresent( "User List" );
assertTextPresent( "Roles Matrix" ); assertTextPresent( "Roles Matrix" );
} }
/* //User Role /*
public void goToUserRolesPage() * //User Role public void goToUserRolesPage() { clickLinkWithText( "User Roles" ); assertUserRolesPage(); }
{ */
clickLinkWithText( "User Roles" );
assertUserRolesPage();
}*/
public void assertUserRolesPage() public void assertUserRolesPage()
{ {
assertPage( "Apache Archiva \\ [Admin] User Edit" ); assertPage( "Apache Archiva \\ [Admin] User Edit" );
assertTextPresent( "[Admin] User Roles" ); assertTextPresent( "[Admin] User Roles" );
assertTextPresent( "Username" ); assertTextPresent( "Username" );
assertTextPresent( "Full Name" ); assertTextPresent( "Full Name" );
String userRoles = "Guest,Registered User,System Administrator,User Administrator,Global Repository Observer,Global Repository Manager,Repository Observer,Repository Manager,internal"; String userRoles =
String[] arrayRole = userRoles.split( "," ); "Guest,Registered User,System Administrator,User Administrator,Global Repository Observer,Global Repository Manager,Repository Observer,Repository Manager,internal";
for ( String userroles : arrayRole ) String[] arrayRole = userRoles.split( "," );
assertTextPresent( userroles ); for ( String userroles : arrayRole )
} assertTextPresent( userroles );
}
public void assertDeleteUserPage( String username ) public void assertDeleteUserPage( String username )
{ {
assertPage( "Apache Archiva \\ [Admin] User Delete" ); //TODO assertPage( "Apache Archiva \\ [Admin] User Delete" ); // TODO
assertTextPresent( "[Admin] User Delete" ); assertTextPresent( "[Admin] User Delete" );
assertTextPresent( "The following user will be deleted:" ); assertTextPresent( "The following user will be deleted:" );
assertTextPresent( "Username: " + username ); assertTextPresent( "Username: " + username );
assertButtonWithValuePresent( "Delete User" ); assertButtonWithValuePresent( "Delete User" );
} }
public void createUser( String userName, String fullName, String email, String password, boolean valid ) public void createUser( String userName, String fullName, String email, String password, boolean valid )
{ {
createUser( userName, fullName, email, password, password, valid ); createUser( userName, fullName, email, password, password, valid );
} }
private void createUser( String userName, String fullName, String emailAd, String password, String confirmPassword, boolean valid ) private void createUser( String userName, String fullName, String emailAd, String password, String confirmPassword,
{ boolean valid )
//login( getAdminUsername() , getAdminPassword() ); {
clickLinkWithText( "User Management" ); // login( getAdminUsername() , getAdminPassword() );
clickButtonWithValue( "Create New User" ); clickLinkWithText( "User Management" );
assertCreateUserPage(); clickButtonWithValue( "Create New User" );
assertCreateUserPage();
setFieldValue( "user.username", userName ); setFieldValue( "user.username", userName );
setFieldValue( "user.fullName", fullName ); setFieldValue( "user.fullName", fullName );
setFieldValue( "user.email", emailAd ); setFieldValue( "user.email", emailAd );
@ -226,41 +226,41 @@ public abstract class AbstractArchivaTest
setFieldValue( "user.confirmPassword", confirmPassword ); setFieldValue( "user.confirmPassword", confirmPassword );
submit(); submit();
assertUserRolesPage( ); assertUserRolesPage();
clickButtonWithValue( "Submit" ); clickButtonWithValue( "Submit" );
if (valid ) if ( valid )
{ {
String[] columnValues = {userName, fullName, emailAd}; String[] columnValues = { userName, fullName, emailAd };
assertElementPresent( XPathExpressionUtil.getTableRow( columnValues ) ); assertElementPresent( XPathExpressionUtil.getTableRow( columnValues ) );
} }
else else
{ {
assertCreateUserPage(); assertCreateUserPage();
} }
} }
public void deleteUser( String userName, String fullName, String emailAdd ) public void deleteUser( String userName, String fullName, String emailAdd )
{ {
deleteUser( userName, fullName, emailAdd, false, false ); deleteUser( userName, fullName, emailAdd, false, false );
} }
public void deleteUser(String userName, String fullName, String emailAd, boolean validated, boolean locked) public void deleteUser( String userName, String fullName, String emailAd, boolean validated, boolean locked )
{ {
String[] columnValues = {userName, fullName, emailAd}; String[] columnValues = { userName, fullName, emailAd };
//clickLinkWithText( "userlist" ); // clickLinkWithText( "userlist" );
clickLinkWithXPath( "//table[@id='ec_table']/tbody[2]/tr[3]/td[7]/a/img" ); clickLinkWithXPath( "//table[@id='ec_table']/tbody[2]/tr[3]/td[7]/a/img" );
assertDeleteUserPage( userName ); assertDeleteUserPage( userName );
submit(); submit();
assertElementNotPresent( XPathExpressionUtil.getTableRow( columnValues ) ); assertElementNotPresent( XPathExpressionUtil.getTableRow( columnValues ) );
} }
public void login( String username, String password ) public void login( String username, String password )
{ {
login( username, password, true, "Login Page" ); login( username, password, true, "Login Page" );
} }
public void login( String username, String password, boolean valid, String assertReturnPage ) public void login( String username, String password, boolean valid, String assertReturnPage )
{ {
if ( isLinkPresent( "Login" ) ) if ( isLinkPresent( "Login" ) )
{ {
@ -323,133 +323,143 @@ public abstract class AbstractArchivaTest
} }
// User Roles // User Roles
public void assertUserRoleCheckBoxPresent(String value) public void assertUserRoleCheckBoxPresent( String value )
{ {
getSelenium() .isElementPresent("xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='" + value + "']"); getSelenium().isElementPresent(
} "xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='"
+ value + "']" );
}
public void assertResourceRolesCheckBoxPresent(String value) { public void assertResourceRolesCheckBoxPresent( String value )
getSelenium().isElementPresent("xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']"); {
} getSelenium().isElementPresent( "xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']" );
}
public void checkUserRoleWithValue(String value) public void checkUserRoleWithValue( String value )
{ {
assertUserRoleCheckBoxPresent(value); assertUserRoleCheckBoxPresent( value );
getSelenium().click( "xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='" + value + "']"); getSelenium().click(
} "xpath=//input[@id='addRolesToUser_addNDSelectedRoles' and @name='addNDSelectedRoles' and @value='"
+ value + "']" );
}
public void checkResourceRoleWithValue(String value) public void checkResourceRoleWithValue( String value )
{ {
assertResourceRolesCheckBoxPresent(value); assertResourceRolesCheckBoxPresent( value );
getSelenium().click( "xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']" ); getSelenium().click( "xpath=//input[@name='addDSelectedRoles' and @value='" + value + "']" );
} }
public void changePassword( String oldPassword, String newPassword )
{
assertPage( "Apache Archiva \\ Change Password" );
setFieldValue( "existingPassword", oldPassword );
setFieldValue( "newPassword", newPassword );
setFieldValue( "newPasswordConfirm", newPassword );
clickButtonWithValue( "Change Password" );
}
public void changePassword(String oldPassword, String newPassword) { public void assertCreateUserPage()
assertPage("Apache Archiva \\ Change Password"); {
setFieldValue("existingPassword", oldPassword); assertPage( "Apache Archiva \\ [Admin] User Create" );
setFieldValue("newPassword", newPassword); assertTextPresent( "[Admin] User Create" );
setFieldValue("newPasswordConfirm", newPassword); assertTextPresent( "Username*:" );
clickButtonWithValue("Change Password"); 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" );
assertButtonWithValuePresent( "Create User" );
}
public void assertCreateUserPage() public void assertLeftNavMenuWithRole( String role )
{ {
assertPage( "Apache Archiva \\ [Admin] User Create" ); if ( role.equals( "Guest" ) || role.equals( "Registered User" ) || role.equals( "Global Repository Observer" )
assertTextPresent( "[Admin] User Create" ); || role.equals( "Repository Observer - internal" ) || role.equals( "Repository Observer - snapshots" ) )
assertTextPresent( "Username*:" ); {
assertElementPresent( "user.username" ); assertTextPresent( "Search" );
assertTextPresent( "Full Name*:"); assertLinkPresent( "Find Artifact" );
assertElementPresent( "user.fullName" ); assertLinkPresent( "Browse" );
assertTextPresent( "Email Address*:" ); assertLinkNotPresent( "Repositories" );
assertElementPresent( "user.email" ); }
assertTextPresent( "Password*:" ); else if ( role.equals( "User Administrator" ) )
assertElementPresent( "user.password" ); {
assertTextPresent( "Confirm Password*:" ); assertTextPresent( "Search" );
assertElementPresent( "user.confirmPassword" ); assertLinkPresent( "Find Artifact" );
assertButtonWithValuePresent( "Create User" ); assertLinkPresent( "Browse" );
} assertLinkPresent( "User Management" );
assertLinkPresent( "User Roles" );
assertLinkNotPresent( "Repositories" );
}
else if ( role.equals( "Global Repository Manager" ) || role.equals( "Repository Manager - internal" )
|| role.equals( "Repository Manager - snapshots" ) )
{
assertTextPresent( "Search" );
assertLinkPresent( "Find Artifact" );
assertLinkPresent( "Browse" );
assertLinkPresent( "Upload Artifact" );
assertLinkPresent( "Delete Artifact" );
assertLinkNotPresent( "Repositories" );
}
else
{
assertTextPresent( "Search" );
String navMenu =
"Find Artifact,Browse,Reports,User Management,User Roles,Appearance,Upload Artifact,Delete Artifact,Repository Groups,Repositories,Proxy Connectors,Legacy Support,Network Proxies,Repository Scanning";
String[] arrayMenu = navMenu.split( "," );
for ( String navmenu : arrayMenu )
assertLinkPresent( navmenu );
}
}
public void assertLeftNavMenuWithRole( String role ) // Find Artifact
{ public void goToFindArtifactPage()
if ( role.equals( "Guest" ) || role.equals( "Registered User" ) || role.equals( "Global Repository Observer" ) || role.equals( "Repository Observer - internal" ) || role.equals( "Repository Observer - snapshots" ) ) {
{ clickLinkWithText( "Find Artifact" );
assertTextPresent( "Search" ); assertFindArtifactPage();
assertLinkPresent( "Find Artifact" ); }
assertLinkPresent( "Browse" );
assertLinkNotPresent( "Repositories" );
}
else if ( role.equals( "User Administrator" ) )
{
assertTextPresent( "Search" );
assertLinkPresent( "Find Artifact" );
assertLinkPresent( "Browse" );
assertLinkPresent( "User Management" );
assertLinkPresent( "User Roles" );
assertLinkNotPresent( "Repositories" );
}
else if ( role.equals( "Global Repository Manager" ) || role.equals( "Repository Manager - internal" ) || role.equals( "Repository Manager - snapshots" ) )
{
assertTextPresent( "Search" );
assertLinkPresent( "Find Artifact" );
assertLinkPresent( "Browse" );
assertLinkPresent( "Upload Artifact" );
assertLinkPresent( "Delete Artifact" );
assertLinkNotPresent( "Repositories" );
}
else
{
assertTextPresent( "Search" );
String navMenu = "Find Artifact,Browse,Reports,User Management,User Roles,Appearance,Upload Artifact,Delete Artifact,Repository Groups,Repositories,Proxy Connectors,Legacy Support,Network Proxies,Repository Scanning";
String[] arrayMenu = navMenu.split( "," );
for (String navmenu : arrayMenu )
assertLinkPresent( navmenu );
}
}
//Find Artifact
public void goToFindArtifactPage()
{
clickLinkWithText( "Find Artifact" );
assertFindArtifactPage();
}
public void assertFindArtifactPage() public void assertFindArtifactPage()
{ {
assertPage( "Apache Archiva \\ Find Artifact" ); assertPage( "Apache Archiva \\ Find Artifact" );
assertTextPresent( "Find Artifact" ); assertTextPresent( "Find Artifact" );
assertTextPresent( "Search for:" ); assertTextPresent( "Search for:" );
assertTextPresent( "Checksum:" ); assertTextPresent( "Checksum:" );
assertElementPresent( "q" ); assertElementPresent( "q" );
assertButtonWithValuePresent( "Search" ); assertButtonWithValuePresent( "Search" );
} }
//Appearance // Appearance
public void goToAppearancePage() public void goToAppearancePage()
{ {
clickLinkWithText( "Appearance" ); clickLinkWithText( "Appearance" );
assertAppearancePage(); assertAppearancePage();
} }
public void assertAppearancePage() public void assertAppearancePage()
{ {
assertPage( "Apache Archiva \\ Configure Appearance" ); assertPage( "Apache Archiva \\ Configure Appearance" );
String appearance = "Appearance,Organization Details,The logo in the top right of the screen is controlled by the following settings.,Organization Information,Name,URL,Logo URL"; String appearance =
String[] arrayAppearance = appearance.split( "," ); "Appearance,Organization Details,The logo in the top right of the screen is controlled by the following settings.,Organization Information,Name,URL,Logo URL";
for ( String appear : arrayAppearance ) String[] arrayAppearance = appearance.split( "," );
assertTextPresent( appear ); for ( String appear : arrayAppearance )
assertLinkPresent( "Edit" ); assertTextPresent( appear );
assertLinkPresent( "Change your appearance" ); assertLinkPresent( "Edit" );
} assertLinkPresent( "Change your appearance" );
}
public void addEditAppearance( String name, String url, String logoUrl ) public void addEditAppearance( String name, String url, String logoUrl )
{ {
setFieldValue( "organisationName" , name ); setFieldValue( "organisationName", name );
setFieldValue( "organisationUrl" , url ); setFieldValue( "organisationUrl", url );
setFieldValue( "organisationLogo" , logoUrl ); setFieldValue( "organisationLogo", logoUrl );
clickButtonWithValue( "Save" ); clickButtonWithValue( "Save" );
} }
// Upload Artifact // Upload Artifact
public void goToAddArtifactPage() public void goToAddArtifactPage()
{ {
clickLinkWithText( "Upload Artifact" ); clickLinkWithText( "Upload Artifact" );
@ -520,41 +530,41 @@ public abstract class AbstractArchivaTest
public void goToRepositoriesPage() public void goToRepositoriesPage()
{ {
if( !getTitle().equals( "Apache Archiva \\ Administration - Repositories" ) ) if ( !getTitle().equals( "Apache Archiva \\ Administration - Repositories" ) )
{ {
clickLinkWithText( "Repositories" ); clickLinkWithText( "Repositories" );
} }
assertRepositoriesPage(); assertRepositoriesPage();
} }
public void assertRepositoriesPage() public void assertRepositoriesPage()
{ {
assertPage( "Apache Archiva \\ Administration - Repositories" ); assertPage( "Apache Archiva \\ Administration - Repositories" );
assertTextPresent( "Administration - Repositories" ); assertTextPresent( "Administration - Repositories" );
assertTextPresent( "Managed Repositories" ); assertTextPresent( "Managed Repositories" );
assertTextPresent( "Remote Repositories" ); assertTextPresent( "Remote Repositories" );
} }
public void addManagedRepository( String identifier, String name, String directory, String indexDirectory, String type, String cron, public void addManagedRepository( String identifier, String name, String directory, String indexDirectory,
String daysOlder, String retentionCount ) String type, String cron, String daysOlder, String retentionCount )
{ {
//goToRepositoriesPage(); // goToRepositoriesPage();
//clickLinkWithText( "Add" ); // clickLinkWithText( "Add" );
setFieldValue( "repository.id" , identifier ); setFieldValue( "repository.id", identifier );
setFieldValue( "repository.name" , name ); setFieldValue( "repository.name", name );
setFieldValue( "repository.location" , directory ); setFieldValue( "repository.location", directory );
setFieldValue( "repository.indexDir" , indexDirectory ); setFieldValue( "repository.indexDir", indexDirectory );
selectValue( "repository.layout", type ); selectValue( "repository.layout", type );
setFieldValue( "repository.refreshCronExpression" , cron ); setFieldValue( "repository.refreshCronExpression", cron );
setFieldValue( "repository.daysOlder" , daysOlder ); setFieldValue( "repository.daysOlder", daysOlder );
setFieldValue( "repository.retentionCount" , retentionCount ); setFieldValue( "repository.retentionCount", retentionCount );
//TODO // TODO
clickButtonWithValue( "Add Repository" ); clickButtonWithValue( "Add Repository" );
} }
protected void logout() protected void logout()
{ {
clickLinkWithText("Logout"); clickLinkWithText( "Logout" );
assertTextNotPresent( "Current User:" ); assertTextNotPresent( "Current User:" );
assertLinkNotPresent( "Edit Details" ); assertLinkNotPresent( "Edit Details" );
assertLinkNotPresent( "Logout" ); assertLinkNotPresent( "Logout" );

View File

@ -1,112 +1,114 @@
package org.apache.archiva.web.test.parent; package org.apache.archiva.web.test.parent;
public abstract class AbstractArtifactManagementTest public abstract class AbstractArtifactManagementTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
public String getGroupId() public String getGroupId()
{ {
String groupId = getProperty( "GROUPID" ) ; String groupId = getProperty( "GROUPID" );
return groupId; return groupId;
} }
public String getArtifactId() public String getArtifactId()
{ {
String artifactId = getProperty( "ARTIFACTID" ) ; String artifactId = getProperty( "ARTIFACTID" );
return artifactId; return artifactId;
} }
public String getVersion() public String getVersion()
{ {
String version = getProperty( "VERSION" ) ; String version = getProperty( "VERSION" );
return version; return version;
} }
public String getPackaging() public String getPackaging()
{ {
String packaging = getProperty( "PACKAGING" ) ; String packaging = getProperty( "PACKAGING" );
return packaging; return packaging;
} }
public String getArtifactFilePath() public String getArtifactFilePath()
{ {
return "src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar"; return "src/test/resources/snapshots/org/apache/maven/archiva/web/test/foo-bar/1.0-SNAPSHOT/foo-bar-1.0-SNAPSHOT.jar";
} }
public String getRepositoryId() public String getRepositoryId()
{ {
String repositoryId = getProperty( "REPOSITORYID" ) ; String repositoryId = getProperty( "REPOSITORYID" );
return repositoryId; return repositoryId;
} }
public void goToDeleteArtifactPage() public void goToDeleteArtifactPage()
{ {
login( getProperty( "ADMIN_USERNAME" ), getProperty( "ADMIN_PASSWORD" ) ); login( getProperty( "ADMIN_USERNAME" ), getProperty( "ADMIN_PASSWORD" ) );
clickLinkWithText( "Delete Artifact" ); clickLinkWithText( "Delete Artifact" );
assertDeleteArtifactPage(); assertDeleteArtifactPage();
} }
public void deleteArtifact( String groupId, String artifactId, String version, String repositoryId ) public void deleteArtifact( String groupId, String artifactId, String version, String repositoryId )
{ {
goToDeleteArtifactPage(); goToDeleteArtifactPage();
setFieldValue( "groupId" , groupId ); setFieldValue( "groupId", groupId );
setFieldValue( "artifactId" , artifactId ); setFieldValue( "artifactId", artifactId );
setFieldValue( "version" , version ); setFieldValue( "version", version );
selectValue( "repositoryId" , repositoryId ); selectValue( "repositoryId", repositoryId );
clickButtonWithValue( "Submit" ) ; clickButtonWithValue( "Submit" );
} }
public void assertDeleteArtifactPage() public void assertDeleteArtifactPage()
{ {
assertPage( "Apache Archiva \\ Delete Artifact" ); assertPage( "Apache Archiva \\ Delete Artifact" );
assertTextPresent( "Delete Artifact" ); assertTextPresent( "Delete Artifact" );
assertTextPresent( "Group Id*:" ); assertTextPresent( "Group Id*:" );
assertTextPresent( "Artifact Id*:" ); assertTextPresent( "Artifact Id*:" );
assertTextPresent( "Version*:" ); assertTextPresent( "Version*:" );
assertTextPresent( "Repository Id:" ); assertTextPresent( "Repository Id:" );
assertElementPresent( "groupId" ); assertElementPresent( "groupId" );
assertElementPresent( "artifactId" ); assertElementPresent( "artifactId" );
assertElementPresent( "version" ); assertElementPresent( "version" );
assertElementPresent( "repositoryId" ); assertElementPresent( "repositoryId" );
assertButtonWithValuePresent( "Submit" ); assertButtonWithValuePresent( "Submit" );
} }
// Legacy Support // Legacy Support
public void goToLegacySupportPage() public void goToLegacySupportPage()
{ {
clickLinkWithText( "Legacy Support" ); clickLinkWithText( "Legacy Support" );
assertLegacySupportPage(); assertLegacySupportPage();
} }
public void assertLegacySupportPage() public void assertLegacySupportPage()
{ {
assertPage( "Apache Archiva \\ Administration - Legacy Support" ); assertPage( "Apache Archiva \\ Administration - Legacy Support" );
assertTextPresent( "Administration - Legacy Artifact Path Resolution" ); assertTextPresent( "Administration - Legacy Artifact Path Resolution" );
assertTextPresent( "Path Mappings" ); assertTextPresent( "Path Mappings" );
assertLinkPresent( "Add" ); assertLinkPresent( "Add" );
} }
public void addLegacyArtifactPath( String path, String groupId, String artifactId, String version, String classifier, String type) public void addLegacyArtifactPath( String path, String groupId, String artifactId, String version,
{ String classifier, String type )
assertAddLegacyArtifactPathPage(); {
setFieldValue( "legacyArtifactPath.path" , path ); assertAddLegacyArtifactPathPage();
setFieldValue( "groupId" , groupId ); setFieldValue( "legacyArtifactPath.path", path );
setFieldValue( "artifactId" , artifactId ); setFieldValue( "groupId", groupId );
setFieldValue( "version" , version ); setFieldValue( "artifactId", artifactId );
setFieldValue( "classifier" , classifier ); setFieldValue( "version", version );
setFieldValue( "type" , type ); setFieldValue( "classifier", classifier );
clickButtonWithValue( "Add Legacy Artifact Path" ); setFieldValue( "type", type );
} clickButtonWithValue( "Add Legacy Artifact Path" );
}
public void assertAddLegacyArtifactPathPage() public void assertAddLegacyArtifactPathPage()
{ {
assertPage( "Apache Archiva \\ Admin: Add Legacy Artifact Path" ); assertPage( "Apache Archiva \\ Admin: Add Legacy Artifact Path" );
assertTextPresent( "Admin: Add Legacy Artifact Path" ); assertTextPresent( "Admin: Add Legacy Artifact Path" );
assertTextPresent( "Enter the legacy path to map to a particular artifact reference, then adjust the fields as necessary." ); assertTextPresent( "Enter the legacy path to map to a particular artifact reference, then adjust the fields as necessary." );
String element = "addLegacyArtifactPath_legacyArtifactPath_path,addLegacyArtifactPath_groupId,addLegacyArtifactPath_artifactId,addLegacyArtifactPath_version,addLegacyArtifactPath_classifier,addLegacyArtifactPath_type"; String element =
String[] arrayElement = element.split( "," ); "addLegacyArtifactPath_legacyArtifactPath_path,addLegacyArtifactPath_groupId,addLegacyArtifactPath_artifactId,addLegacyArtifactPath_version,addLegacyArtifactPath_classifier,addLegacyArtifactPath_type";
for ( String arrayelement : arrayElement ) String[] arrayElement = element.split( "," );
assertElementPresent( arrayelement ); for ( String arrayelement : arrayElement )
assertButtonWithValuePresent( "Add Legacy Artifact Path" ); assertElementPresent( arrayelement );
} assertButtonWithValuePresent( "Add Legacy Artifact Path" );
}
} }

View File

@ -20,61 +20,61 @@ package org.apache.archiva.web.test.parent;
*/ */
public abstract class AbstractArtifactReportsTest public abstract class AbstractArtifactReportsTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
//Reports // Reports
public void goToReportsPage() public void goToReportsPage()
{ {
clickLinkWithText( "Reports" ); clickLinkWithText( "Reports" );
assertReportsPage(); assertReportsPage();
} }
public void assertReportsPage() public void assertReportsPage()
{ {
assertPage( "Apache Archiva \\ Reports" ); assertPage( "Apache Archiva \\ Reports" );
assertTextPresent( "Reports" ); assertTextPresent( "Reports" );
assertTextPresent( "Repository Statistics" ); assertTextPresent( "Repository Statistics" );
assertTextPresent( "Repositories To Be Compared" ); assertTextPresent( "Repositories To Be Compared" );
assertElementPresent( "availableRepositories" ); assertElementPresent( "availableRepositories" );
assertButtonWithValuePresent( "v" ); assertButtonWithValuePresent( "v" );
assertButtonWithValuePresent( "^" ); assertButtonWithValuePresent( "^" );
assertButtonWithValuePresent( "<-" ); assertButtonWithValuePresent( "<-" );
assertButtonWithValuePresent( "->" ); assertButtonWithValuePresent( "->" );
assertButtonWithValuePresent( "<<--" ); assertButtonWithValuePresent( "<<--" );
assertButtonWithValuePresent( "-->>" ); assertButtonWithValuePresent( "-->>" );
assertButtonWithValuePresent( "<*>" ); assertButtonWithValuePresent( "<*>" );
assertElementPresent( "selectedRepositories" ); assertElementPresent( "selectedRepositories" );
assertButtonWithValuePresent( "v" ); assertButtonWithValuePresent( "v" );
assertButtonWithValuePresent( "^" ); assertButtonWithValuePresent( "^" );
assertTextPresent( "Row Count" ); assertTextPresent( "Row Count" );
assertElementPresent( "rowCount" ); assertElementPresent( "rowCount" );
assertTextPresent( "Start Date" ); assertTextPresent( "Start Date" );
assertElementPresent( "startDate" ); assertElementPresent( "startDate" );
assertTextPresent( "End Date" ); assertTextPresent( "End Date" );
assertElementPresent( "endDate" ); assertElementPresent( "endDate" );
assertButtonWithValuePresent( "View Statistics" ); assertButtonWithValuePresent( "View Statistics" );
assertTextPresent( "Repository Health" ); assertTextPresent( "Repository Health" );
assertTextPresent( "Row Count" ); assertTextPresent( "Row Count" );
assertElementPresent( "rowCount" ); assertElementPresent( "rowCount" );
assertTextPresent( "Group ID" ); assertTextPresent( "Group ID" );
assertElementPresent( "groupId" ); assertElementPresent( "groupId" );
assertTextPresent( "Repository ID" ); assertTextPresent( "Repository ID" );
assertElementPresent( "repositoryId" ); assertElementPresent( "repositoryId" );
assertButtonWithValuePresent( "Show Report" ); assertButtonWithValuePresent( "Show Report" );
} }
public void compareRepositories( String labelSelected, String startDate, String endDate ) public void compareRepositories( String labelSelected, String startDate, String endDate )
{ {
goToReportsPage(); goToReportsPage();
getSelenium().removeSelection( "generateStatisticsReport_availableRepositories" , labelSelected ); getSelenium().removeSelection( "generateStatisticsReport_availableRepositories", labelSelected );
clickButtonWithValue( "->" , false ); clickButtonWithValue( "->", false );
getSelenium().type( "startDate", startDate ); getSelenium().type( "startDate", startDate );
//clickLinkWithLocator( "1" , false ); // clickLinkWithLocator( "1" , false );
//getSelenium().click( "endDate" ); // getSelenium().click( "endDate" );
getSelenium().type( "endDate", endDate ); getSelenium().type( "endDate", endDate );
//clickLinkWithLocator( "30" , false ); // clickLinkWithLocator( "30" , false );
clickButtonWithValue( "View Statistics" ); clickButtonWithValue( "View Statistics" );
} }
} }

View File

@ -20,21 +20,21 @@ package org.apache.archiva.web.test.parent;
*/ */
public abstract class AbstractBrowseTest public abstract class AbstractBrowseTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
//Browse // Browse
public void goToBrowsePage() public void goToBrowsePage()
{ {
clickLinkWithText( "Browse" ); clickLinkWithText( "Browse" );
assertBrowsePage(); assertBrowsePage();
} }
public void assertBrowsePage() public void assertBrowsePage()
{ {
assertPage( "Apache Archiva \\ Browse Repository" ); assertPage( "Apache Archiva \\ Browse Repository" );
assertTextPresent( "Browse Repository" ); assertTextPresent( "Browse Repository" );
assertTextPresent( "Groups" ); assertTextPresent( "Groups" );
} }
} }

View File

@ -23,352 +23,364 @@ import java.io.File;
import org.testng.Assert; import org.testng.Assert;
public abstract class AbstractRepositoryTest public abstract class AbstractRepositoryTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
// Repository Groups // Repository Groups
public void goToRepositoryGroupsPage() public void goToRepositoryGroupsPage()
{ {
if( !getTitle().equals( "Apache Archiva \\ Administration - Repository Groups" ) ) if ( !getTitle().equals( "Apache Archiva \\ Administration - Repository Groups" ) )
{ {
clickLinkWithText( "Repository Groups" ); clickLinkWithText( "Repository Groups" );
} }
assertRepositoryGroupsPage(); assertRepositoryGroupsPage();
} }
public void assertRepositoryGroupsPage() public void assertRepositoryGroupsPage()
{ {
assertPage( "Apache Archiva \\ Administration - Repository Groups" ); assertPage( "Apache Archiva \\ Administration - Repository Groups" );
assertTextPresent( "Administration - Repository Groups" ); assertTextPresent( "Administration - Repository Groups" );
assertTextPresent( "Identifier*:" ); assertTextPresent( "Identifier*:" );
assertElementPresent( "repositoryGroup.id" ); assertElementPresent( "repositoryGroup.id" );
assertButtonWithValuePresent( "Add Group" ); assertButtonWithValuePresent( "Add Group" );
assertTextPresent( "Repository Groups" ); assertTextPresent( "Repository Groups" );
} }
public void assertAddedRepositoryLink( String repositoryGroupName) public void assertAddedRepositoryLink( String repositoryGroupName )
{ {
assertPage( "Apache Archiva \\ Administration - Repository Groups" ); assertPage( "Apache Archiva \\ Administration - Repository Groups" );
String repositoryGroupUrlValue = "repository/" + repositoryGroupName + "/"; String repositoryGroupUrlValue = "repository/" + repositoryGroupName + "/";
String baseUrlValue = "archiva"; String baseUrlValue = "archiva";
String repositoryGroupLink = baseUrl.replaceFirst( baseUrlValue, repositoryGroupUrlValue); String repositoryGroupLink = baseUrl.replaceFirst( baseUrlValue, repositoryGroupUrlValue );
assertTextPresent( repositoryGroupLink ); assertTextPresent( repositoryGroupLink );
} }
public void assertAddedRepositoryToRepositoryGroups( String repositoryName) public void assertAddedRepositoryToRepositoryGroups( String repositoryName )
{ {
assertPage( "Apache Archiva \\ Administration - Repository Groups" ); assertPage( "Apache Archiva \\ Administration - Repository Groups" );
assertTextPresent( repositoryName ); assertTextPresent( repositoryName );
assertTextPresent( "Archiva Managed Internal Repository" ); assertTextPresent( "Archiva Managed Internal Repository" );
assertAddedRepositoryLink( repositoryName ); assertAddedRepositoryLink( repositoryName );
} }
public void assertDeleteRepositoryGroupPage( String repositoryName) public void assertDeleteRepositoryGroupPage( String repositoryName )
{ {
assertPage( "Apache Archiva \\ Admin: Delete Repository Group" ); assertPage( "Apache Archiva \\ Admin: Delete Repository Group" );
assertTextPresent( "WARNING: This operation can not be undone." ); assertTextPresent( "WARNING: This operation can not be undone." );
assertTextPresent( "Are you sure you want to delete the following repository group?" ); assertTextPresent( "Are you sure you want to delete the following repository group?" );
assertTextPresent( "ID:" ); assertTextPresent( "ID:" );
assertTextPresent( repositoryName ); assertTextPresent( repositoryName );
assertButtonWithValuePresent( "Confirm" ); assertButtonWithValuePresent( "Confirm" );
assertButtonWithValuePresent( "Cancel" ); assertButtonWithValuePresent( "Cancel" );
} }
public void addRepositoryGroup( String repoGroupName ) public void addRepositoryGroup( String repoGroupName )
{ {
goToRepositoryGroupsPage(); goToRepositoryGroupsPage();
setFieldValue( "repositoryGroup.id", repoGroupName ); setFieldValue( "repositoryGroup.id", repoGroupName );
clickButtonWithValue( "Add Group" ); clickButtonWithValue( "Add Group" );
} }
public void addRepositoryToRepositoryGroup( String repositoryGroupName, String repositoryName ) public void addRepositoryToRepositoryGroup( String repositoryGroupName, String repositoryName )
{ {
goToRepositoryGroupsPage(); goToRepositoryGroupsPage();
String s = getSelenium().getBodyText(); String s = getSelenium().getBodyText();
if ( s.contains( "No Repository Groups Defined." ) ) if ( s.contains( "No Repository Groups Defined." ) )
{ {
setFieldValue( "repositoryGroup.id" , repositoryGroupName ); setFieldValue( "repositoryGroup.id", repositoryGroupName );
clickButtonWithValue( "Add Group" ); clickButtonWithValue( "Add Group" );
//assertAddedRepositoryLink( repositoryGroupName ); // assertAddedRepositoryLink( repositoryGroupName );
selectValue( "addRepositoryToGroup_repoId" , repositoryName ); selectValue( "addRepositoryToGroup_repoId", repositoryName );
clickButtonWithValue( "Add Repository" ); clickButtonWithValue( "Add Repository" );
assertAddedRepositoryToRepositoryGroups( repositoryName ); assertAddedRepositoryToRepositoryGroups( repositoryName );
} }
else else
{ {
//assertAddedRepositoryLink( repositoryGroupName ); // assertAddedRepositoryLink( repositoryGroupName );
selectValue( "addRepositoryToGroup_repoId" , repositoryName ); selectValue( "addRepositoryToGroup_repoId", repositoryName );
clickButtonWithValue( "Add Repository" ); clickButtonWithValue( "Add Repository" );
} }
} }
public void deleteRepositoryInRepositoryGroups() public void deleteRepositoryInRepositoryGroups()
{ {
goToRepositoryGroupsPage(); goToRepositoryGroupsPage();
getSelenium().click( "xpath=//div[@id='contentArea']/div[2]/div/div[3]/div[1]/a/img" ); getSelenium().click( "xpath=//div[@id='contentArea']/div[2]/div/div[3]/div[1]/a/img" );
waitPage(); waitPage();
} }
public void deleteRepositoryGroup( String repositoryName ) public void deleteRepositoryGroup( String repositoryName )
{ {
getSelenium().click( "xpath=//div[@id='contentArea']/div[2]/div/div[1]/div/a/img" ); getSelenium().click( "xpath=//div[@id='contentArea']/div[2]/div/div[1]/div/a/img" );
waitPage(); waitPage();
assertDeleteRepositoryGroupPage( repositoryName ); assertDeleteRepositoryGroupPage( repositoryName );
clickButtonWithValue( "Confirm" ); clickButtonWithValue( "Confirm" );
} }
/////////////////////////////// // /////////////////////////////
// proxy connectors // proxy connectors
/////////////////////////////// // /////////////////////////////
public void goToProxyConnectorsPage() public void goToProxyConnectorsPage()
{ {
clickLinkWithText( "Proxy Connectors" ); clickLinkWithText( "Proxy Connectors" );
assertProxyConnectorsPage(); assertProxyConnectorsPage();
} }
public void assertProxyConnectorsPage() public void assertProxyConnectorsPage()
{ {
assertPage( "Apache Archiva \\ Administration - Proxy Connectors" ); assertPage( "Apache Archiva \\ Administration - Proxy Connectors" );
assertTextPresent( "Administration - Proxy Connectors" ); assertTextPresent( "Administration - Proxy Connectors" );
assertTextPresent( "Repository Proxy Connectors" ); assertTextPresent( "Repository Proxy Connectors" );
assertTextPresent( "internal" ); assertTextPresent( "internal" );
assertTextPresent( "Archiva Managed Internal Repository" ); assertTextPresent( "Archiva Managed Internal Repository" );
assertTextPresent( "Proxy Connector" ); assertTextPresent( "Proxy Connector" );
assertTextPresent( "Central Repository" ); assertTextPresent( "Central Repository" );
assertTextPresent( "Java.net Repository for Maven 2" ); assertTextPresent( "Java.net Repository for Maven 2" );
} }
public void assertAddProxyConnectorPage() public void assertAddProxyConnectorPage()
{ {
assertPage( "Apache Archiva \\ Admin: Add Proxy Connector" ); assertPage( "Apache Archiva \\ Admin: Add Proxy Connector" );
assertTextPresent( "Admin: Add Proxy Connector" ); assertTextPresent( "Admin: Add Proxy Connector" );
String proxy = "Network Proxy*:,Managed Repository*:,Remote Repository*:,Policies:,Return error when:,On remote error:,Releases:,Snapshots:,Checksum:,Cache failures:,Properties:,No properties have been set.,Black List:,No black list patterns have been set.,White List:,No white list patterns have been set."; String proxy =
String[] arrayProxy = proxy.split( "," ); "Network Proxy*:,Managed Repository*:,Remote Repository*:,Policies:,Return error when:,On remote error:,Releases:,Snapshots:,Checksum:,Cache failures:,Properties:,No properties have been set.,Black List:,No black list patterns have been set.,White List:,No white list patterns have been set.";
for ( String arrayproxy : arrayProxy ) String[] arrayProxy = proxy.split( "," );
assertTextPresent( arrayproxy ); for ( String arrayproxy : arrayProxy )
/*String proxyElements = "addProxyConnector_connector_proxyId,addProxyConnector_connector_sourceRepoId,addProxyConnector_connector_targetRepoId,policy_propagate-errors-on-update,policy_propagate-errors,policy_releases,policy_snapshots,policy_checksum,policy_cache-failures,propertiesEntry,propertiesValue,blackListEntry,whiteListEntry"; assertTextPresent( arrayproxy );
String[] arrayProxyElements = proxyElements.split( "," ); /*
for ( String arrayproxyelements : arrayProxyElements ) * String proxyElements =
assertTextPresent( arrayproxyelements );*/ * "addProxyConnector_connector_proxyId,addProxyConnector_connector_sourceRepoId,addProxyConnector_connector_targetRepoId,policy_propagate-errors-on-update,policy_propagate-errors,policy_releases,policy_snapshots,policy_checksum,policy_cache-failures,propertiesEntry,propertiesValue,blackListEntry,whiteListEntry"
assertButtonWithValuePresent( "Add Property" ); * ; String[] arrayProxyElements = proxyElements.split( "," ); for ( String arrayproxyelements :
assertButtonWithValuePresent( "Add Pattern" ); * arrayProxyElements ) assertTextPresent( arrayproxyelements );
assertButtonWithValuePresent( "Add Proxy Connector" ); */
} assertButtonWithValuePresent( "Add Property" );
assertButtonWithValuePresent( "Add Pattern" );
assertButtonWithValuePresent( "Add Proxy Connector" );
}
// this only fills in the values of required fields in adding Proxy Connectors // this only fills in the values of required fields in adding Proxy Connectors
public void addProxyConnector( String networkProxy, String managedRepo, String remoteRepo ) public void addProxyConnector( String networkProxy, String managedRepo, String remoteRepo )
{ {
goToProxyConnectorsPage(); goToProxyConnectorsPage();
clickLinkWithText( "Add" ); clickLinkWithText( "Add" );
assertAddProxyConnectorPage(); assertAddProxyConnectorPage();
selectValue( "connector.proxyId" , networkProxy ); selectValue( "connector.proxyId", networkProxy );
selectValue( "connector.sourceRepoId" , managedRepo ); selectValue( "connector.sourceRepoId", managedRepo );
selectValue( "connector.targetRepoId" , remoteRepo ); selectValue( "connector.targetRepoId", remoteRepo );
} }
public void deleteProxyConnector() public void deleteProxyConnector()
{ {
goToProxyConnectorsPage(); goToProxyConnectorsPage();
clickLinkWithXPath( "//div[@id='contentArea']/div[2]/div[1]/div[2]/div[1]/a[3]/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div[2]/div[1]/div[2]/div[1]/a[3]/img" );
assertPage( "Apache Archiva \\ Admin: Delete Proxy Connectors" ); assertPage( "Apache Archiva \\ Admin: Delete Proxy Connectors" );
clickButtonWithValue( "Delete" ); clickButtonWithValue( "Delete" );
assertPage( "Apache Archiva \\ Administration - Proxy Connectors" ); assertPage( "Apache Archiva \\ Administration - Proxy Connectors" );
} }
/////////////////////////////// // /////////////////////////////
// network proxies // network proxies
/////////////////////////////// // /////////////////////////////
public void goToNetworkProxiesPage() public void goToNetworkProxiesPage()
{ {
clickLinkWithText( "Network Proxies" ); clickLinkWithText( "Network Proxies" );
assertNetworkProxiesPage(); assertNetworkProxiesPage();
} }
public void assertNetworkProxiesPage() public void assertNetworkProxiesPage()
{ {
assertPage( "Apache Archiva \\ Administration - Network Proxies" ); assertPage( "Apache Archiva \\ Administration - Network Proxies" );
assertTextPresent( "Administration - Network Proxies" ); assertTextPresent( "Administration - Network Proxies" );
assertTextPresent( "Network Proxies" ); assertTextPresent( "Network Proxies" );
assertLinkPresent( "Add Network Proxy" ); assertLinkPresent( "Add Network Proxy" );
} }
public void assertAddNetworkProxy() public void assertAddNetworkProxy()
{ {
assertPage( "Apache Archiva \\ Admin: Add Network Proxy" ); assertPage( "Apache Archiva \\ Admin: Add Network Proxy" );
assertTextPresent( "Admin: Add Network Proxy" ); assertTextPresent( "Admin: Add Network Proxy" );
assertTextPresent( "Add network proxy:" ); assertTextPresent( "Add network proxy:" );
assertTextPresent( "Identifier*:" ); assertTextPresent( "Identifier*:" );
assertTextPresent( "Protocol*:" ); assertTextPresent( "Protocol*:" );
assertTextPresent( "Hostname*:" ); assertTextPresent( "Hostname*:" );
assertTextPresent( "Port*:" ); assertTextPresent( "Port*:" );
assertTextPresent( "Username:" ); assertTextPresent( "Username:" );
assertTextPresent( "Password:" ); assertTextPresent( "Password:" );
assertButtonWithValuePresent( "Save Network Proxy" ); assertButtonWithValuePresent( "Save Network Proxy" );
} }
public void addNetworkProxy( String identifier, String protocol, String hostname, String port, String username, String password ) public void addNetworkProxy( String identifier, String protocol, String hostname, String port, String username,
{ String password )
//goToNetworkProxiesPage(); {
clickLinkWithText( "Add Network Proxy" ); // goToNetworkProxiesPage();
assertAddNetworkProxy(); clickLinkWithText( "Add Network Proxy" );
setFieldValue( "proxy.id" , identifier ); assertAddNetworkProxy();
setFieldValue( "proxy.protocol" , protocol ); setFieldValue( "proxy.id", identifier );
setFieldValue( "proxy.host" , hostname ); setFieldValue( "proxy.protocol", protocol );
setFieldValue( "proxy.port" , port ); setFieldValue( "proxy.host", hostname );
setFieldValue( "proxy.username" , username ); setFieldValue( "proxy.port", port );
setFieldValue( "proxy.password" , password ); setFieldValue( "proxy.username", username );
clickButtonWithValue( "Save Network Proxy" ); setFieldValue( "proxy.password", password );
} clickButtonWithValue( "Save Network Proxy" );
}
public void editNetworkProxies( String fieldName, String value) public void editNetworkProxies( String fieldName, String value )
{ {
//goToNetworkProxiesPage(); // goToNetworkProxiesPage();
clickLinkWithText( "Edit Network Proxy" ); clickLinkWithText( "Edit Network Proxy" );
setFieldValue( fieldName, value); setFieldValue( fieldName, value );
clickButtonWithValue( "Save Network Proxy" ); clickButtonWithValue( "Save Network Proxy" );
} }
public void deleteNetworkProxy() public void deleteNetworkProxy()
{ {
//goToNetworkProxiesPage(); // goToNetworkProxiesPage();
clickLinkWithText( "Delete Network Proxy" ); clickLinkWithText( "Delete Network Proxy" );
assertPage( "Apache Archiva \\ Admin: Delete Network Proxy" ); assertPage( "Apache Archiva \\ Admin: Delete Network Proxy" );
assertTextPresent( "WARNING: This operation can not be undone." ); assertTextPresent( "WARNING: This operation can not be undone." );
clickButtonWithValue( "Delete" ); clickButtonWithValue( "Delete" );
} }
// remote repositories // remote repositories
public void assertAddRemoteRepository() public void assertAddRemoteRepository()
{ {
assertPage( "Apache Archiva \\ Admin: Add Remote Repository" ); assertPage( "Apache Archiva \\ Admin: Add Remote Repository" );
String remote = "Identifier*:,Name*:,URL*:,Username:,Password:,Timeout in seconds:,Type:"; String remote = "Identifier*:,Name*:,URL*:,Username:,Password:,Timeout in seconds:,Type:";
String[] arrayRemote = remote.split( "," ); String[] arrayRemote = remote.split( "," );
for ( String arrayremote : arrayRemote ) for ( String arrayremote : arrayRemote )
assertTextPresent( arrayremote ); assertTextPresent( arrayremote );
String remoteElements = "addRemoteRepository_repository_id,addRemoteRepository_repository_name,addRemoteRepository_repository_url,addRemoteRepository_repository_username,addRemoteRepository_repository_password,addRemoteRepository_repository_timeout,addRemoteRepository_repository_layout"; String remoteElements =
String[] arrayRemoteElements = remoteElements.split( "," ); "addRemoteRepository_repository_id,addRemoteRepository_repository_name,addRemoteRepository_repository_url,addRemoteRepository_repository_username,addRemoteRepository_repository_password,addRemoteRepository_repository_timeout,addRemoteRepository_repository_layout";
for ( String arrayremotelement : arrayRemoteElements ) String[] arrayRemoteElements = remoteElements.split( "," );
assertElementPresent( arrayremotelement ); for ( String arrayremotelement : arrayRemoteElements )
} assertElementPresent( arrayremotelement );
}
public void assertDeleteRemoteRepositoryPage() public void assertDeleteRemoteRepositoryPage()
{ {
assertPage( "Apache Archiva \\ Admin: Delete Remote Repository" ); assertPage( "Apache Archiva \\ Admin: Delete Remote Repository" );
assertTextPresent( "Admin: Delete Remote Repository" ); assertTextPresent( "Admin: Delete Remote Repository" );
assertTextPresent( "WARNING: This operation can not be undone." ); assertTextPresent( "WARNING: This operation can not be undone." );
assertTextPresent( "Are you sure you want to delete the following remote repository?" ); assertTextPresent( "Are you sure you want to delete the following remote repository?" );
assertButtonWithValuePresent( "Confirm" ); assertButtonWithValuePresent( "Confirm" );
assertButtonWithValuePresent( "Cancel" ); assertButtonWithValuePresent( "Cancel" );
} }
public void addRemoteRepository( String identifier, String name, String url, String username, String password, String timeout, String type ) public void addRemoteRepository( String identifier, String name, String url, String username, String password,
{ String timeout, String type )
//goToRepositoriesPage(); {
assertAddRemoteRepository(); // goToRepositoriesPage();
setFieldValue( "addRemoteRepository_repository_id" , identifier ); assertAddRemoteRepository();
setFieldValue( "addRemoteRepository_repository_name" , name ); setFieldValue( "addRemoteRepository_repository_id", identifier );
setFieldValue( "addRemoteRepository_repository_url" , url ); setFieldValue( "addRemoteRepository_repository_name", name );
setFieldValue( "addRemoteRepository_repository_username" , username ); setFieldValue( "addRemoteRepository_repository_url", url );
setFieldValue( "addRemoteRepository_repository_password" , password ); setFieldValue( "addRemoteRepository_repository_username", username );
setFieldValue( "addRemoteRepository_repository_timeout" , timeout ); setFieldValue( "addRemoteRepository_repository_password", password );
selectValue( "addRemoteRepository_repository_layout" , type ); setFieldValue( "addRemoteRepository_repository_timeout", timeout );
clickButtonWithValue( "Add Repository" ); selectValue( "addRemoteRepository_repository_layout", type );
} clickButtonWithValue( "Add Repository" );
}
public void deleteRemoteRepository() public void deleteRemoteRepository()
{ {
goToRepositoriesPage(); goToRepositoriesPage();
clickLinkWithXPath( "//div[@id='contentArea']/div/div[8]/div[1]/a[2]" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[8]/div[1]/a[2]" );
assertDeleteRemoteRepositoryPage(); assertDeleteRemoteRepositoryPage();
clickButtonWithValue( "Confirm" ); clickButtonWithValue( "Confirm" );
} }
public void editRemoteRepository( String fieldName, String value) public void editRemoteRepository( String fieldName, String value )
{ {
goToRepositoriesPage(); goToRepositoriesPage();
clickLinkWithXPath( "//div[@id='contentArea']/div/div[8]/div[1]/a[1]" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[8]/div[1]/a[1]" );
setFieldValue( fieldName, value ); setFieldValue( fieldName, value );
clickButtonWithValue( "Update Repository" ); clickButtonWithValue( "Update Repository" );
} }
public void editManagedRepository( String fieldName, String value ) public void editManagedRepository( String fieldName, String value )
{ {
goToRepositoriesPage(); goToRepositoriesPage();
clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[1]/img" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[1]/img" );
assertPage( "Apache Archiva \\ Admin: Edit Managed Repository" ); assertPage( "Apache Archiva \\ Admin: Edit Managed Repository" );
setFieldValue(fieldName, value); setFieldValue( fieldName, value );
//TODO // TODO
clickButtonWithValue( "Update Repository" ); clickButtonWithValue( "Update Repository" );
} }
public void deleteManagedRepository() public void deleteManagedRepository()
{ {
clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[2]" ); clickLinkWithXPath( "//div[@id='contentArea']/div/div[5]/div[1]/a[2]" );
assertPage( "Apache Archiva \\ Admin: Delete Managed Repository" ); assertPage( "Apache Archiva \\ Admin: Delete Managed Repository" );
clickButtonWithValue( "Delete Configuration Only" ); clickButtonWithValue( "Delete Configuration Only" );
} }
public String getRepositoryDir() public String getRepositoryDir()
{ {
File f = new File( "" ); File f = new File( "" );
String artifactFilePath = f.getAbsolutePath(); String artifactFilePath = f.getAbsolutePath();
return artifactFilePath + "/target/"; return artifactFilePath + "/target/";
} }
///////////////////////////////////////////// // ///////////////////////////////////////////
// Repository Scanning // Repository Scanning
///////////////////////////////////////////// // ///////////////////////////////////////////
public void goToRepositoryScanningPage() public void goToRepositoryScanningPage()
{ {
clickLinkWithText( "Repository Scanning" ); clickLinkWithText( "Repository Scanning" );
assertRepositoryScanningPage(); assertRepositoryScanningPage();
} }
public void assertRepositoryScanningPage() public void assertRepositoryScanningPage()
{ {
assertPage( "Apache Archiva \\ Administration - Repository Scanning" ); assertPage( "Apache Archiva \\ Administration - Repository Scanning" );
assertTextPresent( "Administration - Repository Scanning" ); assertTextPresent( "Administration - Repository Scanning" );
assertTextPresent( "Repository Scanning - File Types" ); assertTextPresent( "Repository Scanning - File Types" );
String artifactsTypes = "**/*.pom,**/*.jar,**/*.ear,**/*.war,**/*.car,**/*.sar,**/*.mar,**/*.rar,**/*.dtd,**/*.tld,**/*.tar.gz,**/*.tar.bz2,**/*.zip"; String artifactsTypes =
String [] arrayArtifactTypes = artifactsTypes.split( "," ); "**/*.pom,**/*.jar,**/*.ear,**/*.war,**/*.car,**/*.sar,**/*.mar,**/*.rar,**/*.dtd,**/*.tld,**/*.tar.gz,**/*.tar.bz2,**/*.zip";
for (int i = 0; i < arrayArtifactTypes.length; i++) String[] arrayArtifactTypes = artifactsTypes.split( "," );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[1]/table."+i+".0"), arrayArtifactTypes[i]); for ( int i = 0; i < arrayArtifactTypes.length; i++ )
Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[1]/table." + i + ".0" ),
arrayArtifactTypes[i] );
String autoremove = "**/*.bak,**/*~,**/*-"; String autoremove = "**/*.bak,**/*~,**/*-";
String [] arrayAutoremove = autoremove.split( "," ); String[] arrayAutoremove = autoremove.split( "," );
for (int i = 0; i < arrayAutoremove.length; i++) for ( int i = 0; i < arrayAutoremove.length; i++ )
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[2]/table."+i+".0"), arrayAutoremove[i]); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[2]/table." + i + ".0" ),
arrayAutoremove[i] );
String ignored = "**/.htaccess,**/KEYS,**/*.rb,**/*.sh,**/.svn/**,**/.DAV/**"; String ignored = "**/.htaccess,**/KEYS,**/*.rb,**/*.sh,**/.svn/**,**/.DAV/**";
String [] arrayIgnored = ignored.split( "," ); String[] arrayIgnored = ignored.split( "," );
for (int i = 0; i < arrayIgnored.length; i++) for ( int i = 0; i < arrayIgnored.length; i++ )
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[3]/table."+i+".0"), arrayIgnored[i]); Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[3]/table." + i + ".0" ),
arrayIgnored[i] );
String indexableContent = "**/*.txt,**/*.TXT,**/*.block,**/*.config,**/*.pom,**/*.xml,**/*.xsd,**/*.dtd,**/*.tld"; String indexableContent =
String [] arrayIndexableContent = indexableContent.split( "," ); "**/*.txt,**/*.TXT,**/*.block,**/*.config,**/*.pom,**/*.xml,**/*.xsd,**/*.dtd,**/*.tld";
for (int i = 0; i < arrayIndexableContent.length; i++) String[] arrayIndexableContent = indexableContent.split( "," );
Assert.assertEquals(getSelenium().getTable("//div[@id='contentArea']/div/div[4]/table."+i+".0"), arrayIndexableContent[i]); for ( int i = 0; i < arrayIndexableContent.length; i++ )
} Assert.assertEquals( getSelenium().getTable( "//div[@id='contentArea']/div/div[4]/table." + i + ".0" ),
arrayIndexableContent[i] );
}
///////////////////////////////////////////// // ///////////////////////////////////////////
// Database // Database
///////////////////////////////////////////// // ///////////////////////////////////////////
public void goToDatabasePage() public void goToDatabasePage()
{ {
clickLinkWithText( "Database" ); clickLinkWithText( "Database" );
assertDatabasePage(); assertDatabasePage();
} }
public void assertDatabasePage() public void assertDatabasePage()
{ {
assertPage( "Apache Archiva \\ Administration - Database" ); assertPage( "Apache Archiva \\ Administration - Database" );
assertTextPresent( "Administration - Database" ); assertTextPresent( "Administration - Database" );
assertTextPresent( "Database - Unprocessed Artifacts Scanning" ); assertTextPresent( "Database - Unprocessed Artifacts Scanning" );
assertTextPresent( "Cron:" ); assertTextPresent( "Cron:" );
assertElementPresent( "database_cron" ); assertElementPresent( "database_cron" );
assertButtonWithValuePresent( "Update Cron" ); assertButtonWithValuePresent( "Update Cron" );
assertButtonWithValuePresent( "Update Database Now" ); assertButtonWithValuePresent( "Update Database Now" );
assertTextPresent( "Database - Unprocessed Artifacts Scanning" ); assertTextPresent( "Database - Unprocessed Artifacts Scanning" );
assertTextPresent( "Database - Artifact Cleanup Scanning" ); assertTextPresent( "Database - Artifact Cleanup Scanning" );
} }
} }

View File

@ -20,11 +20,11 @@ package org.apache.archiva.web.test.parent;
*/ */
public abstract class AbstractSearchTest public abstract class AbstractSearchTest
extends AbstractArchivaTest extends AbstractArchivaTest
{ {
//Search // Search
public void goToSearchPage() public void goToSearchPage()
{ {
if ( !"Apache Archiva \\ Quick Search".equals( getTitle() ) ) if ( !"Apache Archiva \\ Quick Search".equals( getTitle() ) )
{ {
clickLinkWithText( "Search" ); clickLinkWithText( "Search" );
@ -32,20 +32,20 @@ public abstract class AbstractSearchTest
assertPage( "Apache Archiva \\ Quick Search" ); assertPage( "Apache Archiva \\ Quick Search" );
} }
} }
public void assertSearchPage() public void assertSearchPage()
{ {
assertPage( "Apache Archiva \\ Quick Search" ); assertPage( "Apache Archiva \\ Quick Search" );
assertTextPresent( "Search for" ); assertTextPresent( "Search for" );
assertElementPresent( "quickSearch_q" ); assertElementPresent( "quickSearch_q" );
assertButtonWithValuePresent( "Search" ); assertButtonWithValuePresent( "Search" );
//assertLinkPresent( "Advanced Search" ); // assertLinkPresent( "Advanced Search" );
assertTextPresent( "Enter your search terms. A variety of data will be searched for your keywords." ); assertTextPresent( "Enter your search terms. A variety of data will be searched for your keywords." );
//assertButtonWithDivIdPresent( "searchHint" ); // assertButtonWithDivIdPresent( "searchHint" );
} }
public void searchForArtifact( String artifactId ) public void searchForArtifact( String artifactId )
{ {
goToSearchPage(); goToSearchPage();
@ -53,8 +53,8 @@ public abstract class AbstractSearchTest
clickButtonWithValue( "Search" ); clickButtonWithValue( "Search" );
} }
public void searchForArtifactAdvancedSearch( String groupId, String artifactId, String version, String repositoryId, public void searchForArtifactAdvancedSearch( String groupId, String artifactId, String version,
String className, String rowCount ) String repositoryId, String className, String rowCount )
{ {
goToSearchPage(); goToSearchPage();

View File

@ -39,7 +39,8 @@ import org.testng.Assert;
* @version $Id: AbstractSeleniumTestCase.java 761154 2009-04-02 03:31:19Z wsmoak $ * @version $Id: AbstractSeleniumTestCase.java 761154 2009-04-02 03:31:19Z wsmoak $
*/ */
public abstract class AbstractSeleniumTest { public abstract class AbstractSeleniumTest
{
public static String baseUrl; public static String baseUrl;
@ -52,16 +53,16 @@ public abstract class AbstractSeleniumTest {
private final static String PROPERTIES_SEPARATOR = "="; private final static String PROPERTIES_SEPARATOR = "=";
public void open() public void open()
throws Exception throws Exception
{ {
p = new Properties(); p = new Properties();
p.load( this.getClass().getClassLoader().getResourceAsStream( "testng.properties" ) ); p.load( this.getClass().getClassLoader().getResourceAsStream( "testng.properties" ) );
//baseUrl = getProperty( "BASE_URL" ); // baseUrl = getProperty( "BASE_URL" );
maxWaitTimeInMs = getProperty( "MAX_WAIT_TIME_IN_MS" ); maxWaitTimeInMs = getProperty( "MAX_WAIT_TIME_IN_MS" );
} }
/** /**
* Initialize selenium * Initialize selenium
*/ */
public void open( String baseUrl, String browser, String seleniumHost, int seleniumPort ) public void open( String baseUrl, String browser, String seleniumHost, int seleniumPort )
@ -113,8 +114,7 @@ public abstract class AbstractSeleniumTest {
return value; return value;
} }
/**
/**
* Close selenium session. Called from AfterSuite method of sub-class * Close selenium session. Called from AfterSuite method of sub-class
*/ */
public void close() public void close()
@ -127,272 +127,272 @@ public abstract class AbstractSeleniumTest {
} }
} }
// ******************************************************* // *******************************************************
// Auxiliar methods. This method help us and simplify test. // Auxiliar methods. This method help us and simplify test.
// ******************************************************* // *******************************************************
public void assertFieldValue( String fieldValue, String fieldName ) public void assertFieldValue( String fieldValue, String fieldName )
{ {
assertElementPresent( fieldName ); assertElementPresent( fieldName );
Assert.assertEquals( fieldValue, getSelenium().getValue( fieldName ) ); Assert.assertEquals( fieldValue, getSelenium().getValue( fieldName ) );
} }
public void assertPage( String title ) public void assertPage( String title )
{ {
Assert.assertEquals( getTitle(), title ); Assert.assertEquals( getTitle(), title );
} }
public String getTitle() public String getTitle()
{ {
// Collapse spaces // Collapse spaces
return getSelenium().getTitle().replaceAll( "[ \n\r]+", " " ); return getSelenium().getTitle().replaceAll( "[ \n\r]+", " " );
} }
public String getHtmlContent() public String getHtmlContent()
{ {
return getSelenium().getHtmlSource(); return getSelenium().getHtmlSource();
} }
public void assertTextPresent( String text ) public void assertTextPresent( String text )
{ {
Assert.assertTrue( getSelenium().isTextPresent( text ), "'" + text + "' isn't present." ); Assert.assertTrue( getSelenium().isTextPresent( text ), "'" + text + "' isn't present." );
} }
public void assertTextNotPresent( String text ) public void assertTextNotPresent( String text )
{ {
Assert.assertFalse( getSelenium().isTextPresent( text ), "'" + text + "' is present." ); Assert.assertFalse( getSelenium().isTextPresent( text ), "'" + text + "' is present." );
} }
public void assertElementPresent( String elementLocator ) public void assertElementPresent( String elementLocator )
{ {
Assert.assertTrue( isElementPresent( elementLocator ), "'" + elementLocator + "' isn't present." ); Assert.assertTrue( isElementPresent( elementLocator ), "'" + elementLocator + "' isn't present." );
} }
public void assertElementNotPresent( String elementLocator ) public void assertElementNotPresent( String elementLocator )
{ {
Assert.assertFalse( isElementPresent( elementLocator ), "'" + elementLocator + "' is present." ); Assert.assertFalse( isElementPresent( elementLocator ), "'" + elementLocator + "' is present." );
} }
public void assertLinkPresent( String text ) public void assertLinkPresent( String text )
{ {
Assert.assertTrue( isElementPresent( "link=" + text ), "The link '" + text + "' isn't present." ); Assert.assertTrue( isElementPresent( "link=" + text ), "The link '" + text + "' isn't present." );
} }
public void assertLinkNotPresent( String text ) public void assertLinkNotPresent( String text )
{ {
Assert.assertFalse( isElementPresent( "link=" + text ), "The link('" + text + "' is present." ); Assert.assertFalse( isElementPresent( "link=" + text ), "The link('" + text + "' is present." );
} }
public void assertImgWithAlt( String alt ) public void assertImgWithAlt( String alt )
{ {
assertElementPresent( "/¯img[@alt='" + alt + "']" ); assertElementPresent( "/¯img[@alt='" + alt + "']" );
} }
public void assertImgWithAltAtRowCol( boolean isALink, String alt, int row, int column ) public void assertImgWithAltAtRowCol( boolean isALink, String alt, int row, int column )
{ {
String locator = "//tr[" + row + "]/td[" + column + "]/"; String locator = "//tr[" + row + "]/td[" + column + "]/";
locator += isALink ? "a/" : ""; locator += isALink ? "a/" : "";
locator += "img[@alt='" + alt + "']"; locator += "img[@alt='" + alt + "']";
assertElementPresent( locator ); assertElementPresent( locator );
} }
public void assertCellValueFromTable( String expected, String tableElement, int row, int column ) public void assertCellValueFromTable( String expected, String tableElement, int row, int column )
{ {
Assert.assertEquals( expected, getCellValueFromTable( tableElement, row, column ) ); Assert.assertEquals( expected, getCellValueFromTable( tableElement, row, column ) );
} }
public boolean isTextPresent( String text ) public boolean isTextPresent( String text )
{ {
return getSelenium().isTextPresent( text ); return getSelenium().isTextPresent( text );
} }
public boolean isLinkPresent( String text ) public boolean isLinkPresent( String text )
{ {
return isElementPresent( "link=" + text ); return isElementPresent( "link=" + text );
} }
public boolean isElementPresent( String locator ) public boolean isElementPresent( String locator )
{ {
return getSelenium().isElementPresent( locator ); return getSelenium().isElementPresent( locator );
} }
public void waitPage() public void waitPage()
{ {
getSelenium().waitForPageToLoad( maxWaitTimeInMs ); getSelenium().waitForPageToLoad( maxWaitTimeInMs );
} }
public String getFieldValue( String fieldName ) public String getFieldValue( String fieldName )
{ {
return getSelenium().getValue( fieldName ); return getSelenium().getValue( fieldName );
} }
public String getCellValueFromTable( String tableElement, int row, int column ) public String getCellValueFromTable( String tableElement, int row, int column )
{ {
return getSelenium().getTable( tableElement + "." + row + "." + column ); return getSelenium().getTable( tableElement + "." + row + "." + column );
} }
public void selectValue( String locator, String value ) public void selectValue( String locator, String value )
{ {
getSelenium().select( locator, "label=" + value ); getSelenium().select( locator, "label=" + value );
} }
public void assertOptionPresent( String selectField, String[] options ) public void assertOptionPresent( String selectField, String[] options )
{ {
assertElementPresent( selectField ); assertElementPresent( selectField );
String[] optionsPresent = getSelenium().getSelectOptions( selectField ); String[] optionsPresent = getSelenium().getSelectOptions( selectField );
List<String> expected = Arrays.asList( options ); List<String> expected = Arrays.asList( options );
List<String> present = Arrays.asList( optionsPresent ); List<String> present = Arrays.asList( optionsPresent );
Assert.assertTrue( present.containsAll( expected ), "Options expected are not included in present options" ); Assert.assertTrue( present.containsAll( expected ), "Options expected are not included in present options" );
} }
public void assertSelectedValue( String value, String fieldName ) public void assertSelectedValue( String value, String fieldName )
{ {
assertElementPresent( fieldName ); assertElementPresent( fieldName );
String optionsPresent = getSelenium().getSelectedLabel( value ); String optionsPresent = getSelenium().getSelectedLabel( value );
Assert.assertEquals( optionsPresent, value ); Assert.assertEquals( optionsPresent, value );
} }
public void submit() public void submit()
{ {
clickLinkWithXPath( "//input[@type='submit']" ); clickLinkWithXPath( "//input[@type='submit']" );
} }
public void assertButtonWithValuePresent( String text ) public void assertButtonWithValuePresent( String text )
{ {
Assert.assertTrue( isButtonWithValuePresent( text ), "'" + text + "' button isn't present" ); Assert.assertTrue( isButtonWithValuePresent( text ), "'" + text + "' button isn't present" );
} }
public void assertButtonWithIdPresent( String id ) public void assertButtonWithIdPresent( String id )
{ {
Assert.assertTrue( isButtonWithIdPresent( id ), "'Button with id =" + id + "' isn't present" ); Assert.assertTrue( isButtonWithIdPresent( id ), "'Button with id =" + id + "' isn't present" );
} }
public void assertButtonWithValueNotPresent( String text ) public void assertButtonWithValueNotPresent( String text )
{ {
Assert.assertFalse( isButtonWithValuePresent( text ), "'" + text + "' button is present" ); Assert.assertFalse( isButtonWithValuePresent( text ), "'" + text + "' button is present" );
} }
public boolean isButtonWithValuePresent( String text ) public boolean isButtonWithValuePresent( String text )
{ {
return isElementPresent( "//button[@value='" + text + "']" ) return isElementPresent( "//button[@value='" + text + "']" )
|| isElementPresent( "//input[@value='" + text + "']" ); || isElementPresent( "//input[@value='" + text + "']" );
} }
public boolean isButtonWithIdPresent( String text ) public boolean isButtonWithIdPresent( String text )
{ {
return isElementPresent( "//button[@id='" + text + "']" ) || isElementPresent( "//input[@id='" + text + "']" ); return isElementPresent( "//button[@id='" + text + "']" ) || isElementPresent( "//input[@id='" + text + "']" );
} }
public void clickButtonWithValue( String text ) public void clickButtonWithValue( String text )
{ {
clickButtonWithValue( text, true ); clickButtonWithValue( text, true );
} }
public void clickButtonWithValue( String text, boolean wait ) public void clickButtonWithValue( String text, boolean wait )
{ {
assertButtonWithValuePresent( text ); assertButtonWithValuePresent( text );
if ( isElementPresent( "//button[@value='" + text + "']" ) ) if ( isElementPresent( "//button[@value='" + text + "']" ) )
{ {
clickLinkWithXPath( "//button[@value='" + text + "']", wait ); clickLinkWithXPath( "//button[@value='" + text + "']", wait );
} }
else else
{ {
clickLinkWithXPath( "//input[@value='" + text + "']", wait ); clickLinkWithXPath( "//input[@value='" + text + "']", wait );
} }
} }
public void clickSubmitWithLocator( String locator ) public void clickSubmitWithLocator( String locator )
{ {
clickLinkWithLocator( locator ); clickLinkWithLocator( locator );
} }
public void clickSubmitWithLocator( String locator, boolean wait ) public void clickSubmitWithLocator( String locator, boolean wait )
{ {
clickLinkWithLocator( locator, wait ); clickLinkWithLocator( locator, wait );
} }
public void clickImgWithAlt( String alt ) public void clickImgWithAlt( String alt )
{ {
clickLinkWithLocator( "//img[@alt='" + alt + "']" ); clickLinkWithLocator( "//img[@alt='" + alt + "']" );
} }
public void clickLinkWithText( String text ) public void clickLinkWithText( String text )
{ {
clickLinkWithText( text, true ); clickLinkWithText( text, true );
} }
public void clickLinkWithText( String text, boolean wait ) public void clickLinkWithText( String text, boolean wait )
{ {
clickLinkWithLocator( "link=" + text, wait ); clickLinkWithLocator( "link=" + text, wait );
} }
public void clickLinkWithXPath( String xpath ) public void clickLinkWithXPath( String xpath )
{ {
clickLinkWithXPath( xpath, true ); clickLinkWithXPath( xpath, true );
} }
public void clickLinkWithXPath( String xpath, boolean wait ) public void clickLinkWithXPath( String xpath, boolean wait )
{ {
clickLinkWithLocator( "xpath=" + xpath, wait ); clickLinkWithLocator( "xpath=" + xpath, wait );
} }
public void clickLinkWithLocator( String locator ) public void clickLinkWithLocator( String locator )
{ {
clickLinkWithLocator( locator, true ); clickLinkWithLocator( locator, true );
} }
public void clickLinkWithLocator( String locator, boolean wait ) public void clickLinkWithLocator( String locator, boolean wait )
{ {
assertElementPresent( locator ); assertElementPresent( locator );
getSelenium().click( locator ); getSelenium().click( locator );
if ( wait ) if ( wait )
{ {
waitPage(); waitPage();
} }
} }
public void setFieldValues( Map<String, String> fieldMap ) public void setFieldValues( Map<String, String> fieldMap )
{ {
Map.Entry<String, String> entry; Map.Entry<String, String> entry;
for ( Iterator<Entry<String, String>> entries = fieldMap.entrySet().iterator(); entries.hasNext(); ) for ( Iterator<Entry<String, String>> entries = fieldMap.entrySet().iterator(); entries.hasNext(); )
{ {
entry = entries.next(); entry = entries.next();
getSelenium().type( entry.getKey(), entry.getValue() ); getSelenium().type( entry.getKey(), entry.getValue() );
} }
} }
public void setFieldValue( String fieldName, String value ) public void setFieldValue( String fieldName, String value )
{ {
getSelenium().type( fieldName, value ); getSelenium().type( fieldName, value );
} }
public void checkField( String locator ) public void checkField( String locator )
{ {
getSelenium().check( locator ); getSelenium().check( locator );
} }
public void uncheckField( String locator ) public void uncheckField( String locator )
{ {
getSelenium().uncheck( locator ); getSelenium().uncheck( locator );
} }
public boolean isChecked( String locator ) public boolean isChecked( String locator )
{ {
return getSelenium().isChecked( locator ); return getSelenium().isChecked( locator );
} }
public void assertIsChecked( String locator ) public void assertIsChecked( String locator )
{ {
Assert.assertTrue( getSelenium().isChecked( locator ) ); Assert.assertTrue( getSelenium().isChecked( locator ) );
} }
public void assertIsNotChecked( String locator ) public void assertIsNotChecked( String locator )
{ {
Assert.assertFalse( getSelenium().isChecked( locator ) ); Assert.assertFalse( getSelenium().isChecked( locator ) );
} }
} }