Use allow/block/deny methods to improve test readability
The readability of permission based tests is improved by introducing the utility methods: allow, block, deny. Instead of: grant(cfg, PUSH, REGISTERED_USERS, "refs/heads/*"); grant(cfg, FORGE_COMMITTER, ANONYMOUS_USERS, "refs/heads/*").setBlock(true); grant(cfg, READ, REGISTERED_USERS, "refs/*").setDeny(true); we now use: allow(cfg, PUSH, REGISTERED_USERS, "refs/heads/*"); block(cfg, FORGE_COMMITTER, ANONYMOUS_USERS, "refs/heads/*"); deny(cfg, READ, REGISTERED_USERS, "refs/*"); Usage of "allow/block/deny" also resembles the corresponding drop-down list from the permission editor UI. Change-Id: I0de1a9f7014fc2ff48bebff1ecc894c8b80ad682
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
package com.google.gerrit.acceptance.git;
|
||||
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS;
|
||||
import static com.google.gerrit.server.project.Util.grant;
|
||||
import static com.google.gerrit.server.project.Util.block;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.NoHttpd;
|
||||
@@ -49,8 +49,7 @@ public class DraftChangeBlockedIT extends AbstractDaemonTest {
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
ProjectConfig cfg = projectCache.checkedGet(allProjects).getConfig();
|
||||
grant(cfg, Permission.PUSH, ANONYMOUS_USERS,
|
||||
"refs/drafts/*").setBlock();
|
||||
block(cfg, Permission.PUSH, ANONYMOUS_USERS, "refs/drafts/*");
|
||||
saveProjectConfig(cfg);
|
||||
projectCache.evict(cfg.getProject());
|
||||
}
|
||||
|
||||
@@ -14,18 +14,20 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.project;
|
||||
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS;
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
|
||||
import static com.google.gerrit.server.project.Util.allow;
|
||||
import static com.google.gerrit.server.project.Util.block;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.reviewdb.client.Branch;
|
||||
import com.google.gerrit.server.config.AllProjectsNameProvider;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
@@ -44,7 +46,7 @@ public class CreateBranchIT extends AbstractDaemonTest {
|
||||
private ProjectCache projectCache;
|
||||
|
||||
@Inject
|
||||
private AllProjectsNameProvider allProjects;
|
||||
private AllProjectsName allProjects;
|
||||
|
||||
private Branch.NameKey branch;
|
||||
|
||||
@@ -130,29 +132,26 @@ public class CreateBranchIT extends AbstractDaemonTest {
|
||||
}
|
||||
|
||||
private void blockCreateReference() throws IOException, ConfigInvalidException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(allProjects.get());
|
||||
md.setMessage(String.format("Block %s", Permission.CREATE));
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
AccessSection s = config.getAccessSection("refs/*", true);
|
||||
Permission p = s.getPermission(Permission.CREATE, true);
|
||||
PermissionRule rule = new PermissionRule(config.resolve(
|
||||
SystemGroupBackend.getGroup(SystemGroupBackend.ANONYMOUS_USERS)));
|
||||
rule.setBlock();
|
||||
p.add(rule);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
ProjectConfig cfg = projectCache.checkedGet(allProjects).getConfig();
|
||||
block(cfg, Permission.CREATE, ANONYMOUS_USERS, "refs/*");
|
||||
saveProjectConfig(allProjects, cfg);
|
||||
projectCache.evict(cfg.getProject());
|
||||
}
|
||||
|
||||
private void grantOwner() throws IOException, ConfigInvalidException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(project);
|
||||
md.setMessage(String.format("Grant %s", Permission.OWNER));
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
AccessSection s = config.getAccessSection("refs/*", true);
|
||||
Permission p = s.getPermission(Permission.OWNER, true);
|
||||
PermissionRule rule = new PermissionRule(config.resolve(
|
||||
SystemGroupBackend.getGroup(SystemGroupBackend.REGISTERED_USERS)));
|
||||
p.add(rule);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
ProjectConfig cfg = projectCache.checkedGet(project).getConfig();
|
||||
allow(cfg, Permission.OWNER, REGISTERED_USERS, "refs/*");
|
||||
saveProjectConfig(project, cfg);
|
||||
projectCache.evict(cfg.getProject());
|
||||
}
|
||||
|
||||
private void saveProjectConfig(Project.NameKey p, ProjectConfig cfg)
|
||||
throws IOException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(p);
|
||||
try {
|
||||
cfg.commit(md);
|
||||
} finally {
|
||||
md.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,18 +14,20 @@
|
||||
|
||||
package com.google.gerrit.acceptance.rest.project;
|
||||
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS;
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
|
||||
import static com.google.gerrit.server.project.Util.allow;
|
||||
import static com.google.gerrit.server.project.Util.block;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.reviewdb.client.Branch;
|
||||
import com.google.gerrit.server.config.AllProjectsNameProvider;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
@@ -45,7 +47,7 @@ public class DeleteBranchIT extends AbstractDaemonTest {
|
||||
private ProjectCache projectCache;
|
||||
|
||||
@Inject
|
||||
private AllProjectsNameProvider allProjects;
|
||||
private AllProjectsName allProjects;
|
||||
|
||||
private Branch.NameKey branch;
|
||||
|
||||
@@ -125,30 +127,25 @@ public class DeleteBranchIT extends AbstractDaemonTest {
|
||||
}
|
||||
|
||||
private void blockForcePush() throws IOException, ConfigInvalidException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(allProjects.get());
|
||||
md.setMessage(String.format("Block force %s", Permission.PUSH));
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
AccessSection s = config.getAccessSection("refs/heads/*", true);
|
||||
Permission p = s.getPermission(Permission.PUSH, true);
|
||||
PermissionRule rule = new PermissionRule(config.resolve(
|
||||
SystemGroupBackend.getGroup(SystemGroupBackend.ANONYMOUS_USERS)));
|
||||
rule.setForce(true);
|
||||
rule.setBlock();
|
||||
p.add(rule);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
ProjectConfig cfg = projectCache.checkedGet(allProjects).getConfig();
|
||||
block(cfg, Permission.PUSH, ANONYMOUS_USERS, "refs/heads/*").setForce(true);
|
||||
saveProjectConfig(allProjects, cfg);
|
||||
projectCache.evict(cfg.getProject());
|
||||
}
|
||||
|
||||
private void grantOwner() throws IOException, ConfigInvalidException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(project);
|
||||
md.setMessage(String.format("Grant %s", Permission.OWNER));
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
AccessSection s = config.getAccessSection("refs/*", true);
|
||||
Permission p = s.getPermission(Permission.OWNER, true);
|
||||
PermissionRule rule = new PermissionRule(config.resolve(
|
||||
SystemGroupBackend.getGroup(SystemGroupBackend.REGISTERED_USERS)));
|
||||
p.add(rule);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
ProjectConfig cfg = projectCache.checkedGet(project).getConfig();
|
||||
allow(cfg, Permission.OWNER, REGISTERED_USERS, "refs/*");
|
||||
saveProjectConfig(project, cfg);
|
||||
projectCache.evict(cfg.getProject());
|
||||
}
|
||||
|
||||
private void saveProjectConfig(Project.NameKey p, ProjectConfig cfg) throws IOException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(p);
|
||||
try {
|
||||
cfg.commit(md);
|
||||
} finally {
|
||||
md.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,19 +16,18 @@ package com.google.gerrit.acceptance.rest.project;
|
||||
|
||||
import static com.google.gerrit.acceptance.GitUtil.createProject;
|
||||
import static com.google.gerrit.acceptance.rest.project.BranchAssert.assertBranches;
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
|
||||
import static com.google.gerrit.server.project.Util.block;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.PushOneCommit;
|
||||
import com.google.gerrit.acceptance.RestResponse;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
import com.google.gerrit.common.data.Permission;
|
||||
import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.server.git.MetaDataUpdate;
|
||||
import com.google.gerrit.server.git.ProjectConfig;
|
||||
import com.google.gerrit.server.group.SystemGroupBackend;
|
||||
import com.google.gerrit.server.project.ListBranches.BranchInfo;
|
||||
import com.google.gerrit.server.project.ProjectCache;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
@@ -142,17 +141,10 @@ public class ListBranchesIT extends AbstractDaemonTest {
|
||||
|
||||
private void blockRead(Project.NameKey project, String ref)
|
||||
throws RepositoryNotFoundException, IOException, ConfigInvalidException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(project);
|
||||
md.setMessage("Grant submit on " + ref);
|
||||
ProjectConfig config = ProjectConfig.read(md);
|
||||
AccessSection s = config.getAccessSection(ref, true);
|
||||
Permission p = s.getPermission(Permission.READ, true);
|
||||
PermissionRule rule = new PermissionRule(config.resolve(
|
||||
SystemGroupBackend.getGroup(SystemGroupBackend.REGISTERED_USERS)));
|
||||
rule.setBlock();
|
||||
p.add(rule);
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
ProjectConfig cfg = projectCache.checkedGet(project).getConfig();
|
||||
block(cfg, Permission.READ, REGISTERED_USERS, ref);
|
||||
saveProjectConfig(project, cfg);
|
||||
projectCache.evict(cfg.getProject());
|
||||
}
|
||||
|
||||
private static List<BranchInfo> toBranchInfoList(RestResponse r)
|
||||
@@ -168,4 +160,13 @@ public class ListBranchesIT extends AbstractDaemonTest {
|
||||
PushOneCommit push = pushFactory.create(db, admin.getIdent());
|
||||
return push.to(git, ref);
|
||||
}
|
||||
|
||||
private void saveProjectConfig(Project.NameKey p, ProjectConfig cfg) throws IOException {
|
||||
MetaDataUpdate md = metaDataUpdateFactory.create(p);
|
||||
try {
|
||||
cfg.commit(md);
|
||||
} finally {
|
||||
md.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
package com.google.gerrit.acceptance.server.project;
|
||||
|
||||
import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS;
|
||||
import static com.google.gerrit.server.project.Util.allow;
|
||||
import static com.google.gerrit.server.project.Util.category;
|
||||
import static com.google.gerrit.server.project.Util.grant;
|
||||
import static com.google.gerrit.server.project.Util.value;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@@ -64,7 +64,7 @@ public class CustomLabelIT extends AbstractDaemonTest {
|
||||
ProjectConfig cfg = projectCache.checkedGet(allProjects).getConfig();
|
||||
AccountGroup.UUID anonymousUsers =
|
||||
SystemGroupBackend.getGroup(ANONYMOUS_USERS).getUUID();
|
||||
grant(cfg, Permission.forLabel(Q.getName()), -1, 1, anonymousUsers,
|
||||
allow(cfg, Permission.forLabel(Q.getName()), -1, 1, anonymousUsers,
|
||||
"refs/heads/*");
|
||||
saveProjectConfig(cfg);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user