[MRM-1362] Add simple 'CRUD' pages for project-level metadata along with a "generic metadata" plugin

o do not show add property widget if user does not have repository manager role
o added selenium test for browsing metadata if user is not a repository manager


git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@953612 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Maria Odea B. Ching 2010-06-11 08:49:48 +00:00
parent 8f1414a1dc
commit a72aeb4d5e
2 changed files with 48 additions and 10 deletions

View File

@ -159,6 +159,42 @@ public class BrowseTest
@Test( dependsOnMethods = { "testAddMetadataPropertyEmpty" } )
public void testAddMetadataProperty()
{
addMetadataProperty();
}
@Test( dependsOnMethods = { "testAddMetadataProperty" } )
public void testDeleteMetadataProperty()
{
deleteMetadataProperty();
}
@Test( dependsOnMethods = { "testDeleteMetadataProperty" })
public void testMetadataAccessWithRepositoryObserverRole()
{
addMetadataProperty();
logout();
goToBrowsePage();
clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
clickLinkWithText( getProperty( "ARTIFACT_ARTIFACTID" ) + "/" );
clickLinkWithText( getProperty( "ARTIFACT_VERSION" ) + "/" );
clickLinkWithText( "Metadata" );
waitPage();
assertTextNotPresent( "No metadata content." );
assertButtonWithValueNotPresent( "Add" );
assertTextNotPresent( "Add Property" );
assertImgWithAltNotPresent( "Delete" );
login( getAdminUsername(), getAdminPassword() );
deleteMetadataProperty();
}
private void addMetadataProperty()
{
goToBrowsePage();
clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
@ -168,6 +204,7 @@ public class BrowseTest
assertTextPresent( "No metadata content." );
assertButtonWithValuePresent( "Add" );
assertTextPresent( "Add Property" );
setFieldValue( "propertyName", "foo" );
setFieldValue( "propertyValue", "bar" );
@ -179,9 +216,8 @@ public class BrowseTest
assertTextNotPresent( "No metadata content." );
assertTextPresent( "foo=bar" );
}
@Test( dependsOnMethods = { "testAddMetadataProperty" } )
public void testDeleteMetadataProperty()
private void deleteMetadataProperty()
{
goToBrowsePage();
clickLinkWithText( getProperty( "ARTIFACT_GROUPID" ) + "/" );
@ -191,6 +227,7 @@ public class BrowseTest
assertTextPresent( "foo=bar" );
assertButtonWithValuePresent( "Add" );
assertTextPresent( "Add Property" );
clickImgWithAlt( "Delete" );
@ -200,7 +237,7 @@ public class BrowseTest
assertTextPresent( "Property successfully deleted." );
assertImgWithAltNotPresent( "Delete" );
assertTextPresent( "No metadata content." );
}
}
private void assertArtifactInfoPage( String version, String artifactInfoRepositoryId, String artifactInfoGroupId,
String artifactInfoArtifactId, String artifactInfoVersion,

View File

@ -24,9 +24,10 @@
<div>
<div id="effect" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Add Property</h3>
<redback:ifAuthorized permission="archiva-add-metadata" resource="${repositoryId}">
<redback:ifAuthorized permission="archiva-add-metadata" resource="${repositoryId}">
<div id="effect" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Add Property</h3>
<s:form action="addMetadataProperty" namespace="/" method="post" validate="true" theme="simple">
<s:hidden name="groupId" value="%{groupId}" />
<s:hidden name="artifactId" value="%{artifactId}" />
@ -50,9 +51,9 @@
</td>
</tr>
</table>
</s:form>
</redback:ifAuthorized>
</div>
</s:form>
</div>
</redback:ifAuthorized>
<div>
<c:if test="${empty genericMetadata}">