/******************************************************************************* * Copyright (C) 2009, Robin Rosenberg <robin.rosenberg@dewire.com> * Copyright (C) 2010, Ketan Padegaonkar <KetanPadegaonkar@gmail.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package org.eclipse.egit.ui.common; import static org.eclipse.swtbot.swt.finder.SWTBotAssert.assertText; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import java.io.File; import org.eclipse.egit.ui.Activator; import org.eclipse.jgit.lib.Constants; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.swt.finder.waits.Conditions; public class WorkingCopyPage { private static final SWTWorkbenchBot bot = new SWTWorkbenchBot(); public void assertDirectory(String localDir) { assertText(localDir, bot.textWithLabel("Directory:")); } public void assertBranch(String branch) { assertText(branch, bot.comboBoxWithLabel("Initial branch:")); } public void assertRemoteName(String remoteName) { assertText(remoteName, bot.textWithLabel("Remote name:")); } public void waitForCreate() throws Exception { // calculate the expected target directory String targetDir = bot.textWithLabel("Directory:").getText() + File.separatorChar + Constants.DOT_GIT; assertFalse( "Clone target should not be in the configured repositories list", Activator.getDefault().getRepositoryUtil() .getConfiguredRepositories().contains(targetDir)); bot.button("Next >").click(); // wait until clone operation finished. // wizard executes clone operation using getContainer.run bot.waitUntil(Conditions.widgetIsEnabled(bot.radioInGroup("Wizard for project import"))); // depending on the timing, the clone job may already be run // but the repository is not yet added to our list, of // repositories. Wait until that happend. for (int i = 0; i < 3; i++) { if (Activator.getDefault().getRepositoryUtil() .getConfiguredRepositories().contains(targetDir)) return; try { Thread.sleep(1000); } catch (InterruptedException e) { // ignore here } } } @SuppressWarnings("boxing") public void assertWorkingCopyExists() throws Exception { // get the destination directory from the wizard String dirName = bot.textWithLabel("Directory:").getText(); File dir = new File(dirName); // wait for the clone to finish waitForCreate(); // check if we find the working directory assertEquals(dir.exists() && dir.isDirectory(), true); } public void setRemoteName(String string) { bot.textWithLabel("Remote name:").setText(string); } public void setDirectory(String string) { bot.textWithLabel("Directory:").setText(string); } }