summaryrefslogtreecommitdiffstats
path: root/src/test/java
diff options
context:
space:
mode:
authorFlorian Zschocke <f.zschocke+git@gmail.com>2022-03-13 17:48:19 +0100
committerFlorian Zschocke <f.zschocke+git@gmail.com>2022-03-13 17:48:19 +0100
commit16ec6d07c58356d9b20652b5ae168ae9f0fd2eaa (patch)
tree8be4fd0c5234f12a4949f47d0e3a8f17bc227508 /src/test/java
parent1c4fbc07c2f1898bf24e1d0076f01faa0c824b84 (diff)
downloadgitblit-16ec6d07c58356d9b20652b5ae168ae9f0fd2eaa.tar.gz
gitblit-16ec6d07c58356d9b20652b5ae168ae9f0fd2eaa.zip
fix: Fix StoredUserConfig handling null subsections
Te `StoredUserConfig` did not handle sections without a subsection. When the subsection did not exist, i.e. was `null`, then the subsection name would be set to the string "null". This is not how the config file format works. It should create a `[SECTIONNAME]` entry instead. This fix handles a `null` subsection correctly, by handling it as a section without a subsection.
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/com/gitblit/StoredUserConfigTest.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/test/java/com/gitblit/StoredUserConfigTest.java b/src/test/java/com/gitblit/StoredUserConfigTest.java
new file mode 100644
index 00000000..01964617
--- /dev/null
+++ b/src/test/java/com/gitblit/StoredUserConfigTest.java
@@ -0,0 +1,58 @@
+package com.gitblit;
+
+import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.storage.file.FileBasedConfig;
+import org.eclipse.jgit.util.FS;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.junit.Assert.*;
+
+public class StoredUserConfigTest
+{
+ private static File file;
+
+ @Before
+ public void setup()
+ {
+ file = new File("./suc-test.conf");
+ file.delete();
+ }
+
+ @After
+ public void teardown()
+ {
+ file.delete();
+ }
+
+
+
+ @Test
+ public void testSection() throws Exception
+ {
+ StoredUserConfig config = new StoredUserConfig(file);
+ config.setString("USER", "norman", "key", "value");
+ config.setString("USER", "admin", "displayName", "marusha");
+ config.setString("USER", null, "role", "none");
+
+ config.setString("TEAM", "admin", "role", "admin");
+ config.setString("TEAM", "ci", "email", "ci@example.com");
+ config.setString("TEAM", null, "displayName", "noone");
+
+ config.save();
+
+ StoredConfig cfg = new FileBasedConfig(file, FS.detect());
+ cfg.load();
+ assertEquals("value", cfg.getString("USER", "norman", "key"));
+ assertEquals("marusha", cfg.getString("USER", "admin", "displayName"));
+ assertEquals("none", cfg.getString("USER", null, "role"));
+
+ assertEquals("admin", cfg.getString("TEAM", "admin", "role"));
+ assertEquals("ci@example.com", cfg.getString("TEAM", "ci", "email"));
+ assertEquals("noone", cfg.getString("TEAM", null, "displayName"));
+ }
+
+}