use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class ProjectsControllerTest method testDelete.
/**
* This test needs to perform indexing so that it can be verified that
* delete handling does remove the index data.
*/
@Test
void testDelete() throws Exception {
String[] projectsToDelete = { "git" };
// Add a group matching the project to be added.
String groupName = "gitgroup";
Group group = new Group(groupName, "git.*");
env.getGroups().add(group);
assertTrue(env.hasGroups());
assertEquals(1, env.getGroups().stream().filter(g -> g.getName().equals(groupName)).collect(Collectors.toSet()).size());
assertEquals(0, group.getRepositories().size());
assertEquals(0, group.getProjects().size());
assertEquals(0, env.getProjects().size());
assertEquals(0, env.getRepositories().size());
assertEquals(0, env.getProjectRepositoriesMap().size());
addProject("mercurial");
addProject("git");
assertEquals(2, env.getProjects().size());
assertEquals(2, env.getRepositories().size());
assertEquals(2, env.getProjectRepositoriesMap().size());
// Check the group was populated properly.
assertEquals(1, group.getRepositories().size());
assertEquals(0, group.getProjects().size());
assertEquals(1, group.getRepositories().stream().filter(p -> p.getName().equals("git")).collect(Collectors.toSet()).size());
// Run the indexer so that data directory is populated.
ArrayList<String> subFiles = new ArrayList<>();
subFiles.add("/git");
subFiles.add("/mercurial");
ArrayList<String> repos = new ArrayList<>();
repos.add("/git");
repos.add("/mercurial");
// This is necessary so that repositories in HistoryGuru get populated.
// For per project reindex this is called from setConfiguration() because
// of the -R option is present.
HistoryGuru.getInstance().invalidateRepositories(env.getRepositories(), null, CommandTimeoutType.INDEXER);
env.setHistoryEnabled(true);
Indexer.getInstance().prepareIndexer(env, // don't search for repositories
false, // don't scan and add projects
false, // don't create dictionary
false, // subFiles - needed when refreshing history partially
subFiles, // repositories - needed when refreshing history partially
repos);
Indexer.getInstance().doIndexerExecution(true, null, null);
for (String proj : projectsToDelete) {
deleteProject(proj);
}
assertEquals(1, env.getProjects().size());
assertEquals(1, env.getRepositories().size());
assertEquals(1, env.getProjectRepositoriesMap().size());
// Test data removal.
for (String projectName : projectsToDelete) {
for (String dirName : new String[] { "historycache", IndexDatabase.XREF_DIR, IndexDatabase.INDEX_DIR }) {
File dir = new File(env.getDataRootFile(), dirName + File.separator + projectName);
assertFalse(dir.exists());
}
}
// Check that HistoryGuru no longer maintains the removed projects.
for (String p : projectsToDelete) {
assertFalse(HistoryGuru.getInstance().getRepositories().stream().map(RepositoryInfo::getDirectoryName).collect(Collectors.toSet()).contains(repository.getSourceRoot() + File.separator + p));
}
// Check the group no longer contains the removed project.
assertEquals(0, group.getRepositories().size());
assertEquals(0, group.getProjects().size());
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class FalsePluginTest method shouldNotAllowRandomUserForAnyGroup.
@Test
void shouldNotAllowRandomUserForAnyGroup() {
DummyHttpServletRequest req = new DummyHttpServletRequest();
req.setAttribute(UserPlugin.REQUEST_ATTR, new User(RandomStringUtils.randomAlphanumeric(8)));
Group randomGroup = new Group(RandomStringUtils.randomAlphanumeric(10));
boolean projectAllowed = plugin.isAllowed(req, randomGroup);
assertFalse(projectAllowed, "should not allow rando for random group 1");
randomGroup = new Group(RandomStringUtils.randomAlphanumeric(10));
projectAllowed = plugin.isAllowed(req, randomGroup);
assertFalse(projectAllowed, "should not allow rando for random group 2");
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class UserWhiteListPluginTest method shouldNotAllowRandomUserForAnyGroup.
@ParameterizedTest
@MethodSource("parameters")
public void shouldNotAllowRandomUserForAnyGroup(String param) {
init(param);
plugin.load(validPluginParameters);
DummyHttpServletRequest req = new DummyHttpServletRequest();
req.setAttribute(UserPlugin.REQUEST_ATTR, new User(RandomStringUtils.randomAlphanumeric(8)));
Group randomGroup = new Group(RandomStringUtils.randomAlphanumeric(10));
boolean projectAllowed = plugin.isAllowed(req, randomGroup);
assertFalse(projectAllowed, "should not allow random group 1");
randomGroup = new Group(RandomStringUtils.randomAlphanumeric(10));
projectAllowed = plugin.isAllowed(req, randomGroup);
assertFalse(projectAllowed, "should not allow random group 2");
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class UserWhiteListPluginTest method shouldAllowWhitelistedUserForAnyGroup.
@ParameterizedTest
@MethodSource("parameters")
public void shouldAllowWhitelistedUserForAnyGroup(String param) {
init(param);
plugin.load(validPluginParameters);
DummyHttpServletRequest req = new DummyHttpServletRequest();
User user;
if (param.equals(UserWhiteListPlugin.USERNAME_FIELD)) {
user = new User(OK_USER);
} else {
user = new User("blurb", OK_ID);
}
req.setAttribute(UserPlugin.REQUEST_ATTR, user);
Group randomGroup = new Group(RandomStringUtils.randomAlphanumeric(10));
boolean groupAllowed = plugin.isAllowed(req, randomGroup);
assertTrue(groupAllowed, "should allow OK entity for random group 1");
randomGroup = new Group(RandomStringUtils.randomAlphanumeric(10));
groupAllowed = plugin.isAllowed(req, randomGroup);
assertTrue(groupAllowed, "should allow OK entity for random group 2");
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class UserPluginTest method testUser.
@Test
public void testUser() {
HttpServletRequest req;
assertTrue(plugin.isAllowed(req = createRequest("007"), new Group()));
assertEquals("007", ((User) req.getAttribute(UserPlugin.REQUEST_ATTR)).getUsername());
assertTrue(plugin.isAllowed(req = createRequest("008"), new Project()));
assertEquals("008", ((User) req.getAttribute(UserPlugin.REQUEST_ATTR)).getUsername());
assertTrue(plugin.isAllowed(req = createRequest("009"), createGroup("some group")));
assertEquals("009", ((User) req.getAttribute(UserPlugin.REQUEST_ATTR)).getUsername());
assertTrue(plugin.isAllowed(req = createRequest("00A"), createProject("some project")));
assertEquals("00A", ((User) req.getAttribute(UserPlugin.REQUEST_ATTR)).getUsername());
}
Aggregations