1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.security

File SecurityReferenceTest.java

 
testSecurityReferenceForNullReference: A security group reference could not be null.
 

Code metrics

0
67
10
1
201
155
10
0.15
6.7
10
1

Classes

Class Line # Actions
SecurityReferenceTest 49 67 0% 10 7
0.9090909490.9%
 

Contributing tests

This file is covered by 9 tests. .

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.security;
21   
22    import java.util.List;
23   
24    import org.junit.Before;
25    import org.junit.Rule;
26    import org.junit.Test;
27    import org.junit.rules.ExpectedException;
28    import org.xwiki.model.EntityType;
29    import org.xwiki.model.reference.DocumentReference;
30    import org.xwiki.model.reference.EntityReference;
31    import org.xwiki.model.reference.SpaceReference;
32    import org.xwiki.model.reference.WikiReference;
33    import org.xwiki.security.internal.XWikiBridge;
34    import org.xwiki.test.mockito.MockitoComponentMockingRule;
35   
36    import static org.hamcrest.CoreMatchers.equalTo;
37    import static org.hamcrest.CoreMatchers.is;
38    import static org.hamcrest.CoreMatchers.not;
39    import static org.hamcrest.CoreMatchers.nullValue;
40    import static org.junit.Assert.assertThat;
41    import static org.mockito.Mockito.when;
42   
43    /**
44    * Security Reference Unit Tests.
45    *
46    * @version $Id: 2e1f0a099688047a290c31809716c28df70dea48 $
47    * @since 4.0M2
48    */
 
