xref: /AOO41X/main/framework/test/test_componentenumeration.bas (revision 5b501c92293051a25b12b7eb43a2a29471ec1458)
1rem *************************************************************
2rem
3rem  Licensed to the Apache Software Foundation (ASF) under one
4rem  or more contributor license agreements.  See the NOTICE file
5rem  distributed with this work for additional information
6rem  regarding copyright ownership.  The ASF licenses this file
7rem  to you under the Apache License, Version 2.0 (the
8rem  "License"); you may not use this file except in compliance
9rem  with the License.  You may obtain a copy of the License at
10rem
11rem    http://www.apache.org/licenses/LICENSE-2.0
12rem
13rem  Unless required by applicable law or agreed to in writing,
14rem  software distributed under the License is distributed on an
15rem  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16rem  KIND, either express or implied.  See the License for the
17rem  specific language governing permissions and limitations
18rem  under the License.
19rem
20rem *************************************************************
21rem _______________________________________________________________________________________________________________________________________
22rem Test script for helper class "framework/helper/OComponentAccess and OComponentEnumeration.
23rem These two classes are used for "framework/baeh_services/Desktop::getComponents()" only.
24rem _______________________________________________________________________________________________________________________________________
25
26
27Sub Main
28
29    rem ___________________________________________________________________________________________________________________________________
30    rem Get all current components of the frame tree as an enumeration access object.
31    rem The return value must be a valid reference!
32    xComponentAccess = StarDesktop.Components
33    if( isNull(xComponentAccess) = TRUE ) then
34        msgbox "Error: Desktop return null reference as enumeration access to all tree components!"
35        exit Sub
36    endif
37
38    rem ___________________________________________________________________________________________________________________________________
39    rem Control service specification of helper class "framework/helper/OComponentAccess".
40    rem The follow output must occure:  com.sun.star.lang.XTypeProvider
41    rem                                 com.sun.star.container.XEnumerationAccess -> com.sun.star.container.XElementAccess
42    msgbox xComponentAccess.dbg_supportedInterfaces
43
44    rem ___________________________________________________________________________________________________________________________________
45    rem Test interface XElementAccess of helper OComponentAcces.
46
47    rem Method hasElements() must return TRUE, because if you call this from the basic IDE at least one task must exist ...
48    rem the IDE by himself. Normaly two tasks exist - an empty writer document and a basic frame.
49    rem Attention: Not all tasks or frames must support a full implemented component!
50    if( xComponentAccess.hasElements <> TRUE ) then
51        msgbox "Error: xComponentAccess has no elements - but I can't believe it!"
52        exit Sub
53    endif
54
55    rem Method getElementType() must return the cppu type of XComponent.
56    rem Otherwise something is wrong or implementation has changed.
57    if( xComponentAccess.getElementType.Name <> "com.sun.star.lang.XComponent" ) then
58        msgbox "Error: xComponentAccess return wrong type as element type! - Has implementation changed?"
59        exit Sub
60    endif
61
62    rem ___________________________________________________________________________________________________________________________________
63    rem Test interface XEnumerationAccess of helper OComponentAcces.
64    rem The return value must be a valid reference!
65    xComponentEnumeration = xComponentAccess.createEnumeration
66    if( isNull(xComponentEnumeration) = TRUE ) then
67        msgbox "Error: Could not create a component enumeration!"
68        exit Sub
69    endif
70
71    rem ___________________________________________________________________________________________________________________________________
72    rem Control service specification of helper class "framework/helper/OComponentEnumeration".
73    rem The follow output must occure:  com.sun.star.lang.XTypeProvider
74    rem                                 com.sun.star.lang.XEventListener
75    rem                                 com.sun.star.container.XEnumeration
76    msgbox xComponentEnumeration.dbg_supportedInterfaces
77
78    rem ___________________________________________________________________________________________________________________________________
79    rem Test interface XEnumeration of helper OComponentEnumeration.
80    nElementCounter = 0
81    while( xComponentEnumeration.hasMoreElements = TRUE )
82        xElement = xComponentEnumeration.nextElement
83        if( isNull(xElement) = TRUE ) then
84            msgbox "Error: An empty component in enumeration detected! Whats wrong?"
85            exit Sub
86        endif
87        nElementCounter = nElementCounter + 1
88    wend
89    if( nElementCounter < 1 ) then
90        msgbox "Warning: The enumeration was empty. I think it's wrong ... please check it again."
91    endif
92    msgbox "Info: An enumeration with " + nElementCounter + " element(s) was detected."
93
94    rem ___________________________________________________________________________________________________________________________________
95    rem If this point arrived our test was successful.
96    msgbox "Test of framework/helper/OComponentAccess & OComponentEnumeration was successful!"
97
98End Sub
99