use of org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor in project linuxtools by eclipse.
the class AddChangelogEntrySWTBotTest method canAddChangeLogEntryUsingShortCutIfSourceIsActive.
/**
* ChangeLog editor should pop-up if inside an active editor
* and a ChangeLog file exists in the project. Tests the CTRL+ALT+c
* shortcut.
*
* @throws Exception
*/
@Ignore
@Test
public void canAddChangeLogEntryUsingShortCutIfSourceIsActive() throws Exception {
// Add a Java source file
System.out.println(name.getMethodName());
String sourceCode = "package src;\n" + "public class JavaTest {\n" + "public static void main(String args[]) {\n" + "//" + OFFSET_MARKER + "\n" + "System.out.println(\"Hello World!\");\n" + "}\n" + "}\n";
assertNull(project.getTestProject().findMember(new Path("/src/JavaTest.java")));
InputStream newFileInputStream = new ByteArrayInputStream(sourceCode.getBytes());
project.addFileToProject("/src", "JavaTest.java", newFileInputStream);
// Add a changelog file
newFileInputStream = new ByteArrayInputStream("".getBytes());
project.addFileToProject("/", "ChangeLog", newFileInputStream);
assertNotNull(project.getTestProject().findMember(new Path("/src/JavaTest.java")));
assertNotNull(project.getTestProject().findMember(new Path("/ChangeLog")));
// Open JavaTest.java in an editor
projectExplorerViewTree.expandNode(PROJECT_NAME).expandNode("src").expandNode("JavaTest.java").doubleClick();
Matcher<IEditorReference> editorMatcher = allOf(IsInstanceOf.instanceOf(IEditorReference.class), withPartName("JavaTest.java"));
// Wait for Java editor to open
bot.waitUntil(Conditions.waitForEditor(editorMatcher));
SWTBotEditor swtBoteditor = bot.editorByTitle("JavaTest.java");
SWTBotEclipseEditor eclipseEditor = swtBoteditor.toTextEditor();
eclipseEditor.selectLine(getLineOfOffsetMarker(sourceCode));
// Press: CTRL + ALT + c
eclipseEditor.pressShortcut(Keystrokes.CTRL, Keystrokes.ALT, KeyStroke.getInstance("c"));
// Wait for ChangeLog editor to open
editorMatcher = allOf(IsInstanceOf.instanceOf(IEditorReference.class), withPartName("ChangeLog"));
bot.waitUntil(Conditions.waitForEditor(editorMatcher));
swtBoteditor = bot.activeEditor();
// save to avoid "save changes"-pop-up
swtBoteditor.save();
assertEquals("ChangeLog", swtBoteditor.getTitle());
eclipseEditor = swtBoteditor.toTextEditor();
// make sure expected entry has been added.
assertTrue(eclipseEditor.getText().contains("* src/JavaTest.java"));
}
use of org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor in project linuxtools by eclipse.
the class CreateChangeLogFromHistorySWTBotTest method canPrepareChangeLogFromSVNHistory.
/**
* Create changelog from SVN history (commit messages).
*
* @throws Exception
*/
@Test
@Ignore
public void canPrepareChangeLogFromSVNHistory() throws Exception {
// select ChangeLog file
String teamProviderString = "[changelog/trunk/" + PROJECT_NAME + "]";
SWTBotTreeItem projectItem = ProjectExplorer.expandProject(projectExplorerViewTree, PROJECT_NAME, teamProviderString);
long oldTimeout = SWTBotPreferences.TIMEOUT;
SWTBotPreferences.TIMEOUT = 5000;
bot.waitUntil(new ProjectExplorerTreeItemAppearsCondition(projectExplorerViewTree, PROJECT_NAME, teamProviderString, "ChangeLog"));
SWTBotPreferences.TIMEOUT = oldTimeout;
SWTBotTreeItem changeLogItem = ProjectExplorer.getProjectItem(projectItem, "ChangeLog");
changeLogItem.select();
// open history for ChangeLog file
clickOnShowHistory(projectExplorerViewTree);
SWTBot historyViewBot = bot.viewByTitle("History").bot();
// wait for SVN revision table to appear
oldTimeout = SWTBotPreferences.TIMEOUT;
SWTBotPreferences.TIMEOUT = 3 * 5000;
historyViewBot.waitUntil(new TableAppearsCondition());
SWTBotPreferences.TIMEOUT = oldTimeout;
SWTBotTable historyTable = historyViewBot.table();
// select the first row
historyTable.select(0);
// right-click => Generate Changelog...
clickOnGenerateChangeLog(historyTable);
SWTBotShell shell = bot.shell("Generate ChangeLog").activate();
SWTBot generateChangelogBot = shell.bot();
generateChangelogBot.radio("Clipboard").click();
generateChangelogBot.button("OK").click();
// create and open a new file for pasting
String pasteFile = "newFile";
IFile newFile = project.getFile(new Path(pasteFile));
newFile.create(new ByteArrayInputStream("".getBytes()), /* empty content */
false, null);
project.refreshLocal(IResource.DEPTH_INFINITE, null);
assertNotNull(project.findMember(new Path(pasteFile)));
ProjectExplorer.expandProject(projectExplorerViewTree, PROJECT_NAME, teamProviderString).expandNode(pasteFile).select().doubleClick();
Matcher<IEditorReference> editorMatcher = allOf(IsInstanceOf.instanceOf(IEditorReference.class), withPartName(pasteFile));
bot.waitUntil(Conditions.waitForEditor(editorMatcher));
oldTimeout = SWTBotPreferences.TIMEOUT;
SWTBotPreferences.TIMEOUT = oldTimeout;
SWTBotEditor swtBoteditor = bot.activeEditor();
assertEquals(pasteFile, swtBoteditor.getTitle());
SWTBotEclipseEditor eclipseEditor = swtBoteditor.toTextEditor();
// go to beginning of editor
eclipseEditor.selectRange(0, 0, 0);
// paste
eclipseEditor.pressShortcut(Keystrokes.CTRL, KeyStroke.getInstance("V"));
swtBoteditor.save();
// make sure some changelog like text was pasted
String text = eclipseEditor.getText();
assertFalse(text.isEmpty());
}
use of org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor in project linuxtools by eclipse.
the class PrepareChangelogSWTBotTest method canPrepareChangeLogAndSaveChangesInChangeLogFileToClipboard.
/**
* Should be able to save changes to ChangeLog file in clipboard.
* Tests CTRL + ALT + V functionality.
*
* @throws Exception
*/
@Test
@Ignore
public void canPrepareChangeLogAndSaveChangesInChangeLogFileToClipboard() throws Exception {
// Find manifest file
IResource manifest = project.findMember(new Path("/META-INF/MANIFEST.MF"));
assertNotNull(manifest);
// delete it
manifest.delete(true, null);
project.refreshLocal(IResource.DEPTH_INFINITE, null);
// select ChangeLog file
String teamProviderString = "[changelog/trunk/" + PROJECT_NAME + "]";
SWTBotTreeItem projectItem = ProjectExplorer.expandProject(projectExplorerViewTree, PROJECT_NAME, teamProviderString);
long oldTimeout = SWTBotPreferences.TIMEOUT;
SWTBotPreferences.TIMEOUT = 5000;
bot.waitUntil(new ProjectExplorerTreeItemAppearsCondition(projectExplorerViewTree, PROJECT_NAME, teamProviderString, "ChangeLog"));
SWTBotPreferences.TIMEOUT = oldTimeout;
SWTBotTreeItem changeLogItem = ProjectExplorer.getProjectItem(projectItem, "ChangeLog");
changeLogItem.select();
// CTRL + ALT + P
bot.activeShell().pressShortcut(Keystrokes.CTRL, Keystrokes.ALT, KeyStroke.getInstance("P"));
oldTimeout = SWTBotPreferences.TIMEOUT;
SWTBotPreferences.TIMEOUT = 3 * 5000;
// Wait for ChangeLog editor to open
Matcher<IEditorReference> editorMatcher = allOf(IsInstanceOf.instanceOf(IEditorReference.class), withPartName("ChangeLog"));
bot.waitUntil(Conditions.waitForEditor(editorMatcher));
SWTBotEditor swtBoteditor = bot.activeEditor();
// save to avoid "save changes"-pop-up
swtBoteditor.save();
assertEquals("ChangeLog", swtBoteditor.getTitle());
SWTBotEclipseEditor eclipseEditor = swtBoteditor.toTextEditor();
// make sure expected entry has been added.
assertTrue(matchHead(eclipseEditor.getText(), "\t* META-INF/MANIFEST.MF:", 3));
// select first line
eclipseEditor.selectLine(0);
final String expectedFirstLineContent = eclipseEditor.getSelection();
// save changes to clipboard: CTRL + ALT + V
eclipseEditor.pressShortcut(Keystrokes.CTRL, Keystrokes.ALT, KeyStroke.getInstance("V"));
// create and open a new file for pasting
String pasteFile = "newFile";
IFile newFile = project.getFile(new Path(pasteFile));
newFile.create(new ByteArrayInputStream("".getBytes()), /* empty content */
false, null);
project.refreshLocal(IResource.DEPTH_INFINITE, null);
assertNotNull(project.findMember(new Path(pasteFile)));
ProjectExplorer.expandProject(projectExplorerViewTree, PROJECT_NAME, teamProviderString).expandNode(pasteFile).select().doubleClick();
// bot.activeShell().pressShortcut(Keystrokes.F3); // open file
editorMatcher = allOf(IsInstanceOf.instanceOf(IEditorReference.class), withPartName(pasteFile));
bot.waitUntil(Conditions.waitForEditor(editorMatcher));
SWTBotPreferences.TIMEOUT = oldTimeout;
swtBoteditor = bot.activeEditor();
assertEquals(pasteFile, swtBoteditor.getTitle());
eclipseEditor = swtBoteditor.toTextEditor();
// go to beginning of editor
eclipseEditor.selectRange(0, 0, 0);
// paste
eclipseEditor.pressShortcut(Keystrokes.CTRL, KeyStroke.getInstance("V"));
swtBoteditor.save();
// make sure proper content was pasted
assertTrue(matchHead(eclipseEditor.getText(), "\t* META-INF/MANIFEST.MF:", 3));
// select first line
eclipseEditor.selectLine(0);
final String actualFirstLineContent = eclipseEditor.getSelection();
assertEquals(expectedFirstLineContent, actualFirstLineContent);
}
use of org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor in project eclipse-pmd by acanda.
the class JavaProjectClient method createFileInProject.
/**
* Creates a text file in a project.
*
* @param projectName The name of the existing project.
* @param relativePath The path of the file including the file name, relative to the project.
* @param content The content of the file.
*/
public static void createFileInProject(final String projectName, final Path relativePath, final String content) {
final SWTWorkbenchBot bot = new SWTWorkbenchBot();
bot.menu("File").menu("New").menu("File").click();
final SWTBotShell dialog = bot.shell("New File");
if (relativePath.getParent() != null) {
dialog.bot().text(0).setText(projectName + "/" + relativePath.getParent().toString());
} else {
dialog.bot().text(0).setText(projectName);
}
dialog.bot().text(1).setText(relativePath.getFileName().toString());
dialog.bot().button("Finish").click();
final SWTBotEditor editor = bot.editorByTitle(relativePath.getFileName().toString());
editor.toTextEditor().setText(content);
editor.saveAndClose();
}
Aggregations