1*ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*ef39d40dSAndrew Rist  * distributed with this work for additional information
6*ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9*ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*ef39d40dSAndrew Rist  *
11*ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*ef39d40dSAndrew Rist  *
13*ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15*ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18*ef39d40dSAndrew Rist  * under the License.
19*ef39d40dSAndrew Rist  *
20*ef39d40dSAndrew Rist  *************************************************************/
21*ef39d40dSAndrew Rist 
22*ef39d40dSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir package ifc.awt;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import lib.MultiMethodTest;
27cdf0e10cSrcweir import lib.Status;
28cdf0e10cSrcweir import lib.StatusException;
29cdf0e10cSrcweir 
30cdf0e10cSrcweir import com.sun.star.awt.TextEvent;
31cdf0e10cSrcweir import com.sun.star.awt.XTextListener;
32cdf0e10cSrcweir 
33cdf0e10cSrcweir /**
34cdf0e10cSrcweir * Testing <code>com.sun.star.awt.XTextListener</code>
35cdf0e10cSrcweir * interface methods:
36cdf0e10cSrcweir * <ul>
37cdf0e10cSrcweir * <li><code> textChanged() </code></li>
38cdf0e10cSrcweir * </ul><p>
39cdf0e10cSrcweir *
40cdf0e10cSrcweir * This test needs the following object relations :
41cdf0e10cSrcweir * <ul>
42cdf0e10cSrcweir *  <li> <code>'TestTextListener'</code>
43cdf0e10cSrcweir *   (of type <code>ifc.awt._XTextListener.TestTextListener</code>):
44cdf0e10cSrcweir *   this listener implementation must be registered for object tested for
45cdf0e10cSrcweir *   checking
46cdf0e10cSrcweir *   <code>textChanged()</code> method call. The listener must be registered
47cdf0e10cSrcweir *   in object environment creation because it's not a fact that tested
48cdf0e10cSrcweir *   component supports <code>XTextComponent</code> interface and the listener
49cdf0e10cSrcweir *   can be registered in another object.</li>
50cdf0e10cSrcweir * <ul> <p>
51cdf0e10cSrcweir *
52cdf0e10cSrcweir * @see com.sun.star.awt.XTextListener
53cdf0e10cSrcweir */
54cdf0e10cSrcweir public class _XTextListener extends MultiMethodTest {
55cdf0e10cSrcweir     public XTextListener oObj = null;
56cdf0e10cSrcweir 
57cdf0e10cSrcweir     /**
58cdf0e10cSrcweir     * Listener implementation which sets flags on appropriate method calls
59cdf0e10cSrcweir     * and stores event passed.
60cdf0e10cSrcweir     */
61cdf0e10cSrcweir     public static class TestTextListener implements
62cdf0e10cSrcweir             com.sun.star.awt.XTextListener {
63cdf0e10cSrcweir         public boolean textChangedCalled = false ;
64cdf0e10cSrcweir         public TextEvent event = null ;
65cdf0e10cSrcweir 
textChanged(TextEvent e)66cdf0e10cSrcweir         public void textChanged(TextEvent e) {
67cdf0e10cSrcweir             textChangedCalled = true ;
68cdf0e10cSrcweir             event = e ;
69cdf0e10cSrcweir         }
70cdf0e10cSrcweir 
disposing(com.sun.star.lang.EventObject e)71cdf0e10cSrcweir         public void disposing(com.sun.star.lang.EventObject e) {}
72cdf0e10cSrcweir 
73cdf0e10cSrcweir     }
74cdf0e10cSrcweir 
75cdf0e10cSrcweir     TestTextListener textListener = null;
76cdf0e10cSrcweir     /**
77cdf0e10cSrcweir     * Retrieves object relation.
78cdf0e10cSrcweir     * @throws StatusException If the relation not found.
79cdf0e10cSrcweir     */
before()80cdf0e10cSrcweir     public void before() {
81cdf0e10cSrcweir         textListener = (TestTextListener)
82cdf0e10cSrcweir             tEnv.getObjRelation("TestTextListener");
83cdf0e10cSrcweir         if (textListener == null) {
84cdf0e10cSrcweir             throw new StatusException(Status.failed("Relation not found"));
85cdf0e10cSrcweir         }
86cdf0e10cSrcweir     }
87cdf0e10cSrcweir 
88cdf0e10cSrcweir     /**
89cdf0e10cSrcweir     * First a <code>TextEvent</code> object created and
90cdf0e10cSrcweir     * it is passed to <code>textChanged</code> method
91cdf0e10cSrcweir     * call. Then a short wait follows for listener already
92cdf0e10cSrcweir     * registered at the object to be called. <p>
93cdf0e10cSrcweir     * Has <b> OK </b> status if the listener was called with
94cdf0e10cSrcweir     * the same <code>TextEvent</code> object as was created
95cdf0e10cSrcweir     * before.
96cdf0e10cSrcweir     */
_textChanged()97cdf0e10cSrcweir     public void _textChanged() {
98cdf0e10cSrcweir 
99cdf0e10cSrcweir         boolean result = true ;
100cdf0e10cSrcweir 
101cdf0e10cSrcweir         TextEvent event = new TextEvent() ;
102cdf0e10cSrcweir         event.dummy1 = 2;
103cdf0e10cSrcweir         oObj.textChanged(event);
104cdf0e10cSrcweir 
105cdf0e10cSrcweir         try {
106cdf0e10cSrcweir             Thread.sleep(200) ;
107cdf0e10cSrcweir         } catch (InterruptedException e) {}
108cdf0e10cSrcweir 
109cdf0e10cSrcweir         result = textListener.textChangedCalled &&
110cdf0e10cSrcweir             textListener.event.dummy1 == 2;
111cdf0e10cSrcweir 
112cdf0e10cSrcweir         tRes.tested("textChanged()", result) ;
113cdf0e10cSrcweir     }
114cdf0e10cSrcweir 
115cdf0e10cSrcweir     /**
116cdf0e10cSrcweir     * Forces environment recreation.
117cdf0e10cSrcweir     */
after()118cdf0e10cSrcweir     protected void after() {
119cdf0e10cSrcweir         disposeEnvironment();
120cdf0e10cSrcweir     }
121cdf0e10cSrcweir 
122cdf0e10cSrcweir 
123cdf0e10cSrcweir }
124cdf0e10cSrcweir 
125