Skip to content

Commit

Permalink
Wait for reset perspective menu to be enabled. If not, skip the reset.
Browse files Browse the repository at this point in the history
…Fixes #1917

Signed-off-by: Rastislav Wagner <rawagner@redhat.com>
  • Loading branch information
rawagner authored and odockal committed May 2, 2018
1 parent 2b53492 commit 95afe1d
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 14 deletions.
Expand Up @@ -102,6 +102,30 @@ public void reset() {
if (!isOpened()) {
throw new EclipseLayerException("Trying to reset perspective that is not open");
}
MenuItem menu = getResetMenuItem();
menu.select();
new DefaultShell("Reset Perspective");
WidgetIsFound resetButton = new WidgetIsFound(org.eclipse.swt.widgets.Button.class,
new WithMnemonicTextMatcher("Reset Perspective"));

Button button;
if (resetButton.test()) {
button = new PushButton("Reset Perspective"); // photon changed button text
} else {
button = new YesButton();
}
button.click();
}

/**
* Returns true if reset perspective menu item is enabled, false otherwise
* @return true if reset perspective menu item is enabled, false otherwise
*/
public boolean isResetEnabled() {
return getResetMenuItem().isEnabled();
}

private MenuItem getResetMenuItem() {
// Prior to Eclipse Mars path to Reset Perspective menu
WithTextMatchers m = new WithTextMatchers(
new RegexMatcher[] { new RegexMatcher("Window.*"), new RegexMatcher("Reset Perspective...") });
Expand All @@ -114,20 +138,7 @@ public void reset() {
new RegexMatcher("Perspective.*"), new RegexMatcher("Reset Perspective...") });
menu = new ShellMenuItem(m.getMatchers());
}

menu.select();
new DefaultShell("Reset Perspective");
WidgetIsFound resetButton = new WidgetIsFound(org.eclipse.swt.widgets.Button.class,
new WithMnemonicTextMatcher("Reset Perspective"));


Button button;
if(resetButton.test()){
button = new PushButton("Reset Perspective"); //photon changed button text
} else {
button = new YesButton();
}
button.click();
return menu;
}

/**
Expand Down
Expand Up @@ -16,10 +16,15 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.eclipse.reddeer.common.condition.AbstractWaitCondition;
import org.eclipse.reddeer.common.logging.Logger;
import org.eclipse.reddeer.common.wait.TimePeriod;
import org.eclipse.reddeer.common.wait.WaitUntil;
import org.eclipse.reddeer.eclipse.ui.perspectives.AbstractPerspective;
import org.eclipse.reddeer.junit.requirement.Requirement;
import org.eclipse.reddeer.requirements.exception.RequirementsLayerException;
import org.eclipse.reddeer.requirements.openperspective.OpenPerspectiveRequirement.OpenPerspective;
import org.eclipse.reddeer.swt.condition.MenuItemIsEnabled;

/**
* Open perspective requirement<br><br>
Expand All @@ -42,6 +47,8 @@
*
*/
public class OpenPerspectiveRequirement implements Requirement<OpenPerspective> {

protected final Logger log = Logger.getLogger(this.getClass());

/**
* Marks test class, which requires opening of the specified perspective.
Expand Down Expand Up @@ -80,6 +87,18 @@ public void fulfill() {
perspective.open();

if (openPerspective.reset()){
new WaitUntil(new AbstractWaitCondition() {

@Override
public boolean test() {
return perspective.isResetEnabled();
}

}, TimePeriod.SHORT, false);
if(!perspective.isResetEnabled()) {
log.info("Reset Perspective menu is not enabled, skipping");
return;
}
perspective.reset();
}
} catch (Exception e) {
Expand Down

0 comments on commit 95afe1d

Please sign in to comment.