do not depend on internal ModalityStateEx constructor

This commit is contained in:
Alexey Kudravtsev
2017-09-27 18:09:28 +03:00
parent 11b44c4447
commit 7e413ec1af
@@ -17,9 +17,9 @@ package com.intellij.ide;
import com.intellij.mock.MockProject;
import com.intellij.mock.MockProjectEx;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.application.impl.LaterInvocator;
import com.intellij.openapi.application.impl.ModalityStateEx;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.BusyObject;
import com.intellij.testFramework.LightPlatformTestCase;
@@ -27,6 +27,8 @@ import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.awt.*;
public class ActivityMonitorTest extends LightPlatformTestCase {
private UiActivityMonitorImpl myMonitor;
@@ -126,21 +128,26 @@ public class ActivityMonitorTest extends LightPlatformTestCase {
myMonitor.addActivity(new UiActivity("non_modal_1"), ModalityState.NON_MODAL);
assertBusy(null);
LaterInvocator.enterModal("dialog");
Dialog dialog = new Dialog(new Dialog((Window)null), "d", true);
LaterInvocator.enterModal(dialog);
try {
assertReady(null);
myMonitor.addActivity(new UiActivity("non_modal2"), ModalityState.NON_MODAL);
assertReady(null);
myMonitor.addActivity(new UiActivity("modal_1"), new ModalityStateEx(new Object[] {"dialog"}));
ModalityState m1 = ApplicationManager.getApplication().getModalityStateForComponent(dialog);
myMonitor.addActivity(new UiActivity("modal_1"), m1);
assertBusy(null);
myMonitor.addActivity(new UiActivity("modal_2"), new ModalityStateEx(new Object[] {"dialog", "popup"}));
Dialog popup = new Dialog(dialog, "popup", true);
ModalityState m2 = ApplicationManager.getApplication().getModalityStateForComponent(popup);
assertTrue(m2.dominates(m1));
myMonitor.addActivity(new UiActivity("modal_2"), m2);
assertBusy(null);
}
finally {
LaterInvocator.leaveModal("dialog");
LaterInvocator.leaveModal(dialog);
}
assertBusy(null);