diff options
Diffstat (limited to 'gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/SystemGroupsIT.java')
-rw-r--r-- | gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/SystemGroupsIT.java | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/SystemGroupsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/SystemGroupsIT.java new file mode 100644 index 0000000000..6ee2045d38 --- /dev/null +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/SystemGroupsIT.java @@ -0,0 +1,105 @@ +// Copyright (C) 2013 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.gerrit.acceptance; + +import static org.junit.Assert.assertTrue; + +import com.google.common.collect.Sets; +import com.google.gerrit.acceptance.rest.group.GroupInfo; +import com.google.gerrit.reviewdb.client.AccountGroup; +import com.google.gerrit.reviewdb.server.ReviewDb; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.google.gwtorm.server.OrmException; +import com.google.gwtorm.server.SchemaFactory; +import com.google.inject.Inject; + +import com.jcraft.jsch.JSchException; + +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; +import java.util.Map; +import java.util.Set; + +/** + * An example test that tests presence of system groups in a newly initialized + * review site. + * + * The test shows how to perform these checks via SSH, REST or using Gerrit + * internals. + */ +public class SystemGroupsIT extends AbstractDaemonTest { + + @Inject + private SchemaFactory<ReviewDb> reviewDbProvider; + + @Inject + private AccountCreator accounts; + + protected TestAccount admin; + + @Before + public void setUp() throws Exception { + admin = accounts.create("admin", "admin@sap.com", "Administrator", + "Administrators"); + } + + @Test + public void systemGroupsCreated_ssh() throws JSchException, IOException { + SshSession session = new SshSession(admin); + String result = session.exec("gerrit ls-groups"); + assertTrue(result.contains("Administrators")); + assertTrue(result.contains("Anonymous Users")); + assertTrue(result.contains("Non-Interactive Users")); + assertTrue(result.contains("Project Owners")); + assertTrue(result.contains("Registered Users")); + session.close(); + } + + @Test + public void systemGroupsCreated_rest() throws IOException { + RestSession session = new RestSession(admin); + RestResponse r = session.get("/groups/"); + Gson gson = new Gson(); + Map<String, GroupInfo> result = + gson.fromJson(r.getReader(), new TypeToken<Map<String, GroupInfo>>() {}.getType()); + Set<String> names = result.keySet(); + assertTrue(names.contains("Administrators")); + assertTrue(names.contains("Anonymous Users")); + assertTrue(names.contains("Non-Interactive Users")); + assertTrue(names.contains("Project Owners")); + assertTrue(names.contains("Registered Users")); + } + + @Test + public void systemGroupsCreated_internals() throws OrmException { + ReviewDb db = reviewDbProvider.open(); + try { + Set<String> names = Sets.newHashSet(); + for (AccountGroup g : db.accountGroups().all()) { + names.add(g.getName()); + } + assertTrue(names.contains("Administrators")); + assertTrue(names.contains("Anonymous Users")); + assertTrue(names.contains("Non-Interactive Users")); + assertTrue(names.contains("Project Owners")); + assertTrue(names.contains("Registered Users")); + } finally { + db.close(); + } + } +} |