xref: /trunk/main/framework/test/test_componentenumeration.bas (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
1rem _______________________________________________________________________________________________________________________________________
2rem Test script for helper class "framework/helper/OComponentAccess and OComponentEnumeration.
3rem These two classes are used for "framework/baeh_services/Desktop::getComponents()" only.
4rem _______________________________________________________________________________________________________________________________________
5
6
7Sub Main
8
9    rem ___________________________________________________________________________________________________________________________________
10    rem Get all current components of the frame tree as an enumeration access object.
11    rem The return value must be a valid reference!
12    xComponentAccess = StarDesktop.Components
13    if( isNull(xComponentAccess) = TRUE ) then
14        msgbox "Error: Desktop return null reference as enumeration access to all tree components!"
15        exit Sub
16    endif
17
18    rem ___________________________________________________________________________________________________________________________________
19    rem Control service specification of helper class "framework/helper/OComponentAccess".
20    rem The follow output must occure:  com.sun.star.lang.XTypeProvider
21    rem                                 com.sun.star.container.XEnumerationAccess -> com.sun.star.container.XElementAccess
22    msgbox xComponentAccess.dbg_supportedInterfaces
23
24    rem ___________________________________________________________________________________________________________________________________
25    rem Test interface XElementAccess of helper OComponentAcces.
26
27    rem Method hasElements() must return TRUE, because if you call this from the basic IDE at least one task must exist ...
28    rem the IDE by himself. Normaly two tasks exist - an empty writer document and a basic frame.
29    rem Attention: Not all tasks or frames must support a full implemented component!
30    if( xComponentAccess.hasElements <> TRUE ) then
31        msgbox "Error: xComponentAccess has no elements - but I can't believe it!"
32        exit Sub
33    endif
34
35    rem Method getElementType() must return the cppu type of XComponent.
36    rem Otherwise something is wrong or implementation has changed.
37    if( xComponentAccess.getElementType.Name <> "com.sun.star.lang.XComponent" ) then
38        msgbox "Error: xComponentAccess return wrong type as element type! - Has implementation changed?"
39        exit Sub
40    endif
41
42    rem ___________________________________________________________________________________________________________________________________
43    rem Test interface XEnumerationAccess of helper OComponentAcces.
44    rem The return value must be a valid reference!
45    xComponentEnumeration = xComponentAccess.createEnumeration
46    if( isNull(xComponentEnumeration) = TRUE ) then
47        msgbox "Error: Could not create a component enumeration!"
48        exit Sub
49    endif
50
51    rem ___________________________________________________________________________________________________________________________________
52    rem Control service specification of helper class "framework/helper/OComponentEnumeration".
53    rem The follow output must occure:  com.sun.star.lang.XTypeProvider
54    rem                                 com.sun.star.lang.XEventListener
55    rem                                 com.sun.star.container.XEnumeration
56    msgbox xComponentEnumeration.dbg_supportedInterfaces
57
58    rem ___________________________________________________________________________________________________________________________________
59    rem Test interface XEnumeration of helper OComponentEnumeration.
60    nElementCounter = 0
61    while( xComponentEnumeration.hasMoreElements = TRUE )
62        xElement = xComponentEnumeration.nextElement
63        if( isNull(xElement) = TRUE ) then
64            msgbox "Error: An empty component in enumeration detected! Whats wrong?"
65            exit Sub
66        endif
67        nElementCounter = nElementCounter + 1
68    wend
69    if( nElementCounter < 1 ) then
70        msgbox "Warning: The enumeration was empty. I think it's wrong ... please check it again."
71    endif
72    msgbox "Info: An enumeration with " + nElementCounter + " element(s) was detected."
73
74    rem ___________________________________________________________________________________________________________________________________
75    rem If this point arrived our test was successful.
76    msgbox "Test of framework/helper/OComponentAccess & OComponentEnumeration was successful!"
77
78End Sub
79