use of org.opengrok.indexer.configuration.Project in project OpenGrok by OpenGrok.
the class PluginClassLoaderTest method testFalsePlugin.
@Test
public void testFalsePlugin() {
PluginClassLoader instance = new PluginClassLoader(pluginDirectory);
Class<?> clazz = loadClass(instance, "opengrok.auth.plugin.FalsePlugin");
IAuthorizationPlugin plugin = getNewInstance(clazz);
Group g = new Group("group1");
Project p = new Project("project1");
assertFalse(plugin.isAllowed(new DummyHttpServletRequest(), g));
assertFalse(plugin.isAllowed(new DummyHttpServletRequest(), p));
}
use of org.opengrok.indexer.configuration.Project in project OpenGrok by OpenGrok.
the class ProjectsControllerTest method testAdd.
/**
* Verify that added project correctly inherits a property
* from configuration. Ideally, this should test all properties of Project.
*/
@Test
void testAdd() throws Exception {
assertTrue(env.getRepositories().isEmpty());
assertTrue(env.getProjects().isEmpty());
// Add a group matching the project to be added.
String groupName = "mercurialgroup";
Group group = new Group(groupName, "mercurial.*");
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());
// Add a sub-repository.
String repoPath = repository.getSourceRoot() + File.separator + "mercurial";
File mercurialRoot = new File(repoPath);
File subDir = new File(mercurialRoot, "usr");
assertTrue(subDir.mkdir());
String subRepoPath = repoPath + File.separator + "usr" + File.separator + "closed";
File mercurialSubRoot = new File(subRepoPath);
MercurialRepositoryTest.runHgCommand(mercurialRoot, "clone", mercurialRoot.getAbsolutePath(), subRepoPath);
// Add the project.
env.setScanningDepth(3);
addProject("mercurial");
// Check that the project was added properly.
assertTrue(env.getProjects().containsKey("mercurial"));
assertEquals(1, env.getProjects().size());
assertEquals(2, env.getRepositories().size());
assertEquals(1, group.getRepositories().size());
assertEquals(0, group.getProjects().size());
assertEquals(1, group.getRepositories().stream().filter(p -> p.getName().equals("mercurial")).collect(Collectors.toSet()).size());
// Check that HistoryGuru now includes the project in its list.
Set<String> directoryNames = HistoryGuru.getInstance().getRepositories().stream().map(RepositoryInfo::getDirectoryName).collect(Collectors.toSet());
assertTrue(directoryNames.contains(repoPath) || directoryNames.contains(mercurialRoot.getCanonicalPath()), "though it should contain the top root,");
assertTrue(directoryNames.contains(subRepoPath) || directoryNames.contains(mercurialSubRoot.getCanonicalPath()), "though it should contain the sub-root,");
// Add more projects and check that they have been added incrementally.
// At the same time, it checks that multiple projects can be added
// with single message.
addProject("git");
assertEquals(2, env.getProjects().size());
assertEquals(3, env.getRepositories().size());
assertTrue(env.getProjects().containsKey("git"));
assertFalse(HistoryGuru.getInstance().getRepositories().stream().map(RepositoryInfo::getDirectoryName).collect(Collectors.toSet()).contains("git"));
}
use of org.opengrok.indexer.configuration.Project in project OpenGrok by OpenGrok.
the class ProjectsControllerTest method testSetGet.
@Test
void testSetGet() {
assertTrue(env.isHandleHistoryOfRenamedFiles());
String[] projects = new String[] { "mercurial", "git" };
for (String proj : projects) {
addProject(proj);
}
assertEquals(2, env.getProjectList().size());
for (String proj : projects) {
Project project = env.getProjects().get(proj);
assertNotNull(project);
assertTrue(project.isHandleRenamedFiles());
List<RepositoryInfo> riList = env.getProjectRepositoriesMap().get(project);
assertNotNull(riList);
for (RepositoryInfo ri : riList) {
ri.setHandleRenamedFiles(true);
assertTrue(ri.isHandleRenamedFiles());
}
}
// Change their property via RESTful API call.
for (String proj : projects) {
setHandleRenamedFilesToFalse(proj);
}
// Verify the property was set on each project and its repositories.
for (String proj : projects) {
Project project = env.getProjects().get(proj);
assertNotNull(project);
assertFalse(project.isHandleRenamedFiles());
List<RepositoryInfo> riList = env.getProjectRepositoriesMap().get(project);
assertNotNull(riList);
for (RepositoryInfo ri : riList) {
assertFalse(ri.isHandleRenamedFiles());
}
}
// Verify the property can be retrieved via message.
for (String proj : projects) {
boolean value = target("projects").path(proj).path("property/handleRenamedFiles").request().get(boolean.class);
assertFalse(value);
}
}
use of org.opengrok.indexer.configuration.Project in project OpenGrok by OpenGrok.
the class ProjectsControllerTest method testAddInherit.
@Test
void testAddInherit() {
assertTrue(env.getRepositories().isEmpty());
assertTrue(env.getProjects().isEmpty());
assertTrue(env.isHandleHistoryOfRenamedFiles());
addProject("git");
assertTrue(env.getProjects().containsKey("git"));
assertEquals(1, env.getProjects().size());
Project proj = env.getProjects().get("git");
assertNotNull(proj);
assertTrue(proj.isHandleRenamedFiles());
}
use of org.opengrok.indexer.configuration.Project 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());
}
Aggregations