summaryrefslogtreecommitdiff
path: root/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java')
-rw-r--r--framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java291
1 files changed, 178 insertions, 113 deletions
diff --git a/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java b/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java
index 556cadc7d1b0..471f5246b787 100644
--- a/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java
+++ b/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java
@@ -1,4 +1,4 @@
-package contextMenuInterceptor;
+package complex.contextMenuInterceptor;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
@@ -9,102 +9,119 @@ import com.sun.star.awt.Rectangle;
import com.sun.star.awt.XBitmap;
import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
-import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
-import com.sun.star.beans.XPropertySetInfo;
-import com.sun.star.container.XIndexAccess;
import com.sun.star.drawing.XShape;
-import com.sun.star.frame.XComponentLoader;
-import com.sun.star.frame.XController;
-import com.sun.star.frame.XDesktop;
import com.sun.star.frame.XFrame;
import com.sun.star.frame.XModel;
import com.sun.star.lang.IndexOutOfBoundsException;
-import com.sun.star.lang.XComponent;
-import com.sun.star.lang.XInitialization;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XTypeProvider;
-import com.sun.star.text.XTextDocument;
-import com.sun.star.ui.XContextMenuInterceptor;
import com.sun.star.ui.XContextMenuInterception;
+import com.sun.star.ui.XContextMenuInterceptor;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
-import com.sun.star.uno.Exception;
-import com.sun.star.util.CloseVetoException;
import com.sun.star.util.XCloseable;
-import com.sun.star.view.XViewSettingsSupplier;
-import complexlib.ComplexTestCase;
import java.awt.Robot;
import java.awt.event.InputEvent;
-import java.io.PrintWriter;
-import share.LogWriter;
+import java.io.File;
import util.AccessibilityTools;
import util.DesktopTools;
import util.DrawTools;
import util.SOfficeFactory;
import util.utils;
+import org.openoffice.test.OfficeFileUrl;
+
+// ---------- junit imports -----------------
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+// ------------------------------------------
/**
*
*/
-public class CheckContextMenuInterceptor extends ComplexTestCase {
+public class CheckContextMenuInterceptor
+{
+
XMultiServiceFactory xMSF = null;
XFrame xFrame = null;
Point point = null;
XWindow xWindow = null;
+ com.sun.star.lang.XComponent xDrawDoc;
- public void before() {
- xMSF = (XMultiServiceFactory)param.getMSF();
+ @Before
+ public void before()
+ {
+ xMSF = getMSF();
}
- public void after() {
- log.println("release the popup menu");
- try {
+ @After
+ public void after()
+ {
+ System.out.println("release the popup menu");
+ try
+ {
Robot rob = new Robot();
int x = point.X;
int y = point.Y;
rob.mouseMove(x, y);
rob.mousePress(InputEvent.BUTTON1_MASK);
rob.mouseRelease(InputEvent.BUTTON1_MASK);
- } catch (java.awt.AWTException e) {
- log.println("couldn't press mouse button");
+ }
+ catch (java.awt.AWTException e)
+ {
+ System.out.println("couldn't press mouse button");
}
- com.sun.star.util.XCloseable xClose = (com.sun.star.util.XCloseable)UnoRuntime.queryInterface(
- com.sun.star.util.XCloseable.class, xFrame);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, xFrame);
try
{
- xClose.close(false);
+ xClose.close(true);
}
- catch(com.sun.star.util.CloseVetoException exVeto)
+ catch (com.sun.star.util.CloseVetoException exVeto)
{
- failed("Test frame couldn't be closed successfully.");
+ fail("Test frame couldn't be closed successfully.");
}
xFrame = null;
- }
- public String[] getTestMethodNames() {
- return new String[]{"checkContextMenuInterceptor"};
+// xClose = UnoRuntime.queryInterface(XCloseable.class, xDrawDoc);
+// try
+// {
+// xClose.close(true);
+// }
+// catch (com.sun.star.util.CloseVetoException exVeto)
+// {
+// fail("Test DrawDoc couldn't be closed successfully.");
+// }
+
}
- public void checkContextMenuInterceptor() {
- log.println(" **** Context Menu Interceptor *** ");
+// public String[] getTestMethodNames() {
+// return new String[]{"checkContextMenuInterceptor"};
+// }
+ @Test
+ public void checkContextMenuInterceptor()
+ {
+ System.out.println(" **** Context Menu Interceptor *** ");
- try {
+ try
+ {
// intialize the test document
- com.sun.star.lang.XComponent xDrawDoc = DrawTools.createDrawDoc(xMSF);
+ xDrawDoc = DrawTools.createDrawDoc(xMSF);
- SOfficeFactory SOF = SOfficeFactory.getFactory( xMSF);
- XShape oShape = SOF.createShape(xDrawDoc,5000,5000,1500,1000,"GraphicObject");
- DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMSF);
+ XShape oShape = SOF.createShape(xDrawDoc, 5000, 5000, 1500, 1000, "GraphicObject");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc, 0)).add(oShape);
com.sun.star.frame.XModel xModel =
- (com.sun.star.frame.XModel)UnoRuntime.queryInterface(
- com.sun.star.frame.XModel.class, xDrawDoc);
+ UnoRuntime.queryInterface(com.sun.star.frame.XModel.class, xDrawDoc);
// get the frame for later usage
xFrame = xModel.getCurrentController().getFrame();
@@ -115,143 +132,166 @@ public class CheckContextMenuInterceptor extends ComplexTestCase {
XBitmap xBitmap = null;
// adding graphic as ObjRelation for GraphicObjectShape
- XPropertySet oShapeProps = (XPropertySet)
- UnoRuntime.queryInterface(XPropertySet.class,oShape);
- log.println( "Inserting a shape into the document");
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class, oShape);
+ System.out.println("Inserting a shape into the document");
try
{
- oShapeProps.setPropertyValue(
- "GraphicURL",util.utils.getFullTestURL("space-metal.jpg"));
- xBitmap = (XBitmap) AnyConverter.toObject(
- new Type(XBitmap.class),oShapeProps.getPropertyValue
- ("GraphicObjectFillBitmap"));
- } catch (com.sun.star.lang.WrappedTargetException e) {
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- } catch (com.sun.star.beans.PropertyVetoException e) {
- } catch (com.sun.star.beans.UnknownPropertyException e) {
+ String sFile = OfficeFileUrl.getAbsolute(new File("space-metal.jpg"));
+ // String sFile = util.utils.getFullTestURL("space-metal.jpg");
+ oShapeProps.setPropertyValue("GraphicURL", sFile);
+ Object oProp = oShapeProps.getPropertyValue("GraphicObjectFillBitmap");
+ xBitmap = (XBitmap) AnyConverter.toObject(new Type(XBitmap.class), oProp);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ }
+ catch (com.sun.star.beans.PropertyVetoException e)
+ {
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e)
+ {
}
// reuse the frame
com.sun.star.frame.XController xController = xFrame.getController();
- com.sun.star.ui.XContextMenuInterception xContextMenuInterception = null;
- com.sun.star.ui.XContextMenuInterceptor xContextMenuInterceptor = null;
+ XContextMenuInterception xContextMenuInterception = null;
+ XContextMenuInterceptor xContextMenuInterceptor = null;
- if ( xController != null )
+ if (xController != null)
{
- log.println( "Creating context menu interceptor");
+ System.out.println("Creating context menu interceptor");
// add our context menu interceptor
xContextMenuInterception =
- (com.sun.star.ui.XContextMenuInterception)UnoRuntime.queryInterface(
- com.sun.star.ui.XContextMenuInterception.class, xController );
+ UnoRuntime.queryInterface(XContextMenuInterception.class, xController);
- if( xContextMenuInterception != null )
+ if (xContextMenuInterception != null)
{
- ContextMenuInterceptor aContextMenuInterceptor = new ContextMenuInterceptor( xBitmap );
+ ContextMenuInterceptor aContextMenuInterceptor = new ContextMenuInterceptor(xBitmap);
xContextMenuInterceptor =
- (com.sun.star.ui.XContextMenuInterceptor)UnoRuntime.queryInterface(
- com.sun.star.ui.XContextMenuInterceptor.class, aContextMenuInterceptor );
+ UnoRuntime.queryInterface(XContextMenuInterceptor.class, aContextMenuInterceptor);
- log.println( "Register context menu interceptor");
- xContextMenuInterception.registerContextMenuInterceptor( xContextMenuInterceptor );
+ System.out.println("Register context menu interceptor");
+ xContextMenuInterception.registerContextMenuInterceptor(xContextMenuInterceptor);
}
}
- // utils.shortWait(10000);
+ // utils.shortWait(10000);
- openContextMenu((XModel) UnoRuntime.queryInterface(XModel.class, xDrawDoc));
+ openContextMenu(UnoRuntime.queryInterface(XModel.class, xDrawDoc));
checkHelpEntry();
// remove our context menu interceptor
- if ( xContextMenuInterception != null &&
- xContextMenuInterceptor != null ) {
- log.println( "Release context menu interceptor");
+ if (xContextMenuInterception != null
+ && xContextMenuInterceptor != null)
+ {
+ System.out.println("Release context menu interceptor");
xContextMenuInterception.releaseContextMenuInterceptor(
- xContextMenuInterceptor );
+ xContextMenuInterceptor);
}
}
- catch ( com.sun.star.uno.RuntimeException ex ) {
- ex.printStackTrace((PrintWriter)log);
- failed("Runtime exception caught!" + ex.getMessage());
+ catch (com.sun.star.uno.RuntimeException ex)
+ {
+ // ex.printStackTrace();
+ fail("Runtime exception caught!" + ex.getMessage());
}
- catch ( java.lang.Exception ex ) {
- ex.printStackTrace((PrintWriter)log);
- failed("Java lang exception caught!" + ex.getMessage());
+ catch (java.lang.Exception ex)
+ {
+ // ex.printStackTrace();
+ fail("Java lang exception caught!" + ex.getMessage());
}
}
- private void checkHelpEntry(){
+ private void checkHelpEntry()
+ {
XInterface toolkit = null;
- log.println("get accesibility...");
- try{
+ System.out.println("get accesibility...");
+ try
+ {
toolkit = (XInterface) xMSF.createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e){
- log.println("could not get Toolkit " + e.toString());
}
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, toolkit);
+ catch (com.sun.star.uno.Exception e)
+ {
+ System.out.println("could not get Toolkit " + e.toString());
+ }
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class, toolkit);
XAccessible xRoot = null;
AccessibilityTools at = new AccessibilityTools();
- try {
- xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getTopWindow(0));
+ try
+ {
+ xWindow = UnoRuntime.queryInterface(XWindow.class, tk.getTopWindow(0));
xRoot = at.getAccessibleObject(xWindow);
// at.printAccessibleTree((PrintWriter)log, xRoot, param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
- at.printAccessibleTree((PrintWriter)log, xRoot, true);
+ // at.printAccessibleTree(System.out, xRoot, true);
}
catch (com.sun.star.lang.IndexOutOfBoundsException e)
{
- log.println("Couldn't get Window");
+ System.out.println("Couldn't get Window");
}
XAccessibleContext oPopMenu = at.getAccessibleObjectForRole(xRoot, AccessibleRole.POPUP_MENU);
- log.println("ImplementationName: " + util.utils.getImplName(oPopMenu));
+ System.out.println("ImplementationName: " + util.utils.getImplName(oPopMenu));
XAccessible xHelp = null;
- try{
- log.println("Try to get first entry of context menu...");
+ try
+ {
+ System.out.println("Try to get first entry of context menu...");
xHelp = oPopMenu.getAccessibleChild(0);
- } catch (IndexOutOfBoundsException e){
- failed("Not possible to get first entry of context menu");
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ fail("Not possible to get first entry of context menu");
}
- if (xHelp == null) failed("first entry of context menu is NULL");
+ if (xHelp == null)
+ {
+ fail("first entry of context menu is NULL");
+ }
XAccessibleContext xHelpCont = xHelp.getAccessibleContext();
- if ( xHelpCont == null )
- failed("No able to retrieve accessible context from first entry of context menu");
+ if (xHelpCont == null)
+ {
+ fail("No able to retrieve accessible context from first entry of context menu");
+ }
String aAccessibleName = xHelpCont.getAccessibleName();
- if ( !aAccessibleName.equals( "Help" )) {
- log.println("Accessible name found = "+aAccessibleName );
- failed("First entry of context menu is not from context menu interceptor");
+ if (!aAccessibleName.equals("Help"))
+ {
+ System.out.println("Accessible name found = " + aAccessibleName);
+ fail("First entry of context menu is not from context menu interceptor");
}
try
{
- log.println("try to get first children of Help context...");
+ System.out.println("try to get first children of Help context...");
XAccessible xHelpChild = xHelpCont.getAccessibleChild(0);
- } catch (IndexOutOfBoundsException e){
- failed("not possible to get first children of Help context");
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ fail("not possible to get first children of Help context");
}
}
- private void openContextMenu(XModel aModel){
+ private void openContextMenu(XModel aModel)
+ {
- log.println("try to open contex menu...");
+ System.out.println("try to open contex menu...");
AccessibilityTools at = new AccessibilityTools();
xWindow = at.getCurrentWindow(xMSF, aModel);
@@ -260,14 +300,14 @@ public class CheckContextMenuInterceptor extends ComplexTestCase {
XInterface oObj = at.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
- XAccessibleComponent window = (XAccessibleComponent) UnoRuntime.queryInterface(
- XAccessibleComponent.class, oObj);
+ XAccessibleComponent window = UnoRuntime.queryInterface(XAccessibleComponent.class, oObj);
point = window.getLocationOnScreen();
Rectangle rect = window.getBounds();
- log.println("klick mouse button...");
- try {
+ System.out.println("klick mouse button...");
+ try
+ {
Robot rob = new Robot();
int x = point.X + (rect.Width / 2);
int y = point.Y + (rect.Height / 2);
@@ -277,11 +317,36 @@ public class CheckContextMenuInterceptor extends ComplexTestCase {
System.out.println("Release Button");
rob.mouseRelease(InputEvent.BUTTON3_MASK);
System.out.println("done");
- } catch (java.awt.AWTException e) {
- log.println("couldn't press mouse button");
+ }
+ catch (java.awt.AWTException e)
+ {
+ System.out.println("couldn't press mouse button");
}
utils.shortWait(3000);
}
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // setup and close connections
+ @BeforeClass
+ public static void setUpConnection() throws Exception
+ {
+ System.out.println("setUpConnection()");
+ connection.setUp();
+ }
+
+ @AfterClass
+ public static void tearDownConnection()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ System.out.println("tearDownConnection()");
+ connection.tearDown();
+ }
+ private static final OfficeConnection connection = new OfficeConnection();
}