]> source.dussan.org Git - archiva.git/blob
038b0314dc9ecc48728faee05205ee00731fa6cf
[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", enabled = false )
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         // FIXME: currently broken - is dotnet-library
119         assertLinkPresent( ".NET Library" );
120         assertElementPresent( "//a[@href='" + basePath + ".dll']" );
121         assertElementPresent( "//a[@href='" + basePath + ".pom']" );
122     }
123
124     // MRM-747
125     @Test( groups = "requiresUpload" )
126     public void testAddArtifactBlockRedeployments()
127     {
128         addArtifact( getGroupId(), getArtifactId(), getVersion(), getPackaging(), getArtifactFilePath(),
129                      getRepositoryId(), true );
130         assertTextPresent( "Overwriting released artifacts in repository '" + getRepositoryId() + "' is not allowed." );
131     }
132
133     @Test( groups = "requiresUpload" )
134     public void testDeleteArtifact()
135     {
136         // prep
137         String groupId = getProperty( "GROUPID1" );
138         String artifactId = getProperty( "ARTIFACTID1" );
139         String version = getProperty( "VERSION1" );
140         String packaging = getProperty( "PACKAGING1" );
141         String repositoryId = getProperty( "REPOSITORYID1" );
142         // TODO: do this differently as it only works in Firefox's chrome mode
143         addArtifact( groupId, artifactId, version, packaging, getArtifactFilePath(), repositoryId, true );
144         assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deployed to repository 'internal'" );
145
146         deleteArtifact( "delete", "delete", "1.0", "internal", true );
147         assertTextPresent( "Artifact 'delete:delete:1.0' was successfully deleted from repository 'internal'" );
148     }
149
150     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
151     public void testDeleteArtifactNoGroupId()
152     {
153         deleteArtifact( " ", "delete", "1.0", "internal" );
154         assertTextPresent( "You must enter a groupId." );
155     }
156
157     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
158     public void testDeleteArtifactNoArtifactId()
159     {
160         deleteArtifact( "delete", " ", "1.0", "internal" );
161         assertTextPresent( "You must enter an artifactId." );
162     }
163
164     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
165     public void testDeleteArtifactNoVersion()
166     {
167         deleteArtifact( "delete", "delete", " ", "internal", false );
168         assertTextPresent( "You must enter a version." );
169     }
170
171     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
172     public void testDeleteArtifactInvalidVersion()
173     {
174         deleteArtifact( "delete", "delete", "asdf", "internal", true );
175         assertTextPresent( "Invalid version." );
176     }
177
178     // HTML select should have the proper value, else it will cause a selenium error: Option with label 'customValue' not found
179     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
180     public void testDeleteArtifactInvalidValues()
181     {
182         deleteArtifact( "<> \\/~+[ ]'\"", "<> \\/~+[ ]'\"", "<>", "internal" );
183         assertTextPresent(
184             "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
185         assertTextPresent(
186             "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
187         // as it's a validation on server side it's not available here but tested in testDeleteArtifactInvalidVersion
188         //assertTextPresent( "Invalid version." );
189     }
190
191
192     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
193     public void testDeleteArtifactInvalidGroupId()
194     {
195         deleteArtifact( "<> \\/~+[ ]'\"", "delete", "1.0", "internal" );
196         assertTextPresent(
197             "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
198     }
199
200     @Test( alwaysRun = true, dependsOnMethods = { "testAddArtifactNullValues" } )
201     public void testDeleteArtifactInvalidArtifactId()
202     {
203         deleteArtifact( "delete", "<> \\/~+[ ]'\"", "1.0", "internal" );
204         assertTextPresent(
205             "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
206     }
207 }