Add further tests for disabled branch configuration

We intent to change the way how inheritance works for list config
parameters, such as disabled branches. With the new tests the changed
behavior will be covered and it will also make it easier for reviewers
to see what is changing.

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: If648e3e91f60ee1d0a2279c9a04cbde7b36673de
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshotTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshotTest.java
index 6da19e4..d1a4adb 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshotTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/config/CodeOwnersPluginConfigSnapshotTest.java
@@ -631,7 +631,18 @@
   @Test
   public void inheritedDisabledBranchCanBeOverridden() throws Exception {
     configureDisabledBranch(allProjects, "refs/heads/master");
-    enableCodeOwnersForAllBranches(project);
+    configureDisabledBranch(project, "refs/heads/test");
+    assertThat(cfgSnapshot().isDisabled("master")).isFalse();
+    assertThat(cfgSnapshot().isDisabled("test")).isTrue();
+  }
+
+  @Test
+  public void inheritedDisabledBranchCanBeRemoved() throws Exception {
+    configureDisabledBranch(allProjects, "refs/heads/master");
+
+    // override the inherited config with an empty value to enable code owners for all branches
+    configureDisabledBranch(project, "");
+
     assertThat(cfgSnapshot().isDisabled("master")).isFalse();
   }
 
@@ -1561,10 +1572,6 @@
         project, /* subsection= */ null, StatusConfig.KEY_DISABLED_BRANCH, disabledBranch);
   }
 
-  private void enableCodeOwnersForAllBranches(Project.NameKey project) throws Exception {
-    setCodeOwnersConfig(project, /* subsection= */ null, StatusConfig.KEY_DISABLED_BRANCH, "");
-  }
-
   private void configureBackend(Project.NameKey project, String backendName) throws Exception {
     configureBackend(project, /* branch= */ null, backendName);
   }
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/config/StatusConfigTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/config/StatusConfigTest.java
index 2d892e4..4e82aeb 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/config/StatusConfigTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/config/StatusConfigTest.java
@@ -238,6 +238,19 @@
       disabledBranchConfigurationInPluginConfigOverridesDisabledBranchConfigurationInGerritConfig()
           throws Exception {
     Config cfg = new Config();
+    cfg.setString(SECTION_CODE_OWNERS, null, KEY_DISABLED_BRANCH, "refs/heads/test");
+    assertThat(statusConfig.isDisabledForBranch(cfg, BranchNameKey.create(project, "master")))
+        .isFalse();
+    assertThat(statusConfig.isDisabledForBranch(cfg, BranchNameKey.create(project, "test")))
+        .isTrue();
+  }
+
+  @Test
+  @GerritConfig(name = "plugin.code-owners.disabledBranch", value = "refs/heads/master")
+  public void
+      disabledBranchConfigurationInPluginConfigCanRemoveDisabledBranchConfigurationInGerritConfig()
+          throws Exception {
+    Config cfg = new Config();
     cfg.setString(SECTION_CODE_OWNERS, null, KEY_DISABLED_BRANCH, "");
     assertThat(statusConfig.isDisabledForBranch(cfg, BranchNameKey.create(project, "master")))
         .isFalse();