]> source.dussan.org Git - archiva.git/blob
3d51a91919f333f717cd811f7831933ddda034ff
[archiva.git] /
1 package org.apache.maven.archiva.web.test;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 /**
23  * Archiva's webapp UI test for adding/editing/deleting managed repositories.
24  * 
25  */
26 public class ManagedRepositoryTest
27     extends AbstractArchivaTestCase
28 {
29     private static final String TEST_REPOSITORY_ID = "test-repository-id";
30     
31     private static final String TEST_REPOSITORY_URL = "test-repository-url";
32     
33     private static final String TEST_REPOSITORY_NAME = "test-repository-name";
34     
35     private static final String TEST_REPOSITORY_DIRECTORY = "test-repository-directory";
36     
37     
38     private void clickManagedRepositories()
39     {
40         goToLoginPage();
41         submitLoginPage( adminUsername, adminPassword );
42         
43         clickLinkWithText( "Managed Repositories" );
44         assertPage( "Administration" );
45         assertTextPresent( "Administration" );
46     }
47     
48     private void createManagedRepository( String id, String url, String name, String directory )
49     {
50         clickManagedRepositories();
51         
52         clickLinkWithText( "Add Repository" );
53         assertTextPresent( "Configuration" );
54         
55         setFieldValue( "addRepository_id", id );
56         setFieldValue( "urlName", url );
57         setFieldValue( "addRepository_name", name );
58         setFieldValue( "addRepository_directory", directory );
59         
60         clickButtonWithValue( "Add Repository", false );
61     }
62     
63     private void removeManagedRepository( String id )
64     {
65         logout();
66         
67         clickManagedRepositories();
68         
69         clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + id + "')]" );
70         clickLinkWithLocator( "deleteRepository_operationdelete-contents", false );
71         clickButtonWithValue( "Go" );
72         
73         assertPage( "Administration" );
74         assertTextNotPresent( TEST_REPOSITORY_ID );
75     }
76     
77     public void testAddRepositoryWithValidValues()
78     {
79         createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
80         waitPage();
81         
82         assertPage( "Administration" );
83         assertTextPresent( TEST_REPOSITORY_ID );
84         
85         removeManagedRepository( TEST_REPOSITORY_ID );
86     }
87     
88     public void testAddRepositoryWithInvalidValues()
89     {
90         createManagedRepository( "", "", "", "" );
91         
92         assertTextPresent( "You must enter the repository identifier." );
93         assertTextPresent( "You must enter the url name." );
94         assertTextPresent( "You must enter the repository name." );
95         assertTextPresent( "You must enter the repository directory." );
96     }
97     
98     public void testEditRepositoryWithValidValues()
99     {
100         createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
101         waitPage();
102         
103         assertPage( "Administration" );
104         assertTextPresent( TEST_REPOSITORY_NAME );
105         
106         clickLinkWithLocator( "//a[contains(@href, '/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
107         assertPage( "Configuration" );
108         assertTextPresent( "Configuration" );
109         
110         assertTextPresent( "Edit Managed Repository" );
111         assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) );
112         assertEquals( TEST_REPOSITORY_NAME, getFieldValue( "editRepository_name" ) );
113         assertTrue( getFieldValue( "editRepository_directory" ).endsWith( TEST_REPOSITORY_DIRECTORY ) );
114         
115         setFieldValue( "urlName", "edited-" + TEST_REPOSITORY_URL );
116         setFieldValue( "editRepository_name", "edited-" + TEST_REPOSITORY_NAME );
117         setFieldValue( "editRepository_directory", "edited-" + TEST_REPOSITORY_DIRECTORY );
118         
119         clickButtonWithValue( "Update Repository" );
120         assertPage( "Administration" );
121         assertTextPresent( TEST_REPOSITORY_ID );
122         assertTextPresent( "edited-" + TEST_REPOSITORY_NAME );
123         
124         removeManagedRepository( TEST_REPOSITORY_ID );
125     }
126     
127     public void testEditRepositoryWithInvalidValues()
128     {
129         createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
130         waitPage();
131         
132         assertPage( "Administration" );
133         assertTextPresent( TEST_REPOSITORY_NAME );
134         
135         clickLinkWithLocator( "//a[contains(@href, '/admin/editRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
136         assertPage( "Configuration" );
137         assertTextPresent( "Configuration" );
138         
139         assertTextPresent( "Edit Managed Repository" );
140         assertEquals( TEST_REPOSITORY_URL, getFieldValue( "urlName" ) );
141         assertEquals( TEST_REPOSITORY_NAME, getFieldValue( "editRepository_name" ) );
142         assertTrue( getFieldValue( "editRepository_directory" ).endsWith( TEST_REPOSITORY_DIRECTORY ) );
143         
144         setFieldValue( "urlName", "" );
145         setFieldValue( "editRepository_name", "" );
146         setFieldValue( "editRepository_directory", "" );
147         
148         clickButtonWithValue( "Update Repository", false );
149         assertTextPresent( "You must enter the url name." );
150         assertTextPresent( "You must enter the repository name." );
151         assertTextPresent( "You must enter the repository directory." );
152         
153         removeManagedRepository( TEST_REPOSITORY_ID );
154     }
155     
156     public void testDeleteRepositoryButLeaveUnmodified()
157     {
158         createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
159         waitPage();
160         
161         assertPage( "Administration" );
162         assertTextPresent( TEST_REPOSITORY_ID );
163         
164         clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
165         clickLinkWithLocator( "deleteRepository_operationunmodified", false );
166         clickButtonWithValue( "Go" );
167         
168         assertPage( "Administration" );
169         assertTextPresent( TEST_REPOSITORY_ID );
170         
171         removeManagedRepository( TEST_REPOSITORY_ID );
172     }
173     
174     public void testDeleteRepositoryAndContents()
175     {
176         createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
177         waitPage();
178         
179         assertPage( "Administration" );
180         assertTextPresent( TEST_REPOSITORY_ID );
181         
182         removeManagedRepository( TEST_REPOSITORY_ID );
183     }
184     
185     public void testDeleteRepositoryButLeaveContentsUnmodified()
186     {
187         createManagedRepository( TEST_REPOSITORY_ID, TEST_REPOSITORY_URL, TEST_REPOSITORY_NAME, TEST_REPOSITORY_DIRECTORY );
188         waitPage();
189         
190         assertPage( "Administration" );
191         assertTextPresent( TEST_REPOSITORY_ID );
192         
193         clickLinkWithLocator( "//a[contains(@href, '/admin/deleteRepository!input.action?repoId=" + TEST_REPOSITORY_ID + "')]" );
194         clickLinkWithLocator( "deleteRepository_operationdelete-entry", false );
195         clickButtonWithValue( "Go" );
196         
197         assertPage( "Administration" );
198         assertTextNotPresent( TEST_REPOSITORY_ID );
199     }
200 }