]> source.dussan.org Git - archiva.git/commitdiff
MRM-321 Applied patch submitted by Nap Ramirez - tests for managed repo configuration
authorMaria Odea B. Ching <oching@apache.org>
Sat, 21 Apr 2007 04:47:50 +0000 (04:47 +0000)
committerMaria Odea B. Ching <oching@apache.org>
Sat, 21 Apr 2007 04:47:50 +0000 (04:47 +0000)
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@530982 13f79535-47bb-0310-9956-ffa450edef68

archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java [new file with mode: 0644]

diff --git a/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java b/archiva-webapp-test/src/test/it/org/apache/maven/archiva/web/test/ManagedRepositoryTest.java
new file mode 100644 (file)
index 0000000..b25ae81
--- /dev/null
@@ -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:nramirez@exist.com">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 );
+    }
+}