Skip to content
This repository has been archived by the owner on Aug 11, 2020. It is now read-only.

Commit

Permalink
OPEN - issue NEXUS-2196: Check repository summary
Browse files Browse the repository at this point in the history
https://issues.sonatype.org/browse/NEXUS-2196

git-svn-id: file:///opt/svn/repositories/sonatype.org/nexus/trunk/nexus/nexus-test-harness/nexus-test-harness-selenium@4541 2aa8b3fc-8ebb-4439-a84f-95066eaea8ab
  • Loading branch information
velo committed Jul 8, 2009
1 parent eba5dbe commit 0b46735
Show file tree
Hide file tree
Showing 7 changed files with 216 additions and 28 deletions.
Expand Up @@ -10,27 +10,33 @@ public class RepositoriesEditTabs

public enum RepoKind
{
HOSTED( 2 ), PROXY( 2 ), VIRTUAL( 1 ), GROUP( 2 );
HOSTED( 2, 4 ), PROXY( 2, 4 ), VIRTUAL( 1, 2 ), GROUP( 2, -1 );

private int configPosition;

private RepoKind( int configPosition )
private int summaryPosition;

private RepoKind( int configPosition, int summaryPosition )
{
this.configPosition = configPosition;
this.summaryPosition = summaryPosition;
}
}

public RepositoriesEditTabs( Selenium selenium )
private RepoKind kind;

public RepositoriesEditTabs( Selenium selenium, RepoKind kind )
{
super( selenium, RepositoriesTab.REPOSITORIES_ST + ".cardPanel.getLayout().activeItem.tabPanel" );
this.kind = kind;
}

public void select( int i )
{
runScript( ".activate(" + expression + ".items.items[" + i + "])" );
}

public Component selectConfiguration( RepoKind kind )
public Component selectConfiguration()
{
select( kind.configPosition );

Expand All @@ -44,7 +50,7 @@ public Component selectConfiguration( RepoKind kind )
}
}

public RepositoriesArtifactUploadForm selectUpload( RepoKind kind )
public RepositoriesArtifactUploadForm selectUpload()
{
if ( !RepoKind.HOSTED.equals( kind ) )
{
Expand All @@ -55,4 +61,16 @@ public RepositoriesArtifactUploadForm selectUpload( RepoKind kind )

return new RepositoriesArtifactUploadForm( selenium, expression + ".getLayout().activeItem" );
}

public RepositorySummary selectSummary()
{
if ( RepoKind.GROUP.equals( kind ) )
{
return null;
}

select( kind.summaryPosition );

return new RepositorySummary( selenium, expression + ".getLayout().activeItem" );
}
}
Expand Up @@ -76,7 +76,7 @@ public RepositoriesEditTabs select( String repoId, RepoKind kind )
//
}

return new RepositoriesEditTabs( selenium );
return new RepositoriesEditTabs( selenium, kind );
}

public MainPage getMainPage()
Expand Down
34 changes: 34 additions & 0 deletions src/main/java/org/sonatype/nexus/mock/pages/RepositorySummary.java
@@ -0,0 +1,34 @@
package org.sonatype.nexus.mock.pages;

import org.sonatype.nexus.mock.components.Component;
import org.sonatype.nexus.mock.components.TextArea;

import com.thoughtworks.selenium.Selenium;

public class RepositorySummary
extends Component
{

private TextArea distributionManagement;

private TextArea repositoryInformation;

public RepositorySummary( Selenium selenium, String expression )
{
super( selenium, expression );

this.repositoryInformation = new TextArea( selenium, expression + ".find('name', 'informationField')[0]" );
this.distributionManagement = new TextArea( selenium, expression + ".find('name', 'distMgmtField')[0]" );
}

public final TextArea getDistributionManagement()
{
return distributionManagement;
}

public final TextArea getRepositoryInformation()
{
return repositoryInformation;
}

}
Expand Up @@ -40,8 +40,7 @@ public void crudHosted()

// read
RepositoriesConfigurationForm config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.HOSTED ).selectConfiguration(
RepoKind.HOSTED );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.HOSTED ).selectConfiguration( );

Assert.assertEquals( repoId, config.getIdField().getValue() );
Assert.assertEquals( name, config.getName().getValue() );
Expand All @@ -51,8 +50,7 @@ public void crudHosted()

// update
config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.HOSTED ).selectConfiguration(
RepoKind.HOSTED );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.HOSTED ).selectConfiguration( );

