Skip to content

Commit

Permalink
Improve stability of UI test - CamelLSPCompletionTest #65
Browse files Browse the repository at this point in the history
Signed-off-by: Dominik Jelinek <djelinek@redhat.com>
  • Loading branch information
djelinek committed Jan 25, 2019
1 parent 3b47b23 commit 31ea59a
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,12 @@

import java.util.List;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.reddeer.common.util.Display;
import org.eclipse.reddeer.common.util.ResultRunnable;
import org.eclipse.reddeer.jface.text.contentassist.ContentAssistant;
import org.eclipse.reddeer.swt.impl.styledtext.DefaultStyledText;
import org.eclipse.reddeer.workbench.handler.EditorHandler;
import org.eclipse.reddeer.workbench.impl.editor.DefaultEditor;

/**
Expand Down Expand Up @@ -79,4 +83,31 @@ public List<String> getCompletionProposals() {
assistant.close();
return proposals;
}

@Override
public void activate() {
EditorHandler.getInstance().activate(editorPart);
}

public void save() {
log.debug("Saving editor");
Display.syncExec(new Runnable() {

@Override
public void run() {
editorPart.doSave(new NullProgressMonitor());
}
});
}

public boolean isDirty() {
return Display.syncExec(new ResultRunnable<Boolean>() {

@Override
public Boolean run() {
return editorPart.isDirty();
}
});
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@

import java.util.List;

import org.eclipse.reddeer.common.wait.AbstractWait;
import org.eclipse.reddeer.common.wait.TimePeriod;
import org.eclipse.reddeer.common.wait.WaitWhile;
import org.eclipse.reddeer.eclipse.jdt.ui.wizards.JavaProjectWizard;
import org.eclipse.reddeer.eclipse.ui.navigator.resources.ProjectExplorer;
import org.eclipse.reddeer.eclipse.wst.jsdt.ui.wizards.JavaProjectWizardFirstPage;
import org.eclipse.reddeer.jface.text.contentassist.ContentAssistant;
import org.eclipse.reddeer.junit.runner.RedDeerSuite;
import org.eclipse.reddeer.swt.condition.ShellIsAvailable;
import org.eclipse.reddeer.swt.impl.ctab.DefaultCTabItem;
import org.eclipse.reddeer.workbench.impl.editor.DefaultEditor;

Expand Down Expand Up @@ -73,15 +74,14 @@ public static void prepareEnvironment() {
createNewJavaProject(PROJECT_NAME);
new ProjectExplorer().selectProjects(PROJECT_NAME);
createNewEmptyXMLFile(CAMEL_CONTEXT);
DefaultEditor editor = new DefaultEditor(CAMEL_CONTEXT);
editor.activate();
new DefaultEditor(CAMEL_CONTEXT).activate();;
new DefaultCTabItem(EDITOR_SOURCE_TAB).activate();
EditorManipulator.copyFileContentToXMLEditor(RESOURCES_CONTEXT_PATH);
}

@After
public void cleanEditor() {
new DefaultEditor(CAMEL_CONTEXT).activate();
editor.activate();
EditorManipulator.copyFileContentToXMLEditor(RESOURCES_CONTEXT_PATH);
}

Expand Down Expand Up @@ -116,7 +116,7 @@ public void testEndpointOptions() {
cursorPosition = editor.getText().indexOf("<from");
editor.setCursorPosition(cursorPosition += 42);
tryEndpointOptionsCompletion();

cursorPosition = editor.getText().indexOf("<to");
editor.setCursorPosition(cursorPosition += 42);
tryEndpointOptionsCompletion();
Expand Down Expand Up @@ -150,9 +150,9 @@ public void testDuplicateOptionsFiltering() {
editor = new SourceEditor();

cursorPosition = editor.getText().indexOf("<from");
editor.setCursorPosition(cursorPosition += 42);
editor.setCursorPosition(cursorPosition += 42);
tryOptionsFiltering();

cursorPosition = editor.getText().indexOf("<to");
editor.setCursorPosition(cursorPosition += 42);
tryOptionsFiltering();
Expand Down Expand Up @@ -183,7 +183,6 @@ private static void createNewJavaProject(String name) {
}

private void assertComponentSchemes(List<String> proposals) {
AbstractWait.sleep(TimePeriod.MEDIUM);
collector.checkThat("Content assistant is empty", proposals.isEmpty(), equalTo(false));
collector.checkThat("Content assistant is not filtered", proposals.get(0).startsWith("f"), equalTo(true));
}
Expand All @@ -197,10 +196,9 @@ private void tryEndpointOptionsCompletion() {
assistant = editor.openContentAssistant();
collector.checkThat(assistant.getProposals().isEmpty(), equalTo(false));
assistant.chooseProposal("InOnly");
AbstractWait.sleep(TimePeriod.MEDIUM);
if (editor.isDirty()) {
editor.save();
}

new WaitWhile(new ShellIsAvailable(assistant), TimePeriod.MEDIUM);
editor.save();
}

private void tryAdditionalOptionsCompletion() {
Expand All @@ -209,12 +207,11 @@ private void tryAdditionalOptionsCompletion() {
assistant = editor.openContentAssistant();
collector.checkThat(assistant.getProposals().isEmpty(), equalTo(false));
assistant.chooseProposal("allowNullBody");
AbstractWait.sleep(TimePeriod.MEDIUM);
if (editor.isDirty()) {
editor.save();
}

new WaitWhile(new ShellIsAvailable(assistant), TimePeriod.MEDIUM);
editor.save();
}

private void tryOptionsFiltering() {
editor.insertText("?e");
editor.setCursorPosition(cursorPosition += 2);
Expand All @@ -225,14 +222,14 @@ private void tryOptionsFiltering() {
collector.checkThat(assistant.getProposals().isEmpty(), equalTo(false));
assistant.chooseProposal("InOnly");
editor.insertText("&amp;e");
editor.setCursorPosition(cursorPosition += 27);
editor.setCursorPosition(cursorPosition += 27);
assistant = editor.openContentAssistant();
collector.checkThat(assistant.getProposals().isEmpty(), equalTo(false));
collector.checkThat(assistant.getProposals().contains("exchangePattern"), equalTo(false));
assistant.close();
if (editor.isDirty()) {
editor.save();
}

new WaitWhile(new ShellIsAvailable(assistant), TimePeriod.MEDIUM);
editor.save();
}

}

0 comments on commit 31ea59a

Please sign in to comment.