]> source.dussan.org Git - archiva.git/blob
b54b85232344f3782e151d83af4ea988034861e8
[archiva.git] /
1 package org.apache.archiva.admin.repository.admin;
2 /*
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  */
20
21 import org.apache.archiva.admin.model.RepositoryAdminException;
22 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
23 import org.apache.archiva.admin.model.beans.FileType;
24 import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
25 import org.apache.archiva.admin.model.beans.NetworkConfiguration;
26 import org.apache.archiva.admin.model.beans.OrganisationInformation;
27 import org.apache.archiva.admin.model.beans.UiConfiguration;
28 import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest;
29 import org.apache.archiva.audit.AuditEvent;
30 import org.apache.maven.wagon.providers.http.HttpWagon;
31 import org.junit.Test;
32
33 import javax.inject.Inject;
34 import java.lang.reflect.Field;
35 import java.util.Arrays;
36
37 /**
38  * @author Olivier Lamy
39  */
40 public class ArchivaAdministrationTest
41     extends AbstractRepositoryAdminTest
42 {
43     @Inject
44     ArchivaAdministration archivaAdministration;
45
46
47     @Test
48     public void getAllLegacyPaths()
49         throws Exception
50     {
51         assertNotNull( archivaAdministration.getLegacyArtifactPaths() );
52         assertFalse( archivaAdministration.getLegacyArtifactPaths().isEmpty() );
53         assertEquals( 1, archivaAdministration.getLegacyArtifactPaths().size() );
54         log.info( "all legacy paths {}", archivaAdministration.getLegacyArtifactPaths() );
55     }
56
57     public void addAndDeleteLegacyPath()
58         throws Exception
59     {
60         int initialSize = archivaAdministration.getLegacyArtifactPaths().size();
61
62         LegacyArtifactPath legacyArtifactPath = new LegacyArtifactPath( "foo", "bar" );
63         archivaAdministration.addLegacyArtifactPath( legacyArtifactPath, getFakeAuditInformation() );
64
65         assertTrue( archivaAdministration.getLegacyArtifactPaths().contains( new LegacyArtifactPath( "foo", "bar" ) ) );
66         assertEquals( initialSize + 1, archivaAdministration.getLegacyArtifactPaths().size() );
67
68         archivaAdministration.deleteLegacyArtifactPath( legacyArtifactPath.getPath(), getFakeAuditInformation() );
69
70         assertFalse(
71             archivaAdministration.getLegacyArtifactPaths().contains( new LegacyArtifactPath( "foo", "bar" ) ) );
72         assertEquals( initialSize, archivaAdministration.getLegacyArtifactPaths().size() );
73         mockAuditListener.clearEvents();
74     }
75
76     @Test
77     public void addAndUpdateAndDeleteFileType()
78         throws RepositoryAdminException
79     {
80         int initialSize = archivaAdministration.getFileTypes().size();
81
82         FileType fileType = new FileType();
83         fileType.setId( "foo" );
84         fileType.setPatterns( Arrays.asList( "bar", "toto" ) );
85
86         archivaAdministration.addFileType( fileType, getFakeAuditInformation() );
87
88         assertEquals( initialSize + 1, archivaAdministration.getFileTypes().size() );
89
90         archivaAdministration.addFileTypePattern( "foo", "zorro", getFakeAuditInformation() );
91
92         assertEquals( initialSize + 1, archivaAdministration.getFileTypes().size() );
93
94         assertEquals( 3, archivaAdministration.getFileType( "foo" ).getPatterns().size() );
95
96         assertTrue( archivaAdministration.getFileType( "foo" ).getPatterns().contains( "bar" ) );
97         assertTrue( archivaAdministration.getFileType( "foo" ).getPatterns().contains( "toto" ) );
98         assertTrue( archivaAdministration.getFileType( "foo" ).getPatterns().contains( "zorro" ) );
99
100         archivaAdministration.removeFileTypePattern( "foo", "zorro", getFakeAuditInformation() );
101
102         assertEquals( initialSize + 1, archivaAdministration.getFileTypes().size() );
103
104         assertEquals( 2, archivaAdministration.getFileType( "foo" ).getPatterns().size() );
105
106         assertTrue( archivaAdministration.getFileType( "foo" ).getPatterns().contains( "bar" ) );
107         assertTrue( archivaAdministration.getFileType( "foo" ).getPatterns().contains( "toto" ) );
108         assertFalse( archivaAdministration.getFileType( "foo" ).getPatterns().contains( "zorro" ) );
109
110         archivaAdministration.removeFileType( "foo", getFakeAuditInformation() );
111
112         assertEquals( initialSize, archivaAdministration.getFileTypes().size() );
113         assertNull( archivaAdministration.getFileType( "foo" ) );
114         mockAuditListener.clearEvents();
115     }
116
117     @Test(expected = RepositoryAdminException.class)
118     public void addFileTypePatternAgain()
119         throws RepositoryAdminException
120     {
121         try
122         {
123             archivaAdministration.addFileTypePattern( "artifacts", "**/*.jar", getFakeAuditInformation() );
124         }
125         catch ( RepositoryAdminException e )
126         {
127             // check the message
128             assertEquals( "File type [artifacts] already contains pattern [**/*.jar]", e.getMessage() );
129             throw e;
130         }
131     }
132
133     @Test
134     public void knownContentConsumersTest()
135         throws Exception
136     {
137         int initialSize = archivaAdministration.getKnownContentConsumers().size();
138
139         archivaAdministration.addKnownContentConsumer( "foo", getFakeAuditInformation() );
140
141         assertEquals( initialSize + 1, archivaAdministration.getKnownContentConsumers().size() );
142         assertTrue( archivaAdministration.getKnownContentConsumers().contains( "foo" ) );
143
144         // ensure we don't add it twice as it's an ArrayList as storage
145         archivaAdministration.addKnownContentConsumer( "foo", getFakeAuditInformation() );
146
147         assertEquals( initialSize + 1, archivaAdministration.getKnownContentConsumers().size() );
148         assertTrue( archivaAdministration.getKnownContentConsumers().contains( "foo" ) );
149
150         archivaAdministration.removeKnownContentConsumer( "foo", getFakeAuditInformation() );
151
152         assertEquals( initialSize, archivaAdministration.getKnownContentConsumers().size() );
153         assertFalse( archivaAdministration.getKnownContentConsumers().contains( "foo" ) );
154
155         assertEquals( 2, mockAuditListener.getAuditEvents().size() );
156         assertEquals( AuditEvent.ENABLE_REPO_CONSUMER, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
157         assertEquals( AuditEvent.DISABLE_REPO_CONSUMER, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
158
159         mockAuditListener.clearEvents();
160
161     }
162
163     @Test
164     public void invalidContentConsumersTest()
165         throws Exception
166     {
167         int initialSize = archivaAdministration.getInvalidContentConsumers().size();
168
169         archivaAdministration.addInvalidContentConsumer( "foo", getFakeAuditInformation() );
170
171         assertEquals( initialSize + 1, archivaAdministration.getInvalidContentConsumers().size() );
172         assertTrue( archivaAdministration.getInvalidContentConsumers().contains( "foo" ) );
173
174         // ensure we don't add it twice as it's an ArrayList as storage
175         archivaAdministration.addInvalidContentConsumer( "foo", getFakeAuditInformation() );
176
177         assertEquals( initialSize + 1, archivaAdministration.getInvalidContentConsumers().size() );
178         assertTrue( archivaAdministration.getInvalidContentConsumers().contains( "foo" ) );
179
180         archivaAdministration.removeInvalidContentConsumer( "foo", getFakeAuditInformation() );
181
182         assertEquals( initialSize, archivaAdministration.getInvalidContentConsumers().size() );
183         assertFalse( archivaAdministration.getInvalidContentConsumers().contains( "foo" ) );
184
185         assertEquals( 2, mockAuditListener.getAuditEvents().size() );
186         assertEquals( AuditEvent.ENABLE_REPO_CONSUMER, mockAuditListener.getAuditEvents().get( 0 ).getAction() );
187         assertEquals( AuditEvent.DISABLE_REPO_CONSUMER, mockAuditListener.getAuditEvents().get( 1 ).getAction() );
188
189         mockAuditListener.clearEvents();
190
191     }
192
193     @Test
194     public void organisationInfoUpdate()
195         throws Exception
196     {
197         OrganisationInformation organisationInformation = archivaAdministration.getOrganisationInformation();
198         assertNotNull( organisationInformation );
199         assertNull( organisationInformation.getLogoLocation() );
200         assertNull( organisationInformation.getName() );
201         assertNull( organisationInformation.getUrl() );
202
203         organisationInformation = new OrganisationInformation();
204         organisationInformation.setLogoLocation( "http://foo.com/bar.png" );
205         organisationInformation.setName( "foo org" );
206         organisationInformation.setUrl( "http://foo.com" );
207
208         archivaAdministration.setOrganisationInformation( organisationInformation );
209
210         organisationInformation = archivaAdministration.getOrganisationInformation();
211         assertNotNull( organisationInformation );
212         assertEquals( "http://foo.com/bar.png", organisationInformation.getLogoLocation() );
213         assertEquals( "foo org", organisationInformation.getName() );
214         assertEquals( "http://foo.com", organisationInformation.getUrl() );
215
216     }
217
218     @Test
219     public void uiConfiguration()
220         throws Exception
221     {
222         UiConfiguration ui = archivaAdministration.getUiConfiguration();
223         assertNotNull( ui );
224         // assert default values
225         assertFalse( ui.isDisableEasterEggs() );
226         assertTrue( ui.isAppletFindEnabled() );
227         assertTrue( ui.isShowFindArtifacts() );
228
229         ui.setAppletFindEnabled( false );
230         ui.setShowFindArtifacts( false );
231         ui.setDisableEasterEggs( true );
232
233         archivaAdministration.updateUiConfiguration( ui );
234
235         ui = archivaAdministration.getUiConfiguration();
236
237         assertTrue( ui.isDisableEasterEggs() );
238         assertFalse( ui.isAppletFindEnabled() );
239         assertFalse( ui.isShowFindArtifacts() );
240     }
241
242     @Test
243     public void networkConfiguration()
244         throws Exception
245     {
246         NetworkConfiguration networkConfiguration = archivaAdministration.getNetworkConfiguration();
247         assertNotNull( networkConfiguration );
248
249         assertTrue( networkConfiguration.isUsePooling() );
250         assertEquals( 30, networkConfiguration.getMaxTotal() );
251         assertEquals( 30, networkConfiguration.getMaxTotalPerHost() );
252
253     }
254 }