String newName = "new selenium repo name";
config.getName().type( newName );
Expand All @@ -61,8 +59,7 @@ public void crudHosted()
repositories.refresh();

config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.HOSTED ).selectConfiguration(
RepoKind.HOSTED );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.HOSTED ).selectConfiguration( );
Assert.assertEquals( newName, config.getName().getValue() );

repositories.refresh();
Expand Down Expand Up @@ -92,8 +89,7 @@ public void crudVirtual()

// read
RepositoriesConfigurationForm config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.VIRTUAL ).selectConfiguration(
RepoKind.VIRTUAL );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.VIRTUAL ).selectConfiguration( );

Assert.assertEquals( repoId, config.getIdField().getValue() );
Assert.assertEquals( name, config.getName().getValue() );
Expand All @@ -103,8 +99,7 @@ public void crudVirtual()

// update
config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.VIRTUAL ).selectConfiguration(
RepoKind.VIRTUAL );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.VIRTUAL ).selectConfiguration( );

String newName = "new selenium virtual repo name";
config.getName().type( newName );
Expand All @@ -113,8 +108,7 @@ public void crudVirtual()
repositories.refresh();

config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.VIRTUAL ).selectConfiguration(
RepoKind.VIRTUAL );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.VIRTUAL ).selectConfiguration( );
Assert.assertEquals( newName, config.getName().getValue() );

repositories.refresh();
Expand Down Expand Up @@ -143,8 +137,7 @@ public void crudProxy()

// read
RepositoriesConfigurationForm config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.PROXY ).selectConfiguration(
RepoKind.PROXY );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.PROXY ).selectConfiguration( );

Assert.assertEquals( repoId, config.getIdField().getValue() );
Assert.assertEquals( name, config.getName().getValue() );
Expand All @@ -154,8 +147,7 @@ public void crudProxy()

// update
config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.PROXY ).selectConfiguration(
RepoKind.PROXY );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.PROXY ).selectConfiguration( );

String newName = "new selenium proxy repo name";
config.getName().type( newName );
Expand All @@ -164,8 +156,7 @@ public void crudProxy()
repositories.refresh();

config =
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.PROXY ).selectConfiguration(
RepoKind.PROXY );
(RepositoriesConfigurationForm) repositories.select( repoId, RepoKind.PROXY ).selectConfiguration( );
Assert.assertEquals( newName, config.getName().getValue() );

repositories.refresh();
Expand Down
Expand Up @@ -19,7 +19,7 @@ public void uploadArtifact()
LoginTest.doLogin( main );

