Author: oching
Date: Fri Apr 20 21:47:50 2007
New Revision: 530982

URL: http://svn.apache.org/viewvc?view=rev&rev=530982
Log:
MRM-321 Applied patch submitted by Nap Ramirez - tests for managed repo 
configuration

Added:
    
maven/archiva/trunk/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java

Added: 
maven/archiva/trunk/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java?view=auto&rev=530982
==============================================================================
--- 
maven/archiva/trunk/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java
 (added)
+++ 
maven/archiva/trunk/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java
 Fri Apr 20 21:47:50 2007
@@ -0,0 +1,201 @@
+package org.apache.maven.archiva.web.test;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Archiva's webapp UI test for adding/editing/deleting managed repositories.
+ * 
+ * @author <a href="mailto:[EMAIL PROTECTED]">Napoleon Esmundo C. Ramirez</a>
+ */
+public class ManagedRepositoryTest
+    extends AbstractArchivaTestCase
+{
+    private static final String TEST_REPOSITORY_ID = "test-repository-id";
+    
+    private static final String TEST_REPOSITORY_URL = "test-repository-url";
+    
+    private static final String TEST_REPOSITORY_NAME = "test-repository-name";
+    
+    private static final String TEST_REPOSITORY_DIRECTORY = 
"test-repository-directory";
+    
+    
+    private void clickManagedRepositories()
+    {
+        goToLoginPage();
+        submitLoginPage( adminUsername, adminPassword );
+        
+        clickLinkWithText( "Managed Repositories" );
+        assertPage( "Administration" );
+        assertTextPresent( "Administration" );
+    }
+    
+    private void createManagedRepository( String id, String url, String name, 
String directory )
+    {
+        clickManagedRepositories();
+        
+        clickLinkWithText( "Add Repository" );
+        assertTextPresent( "Configuration" );
+        
+        setFieldValue( "addRepository_id", id );
+        setFieldValue( "urlName", url );
+        setFieldValue( "addRepository_name", name );
+        setFieldValue( "addRepository_directory", directory );
+        
+        clickButtonWithValue( "Add Repository", false );
+    }
+    
+    private void removeManagedRepository( String id )
+    {
+        logout();
+        
+        clickManagedRepositories();
+        
+        clickLinkWithLocator( "//a[contains(@href, 
'/admin/deleteRepository!input.action?repoId=" + id + "')]" );
+        clickLinkWithLocator( "deleteRepository_operationdelete-contents", 
false );
+        clickButtonWithValue( "Go" );
+        
+        assertPage( "Administration" );
+        assertTextNotPresent( TEST_REPOSITORY_ID );
+    }
+    
+    public void testAddRepositoryWithValidValues()
+    {
+        createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, 
TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
+        waitPage();
+        
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_ID );
+        
+        removeManagedRepository( TEST_REPOSITORY_ID );
+    }
+    
+    public void testAddRepositoryWithInvalidValues()
+    {
+        createManagedRepository( "", "", "", "" );
+        
+        assertTextPresent( "You must enter the repository identifier." );
+        assertTextPresent( "You must enter the url name." );
+        assertTextPresent( "You must enter the repository name." );
+        assertTextPresent( "You must enter the repository directory." );
+    }
+    
+    public void testEditRepositoryWithValidValues()
+    {
+        createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, 
TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
+        waitPage();
+        
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_NAME );
+        
+        clickLinkWithLocator( "//a[contains(@href, 
'/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
+        assertPage( "Configuration" );
+        assertTextPresent( "Configuration" );
+        
+        assertTextPresent( "Edit Managed Repository" );
+        assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) );
+        assertEquals( TEST_REPOSITORY_NAME, getFieldValue( 
"editRepository_name" ) );
+        assertTrue( getFieldValue( "editRepository_directory" ).endsWith( 
TEST_REPOSITORY_DIRECTORY ) );
+        
+        setFieldValue( "urlName", "edited-" + TEST_REPOSITORY_URL );
+        setFieldValue( "editRepository_name", "edited-" + TEST_REPOSITORY_NAME 
);
+        setFieldValue( "editRepository_directory", "edited-" + 
TEST_REPOSITORY_DIRECTORY );
+        
+        clickButtonWithValue( "Update Repository" );
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_ID );
+        assertTextPresent( "edited-" + TEST_REPOSITORY_NAME );
+        
+        removeManagedRepository( TEST_REPOSITORY_ID );
+    }
+    
+    public void testEditRepositoryWithInvalidValues()
+    {
+        createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, 
TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
+        waitPage();
+        
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_NAME );
+        
+        clickLinkWithLocator( "//a[contains(@href, 
'/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
+        assertPage( "Configuration" );
+        assertTextPresent( "Configuration" );
+        
+        assertTextPresent( "Edit Managed Repository" );
+        assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) );
+        assertEquals( TEST_REPOSITORY_NAME, getFieldValue( 
"editRepository_name" ) );
+        assertTrue( getFieldValue( "editRepository_directory" ).endsWith( 
TEST_REPOSITORY_DIRECTORY ) );
+        
+        setFieldValue( "urlName", "" );
+        setFieldValue( "editRepository_name", "" );
+        setFieldValue( "editRepository_directory", "" );
+        
+        clickButtonWithValue( "Update Repository", false );
+        assertTextPresent( "You must enter the url name." );
+        assertTextPresent( "You must enter the repository name." );
+        assertTextPresent( "You must enter the repository directory." );
+        
+        removeManagedRepository( TEST_REPOSITORY_ID );
+    }
+    
+    public void testDeleteRepositoryButLeaveUnmodified()
+    {
+        createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, 
TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
+        waitPage();
+        
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_ID );
+        
+        clickLinkWithLocator( "//a[contains(@href, 
'/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
+        clickLinkWithLocator( "deleteRepository_operationunmodified", false );
+        clickButtonWithValue( "Go" );
+        
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_ID );
+        
+        removeManagedRepository( TEST_REPOSITORY_ID );
+    }
+    
+    public void testDeleteRepositoryAndContents()
+    {
+        createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, 
TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
+        waitPage();
+        
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_ID );
+        
+        removeManagedRepository( TEST_REPOSITORY_ID );
+    }
+    
+    public void testDeleteRepositoryButLeaveContentsUnmodified()
+    {
+        createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, 
TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
+        waitPage();
+        
+        assertPage( "Administration" );
+        assertTextPresent( TEST_REPOSITORY_ID );
+        
+        clickLinkWithLocator( "//a[contains(@href, 
'/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
+        clickLinkWithLocator( "deleteRepository_operationdelete-entry", false 
);
+        clickButtonWithValue( "Go" );
+        
+        assertPage( "Administration" );
+        assertTextNotPresent( TEST_REPOSITORY_ID );
+    }
+}


Reply via email to