]> source.dussan.org Git - archiva.git/blob
b4156bb61d1b03dcacd2b7c8e17b000b1b323e20
[archiva.git] /
1 package org.apache.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 import org.apache.archiva.web.test.parent.AbstractArtifactManagementTest;
23 import org.testng.annotations.Test;
24
25 @Test( groups = { "artifactmanagement" }, dependsOnGroups = { "about" } )
26 public class ArtifactManagementTest
27     extends AbstractArtifactManagementTest
28 {
29
30     @Test( alwaysRun = true, dependsOnGroups = "about" )
31     public void testAddArtifactNullValues()
32     {
33         goToAddArtifactPage();
34         clickButtonWithValue( "Submit", false );
35         //assertTextPresent( "Please add a file to upload." );
36         assertTextPresent( "You must enter a version." );
37         assertTextPresent( "You must enter a groupId." );
38         assertTextPresent( "You must enter an artifactId." );
39         assertTextPresent( "You must enter a version" );
40         assertTextPresent( "You must enter a packaging" );
41     }
42
43     @Test( dependsOnMethods = { "testAddArtifactNullValues" }, alwaysRun = true )
44     public void testAddArtifactNoGroupId()
45     {
46         addArtifact( " ", getArtifactId(), getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId(),
47                      false );
48         assertTextPresent( "You must enter a groupId." );
49     }
50
51     @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
52     public void testAddArtifactNoArtifactId()
53     {
54         addArtifact( getGroupId(), " ", getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId(), false );
55         assertTextPresent( "You must enter an artifactId." );
56     }
57
58     @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
59     public void testAddArtifactNoVersion()
60     {
61         addArtifact( getGroupId(), getArtifactId(), " ", getPackaging(), getArtifactFilePath(), getRepositoryId(),
62                      false );
63         assertTextPresent( "You must enter a version." );
64     }
65
66     @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
67     public void testAddArtifactInvalidVersion()
68     {
69         addArtifact( getGroupId(), getArtifactId(), "asdf", getPackaging(), getArtifactFilePath(), getRepositoryId(),
70                      true );
71         assertTextPresent( "Invalid version." );
72     }
73
74     @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
75     public void testAddArtifactNoPackaging()
76     {
77         addArtifact( getGroupId(), getArtifactId(), getVersion(), " ", getArtifactFilePath(), getRepositoryId(),
78                      false );
79         assertTextPresent( "You must enter a packaging." );
80     }
81
82     @Test( dependsOnMethods = { "testAddArtifactNoGroupId" }, alwaysRun = true )
83     public void testAddArtifactNoFilePath()
84     {
85         addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), " ", getRepositoryId(), true );
86         assertTextPresent( "Please add a file to upload." );
87     }
88
89     @Test( groups = "requiresUpload" )
90     public void testAddArtifactValidValues()
91     {
92         String groupId = getProperty( "VALIDARTIFACT_GROUPID" );
93         String artifactId = getProperty( "VALIDARTIFACT_ARTIFACTID" );
94
95         addArtifact( groupId, artifactId, getVersion(), getPackaging(), getArtifactFilePath(), getRepositoryId(),
96                      true );
97         assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion()
98                                + "' was successfully deployed to repository 'internal'" );
99     }
100
101     @Test( groups = "requiresUpload" )
102     public void testDotNetTypes()
103     {
104         String groupId = getProperty( "GROUPID_DOTNETARTIFACT" );
105         String artifactId = getProperty( "ARTIFACTID_DOTNETARTIFACT" );
106         String packaging = getProperty( "PACKAGING_DOTNETARTIFACT" );
107
108         addArtifact( groupId, artifactId, getVersion(), packaging, getArtifactFilePath(), getRepositoryId(), true );
109         assertTextPresent( "Artifact '" + groupId + ":" + artifactId + ":" + getVersion()
110                                + "' was successfully deployed to repository 'internal'" );
111         getSelenium().open( baseUrl + "/browse/" + groupId + "/" + artifactId + "/" + getVersion() );
112         waitPage();
113
114         assertTextPresent( "<type>library</type>" );
115         String basePath =
116             "/archiva/repository/internal/" + groupId + "/" + artifactId + "/" + getVersion() + "/" + artifactId + "-"
117                 + getVersion();
118         assertLinkPresent( ".NET Library" );
119         assertElementPresent( "//a[@href='" + basePath + ".dll']" );
120         assertElementPresent( "//a[@href='" + basePath + ".pom']" );
121     }
122
123     // MRM-747
124     @Test( groups = "requiresUpload" )
125     public void testAddArtifactBlockRedeployments()
126     {
127         addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getArtifactFilePath(),
128                      getRepositoryId(), true );
129         assertTextPresent( "Overwriting released artifacts in repository '" + getRepositoryId() + "' is not allowed." );
130     }
131
132     @Test( groups = "requiresUpload" )
133     public void testDeleteArtifact()
134     {
135         // prep
136         String groupId = getProperty( "GROUPID1" );
137         String artifactId = getProperty( "ARTIFACTID1" );
138         String version = getProperty( "VERSION1" );
139         String packaging = getProperty( "PACKAGING1" );
140         String repositoryId = getProperty( "REPOSITORYID1" );
141         // TODO: do this differently as it only works in Firefox's chrome mode
142         addArtifact( groupId, artifactId, version, packaging, getArtifactFilePath(), repositoryId, true );
143         assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deployed to repository 'internal'" );
144
145         deleteArtifact( "delete", "delete", "1.0", "internal", true );
146         assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deleted from repository 'internal'" );
147     }
148
149     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
150     public void testDeleteArtifactNoGroupId()
151     {
152         deleteArtifact( " ", "delete", "1.0", "internal" );
153         assertTextPresent( "You must enter a groupId." );
154     }
155
156     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
157     public void testDeleteArtifactNoArtifactId()
158     {
159         deleteArtifact( "delete", " ", "1.0", "internal" );
160         assertTextPresent( "You must enter an artifactId." );
161     }
162
163     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
164     public void testDeleteArtifactNoVersion()
165     {
166         deleteArtifact( "delete", "delete", " ", "internal", false );
167         assertTextPresent( "You must enter a version." );
168     }
169
170     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
171     public void testDeleteArtifactInvalidVersion()
172     {
173         deleteArtifact( "delete", "delete", "asdf", "internal", true );
174         assertTextPresent( "Invalid version." );
175     }
176
177     // HTML select should have the proper value, else it will cause a selenium error: Option with label 'customValue' not found
178     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
179     public void testDeleteArtifactInvalidValues()
180     {
181         deleteArtifact( "<> \\/~+[ ]'\"", "<> \\/~+[ ]'\"", "<>", "internal" );
182         assertTextPresent(
183             "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
184         assertTextPresent(
185             "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
186         // as it's a validation on server side it's not available here but tested in testDeleteArtifactInvalidVersion
187         //assertTextPresent( "Invalid version." );
188     }
189
190
191     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
192     public void testDeleteArtifactInvalidGroupId()
193     {
194         deleteArtifact( "<> \\/~+[ ]'\"", "delete", "1.0", "internal" );
195         assertTextPresent(
196             "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
197     }
198
199     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
200     public void testDeleteArtifactInvalidArtifactId()
201     {
202         deleteArtifact( "delete", "<> \\/~+[ ]'\"", "1.0", "internal" );
203         assertTextPresent(
204             "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
205     }
206 }