RepositoriesArtifactUploadForm uploadTab =
main.openRepositories().select( "thirdparty", RepoKind.HOSTED ).selectUpload( RepoKind.HOSTED );
main.openRepositories().select( "thirdparty", RepoKind.HOSTED ).selectUpload( );
uploadTab.selectDefinition( Definition.POM );
if ( true )
{
Expand Down
Expand Up @@ -75,7 +75,7 @@ public void crudGroup()

// read
GroupConfigurationForm config =
(GroupConfigurationForm) repositories.select( groupId, RepoKind.GROUP ).selectConfiguration( RepoKind.GROUP );
(GroupConfigurationForm) repositories.select( groupId, RepoKind.GROUP ).selectConfiguration( );

Assert.assertEquals( groupId, config.getIdField().getValue() );
Assert.assertEquals( name, config.getName().getValue() );
Expand All @@ -84,7 +84,7 @@ public void crudGroup()

// update
config =
(GroupConfigurationForm) repositories.select( groupId, RepoKind.GROUP ).selectConfiguration( RepoKind.GROUP );
(GroupConfigurationForm) repositories.select( groupId, RepoKind.GROUP ).selectConfiguration( );

String newName = "new selenium group name";
config.getName().type( newName );
Expand All @@ -93,7 +93,7 @@ public void crudGroup()
repositories.refresh();

config =
(GroupConfigurationForm) repositories.select( groupId, RepoKind.GROUP ).selectConfiguration( RepoKind.GROUP );
(GroupConfigurationForm) repositories.select( groupId, RepoKind.GROUP ).selectConfiguration( );
Assert.assertEquals( newName, config.getName().getValue() );

repositories.refresh();
Expand Down
@@ -0,0 +1,145 @@
package org.sonatype.nexus.selenium.nexus2196;

import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.internal.matchers.StringContains.containsString;

import org.junit.Assert;
import org.junit.Test;
import org.restlet.data.Status;
import org.sonatype.nexus.mock.MockListener;
import org.sonatype.nexus.mock.MockResponse;
import org.sonatype.nexus.mock.NexusTestCase;
import org.sonatype.nexus.mock.SeleniumTest;
import org.sonatype.nexus.mock.pages.RepositorySummary;
import org.sonatype.nexus.mock.pages.RepositoriesEditTabs.RepoKind;
import org.sonatype.nexus.mock.rest.MockHelper;
import org.sonatype.nexus.rest.model.RepositoryMetaResource;
import org.sonatype.nexus.rest.model.RepositoryMetaResourceResponse;
import org.sonatype.nexus.selenium.nexus1815.LoginTest;

public class Nexus2196RepositorySummaryTest
extends SeleniumTest
{

@Test
public void summaryHosted()
throws InterruptedException
{
MockListener ml = listenResult();

RepositorySummary repo = openSummary( "thirdparty", RepoKind.HOSTED );

RepositoryMetaResource meta = ( (RepositoryMetaResourceResponse) ml.getResult() ).getData();

validateRepoInfo( repo, meta );
validateDistMngt( repo, meta );
}

@Test
public void summaryProxy()
throws InterruptedException
{
MockListener ml = listenResult();

RepositorySummary repo = openSummary( "central", RepoKind.PROXY );

RepositoryMetaResource meta = ( (RepositoryMetaResourceResponse) ml.getResult() ).getData();

validateRepoInfo( repo, meta );
}

@Test
public void summaryShadow()
throws InterruptedException
{
MockListener ml = listenResult();

RepositorySummary repo = openSummary( "central-m1", RepoKind.VIRTUAL );

RepositoryMetaResource meta = ( (RepositoryMetaResourceResponse) ml.getResult() ).getData();

validateRepoInfo( repo, meta );
}

@Test
public void byteSize()
throws InterruptedException
{
RepositorySummary repo = mockSize( 512 );
Assert.assertThat( repo.getRepositoryInformation().getValue(), containsString( "512 Bytes" ) );
}

@Test
public void kilobyteSize()
throws InterruptedException
{
RepositorySummary repo = mockSize( 524288 );
Assert.assertThat( repo.getRepositoryInformation().getValue(), containsString( "512 KB" ) );
}

@Test
public void megabyteSize()
throws InterruptedException
{
RepositorySummary repo = mockSize( 536870912 );
Assert.assertThat( repo.getRepositoryInformation().getValue(), containsString( "512 MB" ) );
}

@Test
public void gigabyteSize()
throws InterruptedException
{
RepositorySummary repo = mockSize( 549755813888L );
Assert.assertThat( repo.getRepositoryInformation().getValue(), containsString( "512 GB" ) );
}

private RepositorySummary mockSize( long size )
{
RepositoryMetaResourceResponse result = new RepositoryMetaResourceResponse();
RepositoryMetaResource data = new RepositoryMetaResource();
data.setId( "thridparty" );
data.setFormat( "maven2" );
data.setRepoType( "hosted" );
data.setSizeOnDisk( size );
result.setData( data );

MockHelper.expect( "/repositories/{repositoryId}/meta", new MockResponse( Status.SUCCESS_OK, result ) );

RepositorySummary repo = openSummary( "thirdparty", RepoKind.HOSTED );
return repo;
}

private MockListener listenResult()
{
MockListener ml = new MockListener()
{
};
MockHelper.listen( "/repositories/{repositoryId}/meta", ml );
return ml;
}

private RepositorySummary openSummary( String repoId, RepoKind kind )
{
LoginTest.doLogin( main );
RepositorySummary repo = main.openRepositories().select( repoId, kind ).selectSummary();
repo.getRepositoryInformation().waitToLoad();
return repo;
}

private void validateDistMngt( RepositorySummary repo, RepositoryMetaResource meta )
{
String distMgmt = repo.getDistributionManagement().getValue();
Assert.assertThat( distMgmt, notNullValue() );
Assert.assertThat( distMgmt, containsString( NexusTestCase.nexusBaseURL + "content/repositories/"
+ meta.getId() ) );
}

private void validateRepoInfo( RepositorySummary repo, RepositoryMetaResource meta )
{
String summary = repo.getRepositoryInformation().getValue();
Assert.assertThat( summary, notNullValue() );
Assert.assertThat( summary, containsString( meta.getId() ) );
Assert.assertThat( summary, containsString( meta.getRepoType() ) );
Assert.assertThat( summary, containsString( meta.getFormat() ) );
}
}

0 comments on commit 0b46735

Please sign in to comment.