1*b1cdbd2cSJim Jagielski<!--***********************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski ***********************************************************-->
21*b1cdbd2cSJim Jagielski<HTML>
22*b1cdbd2cSJim Jagielski<HEAD>
23*b1cdbd2cSJim Jagielski<META NAME="GENERATOR" Content="Microsoft Developer Studio">
24*b1cdbd2cSJim Jagielski<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
25*b1cdbd2cSJim Jagielski<TITLE>Document Title</TITLE>
26*b1cdbd2cSJim Jagielski</HEAD>
27*b1cdbd2cSJim Jagielski<BODY id=theBody>
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielski<script language="JScript">
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielskifunction runJScriptTest( Log)
32*b1cdbd2cSJim Jagielski{
33*b1cdbd2cSJim Jagielskidocument.writeln("================================================================================<br>");
34*b1cdbd2cSJim Jagielskidocument.writeln("JScript<br>");
35*b1cdbd2cSJim Jagielskidocument.writeln("================================================================================<p>");
36*b1cdbd2cSJim Jagielski
37*b1cdbd2cSJim Jagielski//var name : String = "Fred";
38*b1cdbd2cSJim Jagielski//print(name);
39*b1cdbd2cSJim Jagielskivar arr= new Array( 1, 2, 3, 4, 0);
40*b1cdbd2cSJim Jagielskivar arrInt= new Array( 1,2,3,4,5);
41*b1cdbd2cSJim Jagielskivar arrDouble= new Array( 1.2345, 12.345, 123.45, 1234.5, 12345);
42*b1cdbd2cSJim Jagielskivar arrBool= new Array( true, false, true, false, true);
43*b1cdbd2cSJim Jagielskivar arrChar= new Array( '1', 'A'," ", 55);
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim Jagielskivar arrString= new Array("hamburger","cheeseburger", "chicken nuggets", "chicken wings" , "pizza");
46*b1cdbd2cSJim Jagielskivar arrAny= new Array( 100, 100.1235,"hallo");
47*b1cdbd2cSJim Jagielskivar arrSeq= new Array( arr, arr, arr);
48*b1cdbd2cSJim Jagielskivar arrSeq2= new Array( );
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielskivar arEventListener= new Array( new XEventListener_Impl(), new XEventListener_Impl(),
51*b1cdbd2cSJim Jagielski	                                new XEventListener_Impl());
52*b1cdbd2cSJim Jagielskivar arEventListener2= new Array( new XEventListener_Impl(), new XEventListener_Impl(),
53*b1cdbd2cSJim Jagielski                                 new XEventListener_Impl());
54*b1cdbd2cSJim Jagielskivar arArEventListener= new Array( arEventListener, arEventListener2);
55*b1cdbd2cSJim Jagielski
56*b1cdbd2cSJim Jagielskivar arObj= new Array();
57*b1cdbd2cSJim Jagielskifor( i=0; i< 3; i++)
58*b1cdbd2cSJim Jagielski{
59*b1cdbd2cSJim Jagielski    arObj[i]= new Object();
60*b1cdbd2cSJim Jagielski}
61*b1cdbd2cSJim Jagielskivar outVal= new Array();
62*b1cdbd2cSJim Jagielskivar outVal2= new Array();
63*b1cdbd2cSJim Jagielskivar outVal3= new Array();
64*b1cdbd2cSJim Jagielski
65*b1cdbd2cSJim Jagielskifor( i=0; i < 3; i++)
66*b1cdbd2cSJim Jagielski{
67*b1cdbd2cSJim Jagielski    arrSeq2[i]= new Array();
68*b1cdbd2cSJim Jagielski    for( j= 0; j < 3; j++)
69*b1cdbd2cSJim Jagielski    {
70*b1cdbd2cSJim Jagielski        arrSeq2[i][j]= new Array();
71*b1cdbd2cSJim Jagielski        for( k= 0; k < 5; k++)
72*b1cdbd2cSJim Jagielski        {
73*b1cdbd2cSJim Jagielski            arrSeq2[i][j][k]= (i * 3 * 5) + (j * 5) + k;
74*b1cdbd2cSJim Jagielski//            document.write(arrSeq2[i][j][k] + " ");
75*b1cdbd2cSJim Jagielski        }
76*b1cdbd2cSJim Jagielski//        document.write("<br>");
77*b1cdbd2cSJim Jagielski    }
78*b1cdbd2cSJim Jagielski}
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielskiret= oletest.methodByte( arr);
82*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
83*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "methodByte");
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielskiret= oletest.methodFloat( arrDouble);
86*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
87*b1cdbd2cSJim JagielskibOk= false;
88*b1cdbd2cSJim Jagielskiif( (arrDouble.length == _ret.length)
89*b1cdbd2cSJim Jagielski    && (_ret[0] > 1.2344 && _ret[0] < 1.2346)
90*b1cdbd2cSJim Jagielski    && (_ret[1] > 12.344 && _ret[1] < 12.346)
91*b1cdbd2cSJim Jagielski    && (_ret[2] > 123.44 && _ret[2] < 123.46)
92*b1cdbd2cSJim Jagielski    && (_ret[3] > 1234.4 && _ret[3] < 1234.6)
93*b1cdbd2cSJim Jagielski    && (_ret[4] > 12344 && _ret[4] < 12346))
94*b1cdbd2cSJim Jagielski    bOk= true;
95*b1cdbd2cSJim JagielskiLog.print( bOk, "methodFloat");
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielskiret= oletest.methodDouble( arrDouble);
98*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
99*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrDouble, _ret), "methodDouble");
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielskiret= oletest.methodBool( arrBool);
102*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
103*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrBool, _ret), "methodBool");
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielskiret= oletest.methodShort( arr);
106*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
107*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "methodShort");
108*b1cdbd2cSJim Jagielski
109*b1cdbd2cSJim Jagielskiret= oletest.methodUShort( arr);
110*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
111*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "methodUShort");
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim Jagielskiret= oletest.methodLong( arr);
114*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
115*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "methodLong");
116*b1cdbd2cSJim Jagielski
117*b1cdbd2cSJim Jagielskiret= oletest.methodULong( arr);
118*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
119*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "methodULong");
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielskiret= oletest.methodChar( arrChar);
122*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
123*b1cdbd2cSJim JagielskibOk= false;
124*b1cdbd2cSJim Jagielskiif( _ret.length == arrChar.length && _ret[0] == 49 && _ret[1] == 65 && _ret[2] == 32 && _ret[3] == 55)
125*b1cdbd2cSJim Jagielski    bOk= true;
126*b1cdbd2cSJim JagielskiLog.print( bOk, "methodChar");
127*b1cdbd2cSJim Jagielski
128*b1cdbd2cSJim Jagielskiret= oletest.methodString( arrString);
129*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
130*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrString, _ret), "methodString");
131*b1cdbd2cSJim Jagielski
132*b1cdbd2cSJim Jagielskiret= oletest.methodAny( arrAny);
133*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
134*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrAny, _ret), "methodAny");
135*b1cdbd2cSJim Jagielski
136*b1cdbd2cSJim Jagielskiret= oletest.methodSequence( arrSeq);
137*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
138*b1cdbd2cSJim Jagielskifor( i=0; i < _ret.length; i++)
139*b1cdbd2cSJim Jagielski{
140*b1cdbd2cSJim Jagielski    sfarray2= new VBArray( _ret[i]);
141*b1cdbd2cSJim Jagielski    var arr2= sfarray2.toArray();
142*b1cdbd2cSJim Jagielski    if( ! isEqualAr(arrSeq[i], arr2))
143*b1cdbd2cSJim Jagielski    {
144*b1cdbd2cSJim Jagielski        bOk= false;
145*b1cdbd2cSJim Jagielski        break;
146*b1cdbd2cSJim Jagielski    }
147*b1cdbd2cSJim Jagielski}
148*b1cdbd2cSJim JagielskiLog.print( bOk, "methodSequence");
149*b1cdbd2cSJim Jagielski
150*b1cdbd2cSJim Jagielskiret= oletest.methodSequence2( arrSeq2);
151*b1cdbd2cSJim Jagielskiarr1= new VBArray( ret).toArray();
152*b1cdbd2cSJim Jagielskifor( i=0; i < arr1.length; i++)
153*b1cdbd2cSJim Jagielski{
154*b1cdbd2cSJim Jagielski    var ar2Dim= arrSeq2[i];
155*b1cdbd2cSJim Jagielski    sfarray2= new VBArray( arr1[i]);
156*b1cdbd2cSJim Jagielski    arr2= sfarray2.toArray();
157*b1cdbd2cSJim Jagielski    for ( j=0; j < arr2.length; j++)
158*b1cdbd2cSJim Jagielski    {
159*b1cdbd2cSJim Jagielski        var ar1Dim= ar2Dim[j];
160*b1cdbd2cSJim Jagielski        sfarray3= new VBArray( arr2[j]);
161*b1cdbd2cSJim Jagielski        arr3= sfarray3.toArray();
162*b1cdbd2cSJim Jagielski//        document.write(arr3[j].toString());
163*b1cdbd2cSJim Jagielski        if( ! isEqualAr( arrSeq2[i][j], arr3))
164*b1cdbd2cSJim Jagielski        {
165*b1cdbd2cSJim Jagielski             bOk= false;
166*b1cdbd2cSJim Jagielski             break;
167*b1cdbd2cSJim Jagielski        }
168*b1cdbd2cSJim Jagielski    }
169*b1cdbd2cSJim Jagielski}
170*b1cdbd2cSJim JagielskiLog.print( bOk, "methodSequence2");
171*b1cdbd2cSJim Jagielski
172*b1cdbd2cSJim Jagielskiret= oletest.methodXInterface( arObj);
173*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
174*b1cdbd2cSJim JagielskibOk= true;
175*b1cdbd2cSJim Jagielskifor(i in _ret)
176*b1cdbd2cSJim Jagielski{
177*b1cdbd2cSJim Jagielski    if( _ret[i] !== arObj[i])
178*b1cdbd2cSJim Jagielski    {
179*b1cdbd2cSJim Jagielski        bOk= false;
180*b1cdbd2cSJim Jagielski        break;
181*b1cdbd2cSJim Jagielski    }
182*b1cdbd2cSJim Jagielski}
183*b1cdbd2cSJim JagielskiLog.print( bOk, "methodXInterface");
184*b1cdbd2cSJim Jagielski
185*b1cdbd2cSJim Jagielski
186*b1cdbd2cSJim Jagielskiret= oletest.methodXEventListeners( arEventListener);
187*b1cdbd2cSJim Jagielski_ret= new VBArray(ret).toArray();
188*b1cdbd2cSJim JagielskibOk= true;
189*b1cdbd2cSJim Jagielskifor ( key in _ret)
190*b1cdbd2cSJim Jagielski{
191*b1cdbd2cSJim Jagielski    if( ! _ret[key].disposingCalled())
192*b1cdbd2cSJim Jagielski    {
193*b1cdbd2cSJim Jagielski        bOk= false;
194*b1cdbd2cSJim Jagielski        break;
195*b1cdbd2cSJim Jagielski    }
196*b1cdbd2cSJim Jagielski}
197*b1cdbd2cSJim JagielskiLog.print( bOk, "methodXEventListeners");
198*b1cdbd2cSJim Jagielski
199*b1cdbd2cSJim Jagielskiret= oletest.methodXEventListenersMul( arArEventListener);
200*b1cdbd2cSJim Jagielski_ret= new VBArray(ret).toArray();
201*b1cdbd2cSJim JagielskibOk= true;
202*b1cdbd2cSJim Jagielskifor( key in _ret)
203*b1cdbd2cSJim Jagielski{
204*b1cdbd2cSJim Jagielski    _ret2= new VBArray(_ret[key]).toArray();
205*b1cdbd2cSJim Jagielski    for( key2 in _ret2)
206*b1cdbd2cSJim Jagielski    {
207*b1cdbd2cSJim Jagielski        if( ! _ret2[key2].disposingCalled())
208*b1cdbd2cSJim Jagielski        {
209*b1cdbd2cSJim Jagielski            bOk= false;
210*b1cdbd2cSJim Jagielski            break;
211*b1cdbd2cSJim Jagielski        }
212*b1cdbd2cSJim Jagielski    }
213*b1cdbd2cSJim Jagielski}
214*b1cdbd2cSJim JagielskiLog.print( bOk, "methodXEventListenersMul");
215*b1cdbd2cSJim Jagielski
216*b1cdbd2cSJim Jagielskidocument.writeln("<br>");
217*b1cdbd2cSJim Jagielskioletest.AttrByte = arr;
218*b1cdbd2cSJim Jagielskiret= oletest.AttrByte;
219*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
220*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "AttrByte");
221*b1cdbd2cSJim Jagielski
222*b1cdbd2cSJim Jagielskioletest.AttrFloat= arrDouble;
223*b1cdbd2cSJim Jagielskiret= oletest.AttrFloat;
224*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
225*b1cdbd2cSJim JagielskibOk= false;
226*b1cdbd2cSJim Jagielskiif( (arrDouble.length == _ret.length)
227*b1cdbd2cSJim Jagielski    && (_ret[0] > 1.2344 && _ret[0] < 1.2346)
228*b1cdbd2cSJim Jagielski    && (_ret[1] > 12.344 && _ret[1] < 12.346)
229*b1cdbd2cSJim Jagielski    && (_ret[2] > 123.44 && _ret[2] < 123.46)
230*b1cdbd2cSJim Jagielski    && (_ret[3] > 1234.4 && _ret[3] < 1234.6)
231*b1cdbd2cSJim Jagielski    && (_ret[4] > 12344 && _ret[4] < 12346))
232*b1cdbd2cSJim Jagielski    bOk= true;
233*b1cdbd2cSJim JagielskiLog.print( bOk, "AttrFloat");
234*b1cdbd2cSJim Jagielski
235*b1cdbd2cSJim Jagielskioletest.AttrDouble= arrDouble;
236*b1cdbd2cSJim Jagielskiret= oletest.AttrDouble;
237*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
238*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrDouble, _ret), "AttrDouble");
239*b1cdbd2cSJim Jagielski
240*b1cdbd2cSJim Jagielskioletest.AttrBool= arrBool;
241*b1cdbd2cSJim Jagielskiret= oletest.AttrBool;
242*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
243*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrBool, _ret), "AttrBool");
244*b1cdbd2cSJim Jagielski
245*b1cdbd2cSJim Jagielskioletest.AttrShort= arr;
246*b1cdbd2cSJim Jagielskiret= oletest.AttrShort;
247*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
248*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "AttrShort");
249*b1cdbd2cSJim Jagielski
250*b1cdbd2cSJim Jagielskioletest.AttrUShort= arr;
251*b1cdbd2cSJim Jagielskiret= oletest.AttrUShort;
252*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
253*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "AttrUShort");
254*b1cdbd2cSJim Jagielski
255*b1cdbd2cSJim Jagielskioletest.AttrLong= arr;
256*b1cdbd2cSJim Jagielskiret= oletest.AttrLong;
257*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
258*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "AttrLong");
259*b1cdbd2cSJim Jagielski
260*b1cdbd2cSJim Jagielskioletest.AttrULong= arr;
261*b1cdbd2cSJim Jagielskiret= oletest.AttrULong;
262*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
263*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arr, _ret), "AttrULong");
264*b1cdbd2cSJim Jagielski
265*b1cdbd2cSJim Jagielskioletest.AttrChar= arrChar;
266*b1cdbd2cSJim Jagielskiret= oletest.AttrChar;
267*b1cdbd2cSJim Jagielski_ret= new VBArray(ret).toArray();
268*b1cdbd2cSJim JagielskibOk= false;
269*b1cdbd2cSJim Jagielskiif( _ret.length == arrChar.length && _ret[0] == 49 && _ret[1] == 65 && _ret[2] == 32 && _ret[3] == 55)
270*b1cdbd2cSJim Jagielski    bOk= true;
271*b1cdbd2cSJim JagielskiLog.print( bOk, "AttrChar");
272*b1cdbd2cSJim Jagielski
273*b1cdbd2cSJim Jagielskioletest.AttrString= arrString;
274*b1cdbd2cSJim Jagielskiret= oletest.AttrString;
275*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
276*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrString, _ret), "AttrString");
277*b1cdbd2cSJim Jagielski
278*b1cdbd2cSJim Jagielskioletest.AttrAny= arrAny;
279*b1cdbd2cSJim Jagielskiret= oletest.AttrAny;
280*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
281*b1cdbd2cSJim JagielskiLog.print( isEqualAr( arrAny, _ret), "AttrAny");
282*b1cdbd2cSJim Jagielski
283*b1cdbd2cSJim Jagielskioletest.AttrSequence= arrSeq;
284*b1cdbd2cSJim Jagielskiret= oletest.AttrSequence;
285*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
286*b1cdbd2cSJim Jagielskifor( i=0; i < _ret.length; i++)
287*b1cdbd2cSJim Jagielski{
288*b1cdbd2cSJim Jagielski    sfarray2= new VBArray( _ret[i]);
289*b1cdbd2cSJim Jagielski    var arr2= sfarray2.toArray();
290*b1cdbd2cSJim Jagielski    if( ! isEqualAr(arrSeq[i], arr2))
291*b1cdbd2cSJim Jagielski    {
292*b1cdbd2cSJim Jagielski        bOk= false;
293*b1cdbd2cSJim Jagielski        break;
294*b1cdbd2cSJim Jagielski    }
295*b1cdbd2cSJim Jagielski}
296*b1cdbd2cSJim JagielskiLog.print( bOk, "AttrSequence");
297*b1cdbd2cSJim Jagielski
298*b1cdbd2cSJim Jagielskioletest.AttrSequence2= arrSeq2;
299*b1cdbd2cSJim Jagielskiret= oletest.AttrSequence2;
300*b1cdbd2cSJim Jagielskiarr1= new VBArray( ret).toArray();
301*b1cdbd2cSJim Jagielskifor( i=0; i < arr1.length; i++)
302*b1cdbd2cSJim Jagielski{
303*b1cdbd2cSJim Jagielski    var ar2Dim= arrSeq2[i];
304*b1cdbd2cSJim Jagielski    sfarray2= new VBArray( arr1[i]);
305*b1cdbd2cSJim Jagielski    arr2= sfarray2.toArray();
306*b1cdbd2cSJim Jagielski    for ( j=0; j < arr2.length; j++)
307*b1cdbd2cSJim Jagielski    {
308*b1cdbd2cSJim Jagielski        var ar1Dim= ar2Dim[j];
309*b1cdbd2cSJim Jagielski        sfarray3= new VBArray( arr2[j]);
310*b1cdbd2cSJim Jagielski        arr3= sfarray3.toArray();
311*b1cdbd2cSJim Jagielski        if( ! isEqualAr( arrSeq2[i][j], arr3))
312*b1cdbd2cSJim Jagielski        {
313*b1cdbd2cSJim Jagielski             bOk= false;
314*b1cdbd2cSJim Jagielski             break;
315*b1cdbd2cSJim Jagielski        }
316*b1cdbd2cSJim Jagielski    }
317*b1cdbd2cSJim Jagielski}
318*b1cdbd2cSJim JagielskiLog.print( bOk, "AttrSequence2");
319*b1cdbd2cSJim Jagielski
320*b1cdbd2cSJim Jagielskioletest.AttrXInterface= arObj;
321*b1cdbd2cSJim Jagielskiret= oletest.AttrXInterface;
322*b1cdbd2cSJim Jagielski_ret= new VBArray( ret).toArray();
323*b1cdbd2cSJim JagielskibOk= true;
324*b1cdbd2cSJim Jagielskifor(i in _ret)
325*b1cdbd2cSJim Jagielski{
326*b1cdbd2cSJim Jagielski    if( _ret[i] !== arObj[i])
327*b1cdbd2cSJim Jagielski    {
328*b1cdbd2cSJim Jagielski        bOk= false;
329*b1cdbd2cSJim Jagielski        break;
330*b1cdbd2cSJim Jagielski    }
331*b1cdbd2cSJim Jagielski}
332*b1cdbd2cSJim JagielskiLog.print( bOk, "AttrXInterface");
333*b1cdbd2cSJim Jagielski
334*b1cdbd2cSJim Jagielskiret= oletest.methodXInterface( arObj);
335*b1cdbd2cSJim Jagielski_ret= new VBArray( ret);
336*b1cdbd2cSJim Jagielski_ret= _ret.toArray();
337*b1cdbd2cSJim JagielskibOk= true;
338*b1cdbd2cSJim Jagielskifor(i in _ret)
339*b1cdbd2cSJim Jagielski{
340*b1cdbd2cSJim Jagielski    if( _ret[i] !== arObj[i])
341*b1cdbd2cSJim Jagielski    {
342*b1cdbd2cSJim Jagielski        bOk= false;
343*b1cdbd2cSJim Jagielski        break;
344*b1cdbd2cSJim Jagielski    }
345*b1cdbd2cSJim Jagielski}
346*b1cdbd2cSJim JagielskiLog.print( bOk, "methodXInterface");
347*b1cdbd2cSJim Jagielski//======================================================================================
348*b1cdbd2cSJim Jagielskidocument.writeln("<br>");
349*b1cdbd2cSJim Jagielskivar inVal, outVal, retVal;
350*b1cdbd2cSJim JagielskioutVal = new Array();
351*b1cdbd2cSJim Jagielski
352*b1cdbd2cSJim JagielskiinVal = 77;
353*b1cdbd2cSJim JagielskiretVal = oletest.in_methodByte(inVal)
354*b1cdbd2cSJim Jagielskioletest.testout_methodByte( outVal );
355*b1cdbd2cSJim JagielskiLog.print( retVal == inVal, "in_methodByte");
356*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodByte");
357*b1cdbd2cSJim Jagielski
358*b1cdbd2cSJim JagielskiinVal = 3.14
359*b1cdbd2cSJim JagielskiretVal = oletest.in_methodFloat(inVal);
360*b1cdbd2cSJim Jagielskioletest.testout_methodFloat( outVal );
361*b1cdbd2cSJim JagielskiLog.print( retVal > 3.14 && retVal < 3.15, "in_methodFloat");
362*b1cdbd2cSJim JagielskiLog.print( outVal[0] > 3.13 && outVal[0] < 3.15, "testout_methodFloat");
363*b1cdbd2cSJim Jagielski//Log.print( outVal[0] == inVal, "testout_methodFloat");
364*b1cdbd2cSJim Jagielski
365*b1cdbd2cSJim JagielskiretVal = oletest.in_methodDouble(inVal)
366*b1cdbd2cSJim Jagielskioletest.testout_methodDouble( outVal );
367*b1cdbd2cSJim JagielskiLog.print( retVal == inVal, "in_methodDouble");
368*b1cdbd2cSJim JagielskiLog.print( outVal[0] == 3.14, "testout_methodDouble" );
369*b1cdbd2cSJim Jagielski
370*b1cdbd2cSJim JagielskiinVal = true;
371*b1cdbd2cSJim JagielskiretVal = oletest.in_methodBool(inVal);
372*b1cdbd2cSJim Jagielskioletest.testout_methodBool( outVal );
373*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodBool");
374*b1cdbd2cSJim JagielskiLog.print( outVal[0] == true, "testout_methodBool");
375*b1cdbd2cSJim Jagielski
376*b1cdbd2cSJim JagielskiinVal = 111
377*b1cdbd2cSJim JagielskiretVal = oletest.in_methodShort(inVal);
378*b1cdbd2cSJim Jagielskioletest.testout_methodShort( outVal );
379*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodShort");
380*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodShort");
381*b1cdbd2cSJim Jagielski
382*b1cdbd2cSJim JagielskiretVal = oletest.in_methodUShort(inVal);
383*b1cdbd2cSJim Jagielskioletest.testout_methodUShort( outVal );
384*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodUShort");
385*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodUShort");
386*b1cdbd2cSJim Jagielski
387*b1cdbd2cSJim JagielskiretVal = oletest.in_methodLong(inVal);
388*b1cdbd2cSJim Jagielskioletest.testout_methodLong( outVal );
389*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodLong");
390*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodLong");
391*b1cdbd2cSJim Jagielski
392*b1cdbd2cSJim JagielskiretVal = oletest.in_methodULong(inVal);
393*b1cdbd2cSJim Jagielskioletest.testout_methodULong( outVal );
394*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodULong");
395*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodULong");
396*b1cdbd2cSJim Jagielski
397*b1cdbd2cSJim JagielskiretVal = oletest.in_methodChar(inVal);
398*b1cdbd2cSJim Jagielskioletest.testout_methodChar( outVal );
399*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodChar");
400*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodChar");
401*b1cdbd2cSJim Jagielski
402*b1cdbd2cSJim JagielskiinVal = "Hello World";
403*b1cdbd2cSJim JagielskiretVal = oletest.in_methodString(inVal);
404*b1cdbd2cSJim Jagielskioletest.testout_methodString( outVal );
405*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodString");
406*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodString");
407*b1cdbd2cSJim Jagielski
408*b1cdbd2cSJim JagielskiretVal = oletest.in_methodAny(inVal);
409*b1cdbd2cSJim Jagielskioletest.testout_methodAny( outVal );
410*b1cdbd2cSJim JagielskiLog.print(retVal == inVal, "in_methodAny");
411*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testout_methodAny");
412*b1cdbd2cSJim Jagielski
413*b1cdbd2cSJim JagielskiinVal =  new Object();
414*b1cdbd2cSJim JagielskiretVal = oletest.in_methodXInterface(inVal);
415*b1cdbd2cSJim Jagielskioletest.testout_methodXInterface(outVal);
416*b1cdbd2cSJim JagielskiLog.print(retVal === inVal, "in_methodXInterface");
417*b1cdbd2cSJim JagielskiLog.print(outVal[0] === inVal, "testout_methodXInterface");
418*b1cdbd2cSJim Jagielski
419*b1cdbd2cSJim JagielskiinVal =  oletest;
420*b1cdbd2cSJim JagielskiretVal = oletest.in_methodXInterface(inVal);
421*b1cdbd2cSJim Jagielskioletest.testout_methodXInterface(outVal);
422*b1cdbd2cSJim JagielskiLog.print(retVal === inVal, "in_methodXInterface");
423*b1cdbd2cSJim JagielskiLog.print(outVal[0] === inVal, "testout_methodXInterface");
424*b1cdbd2cSJim Jagielski
425*b1cdbd2cSJim Jagielski
426*b1cdbd2cSJim Jagielskioletest.testout_methodSequence( outVal );
427*b1cdbd2cSJim Jagielskivar arr= new VBArray( outVal[0]).toArray();
428*b1cdbd2cSJim JagielskiLog.print( isEqualAr(arr, new Array( 0,1,2,3,4,5,6,7,8,9)), "testout_methodSequence");
429*b1cdbd2cSJim Jagielski
430*b1cdbd2cSJim Jagielskioletest.testout_methodSequence2( outVal );
431*b1cdbd2cSJim Jagielskivar arr= new VBArray( outVal[0]).toArray();
432*b1cdbd2cSJim JagielskibOk= true;
433*b1cdbd2cSJim Jagielskiif( arr.length= 10)
434*b1cdbd2cSJim Jagielski{
435*b1cdbd2cSJim Jagielski    for( i=0; i < arr.length; i++)
436*b1cdbd2cSJim Jagielski    {
437*b1cdbd2cSJim Jagielski        var arr2= new VBArray( arr[i]).toArray();
438*b1cdbd2cSJim Jagielski        if( ! isEqualAr( arr2, new Array( 0,1,2,3,4,5,6,7,8,9)))
439*b1cdbd2cSJim Jagielski        {
440*b1cdbd2cSJim Jagielski            bOk= false;
441*b1cdbd2cSJim Jagielski            break;
442*b1cdbd2cSJim Jagielski        }
443*b1cdbd2cSJim Jagielski    }
444*b1cdbd2cSJim Jagielski}
445*b1cdbd2cSJim JagielskiLog.print( bOk, "testout_methodSequence2");
446*b1cdbd2cSJim Jagielski
447*b1cdbd2cSJim Jagielskioletest.testout_methodMulParams1( outVal, outVal2 );
448*b1cdbd2cSJim JagielskiLog.print( outVal[0] == 999 && outVal2[0] == 1111, "testout_methodMulParams1");
449*b1cdbd2cSJim Jagielski
450*b1cdbd2cSJim Jagielskioletest.testout_methodMulParams2( outVal, outVal2, outVal3 );
451*b1cdbd2cSJim JagielskiLog.print( outVal[0] == 1111 && outVal2[0] == 1222 && outVal3[0] == " another string",
452*b1cdbd2cSJim Jagielski     "testout_methodMulParams2");
453*b1cdbd2cSJim Jagielski
454*b1cdbd2cSJim Jagielskioletest.testout_methodMulParams3( "hallo", outVal );
455*b1cdbd2cSJim JagielskiLog.print( outVal[0] == "Out Hallo!", "testout_methodMulParams3");
456*b1cdbd2cSJim Jagielski
457*b1cdbd2cSJim Jagielskivar in1= 3.14;
458*b1cdbd2cSJim Jagielskivar in2= 1111;
459*b1cdbd2cSJim Jagielskivar in3= -2222;
460*b1cdbd2cSJim Jagielskioletest.testout_methodMulParams4( in1, outVal, in2, outVal2, in3 );
461*b1cdbd2cSJim JagielskiLog.print( (outVal[0] > 4.13 && outVal[0] < 4.15) && (outVal2[0] == 1112), "testout_methodMulParams4");
462*b1cdbd2cSJim Jagielski
463*b1cdbd2cSJim Jagielskidocument.writeln("<p>");
464*b1cdbd2cSJim Jagielski
465*b1cdbd2cSJim JagielskiinVal = 100;
466*b1cdbd2cSJim JagielskioutVal[0]= inVal;
467*b1cdbd2cSJim Jagielskioletest.testinout_methodByte( outVal );
468*b1cdbd2cSJim Jagielskioletest.testinout_methodByte( outVal );
469*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodByte");
470*b1cdbd2cSJim Jagielski
471*b1cdbd2cSJim JagielskiinVal = 3.14;
472*b1cdbd2cSJim JagielskioutVal[0]= inVal;
473*b1cdbd2cSJim Jagielskioletest.testinout_methodFloat( outVal );
474*b1cdbd2cSJim Jagielskioletest.testinout_methodFloat( outVal );
475*b1cdbd2cSJim JagielskiLog.print( outVal[0] > 3.13 && outVal[0] < 3.15, "testinout_methodFloat");
476*b1cdbd2cSJim Jagielski
477*b1cdbd2cSJim JagielskiinVal = 3.14
478*b1cdbd2cSJim JagielskioutVal[0]= inVal;
479*b1cdbd2cSJim Jagielskioletest.testinout_methodDouble( outVal );
480*b1cdbd2cSJim Jagielskioletest.testinout_methodDouble( outVal );
481*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodDouble");
482*b1cdbd2cSJim Jagielski
483*b1cdbd2cSJim JagielskiinVal = true;
484*b1cdbd2cSJim JagielskioutVal[0]= inVal;
485*b1cdbd2cSJim Jagielskioletest.testinout_methodBool( outVal );
486*b1cdbd2cSJim Jagielskioletest.testinout_methodBool( outVal );
487*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodBool");
488*b1cdbd2cSJim Jagielski
489*b1cdbd2cSJim JagielskiinVal = 200;
490*b1cdbd2cSJim JagielskioutVal[0]= inVal;
491*b1cdbd2cSJim Jagielskioletest.testinout_methodShort( outVal );
492*b1cdbd2cSJim Jagielskioletest.testinout_methodShort( outVal );
493*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodShort");
494*b1cdbd2cSJim Jagielski
495*b1cdbd2cSJim JagielskiinVal = 300;
496*b1cdbd2cSJim JagielskioutVal[0]= inVal;
497*b1cdbd2cSJim Jagielskioletest.testinout_methodUShort( outVal );
498*b1cdbd2cSJim Jagielskioletest.testinout_methodUShort( outVal );
499*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodUShort");
500*b1cdbd2cSJim Jagielski
501*b1cdbd2cSJim JagielskiinVal = 400
502*b1cdbd2cSJim JagielskioutVal[0]= inVal;
503*b1cdbd2cSJim Jagielskioletest.testinout_methodLong( outVal );
504*b1cdbd2cSJim Jagielskioletest.testinout_methodLong( outVal );
505*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodLong");
506*b1cdbd2cSJim Jagielski
507*b1cdbd2cSJim JagielskiinVal = 500;
508*b1cdbd2cSJim JagielskioutVal[0]= inVal;
509*b1cdbd2cSJim Jagielskioletest.testinout_methodULong( outVal );
510*b1cdbd2cSJim Jagielskioletest.testinout_methodULong( outVal );
511*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodULong");
512*b1cdbd2cSJim Jagielski
513*b1cdbd2cSJim JagielskiinVal = "B";
514*b1cdbd2cSJim JagielskioutVal[0]= inVal;
515*b1cdbd2cSJim Jagielskioletest.testinout_methodChar( outVal );
516*b1cdbd2cSJim Jagielskioletest.testinout_methodChar( outVal );
517*b1cdbd2cSJim Jagielski
518*b1cdbd2cSJim JagielskiLog.print( outVal[0] == 66, "testinout_methodChar");
519*b1cdbd2cSJim Jagielski
520*b1cdbd2cSJim JagielskiinVal = "Hello World 2!";
521*b1cdbd2cSJim JagielskioutVal[0]= inVal;
522*b1cdbd2cSJim Jagielskioletest.testinout_methodString( outVal );
523*b1cdbd2cSJim Jagielskioletest.testinout_methodString( outVal );
524*b1cdbd2cSJim JagielskiLog.print( outVal[0] == inVal, "testinout_methodString");
525*b1cdbd2cSJim Jagielski
526*b1cdbd2cSJim JagielskiinVal = new Object();
527*b1cdbd2cSJim JagielskioutVal[0]= inVal;
528*b1cdbd2cSJim Jagielskioletest.testinout_methodAny( outVal );
529*b1cdbd2cSJim Jagielskioletest.testinout_methodAny( outVal );
530*b1cdbd2cSJim JagielskiLog.print( outVal[0] === inVal, "testinout_methodAny");
531*b1cdbd2cSJim Jagielski
532*b1cdbd2cSJim JagielskiinVal = arrInt;
533*b1cdbd2cSJim JagielskioutVal[0] = inVal;
534*b1cdbd2cSJim Jagielskioletest.testinout_methodSequence( outVal );
535*b1cdbd2cSJim Jagielskioletest.testinout_methodSequence( outVal );
536*b1cdbd2cSJim JagielskiretVal = new VBArray(outVal[0]).toArray();
537*b1cdbd2cSJim Jagielski
538*b1cdbd2cSJim JagielskiLog.print( isEqualAr(retVal, new Array(3,4,5,6,7)), "testinout_methodSequence");
539*b1cdbd2cSJim Jagielski
540*b1cdbd2cSJim Jagielski
541*b1cdbd2cSJim JagielskioutVal[0]= arrSeq;
542*b1cdbd2cSJim Jagielskioletest.testinout_methodSequence2( outVal );
543*b1cdbd2cSJim Jagielskivar arr= new VBArray( outVal[0]).toArray();
544*b1cdbd2cSJim Jagielskivar i;
545*b1cdbd2cSJim JagielskibOk= true;
546*b1cdbd2cSJim Jagielskiif( arr.length == 3)
547*b1cdbd2cSJim Jagielski{
548*b1cdbd2cSJim Jagielski    var tmpArr= new Array(2,4,6,8,0);
549*b1cdbd2cSJim Jagielski    for( i=0; i < arr.length; i++)
550*b1cdbd2cSJim Jagielski    {
551*b1cdbd2cSJim Jagielski        var arr2= new VBArray( arr[i]).toArray();
552*b1cdbd2cSJim Jagielski        if( ! isEqualAr( arr2, tmpArr))
553*b1cdbd2cSJim Jagielski        {
554*b1cdbd2cSJim Jagielski            bOk= false;
555*b1cdbd2cSJim Jagielski            break;
556*b1cdbd2cSJim Jagielski        }
557*b1cdbd2cSJim Jagielski    }
558*b1cdbd2cSJim Jagielski}
559*b1cdbd2cSJim JagielskiLog.print( bOk, "testinout_methodSequence2");
560*b1cdbd2cSJim Jagielski
561*b1cdbd2cSJim Jagielski
562*b1cdbd2cSJim Jagielskivar ob=  new Object();
563*b1cdbd2cSJim Jagielskivar sInVal= "this is a string"
564*b1cdbd2cSJim Jagielskiob.value= sInVal;
565*b1cdbd2cSJim JagielskioutVal[0]= ob;
566*b1cdbd2cSJim Jagielskioletest.testinout_methodXInterface( outVal);
567*b1cdbd2cSJim JagielskiLog.print( outVal[0].value == "out", "testinout_methodXInterface");
568*b1cdbd2cSJim Jagielskidocument.writeln("<p>");
569*b1cdbd2cSJim Jagielski
570*b1cdbd2cSJim Jagielskii= 100;
571*b1cdbd2cSJim Jagielskiret= oletest.methodAnyTest1( i);
572*b1cdbd2cSJim JagielskiLog.print( i == ret, "methodAnyTest1");
573*b1cdbd2cSJim Jagielski
574*b1cdbd2cSJim Jagielskii= 3.14;
575*b1cdbd2cSJim Jagielskiret= oletest.methodAnyTest1( i);
576*b1cdbd2cSJim JagielskiLog.print( i == ret, "methodAnyTest1");
577*b1cdbd2cSJim Jagielski
578*b1cdbd2cSJim Jagielskii= "Hallo"
579*b1cdbd2cSJim Jagielskiret= oletest.methodAnyTest1( i);
580*b1cdbd2cSJim JagielskiLog.print( i == ret, "methodAnyTest1");
581*b1cdbd2cSJim Jagielski
582*b1cdbd2cSJim Jagielskii= arrInt;
583*b1cdbd2cSJim Jagielskiret= oletest.methodAnyTest1( i);
584*b1cdbd2cSJim Jagielskivar arr= new VBArray( ret).toArray();
585*b1cdbd2cSJim JagielskiLog.print( isEqualAr(arr, arrInt), "methodAnyTest1");
586*b1cdbd2cSJim Jagielski
587*b1cdbd2cSJim Jagielskivar obj= new Object();
588*b1cdbd2cSJim Jagielskiret= oletest.methodAnyTest1( obj);
589*b1cdbd2cSJim JagielskiLog.print( obj == ret, "methodAnyTest1");
590*b1cdbd2cSJim Jagielski
591*b1cdbd2cSJim Jagielski
592*b1cdbd2cSJim Jagielskidocument.writeln("<p>");
593*b1cdbd2cSJim Jagielski
594*b1cdbd2cSJim Jagielskii= 100;
595*b1cdbd2cSJim Jagielskioletest.AttrAny2= i;
596*b1cdbd2cSJim Jagielskiret= oletest.AttrAny2;
597*b1cdbd2cSJim JagielskiLog.print( i == ret, "AttrAny2");
598*b1cdbd2cSJim Jagielski
599*b1cdbd2cSJim Jagielskii= 3.14;
600*b1cdbd2cSJim Jagielskioletest.AttrAny2= i;
601*b1cdbd2cSJim Jagielskiret= oletest.AttrAny2;
602*b1cdbd2cSJim JagielskiLog.print( i == ret, "AttrAny2");
603*b1cdbd2cSJim Jagielski
604*b1cdbd2cSJim Jagielskii= "Hallo"
605*b1cdbd2cSJim Jagielskioletest.AttrAny2= i;
606*b1cdbd2cSJim Jagielskiret= oletest.AttrAny2;
607*b1cdbd2cSJim JagielskiLog.print( i == ret, "AttrAny2");
608*b1cdbd2cSJim Jagielski
609*b1cdbd2cSJim Jagielskii= arrInt;
610*b1cdbd2cSJim Jagielskioletest.AttrAny2= i;
611*b1cdbd2cSJim Jagielskiret= oletest.AttrAny2;
612*b1cdbd2cSJim Jagielskivar arr= new VBArray( ret).toArray();
613*b1cdbd2cSJim JagielskiLog.print( isEqualAr(arr, arrInt), "AttrAny2");
614*b1cdbd2cSJim Jagielski
615*b1cdbd2cSJim Jagielskivar obj= new Object();
616*b1cdbd2cSJim Jagielskioletest.AttrAny2= obj;
617*b1cdbd2cSJim Jagielskiret= oletest.AttrAny2;
618*b1cdbd2cSJim JagielskiLog.print( obj == ret, "AttrAny2");
619*b1cdbd2cSJim Jagielski
620*b1cdbd2cSJim Jagielski
621*b1cdbd2cSJim Jagielskidocument.writeln("<p>");
622*b1cdbd2cSJim Jagielski// Structs ----------------------------------------------
623*b1cdbd2cSJim Jagielski
624*b1cdbd2cSJim Jagielski/* var struct= oletest._GetStruct("com.sun.star.beans.Property"); */
625*b1cdbd2cSJim Jagielski/* struct.Attributes= 1; */
626*b1cdbd2cSJim Jagielski/* struct.Handle= 2; */
627*b1cdbd2cSJim Jagielski/* struct.Name= "some Property" */
628*b1cdbd2cSJim Jagielski/* oletest.methodStruct( struct); */
629*b1cdbd2cSJim Jagielski
630*b1cdbd2cSJim Jagielskivar ret= oletest.retMethodStruct();
631*b1cdbd2cSJim JagielskiLog.print( ret.Attributes == 127 && ret.Handle == 255 && ret.Name == "OleTest_Property", "retMethodStruct");
632*b1cdbd2cSJim Jagielski
633*b1cdbd2cSJim Jagielskivar astruct= oletest._GetStruct("com.sun.star.beans.Property");
634*b1cdbd2cSJim Jagielskiastruct.Attributes= 1;
635*b1cdbd2cSJim Jagielskiastruct.Handle= 2;
636*b1cdbd2cSJim Jagielskiastruct.Name= "some Property"
637*b1cdbd2cSJim Jagielskioletest.AttrStruct=  astruct;
638*b1cdbd2cSJim Jagielski
639*b1cdbd2cSJim Jagielskivar ret= oletest.AttrStruct;
640*b1cdbd2cSJim JagielskiLog.print( ret.Attributes == 127 && ret.Handle == 255 && ret.Name == "OleTest_Property", "AttrStruct");
641*b1cdbd2cSJim Jagielski
642*b1cdbd2cSJim Jagielski// The function returns the struct. Since structs are passed by value the returned struct
643*b1cdbd2cSJim Jagielski// will be wrapped in another IDispatch object
644*b1cdbd2cSJim Jagielskiastruct.Attributes= 1;
645*b1cdbd2cSJim Jagielskiastruct.Handle= 2;
646*b1cdbd2cSJim Jagielskiastruct.Name= "Property";
647*b1cdbd2cSJim Jagielskiret= oletest.methodStruct2( astruct);
648*b1cdbd2cSJim JagielskiLog.print( ret.Attributes == 1 && ret.Handle == 2 && ret.Name == "Property", "methodStruct2");
649*b1cdbd2cSJim Jagielski
650*b1cdbd2cSJim Jagielski
651*b1cdbd2cSJim Jagielskidocument.writeln("<p>");
652*b1cdbd2cSJim Jagielski// Test Identity from COM objects in UNO
653*b1cdbd2cSJim Jagielskivar listener1= new XEventListener_Impl();
654*b1cdbd2cSJim Jagielskioletest.setObject(listener1);
655*b1cdbd2cSJim Jagielskiret= oletest.isSame(listener1);
656*b1cdbd2cSJim JagielskiLog.print2( ret, "Ok Testing identity of COM objects<br>","Failed Testing identity of COM objects<br>");
657*b1cdbd2cSJim Jagielski
658*b1cdbd2cSJim Jagielskivar oletest2= oletest.getThis();
659*b1cdbd2cSJim Jagielskiret= oletest === oletest2;
660*b1cdbd2cSJim JagielskiLog.print2(ret, "Ok Testing identity of UNO objects<br>","Failed Testing identity of UNO objects<br>");
661*b1cdbd2cSJim Jagielski}
662*b1cdbd2cSJim Jagielski
663*b1cdbd2cSJim Jagielski
664*b1cdbd2cSJim Jagielski
665*b1cdbd2cSJim Jagielski
666*b1cdbd2cSJim Jagielskifunction isEqualAr( ar1, ar2)
667*b1cdbd2cSJim Jagielski{
668*b1cdbd2cSJim Jagielski    var bOk= false;
669*b1cdbd2cSJim Jagielski    if( ar1.length == ar2.length)
670*b1cdbd2cSJim Jagielski    {
671*b1cdbd2cSJim Jagielski        bOk= true;
672*b1cdbd2cSJim Jagielski        for( x in ar1)
673*b1cdbd2cSJim Jagielski        {
674*b1cdbd2cSJim Jagielski//            document.writeln( ar1[x] + " ");
675*b1cdbd2cSJim Jagielski//             document.writeln( ar2[x] + " ");
676*b1cdbd2cSJim Jagielski            if( ar1[x] != ar2[x])
677*b1cdbd2cSJim Jagielski            {
678*b1cdbd2cSJim Jagielski                bOk= false;
679*b1cdbd2cSJim Jagielski                break;
680*b1cdbd2cSJim Jagielski            }
681*b1cdbd2cSJim Jagielski        }
682*b1cdbd2cSJim Jagielski    }
683*b1cdbd2cSJim Jagielski    return bOk;
684*b1cdbd2cSJim Jagielski}
685*b1cdbd2cSJim Jagielski
686*b1cdbd2cSJim Jagielski/* function isEqualAr2( ar1, ar2) */
687*b1cdbd2cSJim Jagielski/* { */
688*b1cdbd2cSJim Jagielski
689*b1cdbd2cSJim Jagielski/*     var bOk= false; */
690*b1cdbd2cSJim Jagielski/*     if( ar1.length == ar2.length) */
691*b1cdbd2cSJim Jagielski/*     { */
692*b1cdbd2cSJim Jagielski/*         bOk= true; */
693*b1cdbd2cSJim Jagielski/*         for( x in ar1) */
694*b1cdbd2cSJim Jagielski/*         { */
695*b1cdbd2cSJim Jagielski/*             document.write( ar1[x]); */
696*b1cdbd2cSJim Jagielski/*             document.write( ar2[x]); */
697*b1cdbd2cSJim Jagielski/*             if( ! isEqualAr( ar1[x], ar2[x])) */
698*b1cdbd2cSJim Jagielski/*            { */
699*b1cdbd2cSJim Jagielski/*                bOk= false; */
700*b1cdbd2cSJim Jagielski/*                break; */
701*b1cdbd2cSJim Jagielski/*            } */
702*b1cdbd2cSJim Jagielski/*         } */
703*b1cdbd2cSJim Jagielski/*     } */
704*b1cdbd2cSJim Jagielski/*     return bOk; */
705*b1cdbd2cSJim Jagielski
706*b1cdbd2cSJim Jagielski/* } */
707*b1cdbd2cSJim Jagielski
708*b1cdbd2cSJim Jagielskifunction XEventListener_Impl()
709*b1cdbd2cSJim Jagielski{
710*b1cdbd2cSJim Jagielski	this._environment= "JScript";
711*b1cdbd2cSJim Jagielski	this._implementedInterfaces= new Array( "com.sun.star.lang.XEventListener");
712*b1cdbd2cSJim Jagielski
713*b1cdbd2cSJim Jagielski	//XEventListener
714*b1cdbd2cSJim Jagielski	this.disposing= XEventListener_disposing;
715*b1cdbd2cSJim Jagielski
716*b1cdbd2cSJim Jagielski	this.bdisposingCalled= false;
717*b1cdbd2cSJim Jagielski	this.bQuiet= true;
718*b1cdbd2cSJim Jagielski	this.resetDisposing= XEventListener_resetDisposing;
719*b1cdbd2cSJim Jagielski	this.disposingCalled= XEventListener_disposingCalled;
720*b1cdbd2cSJim Jagielski}
721*b1cdbd2cSJim Jagielski
722*b1cdbd2cSJim Jagielskifunction XEventListener_disposing( source)
723*b1cdbd2cSJim Jagielski{
724*b1cdbd2cSJim Jagielski  if( !this.bQuiet)
725*b1cdbd2cSJim Jagielski        alert("JScript Event Listener \n disposing is being called");
726*b1cdbd2cSJim Jagielski  this.bdisposingCalled= true;
727*b1cdbd2cSJim Jagielski}
728*b1cdbd2cSJim Jagielski
729*b1cdbd2cSJim Jagielskifunction XEventListener_resetDisposing()
730*b1cdbd2cSJim Jagielski{
731*b1cdbd2cSJim Jagielski   this.bdisposingCalled= false;
732*b1cdbd2cSJim Jagielski}
733*b1cdbd2cSJim Jagielski
734*b1cdbd2cSJim Jagielskifunction XEventListener_disposingCalled()
735*b1cdbd2cSJim Jagielski{
736*b1cdbd2cSJim Jagielski     return this.bdisposingCalled;
737*b1cdbd2cSJim Jagielski}
738*b1cdbd2cSJim Jagielski</script>
739*b1cdbd2cSJim Jagielski
740*b1cdbd2cSJim Jagielski<script language="VBScript">
741*b1cdbd2cSJim JagielskiFunction runVBTest( Log)
742*b1cdbd2cSJim Jagielskidocument.writeln("================================================================================<br>")
743*b1cdbd2cSJim Jagielskidocument.writeln("VB Script<br>")
744*b1cdbd2cSJim Jagielskidocument.writeln("================================================================================<p>")
745*b1cdbd2cSJim Jagielski
746*b1cdbd2cSJim JagielskiDim arrInt
747*b1cdbd2cSJim JagielskiarrInt= Array(1,2,3,-4,-5, 0)
748*b1cdbd2cSJim JagielskiarrUInt= Array(1,2,3,4,5)
749*b1cdbd2cSJim JagielskiarrDouble= Array( 1.2345, 12.345, 123.45, 1234.5, 12345)
750*b1cdbd2cSJim JagielskiarrBool= Array( true, false, true, false, true)
751*b1cdbd2cSJim JagielskiarrChar= Array("A","B",67)
752*b1cdbd2cSJim JagielskiarrString= Array("hamburger","cheeseburger", "chicken nuggets", "chicken wings" , "pizza")
753*b1cdbd2cSJim JagielskiarrAny=  Array( 100, 100.1235,"hallo")
754*b1cdbd2cSJim Jagielski
755*b1cdbd2cSJim Jagielski
756*b1cdbd2cSJim JagielskiDim arrDim2Int(2,1)
757*b1cdbd2cSJim JagielskiDim i,j,k
758*b1cdbd2cSJim JagielskiFor i= 0 To 1
759*b1cdbd2cSJim Jagielski  For j= 0 To 2
760*b1cdbd2cSJim Jagielski    arrDim2Int(j,i) = i*3 + j
761*b1cdbd2cSJim Jagielski  Next
762*b1cdbd2cSJim JagielskiNext
763*b1cdbd2cSJim Jagielski
764*b1cdbd2cSJim Jagielski
765*b1cdbd2cSJim JagielskiDim arrDim3Int(3,2,1)
766*b1cdbd2cSJim JagielskiFor i= 0 To 1
767*b1cdbd2cSJim Jagielski  For j= 0 To 2
768*b1cdbd2cSJim Jagielski    For k= 0 To 3
769*b1cdbd2cSJim Jagielski      arrDim3Int(k,j,i)= i* 3 + j* 4 + k
770*b1cdbd2cSJim Jagielski    Next
771*b1cdbd2cSJim Jagielski  Next
772*b1cdbd2cSJim JagielskiNext
773*b1cdbd2cSJim Jagielski
774*b1cdbd2cSJim JagielskiDim arrXEvent(2)
775*b1cdbd2cSJim JagielskiFor i= 0 To 2
776*b1cdbd2cSJim Jagielski  Set arrXEvent(i)= new VBEventListener
777*b1cdbd2cSJim JagielskiNext
778*b1cdbd2cSJim Jagielski
779*b1cdbd2cSJim JagielskiDim arrXEvent2(2,1)
780*b1cdbd2cSJim JagielskiFor i= 0 To 1
781*b1cdbd2cSJim Jagielski  For j= 0 To 2
782*b1cdbd2cSJim Jagielski   Set arrXEvent2(j,i)= new VBEventListener
783*b1cdbd2cSJim Jagielski  Next
784*b1cdbd2cSJim JagielskiNext
785*b1cdbd2cSJim Jagielski
786*b1cdbd2cSJim Jagielski
787*b1cdbd2cSJim Jagielski
788*b1cdbd2cSJim Jagielskiret= oletest.methodByte( arrUInt)
789*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrUInt), "methodByte"
790*b1cdbd2cSJim Jagielski
791*b1cdbd2cSJim Jagielskiret= oletest.methodFloat( arrDouble)
792*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrDouble), "methodFloat"
793*b1cdbd2cSJim Jagielski
794*b1cdbd2cSJim Jagielskiret= oletest.methodDouble( arrDouble)
795*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrDouble), "methodDouble"
796*b1cdbd2cSJim Jagielski
797*b1cdbd2cSJim Jagielskiret= oletest.methodBool( arrBool)
798*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrBool), "methodBool"
799*b1cdbd2cSJim Jagielski
800*b1cdbd2cSJim Jagielskiret= oletest.methodShort( arrInt)
801*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrInt), "methodShort"
802*b1cdbd2cSJim Jagielski
803*b1cdbd2cSJim Jagielskiret= oletest.methodUShort( arrUInt)
804*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrUInt), "methodUShort"
805*b1cdbd2cSJim Jagielski
806*b1cdbd2cSJim Jagielskiret= oletest.methodLong( arrInt)
807*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrInt), "methodLong"
808*b1cdbd2cSJim Jagielski
809*b1cdbd2cSJim Jagielskiret= oletest.methodULong( arrUInt)
810*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrUInt), "methodULong"
811*b1cdbd2cSJim Jagielski
812*b1cdbd2cSJim Jagielskiret= oletest.methodChar( arrChar)
813*b1cdbd2cSJim JagielskibOk= false
814*b1cdbd2cSJim Jagielskiif ret(0) = 65 AND ret(1) = 66 AND ret(2) = 67 then
815*b1cdbd2cSJim Jagielski    bOk= true
816*b1cdbd2cSJim Jagielskiend if
817*b1cdbd2cSJim JagielskiLog.print bOk, "methodChar"
818*b1cdbd2cSJim Jagielski
819*b1cdbd2cSJim Jagielskiret= oletest.methodString( arrString)
820*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrString), "methodString"
821*b1cdbd2cSJim Jagielski
822*b1cdbd2cSJim Jagielskiret= oletest.methodAny( arrAny)
823*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( ret, arrAny), "methodAny"
824*b1cdbd2cSJim Jagielski
825*b1cdbd2cSJim Jagielski
826*b1cdbd2cSJim Jagielskiret= oletest.methodSequence( arrDim2Int)
827*b1cdbd2cSJim JagielskibOk= true
828*b1cdbd2cSJim Jagielski
829*b1cdbd2cSJim JagielskiFor i= 0 To 1
830*b1cdbd2cSJim Jagielski  Dim arr1
831*b1cdbd2cSJim Jagielski  arr1= ret(i)
832*b1cdbd2cSJim Jagielski  For j= 0 To 2
833*b1cdbd2cSJim Jagielski    if arr1(j) <> arrDim2Int(j,i)  then
834*b1cdbd2cSJim Jagielski      bOk= false
835*b1cdbd2cSJim Jagielski      exit for
836*b1cdbd2cSJim Jagielski    end if
837*b1cdbd2cSJim Jagielski  Next
838*b1cdbd2cSJim JagielskiNext
839*b1cdbd2cSJim JagielskiLog.print bOk, "methodSequence"
840*b1cdbd2cSJim Jagielski
841*b1cdbd2cSJim Jagielskiret= oletest.methodSequence2( arrDim3Int)
842*b1cdbd2cSJim Jagielski'arrDim3Int(3,2,1)
843*b1cdbd2cSJim JagielskibOk= true
844*b1cdbd2cSJim JagielskiFor i= 0 To 1
845*b1cdbd2cSJim Jagielski  arr1= ret(i)
846*b1cdbd2cSJim Jagielski  For j= 0 To 2
847*b1cdbd2cSJim Jagielski    arr2= arr1(j)
848*b1cdbd2cSJim Jagielski    For k= 0 To 3
849*b1cdbd2cSJim Jagielski       If arr2(k) <> arrDim3Int(k,j,i) then
850*b1cdbd2cSJim Jagielski         bOk= false
851*b1cdbd2cSJim Jagielski         exit for
852*b1cdbd2cSJim Jagielski       End If
853*b1cdbd2cSJim Jagielski    Next
854*b1cdbd2cSJim Jagielski  Next
855*b1cdbd2cSJim JagielskiNext
856*b1cdbd2cSJim JagielskiLog.print bOk, "methodSequence2"
857*b1cdbd2cSJim Jagielski
858*b1cdbd2cSJim Jagielskiret= oletest.methodXInterface(arrXEvent)
859*b1cdbd2cSJim JagielskibOk= true
860*b1cdbd2cSJim JagielskinumArg= UBound( arrXEvent) - LBound( arrXEvent) + 1
861*b1cdbd2cSJim JagielskinumRet= UBound( ret) - LBound( ret) + 1
862*b1cdbd2cSJim JagielskiIf numArg = numRet then
863*b1cdbd2cSJim Jagielski  For i= 0 To numArg - 1
864*b1cdbd2cSJim Jagielski    If  NOT (arrXEvent(i) Is ret(i))  then
865*b1cdbd2cSJim Jagielski        bOk= false
866*b1cdbd2cSJim Jagielski        Exit For
867*b1cdbd2cSJim Jagielski    End if
868*b1cdbd2cSJim Jagielski  Next
869*b1cdbd2cSJim JagielskiEnd If
870*b1cdbd2cSJim JagielskiLog.print bOk, "methodXInterface"
871*b1cdbd2cSJim Jagielski
872*b1cdbd2cSJim Jagielskiret= oletest.methodXEventListeners( arrXEvent)
873*b1cdbd2cSJim JagielskibOk= true
874*b1cdbd2cSJim JagielskiFor i= 0 To 2
875*b1cdbd2cSJim Jagielski  If arrXEvent(i).disposingCalled = false then
876*b1cdbd2cSJim Jagielski    bOk= false
877*b1cdbd2cSJim Jagielski    Exit For
878*b1cdbd2cSJim Jagielski  End If
879*b1cdbd2cSJim JagielskiNext
880*b1cdbd2cSJim JagielskiLog.print bOk, "methodXEventListeners"
881*b1cdbd2cSJim Jagielski
882*b1cdbd2cSJim Jagielskiret= oletest.methodXEventListenersMul(arrXEvent2)
883*b1cdbd2cSJim JagielskibOk= true
884*b1cdbd2cSJim JagielskiFor i= 0 To 1
885*b1cdbd2cSJim Jagielski  For j= 0 To 2
886*b1cdbd2cSJim Jagielski    If arrXEvent2(j,i).disposingCalled = false then
887*b1cdbd2cSJim Jagielski     bOk= false
888*b1cdbd2cSJim Jagielski     Exit For
889*b1cdbd2cSJim Jagielski   End If
890*b1cdbd2cSJim Jagielski  Next
891*b1cdbd2cSJim JagielskiNext
892*b1cdbd2cSJim JagielskiLog.print bOk, "methodXEventListenersMul"
893*b1cdbd2cSJim Jagielski
894*b1cdbd2cSJim Jagielski' Attributes ------------------------------------------------------
895*b1cdbd2cSJim Jagielskidocument.writeln( "<br>" )
896*b1cdbd2cSJim Jagielskioletest.AttrByte= arrUInt
897*b1cdbd2cSJim Jagielskiret= oletest.AttrByte
898*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrUInt, ret), "AttrByte"
899*b1cdbd2cSJim Jagielski
900*b1cdbd2cSJim Jagielskioletest.AttrFloat= arrDouble
901*b1cdbd2cSJim Jagielskiret= oletest.AttrFloat
902*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrDouble, ret), "AttrFloat"
903*b1cdbd2cSJim Jagielski
904*b1cdbd2cSJim Jagielskioletest.AttrDouble= arrDouble
905*b1cdbd2cSJim Jagielskiret= oletest.AttrDouble
906*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrDouble, ret), "AttrDouble"
907*b1cdbd2cSJim Jagielski
908*b1cdbd2cSJim Jagielskioletest.AttrBool= arrBool
909*b1cdbd2cSJim Jagielskiret= oletest.AttrBool
910*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrBool, ret), "AttrBool"
911*b1cdbd2cSJim Jagielski
912*b1cdbd2cSJim Jagielskioletest.AttrShort= arrInt
913*b1cdbd2cSJim Jagielskiret= oletest.AttrShort
914*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrInt, ret), "AttrShort"
915*b1cdbd2cSJim Jagielski
916*b1cdbd2cSJim Jagielskioletest.AttrUShort= arrUInt
917*b1cdbd2cSJim Jagielskiret= oletest.AttrUShort
918*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrUInt, ret), "AttrUShort"
919*b1cdbd2cSJim Jagielski
920*b1cdbd2cSJim Jagielskioletest.AttrLong= arrInt
921*b1cdbd2cSJim Jagielskiret= oletest.AttrLong
922*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrInt, ret), "AttrLong"
923*b1cdbd2cSJim Jagielski
924*b1cdbd2cSJim Jagielskioletest.AttrULong= arrUInt
925*b1cdbd2cSJim Jagielskiret= oletest.AttrULong
926*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrUInt, ret), "AttrULong"
927*b1cdbd2cSJim Jagielski
928*b1cdbd2cSJim Jagielskioletest.AttrChar= arrChar
929*b1cdbd2cSJim Jagielskiret= oletest.AttrChar
930*b1cdbd2cSJim JagielskibOk= false
931*b1cdbd2cSJim Jagielskiif ret(0) = 65 AND ret(1) = 66 AND ret(2) = 67 then
932*b1cdbd2cSJim Jagielski    bOk= true
933*b1cdbd2cSJim Jagielskiend if
934*b1cdbd2cSJim JagielskiLog.print bOk, "AttrChar"
935*b1cdbd2cSJim Jagielski
936*b1cdbd2cSJim Jagielskioletest.AttrString= arrString
937*b1cdbd2cSJim Jagielskiret= oletest.AttrString
938*b1cdbd2cSJim JagielskiLog.print isEqualVBAr( arrString, ret), "AttrString"
939*b1cdbd2cSJim Jagielski
940*b1cdbd2cSJim Jagielskioletest.AttrSequence= arrDim2Int
941*b1cdbd2cSJim Jagielskiret= oletest.AttrSequence
942*b1cdbd2cSJim JagielskibOk= true
943*b1cdbd2cSJim JagielskiFor i= 0 To 1
944*b1cdbd2cSJim Jagielski  arr1= ret(i)
945*b1cdbd2cSJim Jagielski  For j= 0 To 2
946*b1cdbd2cSJim Jagielski    if arr1(j) <> arrDim2Int(j,i)  then
947*b1cdbd2cSJim Jagielski      bOk= false
948*b1cdbd2cSJim Jagielski      exit for
949*b1cdbd2cSJim Jagielski    end if
950*b1cdbd2cSJim Jagielski  Next
951*b1cdbd2cSJim JagielskiNext
952*b1cdbd2cSJim JagielskiLog.print bOk, "AttrSequence"
953*b1cdbd2cSJim Jagielski
954*b1cdbd2cSJim Jagielskioletest.AttrSequence2= arrDim3Int
955*b1cdbd2cSJim Jagielskiret= oletest.AttrSequence2
956*b1cdbd2cSJim Jagielski'arrDim3Int(3,2,1)
957*b1cdbd2cSJim JagielskibOk= true
958*b1cdbd2cSJim JagielskiFor i= 0 To 1
959*b1cdbd2cSJim Jagielski  arr1= ret(i)
960*b1cdbd2cSJim Jagielski  For j= 0 To 2
961*b1cdbd2cSJim Jagielski    arr2= arr1(j)
962*b1cdbd2cSJim Jagielski    For k= 0 To 3
963*b1cdbd2cSJim Jagielski       If arr2(k) <> arrDim3Int(k,j,i) then
964*b1cdbd2cSJim Jagielski         bOk= false
965*b1cdbd2cSJim Jagielski         exit for
966*b1cdbd2cSJim Jagielski       End If
967*b1cdbd2cSJim Jagielski    Next
968*b1cdbd2cSJim Jagielski  Next
969*b1cdbd2cSJim JagielskiNext
970*b1cdbd2cSJim JagielskiLog.print bOk, "AttrSequence2"
971*b1cdbd2cSJim Jagielski
972*b1cdbd2cSJim Jagielskioletest.AttrXInterface= arrXEvent
973*b1cdbd2cSJim Jagielskiret= oletest.AttrXInterface
974*b1cdbd2cSJim JagielskibOk= true
975*b1cdbd2cSJim JagielskinumArg= UBound( arrXEvent) - LBound( arrXEvent) + 1
976*b1cdbd2cSJim JagielskinumRet= UBound( ret) - LBound( ret) + 1
977*b1cdbd2cSJim JagielskiIf numArg = numRet then
978*b1cdbd2cSJim Jagielski  For i= 0 To numArg - 1
979*b1cdbd2cSJim Jagielski    If  NOT (arrXEvent(i) Is ret(i))  then
980*b1cdbd2cSJim Jagielski        bOk= false
981*b1cdbd2cSJim Jagielski        Exit For
982*b1cdbd2cSJim Jagielski    End if
983*b1cdbd2cSJim Jagielski  Next
984*b1cdbd2cSJim JagielskiEnd If
985*b1cdbd2cSJim JagielskiLog.print bOk, "AttrXInterface"
986*b1cdbd2cSJim Jagielski
987*b1cdbd2cSJim Jagielski'out params ================================================================================
988*b1cdbd2cSJim Jagielskidocument.writeln("<p>")
989*b1cdbd2cSJim JagielskiDim inVal, outVal, retVal
990*b1cdbd2cSJim Jagielski
991*b1cdbd2cSJim JagielskiinVal = 111
992*b1cdbd2cSJim JagielskiretVal = oletest.in_methodByte(inVal)
993*b1cdbd2cSJim Jagielskioletest.testout_methodByte outVal
994*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodByte"
995*b1cdbd2cSJim JagielskiLog.print outVal = inVal, "testout_methodByte"
996*b1cdbd2cSJim Jagielski
997*b1cdbd2cSJim JagielskiinVal = 3.14
998*b1cdbd2cSJim JagielskiretVal = oletest.in_methodFloat(inVal)
999*b1cdbd2cSJim Jagielskioletest.testout_methodFloat outVal
1000*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodFloat"
1001*b1cdbd2cSJim JagielskiLog.print outVal > 3.13 AND outVal < 3.15, "testout_methodFloat"
1002*b1cdbd2cSJim Jagielski
1003*b1cdbd2cSJim JagielskiinVal = 3.14
1004*b1cdbd2cSJim JagielskiretVal = oletest.in_methodDouble(inVal)
1005*b1cdbd2cSJim Jagielskioletest.testout_methodDouble outVal
1006*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodDouble"
1007*b1cdbd2cSJim JagielskiLog.print outVal = 3.14, "testout_methodDouble"
1008*b1cdbd2cSJim Jagielski
1009*b1cdbd2cSJim JagielskiinVal = true
1010*b1cdbd2cSJim JagielskiretVal = oletest.in_methodBool(inVal)
1011*b1cdbd2cSJim Jagielskioletest.testout_methodBool outVal
1012*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodBool"
1013*b1cdbd2cSJim JagielskiLog.print outVal = inVal, "testout_methodBool"
1014*b1cdbd2cSJim Jagielski
1015*b1cdbd2cSJim JagielskiinVal = 222
1016*b1cdbd2cSJim JagielskiretVal = oletest.in_methodShort(inVal)
1017*b1cdbd2cSJim Jagielskioletest.testout_methodShort outVal
1018*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodShort"
1019*b1cdbd2cSJim JagielskiLog.print outVal = inVAl, "testout_methodShort"
1020*b1cdbd2cSJim Jagielski
1021*b1cdbd2cSJim JagielskiinVal = 333
1022*b1cdbd2cSJim JagielskiretVal = oletest.in_methodUShort(inVal)
1023*b1cdbd2cSJim Jagielskioletest.testout_methodUShort outVal
1024*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodUShort"
1025*b1cdbd2cSJim JagielskiLog.print outVal = inVal, "testout_methodUShort"
1026*b1cdbd2cSJim Jagielski
1027*b1cdbd2cSJim JagielskiinVal = 4444
1028*b1cdbd2cSJim JagielskiretVal = oletest.in_methodLong(inVal)
1029*b1cdbd2cSJim Jagielskioletest.testout_methodLong outVal
1030*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodLong"
1031*b1cdbd2cSJim JagielskiLog.print outVal = inVal, "testout_methodLong"
1032*b1cdbd2cSJim Jagielski
1033*b1cdbd2cSJim JagielskiinVal = 5555
1034*b1cdbd2cSJim JagielskiretVal = oletest.in_methodULong(inVal)
1035*b1cdbd2cSJim Jagielskioletest.testout_methodULong outVal
1036*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodULong"
1037*b1cdbd2cSJim JagielskiLog.print outVal = inVal, "testout_methodULong"
1038*b1cdbd2cSJim Jagielski
1039*b1cdbd2cSJim JagielskiinVal = 65
1040*b1cdbd2cSJim JagielskiretVal = oletest.in_methodChar(inVal)
1041*b1cdbd2cSJim Jagielskioletest.testout_methodChar outVal
1042*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodChar"
1043*b1cdbd2cSJim JagielskiLog.print outVal = 65, "testout_methodChar"
1044*b1cdbd2cSJim Jagielski
1045*b1cdbd2cSJim JagielskiinVal = "Hello World 3!"
1046*b1cdbd2cSJim JagielskiretVal = oletest.in_methodString(inVal)
1047*b1cdbd2cSJim Jagielskioletest.testout_methodString outVal
1048*b1cdbd2cSJim JagielskiLog.print inVal = retVal, "in_methodString"
1049*b1cdbd2cSJim JagielskiLog.print outVal = inVal, "testout_methodString"
1050*b1cdbd2cSJim Jagielski
1051*b1cdbd2cSJim JagielskiinVal = "Hello World 4!"
1052*b1cdbd2cSJim JagielskiretVal = oletest.in_methodAny(inVal)
1053*b1cdbd2cSJim Jagielskioletest.testout_methodAny outVal
1054*b1cdbd2cSJim JagielskiLog.print outVal = inVal, "testout_methodAny"
1055*b1cdbd2cSJim Jagielski
1056*b1cdbd2cSJim Jagielskioletest.testout_methodSequence outVal
1057*b1cdbd2cSJim JagielskiLog.print isEqualVBAr(outVal, Array( 0,1,2,3,4,5,6,7,8,9)), "testout_methodSequence"
1058*b1cdbd2cSJim Jagielski
1059*b1cdbd2cSJim Jagielskioletest.testout_methodSequence2 outVal
1060*b1cdbd2cSJim Jagielskicount= UBound( outVal) - LBound( outVal) + 1
1061*b1cdbd2cSJim Jagielskiret= False
1062*b1cdbd2cSJim JagielskiIf count = 10 Then
1063*b1cdbd2cSJim Jagielski  For Each ar In outVal
1064*b1cdbd2cSJim Jagielski    ret= isEqualVBAr(ar, Array( 0,1,2,3,4,5,6,7,8,9))
1065*b1cdbd2cSJim Jagielski    If ret = false Then
1066*b1cdbd2cSJim Jagielski      Exit For
1067*b1cdbd2cSJim Jagielski    End If
1068*b1cdbd2cSJim Jagielski  Next
1069*b1cdbd2cSJim JagielskiEnd If
1070*b1cdbd2cSJim JagielskiLog.print ret, "testout_methodSequence2"
1071*b1cdbd2cSJim Jagielski
1072*b1cdbd2cSJim JagielskioutVal= Empty
1073*b1cdbd2cSJim JagielskioutVal2= Empty
1074*b1cdbd2cSJim Jagielskioletest.testout_methodMulParams1 outVal, outVal2
1075*b1cdbd2cSJim Jagielskiret= false
1076*b1cdbd2cSJim JagielskiIf outVal = 999 AND outVal2 = 1111 Then
1077*b1cdbd2cSJim Jagielski  ret= true
1078*b1cdbd2cSJim JagielskiEnd If
1079*b1cdbd2cSJim JagielskiLog.print ret, "testout_methodMulParams1"
1080*b1cdbd2cSJim Jagielski
1081*b1cdbd2cSJim JagielskioutVal= Empty
1082*b1cdbd2cSJim JagielskioutVal2= Empty
1083*b1cdbd2cSJim JagielskioutVal3= Empty
1084*b1cdbd2cSJim Jagielskioletest.testout_methodMulParams2 outVal, outVal2, outVal3
1085*b1cdbd2cSJim Jagielskiret = false
1086*b1cdbd2cSJim JagielskiIf outVal = 1111 AND outVal2 = 1222 AND outVal3 = " another string" Then
1087*b1cdbd2cSJim Jagielski  ret= true
1088*b1cdbd2cSJim JagielskiEnd If
1089*b1cdbd2cSJim JagielskiLog.print ret, "testout_methodMulParams2"
1090*b1cdbd2cSJim Jagielski
1091*b1cdbd2cSJim Jagielskidocument.writeln("missing: testout_methodMulParams3 <br>")
1092*b1cdbd2cSJim Jagielskidocument.writeln("missing: testout_methodMulParams4 <br>")
1093*b1cdbd2cSJim Jagielski
1094*b1cdbd2cSJim JagielskioutVal= Empty
1095*b1cdbd2cSJim Jagielskioletest.testout_methodXInterface outVal
1096*b1cdbd2cSJim Jagielskiret= false
1097*b1cdbd2cSJim JagielskiIf outVal Is oletest Then
1098*b1cdbd2cSJim Jagielski  ret= true
1099*b1cdbd2cSJim JagielskiEnd If
1100*b1cdbd2cSJim JagielskiLog.print ret, "testout_methodXInterface"
1101*b1cdbd2cSJim Jagielski
1102*b1cdbd2cSJim JagielskiSet outVal= Nothing
1103*b1cdbd2cSJim Jagielskidocument.writeln("missing: testout_methodXInterface <br>")
1104*b1cdbd2cSJim Jagielski
1105*b1cdbd2cSJim JagielskiinVal = 1
1106*b1cdbd2cSJim JagielskioutVal= inVal
1107*b1cdbd2cSJim Jagielskioletest.testinout_methodByte outVal
1108*b1cdbd2cSJim Jagielskioletest.testinout_methodByte outVal
1109*b1cdbd2cSJim JagielskiLog.print inVal = outVal, "testinout_methodByte"
1110*b1cdbd2cSJim Jagielski
1111*b1cdbd2cSJim Jagielski
1112*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodFloat  <br>")
1113*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodDouble  <br>")
1114*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodBool  <br>")
1115*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodShort  <br>")
1116*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodUShort  <br>")
1117*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodLong  <br>")
1118*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodULong  <br>")
1119*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodChar  <br>")
1120*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodString  <br>")
1121*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodAny  <br>")
1122*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodSequence  <br>")
1123*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodSequence2  <br>")
1124*b1cdbd2cSJim Jagielskidocument.writeln("missing: testinout_methodXInterface  <br>")
1125*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1126*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1127*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1128*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1129*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1130*b1cdbd2cSJim Jagielskidocument.writeln("missing: AttrAny2  <br>")
1131*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1132*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1133*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1134*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1135*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodAnyTest1  <br>")
1136*b1cdbd2cSJim Jagielskidocument.writeln("missing: retMethodStruct  <br>")
1137*b1cdbd2cSJim Jagielskidocument.writeln("missing: AttrStruct  <br>")
1138*b1cdbd2cSJim Jagielskidocument.writeln("missing: methodStruct2  <br>")
1139*b1cdbd2cSJim Jagielski
1140*b1cdbd2cSJim Jagielski' Test Identity from COM objects in UNO
1141*b1cdbd2cSJim JagielskiDim listener1
1142*b1cdbd2cSJim JagielskiSet listener1= new VBEventListener
1143*b1cdbd2cSJim Jagielskicall oletest.setObject( listener1)
1144*b1cdbd2cSJim Jagielskiret= oletest.isSame(listener1)
1145*b1cdbd2cSJim JagielskiLog.print2 ret, "Ok Testing identity of COM objects <br>","Failed Testing identity of COM objects<br>"
1146*b1cdbd2cSJim Jagielski' Test identity of UNO objects
1147*b1cdbd2cSJim Jagielski
1148*b1cdbd2cSJim Jagielskiset oletest2= oletest.getThis()
1149*b1cdbd2cSJim Jagielskiret= oletest Is  oletest2
1150*b1cdbd2cSJim JagielskiLog.print2 ret, "Ok Testing identity of UNO objects<br>","Failed Testing identity of UNO objects<br>"
1151*b1cdbd2cSJim Jagielski
1152*b1cdbd2cSJim JagielskiEnd Function
1153*b1cdbd2cSJim Jagielski
1154*b1cdbd2cSJim Jagielski
1155*b1cdbd2cSJim JagielskiFunction isEqualVBAr( arr1, arr2)
1156*b1cdbd2cSJim Jagielski    ret = false
1157*b1cdbd2cSJim Jagielski    s1= UBound( arr1) - LBound( arr1) + 1
1158*b1cdbd2cSJim Jagielski    s2= UBound( arr2) - LBound( arr2) + 1
1159*b1cdbd2cSJim Jagielski
1160*b1cdbd2cSJim Jagielski    if s1 = s2 then
1161*b1cdbd2cSJim Jagielski      ret= true
1162*b1cdbd2cSJim Jagielski      Dim i
1163*b1cdbd2cSJim Jagielski      for i= 0 To s1 - 1
1164*b1cdbd2cSJim Jagielski        if arr1(i) <> arr2(i) then
1165*b1cdbd2cSJim Jagielski          ret= false
1166*b1cdbd2cSJim Jagielski          exit for
1167*b1cdbd2cSJim Jagielski        end if
1168*b1cdbd2cSJim Jagielski      next
1169*b1cdbd2cSJim Jagielski    end if
1170*b1cdbd2cSJim Jagielski    isEqualVBar= ret
1171*b1cdbd2cSJim JagielskiEnd Function
1172*b1cdbd2cSJim Jagielski
1173*b1cdbd2cSJim Jagielski
1174*b1cdbd2cSJim Jagielski'The listener object
1175*b1cdbd2cSJim Jagielski
1176*b1cdbd2cSJim JagielskiClass VBEventListener
1177*b1cdbd2cSJim Jagielski  Dim Bridge_ImplementedInterfaces(0)
1178*b1cdbd2cSJim Jagielski  Dim bDisposingCalled
1179*b1cdbd2cSJim Jagielski
1180*b1cdbd2cSJim Jagielski'XEventListener::disposing
1181*b1cdbd2cSJim Jagielski  Function disposing( source)
1182*b1cdbd2cSJim Jagielski    bDisposingCalled= true
1183*b1cdbd2cSJim Jagielski  End Function
1184*b1cdbd2cSJim Jagielski
1185*b1cdbd2cSJim Jagielski  Sub Class_Initialize()
1186*b1cdbd2cSJim Jagielski    bDisposingCalled= false
1187*b1cdbd2cSJim Jagielski    Bridge_ImplementedInterfaces(0)= "com.sun.star.lang.XEventListener"
1188*b1cdbd2cSJim Jagielski  End Sub
1189*b1cdbd2cSJim Jagielski
1190*b1cdbd2cSJim Jagielski  Function resetDisposing()
1191*b1cdbd2cSJim Jagielski    bDisposingCalled= false
1192*b1cdbd2cSJim Jagielski  End Function
1193*b1cdbd2cSJim Jagielski
1194*b1cdbd2cSJim Jagielski  Function disposingCalled()
1195*b1cdbd2cSJim Jagielski    disposingCalled= bDisposingCalled
1196*b1cdbd2cSJim Jagielski  End Function
1197*b1cdbd2cSJim JagielskiEnd Class
1198*b1cdbd2cSJim Jagielski
1199*b1cdbd2cSJim Jagielski
1200*b1cdbd2cSJim Jagielskisub callBasic(id)
1201*b1cdbd2cSJim Jagielski
1202*b1cdbd2cSJim Jagielski	Dim factory
1203*b1cdbd2cSJim Jagielski	Set	factory= GetObject("", "com.sun.star.ServiceManager")
1204*b1cdbd2cSJim Jagielski
1205*b1cdbd2cSJim Jagielski	Set	oletest= factory.createInstance("oletest.OleTest")
1206*b1cdbd2cSJim Jagielski
1207*b1cdbd2cSJim Jagielski
1208*b1cdbd2cSJim Jagielski	arrInt= Array(1,2,3,4,5)
1209*b1cdbd2cSJim Jagielski	arrInt2= Array( -1, -2, 127, 128, 0)
1210*b1cdbd2cSJim Jagielski	arrDouble= Array(1.1, 2.2, 3.3, 4.4, 5.5)
1211*b1cdbd2cSJim Jagielski	arrBool= Array(0,1,0,2,0)
1212*b1cdbd2cSJim Jagielski	arrLong= Array( &Hff, &Hffff, &Hffffff, &Hffffffff)
1213*b1cdbd2cSJim Jagielski	arrString= Array("Chicken Wings", "Cheeseburger", "Hamburger")
1214*b1cdbd2cSJim Jagielski	arrChar= Array("a",65, "M")
1215*b1cdbd2cSJim Jagielski	arrAny= Array("Mickey", 3.14, 100, "A")
1216*b1cdbd2cSJim Jagielski
1217*b1cdbd2cSJim Jagielski	Dim arrDim2Int(1,2)
1218*b1cdbd2cSJim Jagielski	For i= 0 To 1
1219*b1cdbd2cSJim Jagielski		For j= 0 To 1
1220*b1cdbd2cSJim Jagielski			arrDim2Int(i,j) = i*2 + j
1221*b1cdbd2cSJim Jagielski		Next
1222*b1cdbd2cSJim Jagielski	Next
1223*b1cdbd2cSJim Jagielski
1224*b1cdbd2cSJim Jagielski	Dim arrDim3Int(1,1,1)
1225*b1cdbd2cSJim Jagielski	For i= 0 To 1
1226*b1cdbd2cSJim Jagielski		For j= 0 To 1
1227*b1cdbd2cSJim Jagielski			For k=0 To 1
1228*b1cdbd2cSJim Jagielski				arrDim3Int(i,j,k) = i*2 + j*2 + k
1229*b1cdbd2cSJim Jagielski			Next
1230*b1cdbd2cSJim Jagielski		Next
1231*b1cdbd2cSJim Jagielski	Next
1232*b1cdbd2cSJim Jagielski
1233*b1cdbd2cSJim Jagielski
1234*b1cdbd2cSJim Jagielski	select case id
1235*b1cdbd2cSJim Jagielski
1236*b1cdbd2cSJim Jagielski	// Out Parameter
1237*b1cdbd2cSJim Jagielski
1238*b1cdbd2cSJim Jagielski
1239*b1cdbd2cSJim Jagielski
1240*b1cdbd2cSJim Jagielski // In Out Parameter --------------------------------------------------
1241*b1cdbd2cSJim Jagielski		case 100
1242*b1cdbd2cSJim Jagielski			a= 100
1243*b1cdbd2cSJim Jagielski			document.write "param: " & CStr(  a) & "<br>"
1244*b1cdbd2cSJim Jagielski			oletest.testinout_methodByte a
1245*b1cdbd2cSJim Jagielski			document.write a
1246*b1cdbd2cSJim Jagielski		case 101
1247*b1cdbd2cSJim Jagielski			a= 1.11
1248*b1cdbd2cSJim Jagielski			document.write "param: " & CStr(  a) & "<br>"
1249*b1cdbd2cSJim Jagielski			oletest.testinout_methodDouble a
1250*b1cdbd2cSJim Jagielski			document.write a
1251*b1cdbd2cSJim Jagielski		case 102
1252*b1cdbd2cSJim Jagielski			a= 5
1253*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1254*b1cdbd2cSJim Jagielski			oletest.testinout_methodBool a
1255*b1cdbd2cSJim Jagielski			document.write a
1256*b1cdbd2cSJim Jagielski		case 103
1257*b1cdbd2cSJim Jagielski			a= -10
1258*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1259*b1cdbd2cSJim Jagielski			oletest.testinout_methodShort a
1260*b1cdbd2cSJim Jagielski			document.write a
1261*b1cdbd2cSJim Jagielski		case 104
1262*b1cdbd2cSJim Jagielski			a= 128
1263*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1264*b1cdbd2cSJim Jagielski			oletest.testinout_methodUShort a
1265*b1cdbd2cSJim Jagielski			document.write a
1266*b1cdbd2cSJim Jagielski		case 105
1267*b1cdbd2cSJim Jagielski			a= 65556
1268*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1269*b1cdbd2cSJim Jagielski			oletest.testinout_methodLong a
1270*b1cdbd2cSJim Jagielski			document.write a
1271*b1cdbd2cSJim Jagielski		case 106
1272*b1cdbd2cSJim Jagielski			a= 65556
1273*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1274*b1cdbd2cSJim Jagielski			oletest.testinout_methodULong a
1275*b1cdbd2cSJim Jagielski			document.write a
1276*b1cdbd2cSJim Jagielski		case 107
1277*b1cdbd2cSJim Jagielski			a= "ein test string"
1278*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1279*b1cdbd2cSJim Jagielski			oletest.testinout_methodString a
1280*b1cdbd2cSJim Jagielski			document.write a
1281*b1cdbd2cSJim Jagielski		case 108
1282*b1cdbd2cSJim Jagielski			a= "W"
1283*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1284*b1cdbd2cSJim Jagielski			oletest.testinout_methodChar a
1285*b1cdbd2cSJim Jagielski			document.write a
1286*b1cdbd2cSJim Jagielski		case 109
1287*b1cdbd2cSJim Jagielski			a= "Ein String im Any"
1288*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1289*b1cdbd2cSJim Jagielski			oletest.other_methodAnyIn a
1290*b1cdbd2cSJim Jagielski			document.write a
1291*b1cdbd2cSJim Jagielski
1292*b1cdbd2cSJim Jagielski		case 150
1293*b1cdbd2cSJim Jagielski			dim a
1294*b1cdbd2cSJim Jagielski			document.write "param: "& CStr(  a) & "<br>"
1295*b1cdbd2cSJim Jagielski			oletest.testout_methodByte( a)
1296*b1cdbd2cSJim Jagielski			document.write a
1297*b1cdbd2cSJim Jagielski// Attributes -----------------------------------------------------------------
1298*b1cdbd2cSJim Jagielski		case 200
1299*b1cdbd2cSJim Jagielski			document.write "set: "
1300*b1cdbd2cSJim Jagielski			printArray arrInt
1301*b1cdbd2cSJim Jagielski			oletest.AttrByte= arrInt
1302*b1cdbd2cSJim Jagielski			b= oletest.AttrByte
1303*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1304*b1cdbd2cSJim Jagielski		case 201
1305*b1cdbd2cSJim Jagielski			document.write "set: "
1306*b1cdbd2cSJim Jagielski			printArray arrDouble
1307*b1cdbd2cSJim Jagielski			oletest.AttrDouble= arrDouble
1308*b1cdbd2cSJim Jagielski			b= oletest.AttrDouble
1309*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1310*b1cdbd2cSJim Jagielski		case 202
1311*b1cdbd2cSJim Jagielski			document.write "set: "
1312*b1cdbd2cSJim Jagielski			printArray arrBool :
1313*b1cdbd2cSJim Jagielski			oletest.AttrBool= arrBool
1314*b1cdbd2cSJim Jagielski			b= oletest.AttrBool
1315*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1316*b1cdbd2cSJim Jagielski		case 203
1317*b1cdbd2cSJim Jagielski			document.write "set: "
1318*b1cdbd2cSJim Jagielski			printArray arrInt2 :
1319*b1cdbd2cSJim Jagielski			oletest.AttrShort= arrInt2
1320*b1cdbd2cSJim Jagielski			b= oletest.AttrShort
1321*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1322*b1cdbd2cSJim Jagielski		case 204
1323*b1cdbd2cSJim Jagielski			document.write "set: "
1324*b1cdbd2cSJim Jagielski			printArray arrInt
1325*b1cdbd2cSJim Jagielski			oletest.AttrUShort= arrInt
1326*b1cdbd2cSJim Jagielski			b= oletest.AttrUShort
1327*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1328*b1cdbd2cSJim Jagielski		case 205
1329*b1cdbd2cSJim Jagielski			document.write "set: "
1330*b1cdbd2cSJim Jagielski			printArray arrInt2
1331*b1cdbd2cSJim Jagielski			oletest.AttrLong= arrInt2
1332*b1cdbd2cSJim Jagielski			b= oletest.AttrLong
1333*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1334*b1cdbd2cSJim Jagielski		case 206
1335*b1cdbd2cSJim Jagielski			document.write "set: "
1336*b1cdbd2cSJim Jagielski			printArray arrInt
1337*b1cdbd2cSJim Jagielski			oletest.AttrULong= arrInt
1338*b1cdbd2cSJim Jagielski			b= oletest.AttrULong
1339*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1340*b1cdbd2cSJim Jagielski		case 207
1341*b1cdbd2cSJim Jagielski			document.write "set: "
1342*b1cdbd2cSJim Jagielski			printArray arrString
1343*b1cdbd2cSJim Jagielski			oletest.AttrString= arrString
1344*b1cdbd2cSJim Jagielski			b= oletest.AttrString
1345*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1346*b1cdbd2cSJim Jagielski		case 208
1347*b1cdbd2cSJim Jagielski			document.write "set: "
1348*b1cdbd2cSJim Jagielski			printArray arrChar
1349*b1cdbd2cSJim Jagielski			oletest.AttrChar= arrChar
1350*b1cdbd2cSJim Jagielski			b= oletest.AttrChar
1351*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1352*b1cdbd2cSJim Jagielski		case 209
1353*b1cdbd2cSJim Jagielski			document.write "set: "
1354*b1cdbd2cSJim Jagielski			printArray arrAny
1355*b1cdbd2cSJim Jagielski			oletest.AttrAny= arrAny
1356*b1cdbd2cSJim Jagielski			b= oletest.AttrAny
1357*b1cdbd2cSJim Jagielski			call printArrayEx( "<br> get: ", "<br>", b)
1358*b1cdbd2cSJim Jagielski
1359*b1cdbd2cSJim Jagielski		case 210
1360*b1cdbd2cSJim Jagielski			document.write "set: <br>"
1361*b1cdbd2cSJim Jagielski			printArray2 arrDim2Int :
1362*b1cdbd2cSJim Jagielski			oletest.AttrSequence= arrDim2Int
1363*b1cdbd2cSJim Jagielski			ret= oletest.AttrSequence
1364*b1cdbd2cSJim Jagielski			document.write "get: "
1365*b1cdbd2cSJim Jagielski			for each val in ret
1366*b1cdbd2cSJim Jagielski				document.write "<br> array: "
1367*b1cdbd2cSJim Jagielski				for each val2 in val
1368*b1cdbd2cSJim Jagielski					document.write val2
1369*b1cdbd2cSJim Jagielski				next
1370*b1cdbd2cSJim Jagielski			next
1371*b1cdbd2cSJim Jagielski
1372*b1cdbd2cSJim Jagielski		case 300
1373*b1cdbd2cSJim Jagielski			dim aByte
1374*b1cdbd2cSJim Jagielski			aByte= 100
1375*b1cdbd2cSJim Jagielski			call oletest.testinout_methodByte( aByte)
1376*b1cdbd2cSJim Jagielski			MsgBox aByte
1377*b1cdbd2cSJim Jagielski
1378*b1cdbd2cSJim Jagielski
1379*b1cdbd2cSJim Jagielski		case 400
1380*b1cdbd2cSJim Jagielski
1381*b1cdbd2cSJim Jagielski		set  struct= oletest.Bridge_GetStruct("com.sun.star.beans.Property")
1382*b1cdbd2cSJim Jagielski		 struct.Attributes= 1
1383*b1cdbd2cSJim Jagielski		 struct.Handle= 2
1384*b1cdbd2cSJim Jagielski		 struct.Name= "some Property"
1385*b1cdbd2cSJim Jagielski		 oletest.methodStruct struct
1386*b1cdbd2cSJim Jagielski
1387*b1cdbd2cSJim Jagielski	case 401
1388*b1cdbd2cSJim Jagielski		set struct= oletest.retMethodStruct()
1389*b1cdbd2cSJim Jagielski		alert( "Property::Attributes : " & struct.Attributes & vblf & " Property::Handle : " _
1390*b1cdbd2cSJim Jagielski		& struct.Handle & vblf & " Property::Name : " & struct.Name)
1391*b1cdbd2cSJim Jagielski
1392*b1cdbd2cSJim Jagielski	case 402
1393*b1cdbd2cSJim Jagielski		set struct= oletest.Bridge_GetStruct("com.sun.star.beans.Property")
1394*b1cdbd2cSJim Jagielski		 struct.Attributes= 1
1395*b1cdbd2cSJim Jagielski		 struct.Handle= 2
1396*b1cdbd2cSJim Jagielski		 struct.Name= "some Property"
1397*b1cdbd2cSJim Jagielski		 oletest.AttrStruct=  struct
1398*b1cdbd2cSJim Jagielski
1399*b1cdbd2cSJim Jagielski		 set struct2= oletest.AttrStruct
1400*b1cdbd2cSJim Jagielski		alert( "property get: " & vblf & "Property::Attributes : " & struct2.Attributes & _
1401*b1cdbd2cSJim Jagielski		vblf & " Property::Handle : " &  struct2.Handle & vblf & " Property::Name : " _
1402*b1cdbd2cSJim Jagielski		& struct2.Name)
1403*b1cdbd2cSJim Jagielski	end select
1404*b1cdbd2cSJim Jagielskiend sub
1405*b1cdbd2cSJim Jagielski
1406*b1cdbd2cSJim Jagielskisub printArray( arr)
1407*b1cdbd2cSJim Jagielski	document.write "array: "
1408*b1cdbd2cSJim Jagielski	For Each val In arr
1409*b1cdbd2cSJim Jagielski		document.write CStr(val) & " "
1410*b1cdbd2cSJim Jagielski	Next
1411*b1cdbd2cSJim Jagielskiend sub
1412*b1cdbd2cSJim Jagielski
1413*b1cdbd2cSJim Jagielski// print a 2 dimensional Array
1414*b1cdbd2cSJim Jagielski
1415*b1cdbd2cSJim Jagielskisub printArray2( arr)
1416*b1cdbd2cSJim Jagielski		elements1= UBound( arr, 1) - LBound( arr, 1) +1
1417*b1cdbd2cSJim Jagielski		elements2= UBound( arr, 2) - LBound( arr, 2) +1
1418*b1cdbd2cSJim Jagielski
1419*b1cdbd2cSJim Jagielski		For i=0 To elements1 -1
1420*b1cdbd2cSJim Jagielski			document.write( "array " & CStr( i) & ": "  )
1421*b1cdbd2cSJim Jagielski			For j=0 To elements2 -1
1422*b1cdbd2cSJim Jagielski				document.write CStr( arr(i,j))
1423*b1cdbd2cSJim Jagielski			Next
1424*b1cdbd2cSJim Jagielski			document.write( "<br>")
1425*b1cdbd2cSJim Jagielski		Next
1426*b1cdbd2cSJim Jagielskiend sub
1427*b1cdbd2cSJim Jagielski
1428*b1cdbd2cSJim Jagielskisub printArrayEx( pre, post, array)
1429*b1cdbd2cSJim Jagielski	document.write pre
1430*b1cdbd2cSJim Jagielski	printArray array
1431*b1cdbd2cSJim Jagielski	document.write post
1432*b1cdbd2cSJim Jagielskiend sub
1433*b1cdbd2cSJim Jagielski</script>
1434*b1cdbd2cSJim Jagielski
1435*b1cdbd2cSJim Jagielski<script language="JScript">
1436*b1cdbd2cSJim Jagielskivar arFunctions= new Array();
1437*b1cdbd2cSJim JagielskiarFunctions["methodByte"]= "sequence&lt;byte&gt; methodByte( [in] sequence&lt;byte&gt; aSeq )";
1438*b1cdbd2cSJim JagielskiarFunctions["methodFloat"]= "sequence&lt;float&gt; methodFloat( [in] sequence&lt;float&gt; aSeq)";
1439*b1cdbd2cSJim JagielskiarFunctions["methodDouble"]= "sequence&lt;double&gt; methodDouble( [in] sequence&lt;double&gt; aSeq)";
1440*b1cdbd2cSJim JagielskiarFunctions["methodBool"]= 	"sequence&lt;boolean&gt; methodBool( [in] sequence&lt;boolean&gt; aSeq)";
1441*b1cdbd2cSJim JagielskiarFunctions["methodShort"]= "sequence&lt;short&gt; methodShort( [in] sequence&lt;short&gt; aSeq)";
1442*b1cdbd2cSJim JagielskiarFunctions["methodUShort"]= "sequence&lt;unsigned short&gt; methodUShort( [in] sequence&lt;unsigned short&gt; aSeq)";
1443*b1cdbd2cSJim JagielskiarFunctions["methodLong"]= "sequence&lt;long&gt; methodLong( [in] sequence&lt;long&gt; aSeq)";
1444*b1cdbd2cSJim JagielskiarFunctions["methodULong"]= "sequence&lt;unsigned long&gt; methodULong( [in] sequence&lt;unsigned long&gt; aSeq)";
1445*b1cdbd2cSJim JagielskiarFunctions["methodString"]= "sequence&lt;string&gt; methodString( [in] sequence&lt;string&gt; aSeq)";
1446*b1cdbd2cSJim JagielskiarFunctions["methodChar"]= "sequence&lt;char&gt; methodChar( [in] sequence&lt;char&gt; aSeq)";
1447*b1cdbd2cSJim JagielskiarFunctions["methodAny"]= "sequence&lt;any&gt; methodAny	( [in] sequence&lt;any&gt; aSeq)";
1448*b1cdbd2cSJim JagielskiarFunctions["methodXInterface"]= "sequence&lt;XInterface&gt; methodXInterface ( [in] sequence&lt;XInterface&gt; aSeq)";
1449*b1cdbd2cSJim JagielskiarFunctions["methodSequence"]= "sequence&lt; sequence &lt;long&gt; &gt; methodSequence( [in] sequence&lt; sequence&lt; long &gt; &gt; aSeq)";
1450*b1cdbd2cSJim JagielskiarFunctions["methodSequence2"]= "sequence&lt; sequence &lt;sequence &lt;long&gt; &gt; &gt; methodSequence2( [in] sequence&lt; sequence&lt; sequence&lt;long&gt; &gt; &gt; aSeq)";
1451*b1cdbd2cSJim JagielskiarFunctions["methodXEventListeners"]= "sequence&lt; com::sun::star::lang::XEventListener &gt; methodXEventListeners( [in] sequence&lt;com::sun::star::lang::XEventListener&gt; aSeq)";
1452*b1cdbd2cSJim JagielskiarFunctions["methodXEventListenersMul"]= "sequence&lt; sequence&lt; com::sun::star::lang::XEventListener &gt; &gt; methodXEventListenersMul( [in] sequence&lt; sequence&lt; com::sun::star::lang::XEventListener&gt; &gt; aSeq)";
1453*b1cdbd2cSJim JagielskiarFunctions["AttrByte"]="[attribute] sequence<byte> AttrByte";
1454*b1cdbd2cSJim JagielskiarFunctions["AttrFloat"]="[attribute] sequence<float> AttrFloat";
1455*b1cdbd2cSJim JagielskiarFunctions["AttrDouble"]="[attribute] sequence<double> AttrDouble";
1456*b1cdbd2cSJim JagielskiarFunctions["AttrBool"]="[attribute] sequence<boolean> AttrBool";
1457*b1cdbd2cSJim JagielskiarFunctions["AttrShort"]="[attribute] sequence<short> AttrShort";
1458*b1cdbd2cSJim JagielskiarFunctions["AttrUShort"]="[attribute] sequence<unsigned short> AttrUShort";
1459*b1cdbd2cSJim JagielskiarFunctions["AttrLong"]="[attribute] sequence<long> AttrLong";
1460*b1cdbd2cSJim JagielskiarFunctions["AttrULong"]="[attribute] sequence<unsigned long> AttrULong";
1461*b1cdbd2cSJim JagielskiarFunctions["AttrString"]="[attribute] sequence<string> AttrString";
1462*b1cdbd2cSJim JagielskiarFunctions["AttrChar"]="[attribute] sequence<char> AttrChar";
1463*b1cdbd2cSJim JagielskiarFunctions["AttrAny"]="[attribute] sequence<any> AttrAny";
1464*b1cdbd2cSJim JagielskiarFunctions["AttrSequence"]="[attribute] sequence< sequence<long> > AttrSequence";
1465*b1cdbd2cSJim JagielskiarFunctions["AttrSequence2"]="[attribute] sequence< sequence< sequence <long> > > AttrSequence2";
1466*b1cdbd2cSJim JagielskiarFunctions["AttrXInterface"]="[attribute] sequence< com::sun::star::uno::XInterface > AttrXInterface";
1467*b1cdbd2cSJim Jagielski
1468*b1cdbd2cSJim JagielskiarFunctions["testout_methodByte"]= " void testout_methodByte( [out] byte rOut )";
1469*b1cdbd2cSJim JagielskiarFunctions["testout_methodFloat"]= "void testout_methodFloat( [out] float rOut)";
1470*b1cdbd2cSJim JagielskiarFunctions["testout_methodDouble"]= "void testout_methodDouble( [out] double rOut)";
1471*b1cdbd2cSJim JagielskiarFunctions["testout_methodBool"]= "void testout_methodBool( [out] boolean rOut)";
1472*b1cdbd2cSJim JagielskiarFunctions["testout_methodShort"]= "void testout_methodShort( [out] short rOut)";
1473*b1cdbd2cSJim JagielskiarFunctions["testout_methodUShort"]= "void testout_methodUShort( [out] unsigned short rOut)";
1474*b1cdbd2cSJim JagielskiarFunctions["testout_methodLong"]= "void testout_methodLong( [out]  long rOut)";
1475*b1cdbd2cSJim JagielskiarFunctions["testout_methodULong"]= "void testout_methodULong( [out] unsigned long rOut)";
1476*b1cdbd2cSJim JagielskiarFunctions["testout_methodString"]= "void testout_methodString( [out] string rOut)";
1477*b1cdbd2cSJim JagielskiarFunctions["testout_methodChar"]= "void testout_methodChar( [out] char rOut)";
1478*b1cdbd2cSJim JagielskiarFunctions["testout_methodAny"]= "void testout_methodAny( [out] any rOut)";
1479*b1cdbd2cSJim JagielskiarFunctions["testout_methodSequence"]= "void testout_methodSequence( [out] sequence< long > rOut)";
1480*b1cdbd2cSJim JagielskiarFunctions["testout_methodSequence2"]= "void testout_methodSequence2( [out] sequence < sequence< long > > rOut)";
1481*b1cdbd2cSJim JagielskiarFunctions["testout_methodXInterface"]= "void testout_methodXInterface( [out] com::sun::star::uno::XInterface rOut)";
1482*b1cdbd2cSJim JagielskiarFunctions["testout_methodMulParams1"]= "void testout_methodMulParams1( [out] long rout1, [out] long rout2)";
1483*b1cdbd2cSJim JagielskiarFunctions["testout_methodMulParams2"]= "void testout_methodMulParams2( [out] long rout1, [out] long rout2, [out] string rout3)";
1484*b1cdbd2cSJim JagielskiarFunctions["testout_methodMulParams3"]= "void testout_methodMulParams3( [in] string sin, [out] string sout)";
1485*b1cdbd2cSJim JagielskiarFunctions["testout_methodMulParams4"]= "void testout_methodMulParams4( [in] float in1, [out] float out1, [in] long in2, [out] long out2, [in] long in3)";
1486*b1cdbd2cSJim JagielskiarFunctions["testinout_methodByte"]="void testinout_methodByte( [inout] byte rOut )";
1487*b1cdbd2cSJim JagielskiarFunctions["testinout_methodFloat"]="void testinout_methodFloat( [inout] float rOut)";
1488*b1cdbd2cSJim JagielskiarFunctions["testinout_methodDouble"]="void testinout_methodDouble( [inout] double rOut)";
1489*b1cdbd2cSJim JagielskiarFunctions["testinout_methodBool"]="void testinout_methodBool( [inout] boolean rOut)";
1490*b1cdbd2cSJim JagielskiarFunctions["testinout_methodShort"]="void testinout_methodShort( [inout] short rOut)";
1491*b1cdbd2cSJim JagielskiarFunctions["testinout_methodUShort"]="void testinout_methodUShort( [inout] unsigned short rOut)";
1492*b1cdbd2cSJim JagielskiarFunctions["testinout_methodLong"]="void testinout_methodLong( [inout]  long rOut)";
1493*b1cdbd2cSJim JagielskiarFunctions["testinout_methodULong"]="void testinout_methodULong( [inout] unsigned long rOut)";
1494*b1cdbd2cSJim JagielskiarFunctions["testinout_methodString"]="void testinout_methodString( [inout] string rOut)";
1495*b1cdbd2cSJim JagielskiarFunctions["testinout_methodChar"]="void testinout_methodChar( [inout] char rOut)";
1496*b1cdbd2cSJim JagielskiarFunctions["testinout_methodAny"]="void testinout_methodAny( [inout] any rOut)";
1497*b1cdbd2cSJim JagielskiarFunctions["testinout_methodSequence"]="void testinout_methodSequence( [inout] sequence< long > rOut)";
1498*b1cdbd2cSJim JagielskiarFunctions["testinout_methodSequence2"]="void testinout_methodSequence2( [inout] sequence < sequence< long > > rOut)";
1499*b1cdbd2cSJim JagielskiarFunctions["testinout_methodXInterface"]="void testinout_methodXInterface( [inout] com::sun::star::script::XInvocation rOut)";
1500*b1cdbd2cSJim JagielskiarFunctions["testinout_methodXInterface2"]="void testinout_methodXInterface2( [inout] com::sun::star::uno::XInterface rOut)";
1501*b1cdbd2cSJim Jagielski
1502*b1cdbd2cSJim JagielskiarFunctions["in_methodByte"]= "byte in_methodByte( [in] byte rIn )";
1503*b1cdbd2cSJim JagielskiarFunctions["in_methodFloat"]= "float in_methodFloat( [in] float rIn);"
1504*b1cdbd2cSJim JagielskiarFunctions["in_methodDouble"]= "double in_methodDouble( [in] double rIn)";
1505*b1cdbd2cSJim JagielskiarFunctions["in_methodBool"]= "boolean in_methodBool( [in] boolean rIn)";
1506*b1cdbd2cSJim JagielskiarFunctions["in_methodShort"]= "short in_methodShort( [in] short rIn)";
1507*b1cdbd2cSJim JagielskiarFunctions["in_methodUShort"]= "unsigned short in_methodUShort( [in] unsigned short rIn)";
1508*b1cdbd2cSJim JagielskiarFunctions["in_methodLong"]= "long in_methodLong( [in]  long rIn)";
1509*b1cdbd2cSJim JagielskiarFunctions["in_methodULong"]= "unsigned long in_methodULong( [in] unsigned long rIn)";
1510*b1cdbd2cSJim JagielskiarFunctions["in_methodHyper"]= "hyper in_methodHyper( [in]  hyper rIn)";
1511*b1cdbd2cSJim JagielskiarFunctions["in_methodUHyper"]= "unsigned hyper in_methodHyper( [in]  unsigned hyper rIn)";
1512*b1cdbd2cSJim JagielskiarFunctions["in_methodString"]= "string in_methodString( [in] string rIn)";
1513*b1cdbd2cSJim JagielskiarFunctions["in_methodChar"]= "char in_methodChar( [in] char rIn)";
1514*b1cdbd2cSJim JagielskiarFunctions["in_methodAny"]= "any in_methodAny	( [in] any rIn)";
1515*b1cdbd2cSJim JagielskiarFunctions["in_methodXInterface"]= "XInterface in_methodXInterface([in] XInterface rIn)";
1516*b1cdbd2cSJim Jagielski
1517*b1cdbd2cSJim Jagielski
1518*b1cdbd2cSJim JagielskiarFunctions["methodAnyTest1"]="any methodAnyTest1( [in] any rIn)";
1519*b1cdbd2cSJim JagielskiarFunctions["AttrAny2"]= "[attribute]  any AttrAny2";
1520*b1cdbd2cSJim JagielskiarFunctions["retMethodStruct"]= "com::sun::star::beans::Property retMethodStruct()";
1521*b1cdbd2cSJim JagielskiarFunctions["AttrStruct"]= "[attribute] com::sun::star::beans::Property AttrStruct";
1522*b1cdbd2cSJim JagielskiarFunctions["methodStruct2"]= "com::sun::star::beans::Property methodStruct2( [in] com::sun::star::beans::Property aProp)";
1523*b1cdbd2cSJim Jagielski
1524*b1cdbd2cSJim Jagielski
1525*b1cdbd2cSJim Jagielskivar factory= new ActiveXObject("com.sun.star.ServiceManager");
1526*b1cdbd2cSJim Jagielskivar oletest= factory.createInstance("oletest.OleTest");
1527*b1cdbd2cSJim Jagielski
1528*b1cdbd2cSJim JagielskiLog= new Logger();
1529*b1cdbd2cSJim Jagielski
1530*b1cdbd2cSJim Jagielski
1531*b1cdbd2cSJim JagielskirunJScriptTest(Log);
1532*b1cdbd2cSJim JagielskirunVBTest(Log);
1533*b1cdbd2cSJim JagielskiLog.summarize();
1534*b1cdbd2cSJim Jagielski
1535*b1cdbd2cSJim Jagielski
1536*b1cdbd2cSJim Jagielskifunction Logger()
1537*b1cdbd2cSJim Jagielski{
1538*b1cdbd2cSJim Jagielski    this.print= logger_print;
1539*b1cdbd2cSJim Jagielski    this.print2= logger_print2;
1540*b1cdbd2cSJim Jagielski    this.summarize= logger_summarize;
1541*b1cdbd2cSJim Jagielski    this.bAllOk= true;
1542*b1cdbd2cSJim Jagielski}
1543*b1cdbd2cSJim Jagielskifunction logger_print( bool, method)
1544*b1cdbd2cSJim Jagielski{
1545*b1cdbd2cSJim Jagielski    this.print2(bool, "Ok &nbsp;&nbsp;&nbsp;&nbsp;" + arFunctions[method] + "<br>",
1546*b1cdbd2cSJim Jagielski               "Failed &nbsp;&nbsp;&nbsp;&nbsp;" + arFunctions[method] + "<br>");
1547*b1cdbd2cSJim Jagielski}
1548*b1cdbd2cSJim Jagielski
1549*b1cdbd2cSJim Jagielskifunction logger_print2( bool, okString, failedString)
1550*b1cdbd2cSJim Jagielski{
1551*b1cdbd2cSJim Jagielski    if( bool)
1552*b1cdbd2cSJim Jagielski        document.writeln( okString);
1553*b1cdbd2cSJim Jagielski    else
1554*b1cdbd2cSJim Jagielski    {
1555*b1cdbd2cSJim Jagielski        document.writeln( failedString);
1556*b1cdbd2cSJim Jagielski        this.bAllOk= this.bAllOk && false;
1557*b1cdbd2cSJim Jagielski    }
1558*b1cdbd2cSJim Jagielski}
1559*b1cdbd2cSJim Jagielski
1560*b1cdbd2cSJim Jagielskifunction logger_summarize()
1561*b1cdbd2cSJim Jagielski{
1562*b1cdbd2cSJim Jagielski    document.writeln("<p> ==============================================================================<br>");
1563*b1cdbd2cSJim Jagielski    if(this.bAllOk)
1564*b1cdbd2cSJim Jagielski        document.writeln("No errors <br>");
1565*b1cdbd2cSJim Jagielski    else
1566*b1cdbd2cSJim Jagielski        document.writeln("Error ! The test failed! <br>");
1567*b1cdbd2cSJim Jagielski}
1568*b1cdbd2cSJim Jagielski
1569*b1cdbd2cSJim Jagielski
1570*b1cdbd2cSJim Jagielski</script>
1571*b1cdbd2cSJim Jagielski
1572*b1cdbd2cSJim Jagielski</body>
1573*b1cdbd2cSJim Jagielski</html>
1574*b1cdbd2cSJim Jagielski
1575*b1cdbd2cSJim Jagielski
1576