Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java411
-rw-r--r--org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/sandbox/tests/AllSandboxTests.java4
2 files changed, 198 insertions, 217 deletions
diff --git a/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java b/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java
index 6b66146a..0a5397d7 100644
--- a/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java
+++ b/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/monitor/tests/MultiWindowMonitorTest.java
@@ -12,29 +12,8 @@
package org.eclipse.mylyn.monitor.tests;
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
import junit.framework.TestCase;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.window.WindowManager;
-import org.eclipse.mylyn.internal.monitor.ui.IMonitoredWindow;
-import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin;
-import org.eclipse.mylyn.internal.monitor.usage.InteractionEventLogger;
-import org.eclipse.mylyn.internal.monitor.usage.UiUsageMonitorPlugin;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.WorkbenchWindow;
-
/**
* @author Brian de Alwis
* @author Mik Kersten
@@ -42,199 +21,201 @@ import org.eclipse.ui.internal.WorkbenchWindow;
*/
public class MultiWindowMonitorTest extends TestCase {
- private class ContextAwareWorkbenchWindow extends WorkbenchWindow implements IMonitoredWindow {
-
- private boolean monitored = true;
-
- public ContextAwareWorkbenchWindow(int number, boolean monitored) {
- super(number);
- this.monitored = monitored;
- }
-
- public boolean isMonitored() {
- return monitored;
- }
-
- public boolean isPerspectiveManaged() {
- return false;
- }
- }
-
- private class MockWorkbench {
- private final Workbench wBench;
-
- private WindowManager parentManager = null;
-
- private MockWorkbench() {
- wBench = Workbench.getInstance();
-
- Field wManagerField;
- try {
- wManagerField = Workbench.class.getDeclaredField("windowManager");
- wManagerField.setAccessible(true);
- parentManager = (WindowManager) wManagerField.get(wBench);
-
- } catch (Exception e) {
- }
- }
-
- private int getNewWindowNumber() {
- Window[] windows = parentManager.getWindows();
- int count = windows.length;
-
- boolean checkArray[] = new boolean[count];
- for (int nX = 0; nX < count; nX++) {
- if (windows[nX] instanceof WorkbenchWindow) {
- WorkbenchWindow ww = (WorkbenchWindow) windows[nX];
- int index = ww.getNumber() - 1;
- if (index >= 0 && index < count) {
- checkArray[index] = true;
- }
- }
- }
-
- for (int index = 0; index < count; index++) {
- if (!checkArray[index]) {
- return index + 1;
- }
- }
- return count + 1;
- }
-
- private ContextAwareWorkbenchWindow newWorkbenchWindow(boolean isMonitored) {
- return new ContextAwareWorkbenchWindow(getNewWindowNumber(), isMonitored);
- }
-
- public ContextAwareWorkbenchWindow restoreState(IMemento memento, boolean isMonitored) {
-
- ContextAwareWorkbenchWindow newWindow = newWorkbenchWindow(isMonitored);
- newWindow.create();
-
- parentManager.add(newWindow);
-
- boolean opened = false;
-
- try {
- newWindow.restoreState(memento, null);
- newWindow.open();
- opened = true;
- } finally {
- if (!opened) {
- newWindow.close();
- }
- }
-
- return newWindow;
- }
- }
-
- private final InteractionEventLogger logger = UiUsageMonitorPlugin.getDefault().getInteractionLogger();
-
- private MockSelectionMonitor selectionMonitor;
-
- private IWorkbenchWindow window1;
-
- private IWorkbenchWindow window2;
-
- private IWorkbenchWindow window3;
-
- private IWorkbenchWindow window4;
-
- private boolean monitoringWasEnabled;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- selectionMonitor = new MockSelectionMonitor();
- monitoringWasEnabled = UiUsageMonitorPlugin.getDefault().isMonitoringEnabled();
- UiUsageMonitorPlugin.getDefault().stopMonitoring();
-
- // make sure the MonitorUiPlugin is fully initialized
- while (PlatformUI.getWorkbench().getDisplay().readAndDispatch()) {
- }
-
- window1 = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- assertTrue(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window1));
- window2 = duplicateWindow(window1);
- assertNotNull(window2);
- assertTrue(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window2));
- window3 = createContextAwareWindow(true, window1);
- assertNotNull(window3);
- assertTrue(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window3));
- window4 = createContextAwareWindow(false, window1);
- assertNotNull(window4);
- assertFalse(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window4));
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- window2.close();
- window3.close();
- window4.close();
- if (monitoringWasEnabled) {
- UiUsageMonitorPlugin.getDefault().startMonitoring();
- }
- if (selectionMonitor != null) {
- selectionMonitor.dispose();
- }
- }
-
- protected void generateSelection(IWorkbenchWindow w) {
- selectionMonitor.selectionChanged(w.getActivePage().getActivePart(), new StructuredSelection("yo"));
- }
-
- public void testMultipleWindows() throws IOException {
- File monitorFile = UiUsageMonitorPlugin.getDefault().getMonitorLogFile();
- logger.clearInteractionHistory();
- assertEquals(0, logger.getHistoryFromFile(monitorFile).size());
-
- generateSelection(window1);
- assertEquals(0, logger.getHistoryFromFile(monitorFile).size());
-
- UiUsageMonitorPlugin.getDefault().startMonitoring();
- generateSelection(window1);
- generateSelection(window2);
- generateSelection(window3);
- generateSelection(window4);
- assertEquals(3, logger.getHistoryFromFile(monitorFile).size());
- }
-
- protected IWorkbenchWindow duplicateWindow(IWorkbenchWindow window) {
- WorkbenchWindow w = (WorkbenchWindow) window;
- XMLMemento memento = XMLMemento.createWriteRoot(IWorkbenchConstants.TAG_WINDOW);
- IStatus status = w.saveState(memento);
- if (!status.isOK()) {
- fail("failed to duplicate window: " + status);
- }
- return restoreWorkbenchWindow((Workbench) w.getWorkbench(), memento);
- }
-
- private IWorkbenchWindow createContextAwareWindow(boolean monitored, IWorkbenchWindow window) {
- WorkbenchWindow w = (WorkbenchWindow) window;
- XMLMemento memento = XMLMemento.createWriteRoot(IWorkbenchConstants.TAG_WINDOW);
- IStatus status = w.saveState(memento);
- if (!status.isOK()) {
- fail("failed to duplicate window: " + status);
- }
- return new MockWorkbench().restoreState(memento, monitored);
- }
-
- protected IWorkbenchWindow restoreWorkbenchWindow(Workbench workbench, IMemento memento) {
- return (IWorkbenchWindow) invokeMethod(workbench, "restoreWorkbenchWindow", new Class[] { IMemento.class },
- new Object[] { memento });
- }
-
- protected Object invokeMethod(Object instance, String methodName, Class<?> argTypes[], Object arguments[]) {
- Class<?> clas = instance.getClass();
- try {
- Method method = clas.getDeclaredMethod(methodName, argTypes);
- method.setAccessible(true);
- return method.invoke(instance, arguments);
- } catch (Exception ex) {
- fail("exception during reflective invocation of " + clas.getName() + "." + methodName + ": " + ex);
- return null;
- }
- }
+ // disabled due to compile errors on Eclipse 4.2
+
+// private class ContextAwareWorkbenchWindow extends WorkbenchWindow implements IMonitoredWindow {
+//
+// private boolean monitored = true;
+//
+// public ContextAwareWorkbenchWindow(int number, boolean monitored) {
+// super(number);
+// this.monitored = monitored;
+// }
+//
+// public boolean isMonitored() {
+// return monitored;
+// }
+//
+// public boolean isPerspectiveManaged() {
+// return false;
+// }
+// }
+//
+// private class MockWorkbench {
+// private final Workbench wBench;
+//
+// private WindowManager parentManager = null;
+//
+// private MockWorkbench() {
+// wBench = Workbench.getInstance();
+//
+// Field wManagerField;
+// try {
+// wManagerField = Workbench.class.getDeclaredField("windowManager");
+// wManagerField.setAccessible(true);
+// parentManager = (WindowManager) wManagerField.get(wBench);
+//
+// } catch (Exception e) {
+// }
+// }
+//
+// private int getNewWindowNumber() {
+// Window[] windows = parentManager.getWindows();
+// int count = windows.length;
+//
+// boolean checkArray[] = new boolean[count];
+// for (int nX = 0; nX < count; nX++) {
+// if (windows[nX] instanceof WorkbenchWindow) {
+// WorkbenchWindow ww = (WorkbenchWindow) windows[nX];
+// int index = ww.getNumber() - 1;
+// if (index >= 0 && index < count) {
+// checkArray[index] = true;
+// }
+// }
+// }
+//
+// for (int index = 0; index < count; index++) {
+// if (!checkArray[index]) {
+// return index + 1;
+// }
+// }
+// return count + 1;
+// }
+//
+// private ContextAwareWorkbenchWindow newWorkbenchWindow(boolean isMonitored) {
+// return new ContextAwareWorkbenchWindow(getNewWindowNumber(), isMonitored);
+// }
+//
+// public ContextAwareWorkbenchWindow restoreState(IMemento memento, boolean isMonitored) {
+//
+// ContextAwareWorkbenchWindow newWindow = newWorkbenchWindow(isMonitored);
+// newWindow.create();
+//
+// parentManager.add(newWindow);
+//
+// boolean opened = false;
+//
+// try {
+// newWindow.restoreState(memento, null);
+// newWindow.open();
+// opened = true;
+// } finally {
+// if (!opened) {
+// newWindow.close();
+// }
+// }
+//
+// return newWindow;
+// }
+// }
+//
+// private final InteractionEventLogger logger = UiUsageMonitorPlugin.getDefault().getInteractionLogger();
+//
+// private MockSelectionMonitor selectionMonitor;
+//
+// private IWorkbenchWindow window1;
+//
+// private IWorkbenchWindow window2;
+//
+// private IWorkbenchWindow window3;
+//
+// private IWorkbenchWindow window4;
+//
+// private boolean monitoringWasEnabled;
+//
+// @Override
+// protected void setUp() throws Exception {
+// super.setUp();
+// selectionMonitor = new MockSelectionMonitor();
+// monitoringWasEnabled = UiUsageMonitorPlugin.getDefault().isMonitoringEnabled();
+// UiUsageMonitorPlugin.getDefault().stopMonitoring();
+//
+// // make sure the MonitorUiPlugin is fully initialized
+// while (PlatformUI.getWorkbench().getDisplay().readAndDispatch()) {
+// }
+//
+// window1 = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+// assertTrue(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window1));
+// window2 = duplicateWindow(window1);
+// assertNotNull(window2);
+// assertTrue(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window2));
+// window3 = createContextAwareWindow(true, window1);
+// assertNotNull(window3);
+// assertTrue(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window3));
+// window4 = createContextAwareWindow(false, window1);
+// assertNotNull(window4);
+// assertFalse(MonitorUiPlugin.getDefault().getMonitoredWindows().contains(window4));
+// }
+//
+// @Override
+// protected void tearDown() throws Exception {
+// super.tearDown();
+// window2.close();
+// window3.close();
+// window4.close();
+// if (monitoringWasEnabled) {
+// UiUsageMonitorPlugin.getDefault().startMonitoring();
+// }
+// if (selectionMonitor != null) {
+// selectionMonitor.dispose();
+// }
+// }
+//
+// protected void generateSelection(IWorkbenchWindow w) {
+// selectionMonitor.selectionChanged(w.getActivePage().getActivePart(), new StructuredSelection("yo"));
+// }
+//
+// public void testMultipleWindows() throws IOException {
+// File monitorFile = UiUsageMonitorPlugin.getDefault().getMonitorLogFile();
+// logger.clearInteractionHistory();
+// assertEquals(0, logger.getHistoryFromFile(monitorFile).size());
+//
+// generateSelection(window1);
+// assertEquals(0, logger.getHistoryFromFile(monitorFile).size());
+//
+// UiUsageMonitorPlugin.getDefault().startMonitoring();
+// generateSelection(window1);
+// generateSelection(window2);
+// generateSelection(window3);
+// generateSelection(window4);
+// assertEquals(3, logger.getHistoryFromFile(monitorFile).size());
+// }
+//
+// protected IWorkbenchWindow duplicateWindow(IWorkbenchWindow window) {
+// WorkbenchWindow w = (WorkbenchWindow) window;
+// XMLMemento memento = XMLMemento.createWriteRoot(IWorkbenchConstants.TAG_WINDOW);
+// IStatus status = w.saveState(memento);
+// if (!status.isOK()) {
+// fail("failed to duplicate window: " + status);
+// }
+// return restoreWorkbenchWindow((Workbench) w.getWorkbench(), memento);
+// }
+//
+// private IWorkbenchWindow createContextAwareWindow(boolean monitored, IWorkbenchWindow window) {
+// WorkbenchWindow w = (WorkbenchWindow) window;
+// XMLMemento memento = XMLMemento.createWriteRoot(IWorkbenchConstants.TAG_WINDOW);
+// IStatus status = w.saveState(memento);
+// if (!status.isOK()) {
+// fail("failed to duplicate window: " + status);
+// }
+// return new MockWorkbench().restoreState(memento, monitored);
+// }
+//
+// protected IWorkbenchWindow restoreWorkbenchWindow(Workbench workbench, IMemento memento) {
+// return (IWorkbenchWindow) invokeMethod(workbench, "restoreWorkbenchWindow", new Class[] { IMemento.class },
+// new Object[] { memento });
+// }
+//
+// protected Object invokeMethod(Object instance, String methodName, Class<?> argTypes[], Object arguments[]) {
+// Class<?> clas = instance.getClass();
+// try {
+// Method method = clas.getDeclaredMethod(methodName, argTypes);
+// method.setAccessible(true);
+// return method.invoke(instance, arguments);
+// } catch (Exception ex) {
+// fail("exception during reflective invocation of " + clas.getName() + "." + methodName + ": " + ex);
+// return null;
+// }
+// }
}
diff --git a/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/sandbox/tests/AllSandboxTests.java b/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/sandbox/tests/AllSandboxTests.java
index 77c5f4e3..e2622f6c 100644
--- a/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/sandbox/tests/AllSandboxTests.java
+++ b/org.eclipse.mylyn.sandbox.tests/src/org/eclipse/mylyn/sandbox/tests/AllSandboxTests.java
@@ -19,7 +19,6 @@ import org.eclipse.mylyn.monitor.tests.InteractionEventExternalizationTest;
import org.eclipse.mylyn.monitor.tests.InteractionLoggerTest;
import org.eclipse.mylyn.monitor.tests.MonitorPackagingTest;
import org.eclipse.mylyn.monitor.tests.MonitorTest;
-import org.eclipse.mylyn.monitor.tests.MultiWindowMonitorTest;
import org.eclipse.mylyn.monitor.tests.StatisticsLoggingTest;
import org.eclipse.mylyn.monitor.usage.tests.AllMonitorUsageTests;
import org.eclipse.mylyn.tasks.tests.web.HtmlDecodeEntityTest;
@@ -59,7 +58,8 @@ public class AllSandboxTests {
suite.addTestSuite(MonitorTest.class);
suite.addTestSuite(InteractionEventExternalizationTest.class);
suite.addTestSuite(MonitorPackagingTest.class);
- suite.addTestSuite(MultiWindowMonitorTest.class);
+ // disabled due to compile errors on Eclipse 4.2
+ //suite.addTestSuite(MultiWindowMonitorTest.class);
return suite;
}

Back to the top