1ef39d40dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3ef39d40dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4ef39d40dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5ef39d40dSAndrew Rist * distributed with this work for additional information 6ef39d40dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7ef39d40dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8ef39d40dSAndrew Rist * "License"); you may not use this file except in compliance 9ef39d40dSAndrew Rist * with the License. You may obtain a copy of the License at 10ef39d40dSAndrew Rist * 11ef39d40dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12ef39d40dSAndrew Rist * 13ef39d40dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14ef39d40dSAndrew Rist * software distributed under the License is distributed on an 15ef39d40dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16ef39d40dSAndrew Rist * KIND, either express or implied. See the License for the 17ef39d40dSAndrew Rist * specific language governing permissions and limitations 18ef39d40dSAndrew Rist * under the License. 19ef39d40dSAndrew Rist * 20ef39d40dSAndrew Rist *************************************************************/ 21ef39d40dSAndrew Rist 22ef39d40dSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir package ifc.awt; 25cdf0e10cSrcweir 26cdf0e10cSrcweir import com.sun.star.awt.FocusEvent; 27cdf0e10cSrcweir import com.sun.star.awt.KeyEvent; 28cdf0e10cSrcweir import com.sun.star.awt.MouseEvent; 29cdf0e10cSrcweir import com.sun.star.awt.PaintEvent; 30cdf0e10cSrcweir import com.sun.star.awt.Point; 31cdf0e10cSrcweir import com.sun.star.awt.PosSize; 32cdf0e10cSrcweir import com.sun.star.awt.Rectangle; 33cdf0e10cSrcweir import com.sun.star.awt.Size; 34cdf0e10cSrcweir import com.sun.star.awt.WindowEvent; 35cdf0e10cSrcweir import com.sun.star.awt.XFocusListener; 36cdf0e10cSrcweir import com.sun.star.awt.XKeyListener; 37cdf0e10cSrcweir import com.sun.star.awt.XMouseListener; 38cdf0e10cSrcweir import com.sun.star.awt.XMouseMotionListener; 39cdf0e10cSrcweir import com.sun.star.awt.XPaintListener; 40cdf0e10cSrcweir import com.sun.star.awt.XWindow; 41cdf0e10cSrcweir import com.sun.star.awt.XWindowListener; 42cdf0e10cSrcweir import com.sun.star.drawing.XControlShape; 43cdf0e10cSrcweir import com.sun.star.lang.EventObject; 44cdf0e10cSrcweir import lib.MultiMethodTest; 45cdf0e10cSrcweir import util.ValueComparer; 46cdf0e10cSrcweir 47cdf0e10cSrcweir /** 48cdf0e10cSrcweir * Testing <code>com.sun.star.awt.XWindow</code> 49cdf0e10cSrcweir * interface methods : 50cdf0e10cSrcweir * <ul> 51cdf0e10cSrcweir * <li><code> setPosSize()</code></li> 52cdf0e10cSrcweir * <li><code> getPosSize()</code></li> 53cdf0e10cSrcweir * <li><code> setVisible()</code></li> 54cdf0e10cSrcweir * <li><code> setEnable()</code></li> 55cdf0e10cSrcweir * <li><code> setFocus()</code></li> 56cdf0e10cSrcweir * <li><code> addWindowListener()</code></li> 57cdf0e10cSrcweir * <li><code> removeWindowListener()</code></li> 58cdf0e10cSrcweir * <li><code> addFocusListener()</code></li> 59cdf0e10cSrcweir * <li><code> removeFocusListener()</code></li> 60cdf0e10cSrcweir * <li><code> addKeyListener()</code></li> 61cdf0e10cSrcweir * <li><code> removeKeyListener()</code></li> 62cdf0e10cSrcweir * <li><code> addMouseListener()</code></li> 63cdf0e10cSrcweir * <li><code> removeMouseListener()</code></li> 64cdf0e10cSrcweir * <li><code> addMouseMotionListener()</code></li> 65cdf0e10cSrcweir * <li><code> removeMouseMotionListener()</code></li> 66cdf0e10cSrcweir * <li><code> addPaintListener()</code></li> 67cdf0e10cSrcweir * <li><code> removePaintListener()</code></li> 68cdf0e10cSrcweir * </ul> <p> 69cdf0e10cSrcweir * This test needs the following object relations : 70cdf0e10cSrcweir * <ul> 71cdf0e10cSrcweir * <li> <code>'XWindow.AnotherWindow'</code> (of type <code>XWindow</code>): 72cdf0e10cSrcweir * Some another window which can gain focus so the tested one 73cdf0e10cSrcweir * must lost it. </li> 74cdf0e10cSrcweir * <li> <code>'XWindow.ControlShape'</code> <b>optional</b> 75cdf0e10cSrcweir * (of type <code>XControlShape</code>): 76cdf0e10cSrcweir * Some shapes cann't change their size within fixed ControlShape 77cdf0e10cSrcweir * and their size could be changed only if size of container 78cdf0e10cSrcweir * ControlShape is changed. For such shapes this relation should 79cdf0e10cSrcweir * be passed for proper <code>addWindowListener</code> test. </li> 80cdf0e10cSrcweir * </ul> <p> 81cdf0e10cSrcweir * Test is <b> NOT </b> multithread compilant. <p> 82cdf0e10cSrcweir * @see com.sun.star.awt.XWindow 83cdf0e10cSrcweir */ 84cdf0e10cSrcweir public class _XWindow extends MultiMethodTest { 85cdf0e10cSrcweir public XWindow oObj = null; 86cdf0e10cSrcweir private Rectangle posSize = null ; 87cdf0e10cSrcweir private XWindow win = null; 88cdf0e10cSrcweir 89cdf0e10cSrcweir /** 90cdf0e10cSrcweir * Test calls the method. <p> 91cdf0e10cSrcweir * Has <b> OK </b> status if the method does not return null. 92cdf0e10cSrcweir */ _getPosSize()93cdf0e10cSrcweir public void _getPosSize() { 94cdf0e10cSrcweir posSize = oObj.getPosSize() ; 95cdf0e10cSrcweir tRes.tested("getPosSize()", posSize != null) ; 96cdf0e10cSrcweir } 97cdf0e10cSrcweir 98cdf0e10cSrcweir /** 99cdf0e10cSrcweir * After defining Rectangle structure to be set, test calls the method. <p> 100cdf0e10cSrcweir * Has <b> OK </b> status if structure obtained using getPosSize() is 101cdf0e10cSrcweir * equal to structure previously set using setPosSize(). <p> 102cdf0e10cSrcweir * The following method tests are to be completed successfully before : 103cdf0e10cSrcweir * <ul> 104cdf0e10cSrcweir * <li> <code> getPosSize() </code> : returns the outer bounds of 105cdf0e10cSrcweir * the window </li> 106cdf0e10cSrcweir * </ul> 107cdf0e10cSrcweir */ _setPosSize()108cdf0e10cSrcweir public void _setPosSize() { 109cdf0e10cSrcweir Rectangle newRec = new Rectangle(); 110cdf0e10cSrcweir 111cdf0e10cSrcweir requiredMethod("getPosSize()"); 112cdf0e10cSrcweir newRec.X = posSize.X + 1; 113cdf0e10cSrcweir newRec.Y = posSize.Y + 1; 114cdf0e10cSrcweir newRec.Width = posSize.Width - 3; 115cdf0e10cSrcweir newRec.Height = posSize.Height - 3; 116cdf0e10cSrcweir oObj.setPosSize(newRec.X, newRec.Y, newRec.Width, newRec.Height, 117cdf0e10cSrcweir PosSize.POSSIZE); 118cdf0e10cSrcweir Rectangle gPS = oObj.getPosSize(); 119cdf0e10cSrcweir log.println("Was : (" + posSize.X + ", " + posSize.Y + ", " + 120cdf0e10cSrcweir posSize.Width + ", " + posSize.Height + "), "); 121cdf0e10cSrcweir log.println("Set : (" + newRec.X + ", " + newRec.Y + ", " + 122cdf0e10cSrcweir newRec.Width + ", " + newRec.Height + "), "); 123cdf0e10cSrcweir log.println("Get : (" + gPS.X + ", " + gPS.Y + ", " + 124cdf0e10cSrcweir gPS.Width + ", " + gPS.Height + "). "); 125cdf0e10cSrcweir tRes.tested("setPosSize()", ValueComparer.equalValue(newRec, gPS) ); 126cdf0e10cSrcweir } 127cdf0e10cSrcweir 128cdf0e10cSrcweir /** 129cdf0e10cSrcweir * At first object relation 'XWindow.AnotherWindow' is obtained. 130cdf0e10cSrcweir * Then test calls the methods of two 'XWindow' objects several times to be 131cdf0e10cSrcweir * sure that the focus has changed. <p> 132cdf0e10cSrcweir * Has <b> OK </b> status if the method successfully returns 133cdf0e10cSrcweir * and no exceptions were thrown. 134cdf0e10cSrcweir */ _setFocus()135cdf0e10cSrcweir public void _setFocus() { 136cdf0e10cSrcweir win = (XWindow) tEnv.getObjRelation("XWindow.AnotherWindow"); 137cdf0e10cSrcweir oObj.setFocus(); 138cdf0e10cSrcweir win.setFocus(); 139cdf0e10cSrcweir oObj.setFocus(); 140cdf0e10cSrcweir tRes.tested("setFocus()", true); 141cdf0e10cSrcweir } 142cdf0e10cSrcweir 143cdf0e10cSrcweir /** 144cdf0e10cSrcweir * Test calls the method twice with two parameters: 'true' and 'false'. <p> 145cdf0e10cSrcweir * Has <b> OK </b> status if the method successfully returns 146cdf0e10cSrcweir * and no exceptions were thrown. 147cdf0e10cSrcweir */ _setVisible()148cdf0e10cSrcweir public void _setVisible() { 149cdf0e10cSrcweir oObj.setVisible(false); 150cdf0e10cSrcweir oObj.setVisible(true); 151cdf0e10cSrcweir tRes.tested("setVisible()", true); 152cdf0e10cSrcweir } 153cdf0e10cSrcweir 154cdf0e10cSrcweir /** 155cdf0e10cSrcweir * Test calls the method twice with two parameters: 'true' and 'false'. <p> 156cdf0e10cSrcweir * Has <b> OK </b> status if the method successfully returns 157cdf0e10cSrcweir * and no exceptions were thrown. 158cdf0e10cSrcweir */ _setEnable()159cdf0e10cSrcweir public void _setEnable() { 160cdf0e10cSrcweir oObj.setEnable(false); 161cdf0e10cSrcweir oObj.setEnable(true); 162cdf0e10cSrcweir tRes.tested("setEnable()", true); 163cdf0e10cSrcweir } 164cdf0e10cSrcweir 165cdf0e10cSrcweir 166cdf0e10cSrcweir /** 167cdf0e10cSrcweir * A class we use to test addWindowListener() and 168cdf0e10cSrcweir * removeWindowListener() 169cdf0e10cSrcweir */ 170cdf0e10cSrcweir public class TestWindowListener implements XWindowListener { 171cdf0e10cSrcweir public boolean resized = false ; 172cdf0e10cSrcweir public boolean moved = false ; 173cdf0e10cSrcweir public boolean hidden = false ; 174cdf0e10cSrcweir public boolean shown = false ; 175cdf0e10cSrcweir init()176cdf0e10cSrcweir public void init() { 177cdf0e10cSrcweir resized = false ; 178cdf0e10cSrcweir moved = false ; 179cdf0e10cSrcweir hidden = false ; 180cdf0e10cSrcweir shown = false ; 181cdf0e10cSrcweir } 182cdf0e10cSrcweir windowResized(WindowEvent e)183cdf0e10cSrcweir public void windowResized(WindowEvent e) { 184cdf0e10cSrcweir resized = true ; 185cdf0e10cSrcweir } windowMoved(WindowEvent e)186cdf0e10cSrcweir public void windowMoved(WindowEvent e) { 187cdf0e10cSrcweir moved = true ; 188cdf0e10cSrcweir } windowHidden(EventObject e)189cdf0e10cSrcweir public void windowHidden(EventObject e) { 190cdf0e10cSrcweir hidden = true ; 191cdf0e10cSrcweir } windowShown(EventObject e)192cdf0e10cSrcweir public void windowShown(EventObject e) { 193cdf0e10cSrcweir shown = true ; 194cdf0e10cSrcweir } disposing(EventObject e)195cdf0e10cSrcweir public void disposing(EventObject e) {} 196cdf0e10cSrcweir 197cdf0e10cSrcweir } 198cdf0e10cSrcweir 199cdf0e10cSrcweir private TestWindowListener wListener = new TestWindowListener() ; 200cdf0e10cSrcweir 201cdf0e10cSrcweir 202cdf0e10cSrcweir /** 203cdf0e10cSrcweir * Test calls the method. Then we check if listener's methods were called 204cdf0e10cSrcweir * when we move, resize, hide and show the window. The resizing is 205*bb6af6bcSPedro Giffuni * performed depending on 'XWindow.ControlShape' existence. If this 206cdf0e10cSrcweir * relation exists then the size and position of container control 207cdf0e10cSrcweir * shape is changed, else the position and size of window itself is 208cdf0e10cSrcweir * chaged<p> 209cdf0e10cSrcweir * 210cdf0e10cSrcweir * Has <b> OK </b> status if methods of wListener were called when 211*bb6af6bcSPedro Giffuni * corresponding events occurred. <p> 212cdf0e10cSrcweir * 213cdf0e10cSrcweir * The following method tests are to be executed before : 214cdf0e10cSrcweir * <ul> 215cdf0e10cSrcweir * <li> <code> setPosSize() </code>: sets the outer bounds of the 216cdf0e10cSrcweir * window</li> 217cdf0e10cSrcweir * <li> <code> setVisible() </code>: shows or hides the window 218cdf0e10cSrcweir * depending on the parameter</li> 219cdf0e10cSrcweir * </ul> 220cdf0e10cSrcweir */ _addWindowListener()221cdf0e10cSrcweir public void _addWindowListener() { 222cdf0e10cSrcweir executeMethod("setPosSize()"); 223cdf0e10cSrcweir executeMethod("setVisible()"); 224cdf0e10cSrcweir boolean result = true ; 225cdf0e10cSrcweir 226cdf0e10cSrcweir oObj.addWindowListener(wListener); 227cdf0e10cSrcweir 228cdf0e10cSrcweir // testing wListener.windowMoved() 229cdf0e10cSrcweir XControlShape ctrlShape = (XControlShape) 230cdf0e10cSrcweir tEnv.getObjRelation("XWindow.ControlShape"); 231cdf0e10cSrcweir log.println("change object position and size..."); 232cdf0e10cSrcweir 233cdf0e10cSrcweir if (ctrlShape != null) { 234cdf0e10cSrcweir try { 235cdf0e10cSrcweir Size sz = ctrlShape.getSize(); 236cdf0e10cSrcweir sz.Height += 100; 237cdf0e10cSrcweir ctrlShape.setSize(sz); 238cdf0e10cSrcweir Point pos = ctrlShape.getPosition(); 239cdf0e10cSrcweir pos.X += 100 ; 240cdf0e10cSrcweir ctrlShape.setPosition(pos); 241cdf0e10cSrcweir } catch (com.sun.star.beans.PropertyVetoException e) { 242cdf0e10cSrcweir log.println("Couldn't change size or position: "); 243cdf0e10cSrcweir e.printStackTrace(log); 244cdf0e10cSrcweir } 245cdf0e10cSrcweir } else { 246cdf0e10cSrcweir oObj.setPosSize(posSize.X + 2, 0, 0, 0, PosSize.X); 247cdf0e10cSrcweir oObj.setPosSize(0, 0, 100, 100, PosSize.WIDTH); 248cdf0e10cSrcweir } 249cdf0e10cSrcweir 250cdf0e10cSrcweir shortWait(); 251cdf0e10cSrcweir boolean res = wListener.resized && wListener.moved && 252cdf0e10cSrcweir !wListener.hidden && !wListener.shown; 253cdf0e10cSrcweir result &= res; 254cdf0e10cSrcweir if (!res) { 255cdf0e10cSrcweir log.println("\twindowHidden() wasn't called: " + !wListener.hidden); 256cdf0e10cSrcweir log.println("\twindowShown() wasn't called: " + !wListener.shown); 257cdf0e10cSrcweir log.println("\twindowResized() was called: " + wListener.resized); 258cdf0e10cSrcweir log.println("\twindowMoved() was called: " + wListener.moved); 259cdf0e10cSrcweir } else { 260cdf0e10cSrcweir log.println("windowMoved() and windowResized() was called"); 261cdf0e10cSrcweir } 262cdf0e10cSrcweir 263cdf0e10cSrcweir // testing wListener.windowHidden() 264cdf0e10cSrcweir wListener.init(); 265cdf0e10cSrcweir shortWait(); 266cdf0e10cSrcweir log.println("set object invisible..."); 267cdf0e10cSrcweir oObj.setVisible(false); 268cdf0e10cSrcweir shortWait(); 269cdf0e10cSrcweir res = wListener.hidden && !wListener.resized 270cdf0e10cSrcweir && !wListener.moved && !wListener.shown; 271cdf0e10cSrcweir result &= res; 272cdf0e10cSrcweir if (!res) { 273cdf0e10cSrcweir log.println("\twindowHidden() was called: " + wListener.hidden); 274cdf0e10cSrcweir log.println("\twindowShown() wasn't called: " + !wListener.shown); 275cdf0e10cSrcweir log.println("\twindowResized() wasn't called: " + !wListener.resized); 276cdf0e10cSrcweir log.println("\twindowMoved() wasn't called: " + !wListener.moved); 277cdf0e10cSrcweir } else { 278cdf0e10cSrcweir log.println("windowHidden() was called"); 279cdf0e10cSrcweir } 280cdf0e10cSrcweir 281cdf0e10cSrcweir // testing wListener.windowShown() 282cdf0e10cSrcweir wListener.init() ; 283cdf0e10cSrcweir shortWait(); 284cdf0e10cSrcweir log.println("set object visible..."); 285cdf0e10cSrcweir oObj.setVisible(true) ; 286cdf0e10cSrcweir shortWait(); 287cdf0e10cSrcweir res = wListener.shown && !wListener.resized && 288cdf0e10cSrcweir !wListener.hidden && !wListener.moved; 289cdf0e10cSrcweir result &= res; 290cdf0e10cSrcweir if (!res) { 291cdf0e10cSrcweir log.println("\twindowHidden() wasn't called: " + !wListener.hidden); 292cdf0e10cSrcweir log.println("\twindowShown() was called: " + wListener.shown); 293cdf0e10cSrcweir log.println("\twindowResized() wasn't called: " + !wListener.resized); 294cdf0e10cSrcweir log.println("\twindowMoved() wasn't called: " + !wListener.moved); 295cdf0e10cSrcweir } else { 296cdf0e10cSrcweir log.println("windowShown() was called"); 297cdf0e10cSrcweir } 298cdf0e10cSrcweir 299cdf0e10cSrcweir tRes.tested("addWindowListener()", result) ; 300cdf0e10cSrcweir } 301cdf0e10cSrcweir 302cdf0e10cSrcweir 303cdf0e10cSrcweir /** 304cdf0e10cSrcweir * Test calls the method. Then we change window and check that listener's 305cdf0e10cSrcweir * methods were not called. <p> 306cdf0e10cSrcweir * Has <b> OK </b> status if listener does not react on window events.<p> 307cdf0e10cSrcweir * The following method tests are to be completed successfully before : 308cdf0e10cSrcweir * <ul> 309cdf0e10cSrcweir * <li> <code> addWindowListener() </code>: adds window listener to the 310cdf0e10cSrcweir * object </li> 311cdf0e10cSrcweir * </ul> 312cdf0e10cSrcweir */ _removeWindowListener()313cdf0e10cSrcweir public void _removeWindowListener() { 314cdf0e10cSrcweir requiredMethod("addWindowListener()"); 315cdf0e10cSrcweir oObj.removeWindowListener(wListener); 316cdf0e10cSrcweir wListener.init(); 317cdf0e10cSrcweir oObj.setPosSize(posSize.X, posSize.Y, 318cdf0e10cSrcweir posSize.Width , posSize.Height, PosSize.POSSIZE); 319cdf0e10cSrcweir oObj.setVisible(false); 320cdf0e10cSrcweir oObj.setVisible(true); 321cdf0e10cSrcweir boolean res = !(wListener.resized || wListener.moved 322cdf0e10cSrcweir || wListener.hidden || wListener.shown); 323cdf0e10cSrcweir 324cdf0e10cSrcweir tRes.tested("removeWindowListener()", res); 325cdf0e10cSrcweir } 326cdf0e10cSrcweir 327cdf0e10cSrcweir /** 328cdf0e10cSrcweir * A class we use to test addFocusListener() and 329cdf0e10cSrcweir * removeFocusListener() 330cdf0e10cSrcweir */ 331cdf0e10cSrcweir public class TestFocusListener implements XFocusListener { 332cdf0e10cSrcweir public boolean gained = false ; 333cdf0e10cSrcweir public boolean lost = false ; 334cdf0e10cSrcweir focusGained(FocusEvent e)335cdf0e10cSrcweir public void focusGained(FocusEvent e) { 336cdf0e10cSrcweir gained = true ; 337cdf0e10cSrcweir } focusLost(FocusEvent e)338cdf0e10cSrcweir public void focusLost(FocusEvent e) { 339cdf0e10cSrcweir lost = true ; 340cdf0e10cSrcweir } init()341cdf0e10cSrcweir public void init() { 342cdf0e10cSrcweir gained = false; 343cdf0e10cSrcweir lost = false; 344cdf0e10cSrcweir } disposing(EventObject e)345cdf0e10cSrcweir public void disposing(EventObject e) {} 346cdf0e10cSrcweir 347cdf0e10cSrcweir } 348cdf0e10cSrcweir 349cdf0e10cSrcweir private TestFocusListener fListener = new TestFocusListener(); 350cdf0e10cSrcweir 351cdf0e10cSrcweir /** 352cdf0e10cSrcweir * Test calls the method. Then we change focus and check that listener's 353cdf0e10cSrcweir * methods were called. <p> 354cdf0e10cSrcweir * Has <b> OK </b> status if methods of fListener were called when 355*bb6af6bcSPedro Giffuni * corresponding events occurred. <p> 356cdf0e10cSrcweir * The following method tests are to be completed successfully before : 357cdf0e10cSrcweir * <ul> 358cdf0e10cSrcweir * <li> <code> setFocus() </code>: sets the focus to the window </li> 359cdf0e10cSrcweir * </ul> 360cdf0e10cSrcweir */ _addFocusListener()361cdf0e10cSrcweir public void _addFocusListener() { 362cdf0e10cSrcweir boolean result = true ; 363cdf0e10cSrcweir 364cdf0e10cSrcweir requiredMethod("setFocus()"); 365cdf0e10cSrcweir oObj.addFocusListener(fListener) ; 366cdf0e10cSrcweir 367cdf0e10cSrcweir // testing fListener.lost() 368cdf0e10cSrcweir oObj.setFocus(); 369cdf0e10cSrcweir shortWait(); 370cdf0e10cSrcweir win.setFocus(); 371cdf0e10cSrcweir shortWait(); 372cdf0e10cSrcweir result &= fListener.lost; 373cdf0e10cSrcweir if (!fListener.lost) { 374cdf0e10cSrcweir log.println("Lost focus was not notified about") ; 375cdf0e10cSrcweir } 376cdf0e10cSrcweir 377cdf0e10cSrcweir // testing fListener.gained() 378cdf0e10cSrcweir oObj.setFocus() ; 379cdf0e10cSrcweir shortWait(); 380cdf0e10cSrcweir result &= fListener.gained; 381cdf0e10cSrcweir if (!fListener.gained) { 382cdf0e10cSrcweir log.println("Gained focus was not notified about") ; 383cdf0e10cSrcweir } 384cdf0e10cSrcweir 385cdf0e10cSrcweir tRes.tested("addFocusListener()", result) ; 386cdf0e10cSrcweir } 387cdf0e10cSrcweir 388cdf0e10cSrcweir /** 389cdf0e10cSrcweir * Test calls the method. Then we change focus and check that listener's 390cdf0e10cSrcweir * methods were not called. <p> 391cdf0e10cSrcweir * Has <b> OK </b> status if listener does not react on focus changing. <p> 392cdf0e10cSrcweir * The following method tests are to be completed successfully before : 393cdf0e10cSrcweir * <ul> 394cdf0e10cSrcweir * <li> <code> addFocusListener() </code> : adds focus listener to 395cdf0e10cSrcweir * the object </li> 396cdf0e10cSrcweir * </ul> 397cdf0e10cSrcweir */ _removeFocusListener()398cdf0e10cSrcweir public void _removeFocusListener() { 399cdf0e10cSrcweir requiredMethod("addFocusListener()"); 400cdf0e10cSrcweir oObj.removeFocusListener(fListener); 401cdf0e10cSrcweir fListener.init(); 402cdf0e10cSrcweir oObj.setFocus(); 403cdf0e10cSrcweir win.setFocus(); 404cdf0e10cSrcweir oObj.setFocus(); 405cdf0e10cSrcweir boolean res = !(fListener.gained || fListener.lost); 406cdf0e10cSrcweir tRes.tested("removeFocusListener()", res); 407cdf0e10cSrcweir } 408cdf0e10cSrcweir 409cdf0e10cSrcweir /** 410cdf0e10cSrcweir * A class we use to test addKeyListener() and 411cdf0e10cSrcweir * removeKeyListener() 412cdf0e10cSrcweir */ 413cdf0e10cSrcweir public class TestKeyListener implements XKeyListener { 414cdf0e10cSrcweir public boolean pressed = false; 415cdf0e10cSrcweir public boolean released = false; keyPressed(KeyEvent e)416cdf0e10cSrcweir public void keyPressed(KeyEvent e) { pressed = true; } keyReleased(KeyEvent e)417cdf0e10cSrcweir public void keyReleased(KeyEvent e) { released = true; } disposing(EventObject e)418cdf0e10cSrcweir public void disposing(EventObject e) {} init()419cdf0e10cSrcweir public void init() { pressed = false; released = false; } 420cdf0e10cSrcweir } 421cdf0e10cSrcweir 422cdf0e10cSrcweir private TestKeyListener kListener = new TestKeyListener(); 423cdf0e10cSrcweir 424cdf0e10cSrcweir /** 425cdf0e10cSrcweir * Test calls the method. <p> 426cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 427cdf0e10cSrcweir */ _addKeyListener()428cdf0e10cSrcweir public void _addKeyListener() { 429cdf0e10cSrcweir oObj.addKeyListener(kListener); 430cdf0e10cSrcweir tRes.tested("addKeyListener()", true); 431cdf0e10cSrcweir } 432cdf0e10cSrcweir 433cdf0e10cSrcweir /** 434cdf0e10cSrcweir * Test calls the method. <p> 435cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 436cdf0e10cSrcweir * The following method tests are to be completed successfully before : 437cdf0e10cSrcweir * <ul> 438cdf0e10cSrcweir * <li> <code> addKeyListener() </code> : adds key listener to 439cdf0e10cSrcweir * the object </li> 440cdf0e10cSrcweir * </ul> 441cdf0e10cSrcweir */ _removeKeyListener()442cdf0e10cSrcweir public void _removeKeyListener() { 443cdf0e10cSrcweir requiredMethod("addKeyListener()"); 444cdf0e10cSrcweir oObj.removeKeyListener(kListener); 445cdf0e10cSrcweir tRes.tested("removeKeyListener()", true); 446cdf0e10cSrcweir } 447cdf0e10cSrcweir 448cdf0e10cSrcweir /** 449cdf0e10cSrcweir * A class we use to test addMouseListener() and 450cdf0e10cSrcweir * removeMouseListener() 451cdf0e10cSrcweir */ 452cdf0e10cSrcweir public class TestMouseListener implements XMouseListener { 453cdf0e10cSrcweir public boolean pressed = false; 454cdf0e10cSrcweir public boolean released = false; 455cdf0e10cSrcweir public boolean entered = false; 456cdf0e10cSrcweir public boolean exited = false; 457cdf0e10cSrcweir mousePressed(MouseEvent e)458cdf0e10cSrcweir public void mousePressed(MouseEvent e) { 459cdf0e10cSrcweir pressed = true; 460cdf0e10cSrcweir } 461cdf0e10cSrcweir mouseReleased(MouseEvent e)462cdf0e10cSrcweir public void mouseReleased(MouseEvent e) { 463cdf0e10cSrcweir released = true; 464cdf0e10cSrcweir } 465cdf0e10cSrcweir mouseEntered(MouseEvent e)466cdf0e10cSrcweir public void mouseEntered(MouseEvent e) { 467cdf0e10cSrcweir entered = true; 468cdf0e10cSrcweir } 469cdf0e10cSrcweir mouseExited(MouseEvent e)470cdf0e10cSrcweir public void mouseExited(MouseEvent e) { 471cdf0e10cSrcweir exited = true; 472cdf0e10cSrcweir } 473cdf0e10cSrcweir disposing(EventObject e)474cdf0e10cSrcweir public void disposing(EventObject e) {} 475cdf0e10cSrcweir init()476cdf0e10cSrcweir public void init() { 477cdf0e10cSrcweir pressed = false; 478cdf0e10cSrcweir released = false; 479cdf0e10cSrcweir exited = false; 480cdf0e10cSrcweir entered = false; 481cdf0e10cSrcweir } 482cdf0e10cSrcweir 483cdf0e10cSrcweir } 484cdf0e10cSrcweir 485cdf0e10cSrcweir private TestMouseListener mListener = new TestMouseListener(); 486cdf0e10cSrcweir 487cdf0e10cSrcweir /** 488cdf0e10cSrcweir * Test calls the method. <p> 489cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 490cdf0e10cSrcweir */ _addMouseListener()491cdf0e10cSrcweir public void _addMouseListener() { 492cdf0e10cSrcweir oObj.addMouseListener(mListener); 493cdf0e10cSrcweir tRes.tested("addMouseListener()", true); 494cdf0e10cSrcweir } 495cdf0e10cSrcweir 496cdf0e10cSrcweir /** 497cdf0e10cSrcweir * Test calls the method. <p> 498cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 499cdf0e10cSrcweir * The following method tests are to be completed successfully before : 500cdf0e10cSrcweir * <ul> 501cdf0e10cSrcweir * <li> <code> addMouseListener() </code> : adds mouse listener to 502cdf0e10cSrcweir * the object</li> 503cdf0e10cSrcweir * </ul> 504cdf0e10cSrcweir */ _removeMouseListener()505cdf0e10cSrcweir public void _removeMouseListener() { 506cdf0e10cSrcweir requiredMethod("addMouseListener()"); 507cdf0e10cSrcweir oObj.removeMouseListener(mListener); 508cdf0e10cSrcweir tRes.tested("removeMouseListener()", true); 509cdf0e10cSrcweir } 510cdf0e10cSrcweir 511cdf0e10cSrcweir /** 512cdf0e10cSrcweir * A class we use to test addMouseMotionListener() and 513cdf0e10cSrcweir * removeMouseMotionListener() 514cdf0e10cSrcweir */ 515cdf0e10cSrcweir public class TestMouseMotionListener implements XMouseMotionListener { 516cdf0e10cSrcweir public boolean dragged = false; 517cdf0e10cSrcweir public boolean moved = false; 518cdf0e10cSrcweir mouseDragged(MouseEvent e)519cdf0e10cSrcweir public void mouseDragged(MouseEvent e) { 520cdf0e10cSrcweir dragged = true; 521cdf0e10cSrcweir } 522cdf0e10cSrcweir mouseMoved(MouseEvent e)523cdf0e10cSrcweir public void mouseMoved(MouseEvent e) { 524cdf0e10cSrcweir moved = true; 525cdf0e10cSrcweir } 526cdf0e10cSrcweir disposing(EventObject e)527cdf0e10cSrcweir public void disposing(EventObject e) {} 528cdf0e10cSrcweir init()529cdf0e10cSrcweir public void init() { 530cdf0e10cSrcweir dragged = false; 531cdf0e10cSrcweir moved = false; 532cdf0e10cSrcweir } 533cdf0e10cSrcweir 534cdf0e10cSrcweir } 535cdf0e10cSrcweir 536cdf0e10cSrcweir private TestMouseMotionListener mmListener = new TestMouseMotionListener(); 537cdf0e10cSrcweir 538cdf0e10cSrcweir /** 539cdf0e10cSrcweir * Test calls the method. <p> 540cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 541cdf0e10cSrcweir */ _addMouseMotionListener()542cdf0e10cSrcweir public void _addMouseMotionListener() { 543cdf0e10cSrcweir oObj.addMouseMotionListener(mmListener); 544cdf0e10cSrcweir tRes.tested("addMouseMotionListener()", true); 545cdf0e10cSrcweir } 546cdf0e10cSrcweir 547cdf0e10cSrcweir /** 548cdf0e10cSrcweir * Test calls the method. <p> 549cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 550cdf0e10cSrcweir * The following method tests are to be completed successfully before : 551cdf0e10cSrcweir * <ul> 552cdf0e10cSrcweir * <li> <code> addMouseMotionListener() </code> : adds mouse motion 553cdf0e10cSrcweir * listener to the object</li> 554cdf0e10cSrcweir * </ul> 555cdf0e10cSrcweir */ _removeMouseMotionListener()556cdf0e10cSrcweir public void _removeMouseMotionListener() { 557cdf0e10cSrcweir requiredMethod("addMouseMotionListener()"); 558cdf0e10cSrcweir oObj.removeMouseMotionListener(mmListener); 559cdf0e10cSrcweir tRes.tested("removeMouseMotionListener()", true); 560cdf0e10cSrcweir } 561cdf0e10cSrcweir 562cdf0e10cSrcweir /** 563cdf0e10cSrcweir * A class we use to test addPaintListener() and 564cdf0e10cSrcweir * removePaintListener() 565cdf0e10cSrcweir */ 566cdf0e10cSrcweir public class TestPaintListener implements XPaintListener { 567cdf0e10cSrcweir public boolean paint = false; 568cdf0e10cSrcweir windowPaint(PaintEvent e)569cdf0e10cSrcweir public void windowPaint(PaintEvent e) { 570cdf0e10cSrcweir paint = true; 571cdf0e10cSrcweir } 572cdf0e10cSrcweir disposing(EventObject e)573cdf0e10cSrcweir public void disposing(EventObject e) {} 574cdf0e10cSrcweir init()575cdf0e10cSrcweir public void init() { 576cdf0e10cSrcweir paint = false; 577cdf0e10cSrcweir } 578cdf0e10cSrcweir 579cdf0e10cSrcweir } 580cdf0e10cSrcweir 581cdf0e10cSrcweir private TestPaintListener pListener = new TestPaintListener(); 582cdf0e10cSrcweir 583cdf0e10cSrcweir /** 584cdf0e10cSrcweir * Test calls the method. <p> 585cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 586cdf0e10cSrcweir */ _addPaintListener()587cdf0e10cSrcweir public void _addPaintListener() { 588cdf0e10cSrcweir oObj.addPaintListener(pListener); 589cdf0e10cSrcweir tRes.tested("addPaintListener()", true); 590cdf0e10cSrcweir } 591cdf0e10cSrcweir 592cdf0e10cSrcweir /** 593cdf0e10cSrcweir * Test calls the method. <p> 594cdf0e10cSrcweir * Has <b> OK </b> status if no exceptions were thrown. <p> 595cdf0e10cSrcweir * The following method tests are to be completed successfully before : 596cdf0e10cSrcweir * <ul> 597cdf0e10cSrcweir * <li> <code> addPaintListener() </code> : adds paint listener to 598cdf0e10cSrcweir * the object </li> 599cdf0e10cSrcweir * </ul> 600cdf0e10cSrcweir */ _removePaintListener()601cdf0e10cSrcweir public void _removePaintListener() { 602cdf0e10cSrcweir requiredMethod("addPaintListener()"); 603cdf0e10cSrcweir oObj.removePaintListener(pListener); 604cdf0e10cSrcweir tRes.tested("removePaintListener()", true); 605cdf0e10cSrcweir } 606cdf0e10cSrcweir 607cdf0e10cSrcweir /** 608cdf0e10cSrcweir * Sleeps for 0.2 sec. to allow StarOffice to react on <code> 609cdf0e10cSrcweir * reset</code> call. 610cdf0e10cSrcweir */ shortWait()611cdf0e10cSrcweir private void shortWait() { 612cdf0e10cSrcweir try { 613cdf0e10cSrcweir Thread.sleep(2000) ; 614cdf0e10cSrcweir } catch (InterruptedException e) { 615cdf0e10cSrcweir log.println("While waiting :" + e) ; 616cdf0e10cSrcweir } 617cdf0e10cSrcweir } 618cdf0e10cSrcweir 619cdf0e10cSrcweir } 620cdf0e10cSrcweir 621