Author: dvinnichek
Date: 2010-11-19 03:38:10 -0500 (Fri, 19 Nov 2010)
New Revision: 26740
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/META-INF/MANIFEST.MF
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/handlers/VpeCommandsTests.java
Log:
add test for 'Rotate Editors' button on vpe toolbar
Modified:
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java
===================================================================
---
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java 2010-11-19
01:24:34 UTC (rev 26739)
+++
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeEditorPart.java 2010-11-19
08:38:10 UTC (rev 26740)
@@ -27,8 +27,6 @@
import org.eclipse.swt.events.ControlListener;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.graphics.Point;
@@ -1246,4 +1244,7 @@
}
}
+ public CustomSashForm getContainer() {
+ return container;
+ }
}
Modified: trunk/vpe/tests/org.jboss.tools.vpe.ui.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/vpe/tests/org.jboss.tools.vpe.ui.test/META-INF/MANIFEST.MF 2010-11-19 01:24:34
UTC (rev 26739)
+++ trunk/vpe/tests/org.jboss.tools.vpe.ui.test/META-INF/MANIFEST.MF 2010-11-19 08:38:10
UTC (rev 26740)
@@ -11,6 +11,7 @@
org.eclipse.core.resources,
org.eclipse.ui.ide,
org.jboss.tools.jst.jsp,
+ org.jboss.tools.common.el.core,
org.jboss.tools.jst.css,
org.jboss.tools.vpe.xulrunner,
org.mozilla.xpcom,
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/handlers/VpeCommandsTests.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/handlers/VpeCommandsTests.java 2010-11-19
01:24:34 UTC (rev 26739)
+++
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/handlers/VpeCommandsTests.java 2010-11-19
08:38:10 UTC (rev 26740)
@@ -10,19 +10,29 @@
******************************************************************************/
package org.jboss.tools.vpe.ui.test.handlers;
+import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+
import org.eclipse.core.commands.Command;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.swt.SWT;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IViewReference;
import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.FileEditorInput;
+import org.jboss.tools.jst.jsp.JspEditorPlugin;
import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor;
import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditorPart;
+import org.jboss.tools.jst.jsp.preferences.IVpePreferencesPage;
+import org.jboss.tools.vpe.editor.VpeController;
+import org.jboss.tools.vpe.editor.VpeEditorPart;
import org.jboss.tools.vpe.handlers.PageDesignOptionsHandler;
import org.jboss.tools.vpe.handlers.PreferencesHandler;
import org.jboss.tools.vpe.handlers.RefreshHandler;
@@ -36,89 +46,155 @@
import org.jboss.tools.vpe.ui.test.VpeUiTests;
/**
- * Class which created for testing VPE commands behavior,
- * see
https://jira.jboss.org/browse/JBIDE-7383
+ * Class which created for testing VPE commands behavior, see
+ *
https://jira.jboss.org/browse/JBIDE-7383
*
* @author mareshkau
- *
+ *
*/
-public class VpeCommandsTests extends VpeTest{
+public class VpeCommandsTests extends VpeTest {
private static String[] VPE_COMMAND_ID;
private Command[] commands;
-
+ private IHandlerService handlerService;
+
+ private static final int ROTATION_NUM = 4;
+
static {
- VPE_COMMAND_ID = new String[]{
- PageDesignOptionsHandler.COMMAND_ID,
- PreferencesHandler.COMMAND_ID,
- RefreshHandler.COMMAND_ID,
- RotateEditorsHandler.COMMAND_ID,
- ShowBorderHandler.COMMAND_ID,
+ VPE_COMMAND_ID = new String[] { PageDesignOptionsHandler.COMMAND_ID,
+ PreferencesHandler.COMMAND_ID, RefreshHandler.COMMAND_ID,
+ RotateEditorsHandler.COMMAND_ID, ShowBorderHandler.COMMAND_ID,
ShowBundleAsELHandler.COMMAND_ID,
ShowNonVisualTagsHandler.COMMAND_ID,
- ShowTextFormattingHandler.COMMAND_ID
- };
+ ShowTextFormattingHandler.COMMAND_ID };
}
-
+
@Override
protected void setUp() throws Exception {
super.setUp();
- ICommandService commandService =
- (ICommandService) PlatformUI.getWorkbench()
- .getService(ICommandService.class);
+ ICommandService commandService = (ICommandService) PlatformUI
+ .getWorkbench().getService(ICommandService.class);
commands = new Command[VPE_COMMAND_ID.length];
- for(int i=0;i<commands.length;i++){
+ for (int i = 0; i < commands.length; i++) {
commands[i] = commandService.getCommand(VPE_COMMAND_ID[i]);
}
IWorkbenchPage page = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
+ .getActiveWorkbenchWindow().getActivePage();
IViewReference[] views = page.getViewReferences();
for (IViewReference iViewReference : views) {
page.hideView(iViewReference);
}
+ handlerService = (IHandlerService) PlatformUI.getWorkbench()
+ .getService(IHandlerService.class);
}
public VpeCommandsTests(String name) {
super(name);
}
-
+
/**
* Test VPE command state
+ *
* @throws Throwable
*/
- public void testCommandState() throws Throwable {
- //initially all commands should be disabled
- IFile vpeFile = (IFile) TestUtil.getComponentPath("inputUserName.jsp",
- VpeUiTests.IMPORT_PROJECT_NAME);
-
- /*
- * Open file in the VPE
- */
- IEditorInput input = new FileEditorInput(vpeFile);
- JSPMultiPageEditor multiPageEditor = openEditor(input);
- TestUtil.delay(500);
- pageChange(multiPageEditor, 0);
- checkCommadState(true);
- pageChange(multiPageEditor, 1);
- checkCommadState(false);
- pageChange(multiPageEditor, multiPageEditor.getPreviewIndex());
- checkCommadState(false);
- pageChange(multiPageEditor,0);
- checkCommadState(true);
- }
-
- private void pageChange(JSPMultiPageEditor multiPageEditor, int index) throws
SecurityException, NoSuchMethodException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException {
- Method pageChange;
- pageChange = JSPMultiPageEditorPart.class.getDeclaredMethod("setActivePage",
new Class[]{int.class});
- pageChange.setAccessible(true);
- pageChange.invoke(multiPageEditor, index);
- multiPageEditor.pageChange(index);
- TestUtil.delay(1500);
- }
- //checks command state
- private void checkCommadState(boolean expected){
- for (Command vpeCommand : commands) {
- assertEquals("Command "+vpeCommand.getId()+" should be
active",expected,vpeCommand.isEnabled());
+ public void testCommandState() throws Throwable {
+ JSPMultiPageEditor multiPageEditor = openInputUserNameJsp();
+ checkCommandState(true);
+ pageChange(multiPageEditor, 1);
+ checkCommandState(false);
+ pageChange(multiPageEditor, multiPageEditor.getPreviewIndex());
+ checkCommandState(false);
+ pageChange(multiPageEditor, 0);
+ checkCommandState(true);
+ }
+
+ /**
+ * Test rotate editors toolbar button
+ *
+ * @throws Throwable
+ */
+ public void testRotateEditors() throws Throwable {
+
+ JSPMultiPageEditor multiPageEditor = openInputUserNameJsp();
+ VpeController vpeController = (VpeController) multiPageEditor
+ .getVisualEditor().getController();
+ VpeEditorPart editPart = vpeController.getPageContext().getEditPart();
+ int oldVisualOrientation = editPart.getContainer().getOrientation();
+ int prevVisualOrientation = oldVisualOrientation;
+
+ IPreferenceStore preferences = JspEditorPlugin.getDefault()
+ .getPreferenceStore();
+ String oldPrefOrientation = preferences
+ .getString(IVpePreferencesPage.VISUAL_SOURCE_EDITORS_SPLITTING);
+
+ for (int i = 0; i < ROTATION_NUM; i++) {
+
+ handlerService
+ .executeCommand(RotateEditorsHandler.COMMAND_ID, null);
+ TestUtil.delay(500);
+
+ int newVisualOrientation = editPart.getContainer().getOrientation();
+ String newPrefOrientation = preferences
+ .getString(IVpePreferencesPage.VISUAL_SOURCE_EDITORS_SPLITTING);
+
+ if (i != ROTATION_NUM - 1) {
+ assertNotSame(oldPrefOrientation, newPrefOrientation);
+ assertNotSame(prevVisualOrientation, newVisualOrientation);
+ } else {
+ assertEquals(oldPrefOrientation, newPrefOrientation);
+ assertEquals(oldVisualOrientation, newVisualOrientation);
}
- }
+
+ if (prevVisualOrientation == SWT.HORIZONTAL) {
+ assertEquals(SWT.VERTICAL, newVisualOrientation);
+ } else {
+ assertEquals(SWT.HORIZONTAL, newVisualOrientation);
+ }
+
+ prevVisualOrientation = newVisualOrientation;
+ }
+ }
+
+ private JSPMultiPageEditor openInputUserNameJsp() throws CoreException,
+ IOException, SecurityException, IllegalArgumentException,
+ NoSuchMethodException, IllegalAccessException,
+ InvocationTargetException {
+ IFile vpeFile = (IFile) TestUtil.getComponentPath("inputUserName.jsp",
//$NON-NLS-1$
+ VpeUiTests.IMPORT_PROJECT_NAME);
+ return openFileInVpe(vpeFile);
+ }
+
+ private JSPMultiPageEditor openFileInVpe(IFile fileToOpen)
+ throws PartInitException, SecurityException,
+ IllegalArgumentException, NoSuchMethodException,
+ IllegalAccessException, InvocationTargetException {
+ // Open file in the VPE
+ IEditorInput input = new FileEditorInput(fileToOpen);
+ JSPMultiPageEditor multiPageEditor = openEditor(input);
+ TestUtil.delay(500);
+ // Open the 'Visual/Source' tab
+ pageChange(multiPageEditor, 0);
+ return multiPageEditor;
+ }
+
+ private void pageChange(JSPMultiPageEditor multiPageEditor, int index)
+ throws SecurityException, NoSuchMethodException,
+ IllegalArgumentException, IllegalAccessException,
+ InvocationTargetException {
+ Method pageChange;
+ pageChange = JSPMultiPageEditorPart.class.getDeclaredMethod(
+ "setActivePage", new Class[] { int.class });
+ pageChange.setAccessible(true);
+ pageChange.invoke(multiPageEditor, index);
+ multiPageEditor.pageChange(index);
+ TestUtil.delay(1500);
+ }
+
+ // checks command state
+ private void checkCommandState(boolean expected) {
+ for (Command vpeCommand : commands) {
+ assertEquals("Command " + vpeCommand.getId() + " should be
active",
+ expected, vpeCommand.isEnabled());
+ }
+ }
}