diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/GetCodeOwnerProjectConfigIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/GetCodeOwnerProjectConfigIT.java
index 8aff6c8..70d8f87 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/GetCodeOwnerProjectConfigIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/GetCodeOwnerProjectConfigIT.java
@@ -36,6 +36,7 @@
 import com.google.gerrit.plugins.codeowners.config.GeneralConfig;
 import com.google.gerrit.plugins.codeowners.config.OverrideApprovalConfig;
 import com.google.gerrit.plugins.codeowners.config.RequiredApprovalConfig;
+import com.google.gerrit.plugins.codeowners.config.StatusConfig;
 import com.google.inject.Inject;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.lib.Config;
@@ -82,6 +83,7 @@
     CodeOwnerProjectConfigInfo codeOwnerProjectConfigInfo =
         projectCodeOwnersApiFactory.project(project).getConfig();
     assertThat(codeOwnerProjectConfigInfo.general.fileExtension).isNull();
+    assertThat(codeOwnerProjectConfigInfo.status).isNull();
     assertThat(codeOwnerProjectConfigInfo.backend.idsByBranch).isNull();
     assertThat(codeOwnerProjectConfigInfo.backend.id)
         .isEqualTo(CodeOwnerBackendId.getBackendId(backendConfig.getDefaultBackend().getClass()));
@@ -102,6 +104,25 @@
   }
 
   @Test
+  public void getConfigForDisabledProject() throws Exception {
+    disableCodeOwnersForProject(project);
+    CodeOwnerProjectConfigInfo codeOwnerProjectConfigInfo =
+        projectCodeOwnersApiFactory.project(project).getConfig();
+    assertThat(codeOwnerProjectConfigInfo.status.disabled).isTrue();
+    assertThat(codeOwnerProjectConfigInfo.status.disabledBranches).isNull();
+  }
+
+  @Test
+  public void getConfigWithDisabledBranch() throws Exception {
+    configureDisabledBranch(project, "refs/heads/master");
+    CodeOwnerProjectConfigInfo codeOwnerProjectConfigInfo =
+        projectCodeOwnersApiFactory.project(project).getConfig();
+    assertThat(codeOwnerProjectConfigInfo.status.disabled).isNull();
+    assertThat(codeOwnerProjectConfigInfo.status.disabledBranches)
+        .containsExactly("refs/heads/master");
+  }
+
+  @Test
   public void getConfigWithConfiguredBackend() throws Exception {
     String otherBackendId = getOtherCodeOwnerBackend(backendConfig.getDefaultBackend());
     configureBackend(project, otherBackendId);
@@ -181,6 +202,11 @@
     setConfig(project, null, GeneralConfig.KEY_FILE_EXTENSION, fileExtension);
   }
 
+  private void configureDisabledBranch(Project.NameKey project, String disabledBranch)
+      throws Exception {
+    setCodeOwnersConfig(project, null, StatusConfig.KEY_DISABLED_BRANCH, disabledBranch);
+  }
+
   private void configureBackend(Project.NameKey project, String backendName) throws Exception {
     configureBackend(project, null, backendName);
   }
