View Javadoc
1   package org.apache.archiva.rest.services;
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.beans.FileType;
22  import org.apache.archiva.admin.model.beans.LegacyArtifactPath;
23  import org.apache.archiva.admin.model.beans.OrganisationInformation;
24  import org.apache.archiva.admin.model.beans.UiConfiguration;
25  import org.apache.archiva.rest.api.model.AdminRepositoryConsumer;
26  import org.apache.commons.lang.StringUtils;
27  import org.junit.Test;
28  
29  import java.util.Arrays;
30  import java.util.List;
31  
32  /**
33   * @author Olivier Lamy
34   */
35  public class ArchivaAdministrationServiceTest
36      extends AbstractArchivaRestTest
37  {
38      @Test
39      public void getAllLegacyPaths()
40          throws Exception
41      {
42          assertNotNull( getArchivaAdministrationService().getLegacyArtifactPaths() );
43          assertFalse( getArchivaAdministrationService().getLegacyArtifactPaths().isEmpty() );
44      }
45  
46      @Test
47      public void addAndDeleteFileType()
48          throws Exception
49      {
50          int initialSize = getArchivaAdministrationService().getFileTypes().size();
51          FileType fileType = new FileType();
52          fileType.setId( "footwo" );
53          fileType.setPatterns( Arrays.asList( "foo", "bar" ) );
54          getArchivaAdministrationService().addFileType( fileType );
55          assertEquals( initialSize + 1, getArchivaAdministrationService().getFileTypes().size() );
56  
57          assertNotNull( getArchivaAdministrationService().getFileType( "footwo" ) );
58          assertEquals( Arrays.asList( "foo", "bar" ),
59                        getArchivaAdministrationService().getFileType( "footwo" ).getPatterns() );
60  
61          getArchivaAdministrationService().removeFileType( "footwo" );
62  
63          assertEquals( initialSize, getArchivaAdministrationService().getFileTypes().size() );
64  
65          assertNull( getArchivaAdministrationService().getFileType( "footwo" ) );
66      }
67  
68      @Test
69      public void organisationInformationUpdate()
70          throws Exception
71      {
72          OrganisationInformation organisationInformation =
73              getArchivaAdministrationService().getOrganisationInformation();
74  
75          // rest return an empty bean
76          assertNotNull( organisationInformation );
77          assertTrue( StringUtils.isBlank( organisationInformation.getLogoLocation() ) );
78          assertTrue( StringUtils.isBlank( organisationInformation.getName() ) );
79          assertTrue( StringUtils.isBlank( organisationInformation.getUrl() ) );
80  
81          organisationInformation = new OrganisationInformation();
82          organisationInformation.setLogoLocation( "http://foo.com/bar.png" );
83          organisationInformation.setName( "foo org" );
84          organisationInformation.setUrl( "http://foo.com" );
85  
86          getArchivaAdministrationService().setOrganisationInformation( organisationInformation );
87  
88          organisationInformation = getArchivaAdministrationService().getOrganisationInformation();
89          assertNotNull( organisationInformation );
90          assertEquals( "http://foo.com/bar.png", organisationInformation.getLogoLocation() );
91          assertEquals( "foo org", organisationInformation.getName() );
92          assertEquals( "http://foo.com", organisationInformation.getUrl() );
93      }
94  
95      @Test
96      public void uiConfigurationReadUpdate()
97          throws Exception
98      {
99          UiConfiguration ui = getArchivaAdministrationService().getUiConfiguration();
100         assertNotNull( ui );
101         // assert default values
102         assertFalse( ui.isDisableEasterEggs() );
103         assertFalse( ui.isDisableRegistration() );
104         assertTrue( ui.isAppletFindEnabled() );
105         assertTrue( ui.isShowFindArtifacts() );
106         assertNull( ui.getApplicationUrl() );
107 
108         ui.setAppletFindEnabled( false );
109         ui.setShowFindArtifacts( false );
110         ui.setDisableEasterEggs( true );
111         ui.setDisableRegistration( true );
112         String url = "http://foo.fr/bar";
113         ui.setApplicationUrl( url );
114 
115         getArchivaAdministrationService().setUiConfiguration( ui );
116 
117         ui = getArchivaAdministrationService().getUiConfiguration();
118 
119         assertTrue( ui.isDisableEasterEggs() );
120         assertTrue( ui.isDisableRegistration() );
121         assertFalse( ui.isAppletFindEnabled() );
122         assertFalse( ui.isShowFindArtifacts() );
123         assertEquals( url, ui.getApplicationUrl() );
124     }
125 
126     @Test
127     public void uiConfigurationUpdate_ApplicationUrlHasTrailingSlash()
128         throws Exception {
129 
130         UiConfiguration ui = getArchivaAdministrationService().getUiConfiguration();
131         assertNotNull( ui );
132         assertNull( ui.getApplicationUrl() );
133 
134         String url = "http://foo.fr/bar/";
135         ui.setApplicationUrl( url );
136 
137         getArchivaAdministrationService().setUiConfiguration( ui );
138 
139         ui = getArchivaAdministrationService().getUiConfiguration();
140 
141         assertEquals( "http://foo.fr/bar", ui.getApplicationUrl() );
142 
143         // test if multiple '/' is trailing
144         url = "http://foo.fr/bar//";
145 
146         ui.setApplicationUrl(url);
147 
148         getArchivaAdministrationService().setUiConfiguration(ui);
149 
150         ui = getArchivaAdministrationService().getUiConfiguration();
151 
152         assertEquals( "http://foo.fr/bar", ui.getApplicationUrl() );
153     }
154 
155     @Test
156     public void getKnownContentAdminRepositoryConsumer()
157         throws Exception
158     {
159         List<AdminRepositoryConsumer> consumers =
160             getArchivaAdministrationService().getKnownContentAdminRepositoryConsumers();
161         assertFalse( consumers.isEmpty() );
162     }
163 
164     @Test
165     public void getInvalidContentAdminRepositoryConsumer()
166         throws Exception
167     {
168         List<AdminRepositoryConsumer> consumers =
169             getArchivaAdministrationService().getInvalidContentAdminRepositoryConsumers();
170         assertFalse( consumers.isEmpty() );
171         assertAllDisabled( consumers );
172 
173         getArchivaAdministrationService().enabledInvalidContentConsumer( "foo" );
174 
175         consumers = getArchivaAdministrationService().getInvalidContentAdminRepositoryConsumers();
176         assertFalse( consumers.isEmpty() );
177         assertAllEnabled( consumers );
178 
179         getArchivaAdministrationService().disabledInvalidContentConsumer( "foo" );
180 
181         consumers = getArchivaAdministrationService().getInvalidContentAdminRepositoryConsumers();
182 
183         assertAllDisabled( consumers );
184 
185         assertFalse( consumers.isEmpty() );
186     }
187 
188     private void assertAllEnabled( List<AdminRepositoryConsumer> consumers )
189     {
190         for ( AdminRepositoryConsumer consumer : consumers )
191         {
192             assertTrue( consumer.isEnabled() );
193         }
194     }
195 
196     private void assertAllDisabled( List<AdminRepositoryConsumer> consumers )
197     {
198         for ( AdminRepositoryConsumer consumer : consumers )
199         {
200             assertFalse( consumer.isEnabled() );
201         }
202     }
203 }