test fixed

This commit is contained in:
Dmitry Avdeev
2015-02-25 15:42:20 +03:00
parent 1cf0555280
commit d42020d3ec
4 changed files with 37 additions and 14 deletions
@@ -25,7 +25,6 @@ import com.intellij.openapi.actionSystem.ex.ActionManagerEx;
import com.intellij.openapi.actionSystem.ex.AnActionListener;
import com.intellij.openapi.actionSystem.ex.CustomComponentAction;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.keymap.ex.KeymapManagerEx;
import com.intellij.openapi.project.DumbAwareRunnable;
@@ -47,6 +46,7 @@ import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.update.UiNotifyConnector;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.TestOnly;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
@@ -1273,4 +1273,9 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
myAddSeparatorFirst = addSeparatorFirst;
myUpdater.updateActions(false, true);
}
@TestOnly
public Presentation getPresentation(AnAction action) {
return myPresentationFactory.getPresentation(action);
}
}
@@ -95,15 +95,15 @@ public abstract class ToolbarUpdater implements Activatable {
private void updateActions(boolean now, final boolean transparentOnly, final boolean forced) {
final Runnable updateRunnable = new MyUpdateRunnable(this, transparentOnly, forced);
final Application app = ApplicationManager.getApplication();
if (now) {
if (now || app.isUnitTestMode()) {
updateRunnable.run();
}
else {
final Application app = ApplicationManager.getApplication();
final IdeFocusManager fm = IdeFocusManager.getInstance(null);
if (!app.isUnitTestMode() && !app.isHeadlessEnvironment()) {
if (!app.isHeadlessEnvironment()) {
if (app.isDispatchThread()) {
fm.doWhenFocusSettlesDown(updateRunnable);
}
@@ -33,6 +33,10 @@ public class TestActionEvent extends AnActionEvent {
this(DataManager.getInstance().getDataContext(), action);
}
public TestActionEvent(Presentation presentation) {
super(null, DataManager.getInstance().getDataContext(), "", presentation, ActionManager.getInstance(), 0);
}
public TestActionEvent() {
super(null, DataManager.getInstance().getDataContext(), "", new Presentation(), ActionManager.getInstance(), 0);
}
@@ -15,8 +15,9 @@
*/
package com.intellij.tasks;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.ide.ui.customization.CustomActionsSchema;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.actionSystem.impl.ActionToolbarImpl;
import com.intellij.tasks.actions.SwitchTaskCombo;
import com.intellij.tasks.config.TaskSettings;
import com.intellij.testFramework.IdeaTestCase;
@@ -31,19 +32,32 @@ public class TaskUiTest extends CodeInsightFixtureTestCase {
public void testTaskComboVisible() throws Exception {
TaskManager manager = TaskManager.getManager(getProject());
SwitchTaskCombo combo = new SwitchTaskCombo();
SwitchTaskCombo combo = null;
ActionGroup group = (ActionGroup)CustomActionsSchema.getInstance().getCorrectedAction(IdeActions.GROUP_MAIN_TOOLBAR);
ActionToolbarImpl toolbar = (ActionToolbarImpl)ActionManager.getInstance().createActionToolbar(ActionPlaces.MAIN_TOOLBAR, group, true);
AnAction[] children = group.getChildren(new TestActionEvent());
for (AnAction child : children) {
if (child instanceof ActionGroup) {
AnAction[] actions = ((ActionGroup)child).getChildren(new TestActionEvent());
for (AnAction action : actions) {
if (action instanceof SwitchTaskCombo) {
combo = (SwitchTaskCombo)action;
}
}
}
}
TaskManager manager = TaskManager.getManager(getProject());
LocalTask defaultTask = manager.getActiveTask();
assertTrue(defaultTask.isDefault());
assertEquals(defaultTask.getCreated(), defaultTask.getUpdated());
Presentation presentation = doTest(combo);
Presentation presentation = doTest(combo, toolbar);
assertFalse(presentation.isVisible());
try {
TaskSettings.getInstance().ALWAYS_DISPLAY_COMBO = true;
presentation = doTest(combo);
presentation = doTest(combo, toolbar);
assertTrue(presentation.isVisible());
}
finally {
@@ -53,14 +67,14 @@ public class TaskUiTest extends CodeInsightFixtureTestCase {
LocalTask task = manager.createLocalTask("test");
manager.activateTask(task, false);
presentation = doTest(combo);
presentation = doTest(combo, toolbar);
assertTrue(presentation.isVisible());
manager.activateTask(defaultTask, false);
task = manager.getActiveTask();
assertTrue(task.isDefault());
presentation = doTest(combo);
presentation = doTest(combo, toolbar);
if (!presentation.isVisible()) {
LocalTask activeTask = manager.getActiveTask();
System.out.println(activeTask);
@@ -70,8 +84,8 @@ public class TaskUiTest extends CodeInsightFixtureTestCase {
}
}
private static Presentation doTest(AnAction action) {
TestActionEvent event = new TestActionEvent(action);
private static Presentation doTest(AnAction action, ActionToolbarImpl toolbar) {
TestActionEvent event = new TestActionEvent(toolbar.getPresentation(action));
action.update(event);
return event.getPresentation();
}