use of org.eclipse.egit.ui.common.ExistingOrNewPage in project egit by eclipse.
the class SharingWizardTest method shareProjectWithExternalRepo.
@Test
public void shareProjectWithExternalRepo() throws Exception {
String repoName = "ExternalRepositoryForShare";
createProject(projectName0);
String location1 = createProject(projectName1);
String location2 = createProject(projectName2);
createProject(projectName3);
ExistingOrNewPage existingOrNewPage = sharingWizard.openWizard(projectName1, projectName2);
SWTBotShell createRepoDialog = existingOrNewPage.clickCreateRepository();
String repoDir = RepositoryUtil.getDefaultRepositoryDir();
File repoFolder = new File(repoDir, repoName);
createRepoDialog.bot().textWithLabel(UIText.CreateRepositoryPage_DirectoryLabel).setText(repoFolder.getAbsolutePath());
createRepoDialog.bot().button(IDialogConstants.FINISH_LABEL).click();
SWTBotCombo combo = bot.comboBoxWithLabel(UIText.ExistingOrNewPage_ExistingRepositoryLabel);
assertTrue(combo.getText().startsWith(repoName));
Repository targetRepo = lookupRepository(new File(repoFolder, Constants.DOT_GIT));
assertTrue(combo.getText().endsWith(targetRepo.getDirectory().getPath()));
assertEquals(targetRepo.getWorkTree().getPath(), bot.textWithLabel(UIText.ExistingOrNewPage_WorkingDirectoryLabel).getText());
String[][] contents = new String[2][3];
contents[0][0] = projectName1;
contents[0][1] = new Path(location1).toString();
contents[0][2] = new Path(targetRepo.getWorkTree().getPath()).append(projectName1).toString();
contents[1][0] = projectName2;
contents[1][1] = new Path(location2).toString();
contents[1][2] = new Path(targetRepo.getWorkTree().getPath()).append(projectName2).toString();
existingOrNewPage.assertTableContents(contents);
existingOrNewPage.setRelativePath("a/b");
contents[0][2] = new Path(targetRepo.getWorkTree().getPath()).append("a/b").append(projectName1).toString();
contents[1][2] = new Path(targetRepo.getWorkTree().getPath()).append("a/b").append(projectName2).toString();
existingOrNewPage.assertTableContents(contents);
SWTBotShell shell = bot.activeShell();
bot.button(IDialogConstants.FINISH_LABEL).click();
bot.waitUntil(Conditions.shellCloses(shell));
ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
String location1Path = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName1).getLocation().toString();
assertEquals(contents[0][2], location1Path);
String location2Path = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName2).getLocation().toString();
assertEquals(contents[1][2], location2Path);
}
use of org.eclipse.egit.ui.common.ExistingOrNewPage in project egit by eclipse.
the class SharingWizardTest method shareProjectAndCreateRepo.
@Test
public void shareProjectAndCreateRepo() throws Exception {
createProject(projectName0);
ExistingOrNewPage existingOrNewPage = sharingWizard.openWizard(projectName0);
existingOrNewPage.setInternalMode(true);
// initial state
IWorkspace workspace = ResourcesPlugin.getWorkspace();
String projectPath = workspace.getRoot().getProject(projectName0).getLocation().toOSString();
existingOrNewPage.assertContents(false, projectName0, projectPath, "", "");
existingOrNewPage.assertEnabling(false, false, false);
// select project
bot.tree().getTreeItem(projectName0).select();
existingOrNewPage.assertContents(false, projectName0, projectPath, "", projectPath);
existingOrNewPage.assertEnabling(true, true, false);
// create repository
bot.button("Create Repository").click();
String repopath = workspace.getRoot().getProject(projectName0).getLocation().append(Constants.DOT_GIT).toOSString();
existingOrNewPage.assertContents(true, projectName0, projectPath, ".git", "");
existingOrNewPage.assertEnabling(false, false, true);
assertTrue((new File(repopath)).exists());
// share project
SWTBotShell shell = bot.activeShell();
bot.button(IDialogConstants.FINISH_LABEL).click();
bot.waitUntil(Conditions.shellCloses(shell));
ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
assertEquals("org.eclipse.egit.core.GitProvider", workspace.getRoot().getProject(projectName0).getPersistentProperty(new QualifiedName("org.eclipse.team.core", "repository")));
}
use of org.eclipse.egit.ui.common.ExistingOrNewPage in project egit by eclipse.
the class SharingWizardTest method shareProjectWithAlreadyCreatedRepos.
@Test
public void shareProjectWithAlreadyCreatedRepos() throws Exception {
Repository repo1 = FileRepositoryBuilder.create(new File(new File(createProject(projectName1)).getParent(), ".git"));
repo1.create();
repo1.close();
Repository repo2 = FileRepositoryBuilder.create(new File(createProject(projectName2), ".git"));
repo2.create();
repo2.close();
Repository repo3 = FileRepositoryBuilder.create(new File(createProject(projectName3), ".git"));
repo3.create();
try (Git git = new Git(repo3)) {
git.add().addFilepattern(".").call();
git.commit().setAuthor("A U Thior", "au.thor@example.com").setMessage("Created Project 3").call();
}
repo3.close();
ExistingOrNewPage existingOrNewPage = sharingWizard.openWizard(projectName1, projectName2, projectName3);
existingOrNewPage.setInternalMode(true);
// initial state
IWorkspace workspace = ResourcesPlugin.getWorkspace();
String projectPath1 = workspace.getRoot().getProject(projectName1).getLocation().toOSString();
String projectPath2 = workspace.getRoot().getProject(projectName2).getLocation().toOSString();
String projectPath3 = workspace.getRoot().getProject(projectName3).getLocation().toOSString();
existingOrNewPage.assertContents(new Row[] { new Row(true, projectName1, projectPath1, ".." + File.separator + ".git"), new Row(false, projectName2, projectPath2, "", new Row[] { new Row(false, ".", "", ".git"), new Row(false, "..", "", ".." + File.separator + ".git") }), new Row(false, projectName3, projectPath3, "", new Row[] { new Row(true, ".", "", ".git"), new Row(false, "..", "", ".." + File.separator + ".git") }) }, "");
bot.tree().getAllItems()[1].getItems()[0].check();
existingOrNewPage.assertEnabling(false, false, true);
SWTBotShell shell = bot.activeShell();
bot.button(IDialogConstants.FINISH_LABEL).click();
bot.waitUntil(Conditions.shellCloses(shell));
ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
assertEquals(repo1.getDirectory().getAbsolutePath(), RepositoryMapping.getMapping(workspace.getRoot().getProject(projectName1)).getRepository().getDirectory().toString());
assertEquals(repo2.getDirectory().getAbsolutePath(), RepositoryMapping.getMapping(workspace.getRoot().getProject(projectName2)).getRepository().getDirectory().toString());
}
Aggregations