xref: /OpenGrok/plugins/src/test/java/opengrok/auth/plugin/LdapUserPluginTest.java (revision b28a55383a9dd002a5369a73f8ba9c943d6dc214)
1*b28a5538SAdam Hornacek /*
2*b28a5538SAdam Hornacek  * CDDL HEADER START
3*b28a5538SAdam Hornacek  *
4*b28a5538SAdam Hornacek  * The contents of this file are subject to the terms of the
5*b28a5538SAdam Hornacek  * Common Development and Distribution License (the "License").
6*b28a5538SAdam Hornacek  * You may not use this file except in compliance with the License.
7*b28a5538SAdam Hornacek  *
8*b28a5538SAdam Hornacek  * See LICENSE.txt included in this distribution for the specific
9*b28a5538SAdam Hornacek  * language governing permissions and limitations under the License.
10*b28a5538SAdam Hornacek  *
11*b28a5538SAdam Hornacek  * When distributing Covered Code, include this CDDL HEADER in each
12*b28a5538SAdam Hornacek  * file and include the License file at LICENSE.txt.
13*b28a5538SAdam Hornacek  * If applicable, add the following below this CDDL HEADER, with the
14*b28a5538SAdam Hornacek  * fields enclosed by brackets "[]" replaced with your own identifying
15*b28a5538SAdam Hornacek  * information: Portions Copyright [yyyy] [name of copyright owner]
16*b28a5538SAdam Hornacek  *
17*b28a5538SAdam Hornacek  * CDDL HEADER END
18*b28a5538SAdam Hornacek  */
19*b28a5538SAdam Hornacek 
20*b28a5538SAdam Hornacek /*
21*b28a5538SAdam Hornacek  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
22*b28a5538SAdam Hornacek  */
23*b28a5538SAdam Hornacek package opengrok.auth.plugin;
24*b28a5538SAdam Hornacek 
25*b28a5538SAdam Hornacek import java.util.Map;
26*b28a5538SAdam Hornacek import java.util.TreeMap;
27*b28a5538SAdam Hornacek import opengrok.auth.plugin.entity.User;
28*b28a5538SAdam Hornacek import org.junit.Assert;
29*b28a5538SAdam Hornacek import org.junit.Before;
30*b28a5538SAdam Hornacek import org.junit.Test;
31*b28a5538SAdam Hornacek 
32*b28a5538SAdam Hornacek /**
33*b28a5538SAdam Hornacek  *
34*b28a5538SAdam Hornacek  * @author Vladimir Kotal
35*b28a5538SAdam Hornacek  */
36*b28a5538SAdam Hornacek public class LdapUserPluginTest {
37*b28a5538SAdam Hornacek     private LdapUserPlugin plugin;
38*b28a5538SAdam Hornacek 
39*b28a5538SAdam Hornacek     @Before
setUp()40*b28a5538SAdam Hornacek     public void setUp() {
41*b28a5538SAdam Hornacek         plugin = new LdapUserPlugin();
42*b28a5538SAdam Hornacek     }
43*b28a5538SAdam Hornacek 
getParamsMap()44*b28a5538SAdam Hornacek     private Map<String, Object> getParamsMap() {
45*b28a5538SAdam Hornacek         Map<String, Object> params = new TreeMap<>();
46*b28a5538SAdam Hornacek         params.put(AbstractLdapPlugin.CONFIGURATION_PARAM,
47*b28a5538SAdam Hornacek                 getClass().getResource("config.xml").getFile());
48*b28a5538SAdam Hornacek 
49*b28a5538SAdam Hornacek         return params;
50*b28a5538SAdam Hornacek     }
51*b28a5538SAdam Hornacek 
52*b28a5538SAdam Hornacek     @Test
loadTestNegative1()53*b28a5538SAdam Hornacek     public void loadTestNegative1() {
54*b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
55*b28a5538SAdam Hornacek         params.put("foo", (Object)"bar");
56*b28a5538SAdam Hornacek         try {
57*b28a5538SAdam Hornacek             plugin.load(params);
58*b28a5538SAdam Hornacek             Assert.fail("should have caused exception");
59*b28a5538SAdam Hornacek         } catch (NullPointerException e) {
60*b28a5538SAdam Hornacek         }
61*b28a5538SAdam Hornacek     }
62*b28a5538SAdam Hornacek 
63*b28a5538SAdam Hornacek     @Test
loadTestNegative2()64*b28a5538SAdam Hornacek     public void loadTestNegative2() {
65*b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
66*b28a5538SAdam Hornacek         params.put(LdapUserPlugin.OBJECT_CLASS, (Object)"#$@");
67*b28a5538SAdam Hornacek         try {
68*b28a5538SAdam Hornacek             plugin.load(params);
69*b28a5538SAdam Hornacek             Assert.fail("should have caused exception");
70*b28a5538SAdam Hornacek         } catch (NullPointerException e) {
71*b28a5538SAdam Hornacek         }
72*b28a5538SAdam Hornacek     }
73*b28a5538SAdam Hornacek 
74*b28a5538SAdam Hornacek     @Test
loadTestPostitive()75*b28a5538SAdam Hornacek     public void loadTestPostitive() {
76*b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
77*b28a5538SAdam Hornacek         params.put(LdapUserPlugin.OBJECT_CLASS, (Object)"posixUser");
78*b28a5538SAdam Hornacek         params.put(LdapUserPlugin.ATTRIBUTES, (Object)"mail");
79*b28a5538SAdam Hornacek         try {
80*b28a5538SAdam Hornacek             plugin.load(params);
81*b28a5538SAdam Hornacek         } catch (NullPointerException e) {
82*b28a5538SAdam Hornacek             Assert.fail("should not cause exception");
83*b28a5538SAdam Hornacek         }
84*b28a5538SAdam Hornacek     }
85*b28a5538SAdam Hornacek 
86*b28a5538SAdam Hornacek     @Test
getFilterTest1()87*b28a5538SAdam Hornacek     public void getFilterTest1() {
88*b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
89*b28a5538SAdam Hornacek         String cl = "posixUser";
90*b28a5538SAdam Hornacek         params.put(LdapUserPlugin.OBJECT_CLASS, (Object) cl);
91*b28a5538SAdam Hornacek         params.put(LdapUserPlugin.ATTRIBUTES, (Object) "uid,mail");
92*b28a5538SAdam Hornacek         plugin.load(params);
93*b28a5538SAdam Hornacek         String cn = "cn=foo-foo_bar1";
94*b28a5538SAdam Hornacek         User user = new User(cn + ",l=EMEA,dc=foobar,dc=com", "id", null, false);
95*b28a5538SAdam Hornacek         String filter = plugin.getFilter(user);
96*b28a5538SAdam Hornacek         Assert.assertEquals("(&(" + LdapUserPlugin.OBJECT_CLASS + "=" + cl + ")(" + cn + "))",
97*b28a5538SAdam Hornacek                 filter);
98*b28a5538SAdam Hornacek     }
99*b28a5538SAdam Hornacek 
100*b28a5538SAdam Hornacek     @Test(expected = NullPointerException.class)
testLoadWithoutAttributes()101*b28a5538SAdam Hornacek     public void testLoadWithoutAttributes() {
102*b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
103*b28a5538SAdam Hornacek         String cl = "posixUser";
104*b28a5538SAdam Hornacek         params.put(LdapUserPlugin.OBJECT_CLASS, (Object) cl);
105*b28a5538SAdam Hornacek         plugin.load(params);
106*b28a5538SAdam Hornacek     }
107*b28a5538SAdam Hornacek }
108