[tests] Add menu contribution for manual test szenarios Change-Id: I21eb877474868847f3568b570faedd97ecb70e5d Signed-off-by: Marcel Bruch <marcel.bruch@codetrails.com>
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/META-INF/MANIFEST.MF b/tests/org.eclipse.epp.logging.aeri.ide.manual/META-INF/MANIFEST.MF index d977bfa..239b4db 100644 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.epp.logging.aeri.ide.manual/META-INF/MANIFEST.MF
@@ -12,4 +12,5 @@ org.eclipse.core.runtime, org.eclipse.epp.logging.aeri.core, org.eclipse.epp.logging.aeri.ide, - com.google.guava + com.google.guava, + org.eclipse.core.expressions
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/OSGI-INF/l10n/bundle.properties b/tests/org.eclipse.epp.logging.aeri.ide.manual/OSGI-INF/l10n/bundle.properties index 8714967..a766bcd 100644 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/OSGI-INF/l10n/bundle.properties +++ b/tests/org.eclipse.epp.logging.aeri.ide.manual/OSGI-INF/l10n/bundle.properties
@@ -1,3 +1,3 @@ # META-INF/MANIFEST.MF -Bundle-Name=Eclipse Automated Error Reporting Tests +Bundle-Name=Eclipse Automated Error Reporting Manual Tests Bundle-Vendor=Eclipse Packaging Project
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/asterisk_orange.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/asterisk_orange.png deleted file mode 100644 index 1ebebde..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/asterisk_orange.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/database_error.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/database_error.png deleted file mode 100644 index 578221a..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/database_error.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/database_refresh.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/database_refresh.png deleted file mode 100644 index ff803be..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/database_refresh.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/eclipse.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/eclipse.png deleted file mode 100644 index 55760f9..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/eclipse.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/jbosstools.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/jbosstools.png deleted file mode 100644 index 6acda27..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj16/jbosstools.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/ctrlflow.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/ctrlflow.png deleted file mode 100644 index f164f27..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/ctrlflow.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/eclipse.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/eclipse.png deleted file mode 100644 index 43edfa0..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/eclipse.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/jbosstools.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/jbosstools.png deleted file mode 100644 index c86ef27..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj32/jbosstools.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/ctrlflow.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/ctrlflow.png deleted file mode 100644 index 78ee36e..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/ctrlflow.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/eclipse.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/eclipse.png deleted file mode 100644 index 34150a7..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/eclipse.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/jbosstools.png b/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/jbosstools.png deleted file mode 100644 index ec2bba1..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/icons/obj64/jbosstools.png +++ /dev/null Binary files differ
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/plugin.xml b/tests/org.eclipse.epp.logging.aeri.ide.manual/plugin.xml index 598b29b..c6be8c4 100644 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/plugin.xml +++ b/tests/org.eclipse.epp.logging.aeri.ide.manual/plugin.xml
@@ -2,61 +2,18 @@ <?eclipse version="3.4"?> <plugin> <extension - point="org.eclipse.ui.commands"> - <command - defaultHandler="org.eclipse.epp.internal.logging.aeri.ide.actions.LogErrorHandler" - id="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" - name="Log Error"> - <commandParameter id="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param" name="Message" optional="true"/> - </command> - </extension> - <extension point="org.eclipse.ui.menus"> <menuContribution allPopups="false" locationURI="toolbar:org.eclipse.ui.main.toolbar"> - <toolbar id="org.eclipse.epp.logging.aeri.ui.tests.toolbar"> - <command id="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="pulldown" tooltip="Log Error"> - <parameter value="0" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> + <toolbar + id="org.eclipse.epp.logging.aeri.ide.manual.toolbar" + label="Error Test Szenarios"> + <dynamic + class="org.eclipse.epp.logging.aeri.ide.manual.TestSzenariosContribution" + id="org.eclipse.epp.logging.aeri.ide.manual.menuContributions"> + </dynamic> </toolbar> </menuContribution> </extension> - <extension point="org.eclipse.ui.menus"> - <menuContribution locationURI="menu:org.eclipse.epp.logging.aeri.ui.tests.errorCommand"> - <command label="Log Verify Error" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="1" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Log MS Error" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="2" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="UI Freeze" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="3" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Log CE Error" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="4" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Test UI Deadlock" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="5" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Log job error w/o exception" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="6" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Log in Display.asyncExec" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="7" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Log in Display.syncExec" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="8" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Log in Handler.execute" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="9" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Trigger New End-Points Available Notification" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="10" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - <command label="Trigger JBoss Error" commandId="org.eclipse.epp.logging.aeri.ui.tests.errorCommand" style="push"> - <parameter value="11" name="org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param"/> - </command> - </menuContribution> - </extension> </plugin>
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/src/org/eclipse/epp/internal/logging/aeri/ide/actions/LogErrorHandler.java b/tests/org.eclipse.epp.logging.aeri.ide.manual/src/org/eclipse/epp/internal/logging/aeri/ide/actions/LogErrorHandler.java deleted file mode 100644 index 2943308..0000000 --- a/tests/org.eclipse.epp.logging.aeri.ide.manual/src/org/eclipse/epp/internal/logging/aeri/ide/actions/LogErrorHandler.java +++ /dev/null
@@ -1,230 +0,0 @@ -/** - * Copyright (c) 2015 Codetrails GmbH. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Daniel Haftstein - initial API and implementation. - */ -package org.eclipse.epp.internal.logging.aeri.ide.actions; - -import java.util.List; - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.runtime.ILog; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.IJobFunction; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.epp.internal.logging.aeri.ide.IDEWorkflow; -import org.eclipse.epp.internal.logging.aeri.ide.IServerDescriptor; -import org.eclipse.epp.logging.aeri.core.SystemControl; -import org.eclipse.epp.logging.aeri.tests.util.TestStatuses; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.handlers.HandlerUtil; -import org.osgi.framework.FrameworkUtil; - -import com.google.common.base.Throwables; - -public class LogErrorHandler extends AbstractHandler { - - private ILog log = Platform.getLog(FrameworkUtil.getBundle(getClass())); - - @Override - public Object execute(final ExecutionEvent event) throws ExecutionException { - System.setProperty("eclipse.buildId", "unit-tests"); - final int parameter = Integer.parseInt(event.getParameter("org.eclipse.epp.logging.aeri.ui.tests.errorCommand.param")); - - switch (parameter) { - case 9: - throw new RuntimeException("Exception in handler.execute"); - case 10: - IServerDescriptor server = getServers().get(1); - server.setConfigured(false); - server.setEnabled(true); - server = getServers().get(2); - server.setConfigured(false); - server.setEnabled(true); - throw new RuntimeException("Exception in handler.execute"); - case 11: { - logJBossError(); - break; - } - default: - break; - } - Job job = new Job("test exceptions") { - - @Override - public IStatus run(IProgressMonitor monitor) { - - switch (parameter) { - case 0: { - logError(); - break; - } - case 1: { - logVerifyError(); - break; - } - case 2: { - logMultiStatus(); - break; - } - case 3: { - uiFreeze(); - break; - } - case 4: { - logCoreExceptionError(); - break; - } - case 5: { - Display.getDefault().asyncExec(new Runnable() { - - @Override - public void run() { - try { - testUiDeadlock(event); - } catch (ExecutionException e) { - Throwables.propagate(e); - } - } - }); - } - case 6: { - logEmptyJob(); - break; - } - case 7: { - logInDisplayAsyncExec(); - break; - } - case 8: { - logDisplaySyncExec(); - break; - } - default: - break; - } - return Status.OK_STATUS; - } - - }; - job.schedule(); - return null; - } - - private List<IServerDescriptor> getServers() { - return SystemControl.get(IDEWorkflow.CTX_SERVERS); - } - - private void logError() { - log.log(TestStatuses.thirdPartyStatus()); - } - - private void logVerifyError() { - log.log(new Status(IStatus.ERROR, "org.eclipse.epp.logging.aeri", "Test Error without exception", new VerifyError( - "Bad type on operand stack Exception Details: Location: org/eclipse/recommenders/internal/snipmatch/rcp/EclipseGitSnippetRepository.push(Lorg/eclipse/jgit/lib/Repository;Lorg/eclipse/swt/widgets/Shell;)V @47: invokevirtual Reason: Type 'org/eclipse/egit/ui/internal/credentials/EGitCredentialsProvider' (current frame, stack[1]) is not assignable to 'org/eclipse/jgit/transport/CredentialsProvider' Current Frame: bci: @47 flags: { } locals: { 'org/eclipse/recommenders/internal/snipmatch/rcp/EclipseGitSnippetRepository', 'org/eclipse/jgit/lib/Repository', 'org/eclipse/swt/widgets/Shell', 'org/eclipse/jgit/transport/RemoteConfig', integer, 'org/eclipse/egit/core/op/PushOperation' } stack: { 'org/eclipse/egit/core/op/PushOperation', 'org/eclipse/egit/ui/internal/credentials/EGitCredentialsProvider' } Bytecode: 0x0000000: 2bb8 032b 4eb8 0316 b603 1713 0146 b903 0x0000010: 7f02 0036 04bb 016f 592b 2db6 0338 0315 0x0000020: 04b7 0315 3a05 1905 bb01 7359 b703 1db6 0x0000030: 0314 bb01 8459 2ab2 02ec 1905 b703 513a 0x0000040: 0619 062a b402 e2b6 030e 1906 bb01 8559 0x0000050: 2a2c b703 52b6 030d 1906 b603 0cb1"))); - } - - private void logMultiStatus() { - log.log(TestStatuses.multiStatus()); - } - - private void uiFreeze() { - PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() { - - @Override - public void run() { - try { - Thread.sleep(6000); - } catch (InterruptedException e) { - } - } - }); - - } - - private void logCoreExceptionError() { - log.log(TestStatuses.coreExceptionStatus()); - } - - private void testUiDeadlock(ExecutionEvent event) throws ExecutionException { - - final Object lock = new Object(); - IWorkbenchWindow window; - window = HandlerUtil.getActiveWorkbenchWindowChecked(event); - MessageDialog.openInformation(window.getShell(), "TestLogingLock", "Test lock"); - Job longRunningJob = Job.create("Test Log running job", new IJobFunction() { - - @Override - public IStatus run(IProgressMonitor monitor) { - try { - Thread.sleep(100); - } catch (InterruptedException e) { - // - } - Platform.getLog(FrameworkUtil.getBundle(getClass())) - .log(new Status(IStatus.ERROR, "org.eclipse.epp.logging.aeri", "Test logging errors")); - synchronized (lock) { - lock.notifyAll(); - } - return Status.OK_STATUS; - } - }); - longRunningJob.schedule(); - synchronized (lock) { - try { - lock.wait(); - } catch (InterruptedException e) { - Platform.getLog(FrameworkUtil.getBundle(getClass())).log(Status.CANCEL_STATUS); - } - } - MessageDialog.openInformation(window.getShell(), "TestLogingLock", "No lock."); - } - - private void logEmptyJob() { - new Job("log error status") { - - @Override - protected IStatus run(IProgressMonitor monitor) { - return new Status(IStatus.ERROR, "org.eclipse.some", "Some failure in a error job w/o exception"); - } - }.schedule(); - } - - private void logInDisplayAsyncExec() { - Display.getDefault().asyncExec(new Runnable() { - - @Override - public void run() { - throw new RuntimeException("Exception in ui thread"); - } - }); - } - - private void logDisplaySyncExec() { - Display.getDefault().syncExec(new Runnable() { - - @Override - public void run() { - throw new RuntimeException("Exception in ui thread"); - } - }); - } - - private void logJBossError() { - log.log(TestStatuses.jbossTools()); - } - -}
diff --git a/tests/org.eclipse.epp.logging.aeri.ide.manual/src/org/eclipse/epp/logging/aeri/ide/manual/TestSzenariosContribution.java b/tests/org.eclipse.epp.logging.aeri.ide.manual/src/org/eclipse/epp/logging/aeri/ide/manual/TestSzenariosContribution.java new file mode 100644 index 0000000..33f3bbc --- /dev/null +++ b/tests/org.eclipse.epp.logging.aeri.ide.manual/src/org/eclipse/epp/logging/aeri/ide/manual/TestSzenariosContribution.java
@@ -0,0 +1,60 @@ +package org.eclipse.epp.logging.aeri.ide.manual; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; + +public class TestSzenariosContribution extends org.eclipse.ui.menus.WorkbenchWindowControlContribution { + + public TestSzenariosContribution() { + } + + public TestSzenariosContribution(String id) { + super(id); + } + + @Override + protected Control createControl(Composite parent) { + + ToolBar toolBar = new ToolBar(parent, SWT.FLAT); + Menu menu = new Menu(toolBar); + hookFillMenu(menu); + + ToolItem toolItem = new ToolItem(toolBar, SWT.DROP_DOWN); + toolItem.setText("Log..."); + toolItem.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + Rectangle rect = ((ToolItem) e.getSource()).getBounds(); + Point pt = new Point(rect.x, rect.y + rect.height); + pt = toolBar.toDisplay(pt); + menu.setLocation(pt.x, pt.y); + menu.setVisible(true); + } + }); + + return toolBar; + } + + private void hookFillMenu(Menu menu) { + for (int i = 0; i < 10; i++) { + MenuItem menuItem = new MenuItem(menu, SWT.NONE); + menuItem.setText("item " + i); + menuItem.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + MenuItem selected = (MenuItem) event.widget; + System.out.println(selected); + } + }); + } + } +}