1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * See LICENSE.txt included in this distribution for the specific
9  * language governing permissions and limitations under the License.
10  *
11  * When distributing Covered Code, include this CDDL HEADER in each
12  * file and include the License file at LICENSE.txt.
13  * If applicable, add the following below this CDDL HEADER, with the
14  * fields enclosed by brackets "[]" replaced with your own identifying
15  * information: Portions Copyright [yyyy] [name of copyright owner]
16  *
17  * CDDL HEADER END
18  */
19 
20 /*
21  * Copyright (c) 2019, Chris Fraire <cfraire@me.com>.
22  */
23 package org.opengrok.indexer.configuration;
24 
25 import org.junit.jupiter.api.Test;
26 import org.junit.jupiter.api.condition.EnabledOnOs;
27 import org.junit.jupiter.api.condition.OS;
28 
29 import java.io.File;
30 
31 import static org.junit.jupiter.api.Assertions.assertEquals;
32 import static org.junit.jupiter.api.Assertions.assertNull;
33 
34 public class CanonicalRootValidatorTest {
35 
36     @Test
testRejectUnseparated()37     public void testRejectUnseparated() {
38         assertEquals(CanonicalRootValidator.validate("test", "test value"),
39                 "test value must end with a separator");
40     }
41 
42     @Test
43     @EnabledOnOs({OS.LINUX, OS.MAC, OS.SOLARIS, OS.AIX, OS.OTHER})
testRejectRoot()44     public void testRejectRoot() {
45         assertEquals("test value cannot be the root directory",
46                 CanonicalRootValidator.validate("/", "test value"),
47                 "should reject root");
48     }
49 
50     @Test
testRejectWindowsRoot()51     public void testRejectWindowsRoot() {
52         assertEquals("--canonicalRoot cannot be a root directory",
53                 CanonicalRootValidator.validate("C:" + File.separator, "--canonicalRoot"),
54                 "should reject Windows root");
55     }
56 
57     @Test
testSlashVar()58     public void testSlashVar() {
59         assertNull(CanonicalRootValidator.validate(File.separator + "var" + File.separator,
60                 "--canonicalRoot"), "should allow /var/");
61     }
62 }
63