49    public class SecurityReferenceTest
50    {
51    @Rule
52    public final MockitoComponentMockingRule<SecurityReferenceFactory> securityReferenceFactoryMocker =
53    new MockitoComponentMockingRule<SecurityReferenceFactory>(DefaultSecurityReferenceFactory.class);
54   
55    @Rule
56    public ExpectedException thrown = ExpectedException.none();
57   
58    private EntityReference xwiki = new EntityReference("xwiki", EntityType.WIKI);
59    private EntityReference wiki = new EntityReference("wiki", EntityType.WIKI);
60    private EntityReference xspace = new EntityReference("space", EntityType.SPACE,
61    new EntityReference("xwiki", EntityType.WIKI));
62    private EntityReference space = new EntityReference("space", EntityType.SPACE,
63    new EntityReference("wiki", EntityType.WIKI));
64    private EntityReference subEntity = new EntityReference("page", EntityType.DOCUMENT, space);
65    private EntityReference mainEntity = new EntityReference("page", EntityType.DOCUMENT, xspace);
66    private SpaceReference xwikispace = new SpaceReference("XWiki", xwiki);
67    private SpaceReference wikispace = new SpaceReference("XWiki", wiki);
68    private DocumentReference userRef = new DocumentReference("user1", xwikispace);
69    private DocumentReference anotherWikiUserRef = new DocumentReference("user2", wikispace);
70    private DocumentReference groupRef = new DocumentReference("group1", xwikispace);
71    private DocumentReference anotherWikiGroupRef = new DocumentReference("group2", wikispace);
72   
73    private SecurityReferenceFactory factory;
74   
 
75  9 toggle @Before
76    public void configure() throws Exception
77    {
78  9 XWikiBridge xwikiBridge = securityReferenceFactoryMocker.getInstance(XWikiBridge.class);
79  9 when(xwikiBridge.getMainWikiReference()).thenReturn(new WikiReference("xwiki"));
80   
81  9 factory = securityReferenceFactoryMocker.getComponentUnderTest();
82    }
83   
 
84  1 toggle @Test
85    public void testEquality() throws Exception
86    {
87  1 assertThat(factory.newEntityReference(mainEntity),
88    equalTo(factory.newEntityReference(mainEntity)));
89  1 assertThat(factory.newEntityReference(subEntity),
90    equalTo(factory.newEntityReference(subEntity)));
91  1 assertThat(factory.newEntityReference(mainEntity),
92    not(equalTo(factory.newEntityReference(subEntity))));
93  1 assertThat(factory.newEntityReference(subEntity),
94    not(equalTo(factory.newEntityReference(mainEntity))));
95    }
96   
 
97  1 toggle @Test
98    public void testGetReversedSecurityReferenceChain() throws Exception
99    {
100  1 List<SecurityReference> subList = (List<SecurityReference>) factory.newEntityReference(subEntity)
101    .getReversedSecurityReferenceChain();
102  1 assertThat(subList.get(0), equalTo(xwiki));
103  1 assertThat(subList.get(0).getOriginalReference(), equalTo(xwiki));
104  1 assertThat(subList.get(1), equalTo(wiki));
105  1 assertThat(subList.get(1).getOriginalReference(), equalTo(wiki));
106  1 assertThat(subList.get(2), equalTo(space));
107  1 assertThat(subList.get(2).getOriginalReference(), equalTo(space));
108  1 assertThat(subList.get(3), equalTo(subEntity));
109  1 assertThat(subList.get(3).getOriginalReference(), equalTo(subEntity));
110   
111  1 List<SecurityReference> mainList = (List<SecurityReference>) factory.newEntityReference(mainEntity)
112    .getReversedSecurityReferenceChain();
113  1 assertThat(mainList.get(0), equalTo(xwiki));
114  1 assertThat(mainList.get(0).getOriginalReference(), equalTo(xwiki));
115  1 assertThat(mainList.get(1), equalTo(xspace));
116  1 assertThat(mainList.get(1).getOriginalReference(), equalTo(xspace));
117  1 assertThat(mainList.get(2), equalTo(mainEntity));
118  1 assertThat(mainList.get(2).getOriginalReference(), equalTo(mainEntity));
119    }
120   
 
121  0 toggle @Test
122    public void testSecurityReferenceForNullReference() throws Exception
123    {
124  0 assertThat(factory.newEntityReference(null), equalTo(factory.newEntityReference(xwiki)));
125  0 assertThat(factory.newUserReference(null), equalTo(factory.newEntityReference(xwiki)));
126  0 assertThat(factory.newEntityReference(null).getOriginalReference(), equalTo(xwiki));
127  0 assertThat(factory.newUserReference(null).getOriginalDocumentReference(), nullValue());
128   
129  0 thrown.expect(IllegalArgumentException.class);
130  0 Test failure here factory.newGroupReference(null);
131    // never reached !!
132    }
133   
 
134  1 toggle @Test
135    public void testGetSecurityType() throws Exception
136    {
137  1 assertThat(factory.newEntityReference(null).getSecurityType(), equalTo(SecurityReference.FARM));
138  1 assertThat(factory.newEntityReference(xwiki).getSecurityType(), equalTo(SecurityReference.FARM));
139  1 assertThat(factory.newEntityReference(wiki).getSecurityType(), equalTo(EntityType.WIKI));
140  1 assertThat(factory.newEntityReference(xspace).getSecurityType(), equalTo(EntityType.SPACE));
141  1 assertThat(factory.newEntityReference(space).getSecurityType(), equalTo(EntityType.SPACE));
142  1 assertThat(factory.newEntityReference(mainEntity).getSecurityType(), equalTo(EntityType.DOCUMENT));
143  1 assertThat(factory.newEntityReference(subEntity).getSecurityType(), equalTo(EntityType.DOCUMENT));
144    }
145   
 
146  1 toggle @Test
147    public void testGetOriginalWikiReference() throws Exception
148    {
149  1 assertThat(factory.newEntityReference(null).getOriginalWikiReference(), equalTo(xwiki));
150  1 assertThat(factory.newEntityReference(xwiki).getOriginalWikiReference(), equalTo(xwiki));
151  1 assertThat(factory.newEntityReference(wiki).getOriginalWikiReference(), equalTo(wiki));
152  1 assertThat(factory.newEntityReference(xspace).getOriginalWikiReference(), nullValue());
153  1 assertThat(factory.newEntityReference(space).getOriginalWikiReference(), nullValue());
154  1 assertThat(factory.newEntityReference(mainEntity).getOriginalWikiReference(), nullValue());
155  1 assertThat(factory.newEntityReference(subEntity).getOriginalWikiReference(), nullValue());
156    }
157   
 
158  1 toggle @Test
159    public void testGetOriginalSpaceReference() throws Exception
160    {
161  1 assertThat(factory.newEntityReference(null).getOriginalSpaceReference(), nullValue());
162  1 assertThat(factory.newEntityReference(xwiki).getOriginalSpaceReference(), nullValue());
163  1 assertThat(factory.newEntityReference(wiki).getOriginalSpaceReference(), nullValue());
164  1 assertThat(factory.newEntityReference(xspace).getOriginalSpaceReference(), equalTo(xspace));
165  1 assertThat(factory.newEntityReference(space).getOriginalSpaceReference(), equalTo(space));
166  1 assertThat(factory.newEntityReference(mainEntity).getOriginalSpaceReference(), nullValue());
167  1 assertThat(factory.newEntityReference(subEntity).getOriginalSpaceReference(), nullValue());
168    }
169   
 
170  1 toggle @Test
171    public void testGetOriginalDocumentReference() throws Exception
172    {
173  1 assertThat(factory.newEntityReference(null).getOriginalDocumentReference(), nullValue());
174  1 assertThat(factory.newEntityReference(xwiki).getOriginalDocumentReference(), nullValue());
175  1 assertThat(factory.newEntityReference(wiki).getOriginalDocumentReference(), nullValue());
176  1 assertThat(factory.newEntityReference(xspace).getOriginalDocumentReference(), nullValue());
177  1 assertThat(factory.newEntityReference(space).getOriginalDocumentReference(), nullValue());
178  1 assertThat(factory.newEntityReference(mainEntity).getOriginalDocumentReference(), equalTo(mainEntity));
179  1 assertThat(factory.newEntityReference(subEntity).getOriginalDocumentReference(), equalTo(subEntity));
180    }
181   
 
182  1 toggle @Test
183    public void testIsGlobal() throws Exception
184    {
185  1 assertThat(factory.newUserReference(userRef).isGlobal(), is(true));
186  1 assertThat(factory.newUserReference(anotherWikiUserRef).isGlobal(), is(false));
187  1 assertThat(factory.newGroupReference(groupRef).isGlobal(), is(true));
188  1 assertThat(factory.newGroupReference(anotherWikiGroupRef).isGlobal(), is(false));
189    }
190   
 
191  1 toggle @Test
192    public void testGetWikiReference() throws Exception
193    {
194  1 assertThat(factory.newUserReference(userRef).getWikiReference(), equalTo(xwiki));
195  1 assertThat(factory.newUserReference(anotherWikiUserRef).getWikiReference(), equalTo(wiki));
196  1 assertThat(factory.newEntityReference(mainEntity).getWikiReference(), equalTo(xwiki));
197  1 assertThat(factory.newEntityReference(subEntity).getWikiReference(), equalTo(wiki));
198  1 assertThat(factory.newEntityReference(xwiki).getWikiReference(), equalTo(xwiki));
199  1 assertThat(factory.newEntityReference(wiki).getWikiReference(), equalTo(wiki));
200    }
201    }