xref: /OpenGrok/plugins/src/test/java/opengrok/auth/plugin/LdapUserPluginTest.java (revision 17b325b6751b086f0e079440dd81668d3f84e196)
1b28a5538SAdam Hornacek /*
2b28a5538SAdam Hornacek  * CDDL HEADER START
3b28a5538SAdam Hornacek  *
4b28a5538SAdam Hornacek  * The contents of this file are subject to the terms of the
5b28a5538SAdam Hornacek  * Common Development and Distribution License (the "License").
6b28a5538SAdam Hornacek  * You may not use this file except in compliance with the License.
7b28a5538SAdam Hornacek  *
8b28a5538SAdam Hornacek  * See LICENSE.txt included in this distribution for the specific
9b28a5538SAdam Hornacek  * language governing permissions and limitations under the License.
10b28a5538SAdam Hornacek  *
11b28a5538SAdam Hornacek  * When distributing Covered Code, include this CDDL HEADER in each
12b28a5538SAdam Hornacek  * file and include the License file at LICENSE.txt.
13b28a5538SAdam Hornacek  * If applicable, add the following below this CDDL HEADER, with the
14b28a5538SAdam Hornacek  * fields enclosed by brackets "[]" replaced with your own identifying
15b28a5538SAdam Hornacek  * information: Portions Copyright [yyyy] [name of copyright owner]
16b28a5538SAdam Hornacek  *
17b28a5538SAdam Hornacek  * CDDL HEADER END
18b28a5538SAdam Hornacek  */
19b28a5538SAdam Hornacek 
20b28a5538SAdam Hornacek /*
21b28a5538SAdam Hornacek  * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
22b28a5538SAdam Hornacek  */
23b28a5538SAdam Hornacek package opengrok.auth.plugin;
24b28a5538SAdam Hornacek 
25b28a5538SAdam Hornacek import java.util.Map;
26b28a5538SAdam Hornacek import java.util.TreeMap;
27b28a5538SAdam Hornacek import opengrok.auth.plugin.entity.User;
28b28a5538SAdam Hornacek import org.junit.Assert;
29b28a5538SAdam Hornacek import org.junit.Before;
30b28a5538SAdam Hornacek import org.junit.Test;
31b28a5538SAdam Hornacek 
32b28a5538SAdam Hornacek /**
33b28a5538SAdam Hornacek  *
34b28a5538SAdam Hornacek  * @author Vladimir Kotal
35b28a5538SAdam Hornacek  */
36b28a5538SAdam Hornacek public class LdapUserPluginTest {
37b28a5538SAdam Hornacek     private LdapUserPlugin plugin;
38b28a5538SAdam Hornacek 
39b28a5538SAdam Hornacek     @Before
setUp()40b28a5538SAdam Hornacek     public void setUp() {
41b28a5538SAdam Hornacek         plugin = new LdapUserPlugin();
42b28a5538SAdam Hornacek     }
43b28a5538SAdam Hornacek 
getParamsMap()44b28a5538SAdam Hornacek     private Map<String, Object> getParamsMap() {
45b28a5538SAdam Hornacek         Map<String, Object> params = new TreeMap<>();
46b28a5538SAdam Hornacek         params.put(AbstractLdapPlugin.CONFIGURATION_PARAM,
47b28a5538SAdam Hornacek                 getClass().getResource("config.xml").getFile());
48b28a5538SAdam Hornacek 
49b28a5538SAdam Hornacek         return params;
50b28a5538SAdam Hornacek     }
51b28a5538SAdam Hornacek 
5253c33ae5SVladimir Kotal     @Test(expected = NullPointerException.class)
loadTestNegative1()53b28a5538SAdam Hornacek     public void loadTestNegative1() {
54b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
55b28a5538SAdam Hornacek         params.put("foo", (Object)"bar");
56b28a5538SAdam Hornacek         plugin.load(params);
57b28a5538SAdam Hornacek     }
58b28a5538SAdam Hornacek 
59b28a5538SAdam Hornacek     @Test
loadTestPositive()60*17b325b6SVladimir Kotal     public void loadTestPositive() {
61b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
62b28a5538SAdam Hornacek         params.put(LdapUserPlugin.ATTRIBUTES, (Object)"mail");
63b28a5538SAdam Hornacek         plugin.load(params);
64b28a5538SAdam Hornacek     }
65b28a5538SAdam Hornacek 
66b28a5538SAdam Hornacek     @Test
filterTest()6753c33ae5SVladimir Kotal     public void filterTest() {
68b28a5538SAdam Hornacek         Map<String, Object> params = getParamsMap();
6953c33ae5SVladimir Kotal         params.put(LdapUserPlugin.LDAP_FILTER, (Object) "(&(objectclass=person)(mail=%username%))");
70b28a5538SAdam Hornacek         params.put(LdapUserPlugin.ATTRIBUTES, (Object) "uid,mail");
71b28a5538SAdam Hornacek         plugin.load(params);
72b28a5538SAdam Hornacek 
7353c33ae5SVladimir Kotal         User user = new User("foo@bar.cz", "id", null, false);
7453c33ae5SVladimir Kotal         String filter = plugin.expandFilter(user);
7553c33ae5SVladimir Kotal         Assert.assertEquals("(&(objectclass=person)(mail=foo@bar.cz))", filter);
76b28a5538SAdam Hornacek     }
77b28a5538SAdam Hornacek }
78