AccountIT: Ensure user branch has been created before deleting

As in [1], deleting a non existing ref may result in a NON_EXISTING
status code. But the status code could also be something else. Thus
it's better to make sure the user branch has been created before
deleting.

[1]
http://download.eclipse.org/jgit/docs/jgit-2.3.1.201302201838-r/apidocs/org/eclipse/jgit/transport/RemoteRefUpdate.Status.html#NON_EXISTING

Change-Id: I3c2fcc09197cbb931406f2888bdf30ffde17021f
This commit is contained in:
Changcheng Xiao
2017-04-18 14:51:42 +02:00
parent fea441b8a1
commit 779381f7e2

View File

@@ -553,12 +553,7 @@ public class AccountIT extends AbstractDaemonTest {
@Test
@Sandboxed
public void fetchUserBranch() throws Exception {
// change something in the user preferences to ensure that the user branch
// is created
setApiUser(user);
GeneralPreferencesInfo input = new GeneralPreferencesInfo();
input.changesPerPage = GeneralPreferencesInfo.defaults().changesPerPage + 10;
gApi.accounts().self().setPreferences(input);
ensureUserBranchCreated(user);
TestRepository<InMemoryRepository> allUsersRepo = cloneProject(allUsers, user);
String userRefName = RefNames.refsUsers(user.id);
@@ -608,11 +603,7 @@ public class AccountIT extends AbstractDaemonTest {
@Test
public void pushToUserBranch() throws Exception {
// change something in the user preferences to ensure that the user branch
// is created
GeneralPreferencesInfo input = new GeneralPreferencesInfo();
input.changesPerPage = GeneralPreferencesInfo.defaults().changesPerPage + 10;
gApi.accounts().self().setPreferences(input);
ensureUserBranchCreated(admin);
TestRepository<InMemoryRepository> allUsersRepo = cloneProject(allUsers);
fetch(allUsersRepo, RefNames.refsUsers(admin.id) + ":userRef");
@@ -626,11 +617,7 @@ public class AccountIT extends AbstractDaemonTest {
@Test
public void pushToUserBranchForReview() throws Exception {
// change something in the user preferences to ensure that the user branch
// is created
GeneralPreferencesInfo input = new GeneralPreferencesInfo();
input.changesPerPage = GeneralPreferencesInfo.defaults().changesPerPage + 10;
gApi.accounts().self().setPreferences(input);
ensureUserBranchCreated(admin);
String userRefName = RefNames.refsUsers(admin.id);
TestRepository<InMemoryRepository> allUsersRepo = cloneProject(allUsers);
@@ -653,11 +640,7 @@ public class AccountIT extends AbstractDaemonTest {
@Test
public void pushWatchConfigToUserBranch() throws Exception {
// change something in the user preferences to ensure that the user branch
// is created
GeneralPreferencesInfo input = new GeneralPreferencesInfo();
input.changesPerPage = GeneralPreferencesInfo.defaults().changesPerPage + 10;
gApi.accounts().self().setPreferences(input);
ensureUserBranchCreated(admin);
TestRepository<InMemoryRepository> allUsersRepo = cloneProject(allUsers);
fetch(allUsersRepo, RefNames.refsUsers(admin.id) + ":userRef");
@@ -700,6 +683,8 @@ public class AccountIT extends AbstractDaemonTest {
@Test
@Sandboxed
public void cannotDeleteUserBranch() throws Exception {
ensureUserBranchCreated(admin);
grant(
Permission.DELETE,
allUsers,
@@ -722,6 +707,8 @@ public class AccountIT extends AbstractDaemonTest {
@Test
@Sandboxed
public void deleteUserBranchWithAccessDatabaseCapability() throws Exception {
ensureUserBranchCreated(admin);
allowGlobalCapabilities(REGISTERED_USERS, GlobalCapability.ACCESS_DATABASE);
grant(
Permission.DELETE,
@@ -1032,4 +1019,12 @@ public class AccountIT extends AbstractDaemonTest {
assertThat(accounts).hasSize(1);
assertThat(Iterables.getOnlyElement(accounts)).isEqualTo(expectedAccount.getId());
}
private void ensureUserBranchCreated(TestAccount account) throws Exception {
// Change something in the user preferences to ensure that the user branch is created.
setApiUser(account);
GeneralPreferencesInfo input = new GeneralPreferencesInfo();
input.changesPerPage = GeneralPreferencesInfo.defaults().changesPerPage + 10;
gApi.accounts().self().setPreferences(input);
}
}