jl165 merging heads
[LibreOffice.git] / testautomation / framework / optional / includes / basic_modulenames.inc
blobed076927f2c1cba2d14d6b236e46d8f2769cb3ac
1 'encoding UTF-8  Do not remove or change this line!
2 '**************************************************************************
3 ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 ' Copyright 2000, 2010 Oracle and/or its affiliates.
7 ' OpenOffice.org - a multi-platform office productivity suite
9 ' This file is part of OpenOffice.org.
11 ' OpenOffice.org is free software: you can redistribute it and/or modify
12 ' it under the terms of the GNU Lesser General Public License version 3
13 ' only, as published by the Free Software Foundation.
15 ' OpenOffice.org is distributed in the hope that it will be useful,
16 ' but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 ' GNU Lesser General Public License version 3 for more details
19 ' (a copy is included in the LICENSE file that accompanied this code).
21 ' You should have received a copy of the GNU Lesser General Public License
22 ' version 3 along with OpenOffice.org.  If not, see
23 ' <http://www.openoffice.org/license.html>
24 ' for a copy of the LGPLv3 License.
26 '/************************************************************************
28 '*  owner : gregor.hartmann@oracle.com
30 '*  short description : Test modulenames on the tabbar
32 '\******************************************************************************
34 testcase tBasicIdeModuleNames
36     printlog( "Modulenames in BASIC IDE" )
38     const CMODULE_VALID1 = "tValidName"
39     const CMODULE_VALID2 = "tValidToo"
40     const TEST_MACRO = "TTMacro1"
42     const RC_SUCCESS = 0
43     const RC_FAILURE = 1
44     const ERR_NO_LINES_INSERTED = 0
46     dim iCurrentName as integer
47     dim cTabName as string
49     gApplication = "WRITER"
50     hCreateDocument()
52     hInitBasicIde( CMODULE_VALID1 )
53     if ( hInsertMacroFromFile( TEST_MACRO ) > ERR_NO_LINES_INSERTED ) then
54    
55         cTabName = hGetTabNameFromOrganizer()
57         Randomize
58         iCurrentName = Int( 24 * RND ) + 1 ' Range from 1 to 24
60         printlog( "Trying with invalid modulename" )
61         cTabName = hCreateInvalidModuleName( iCurrentName )
62         hRenameTab( cTabName )
63         if ( hHandleInvalidNameWarning( cTabname ) ) then
64             printlog( "Warning for invalid modulename displayed" )
65         else
66             warnlog( "Warning for invalid modulename is missing" )
67         endif
69         printlog( "Trying with valid modulename" )
70         hRenameTab( CMODULE_VALID2 )
71         if ( hHandleInvalidNameWarning( CMODULE_VALID2 ) ) then
72             warnlog( "Failed to set valid modulename" )
73         endif
75     else
76         warnlog( "Failed to insert macro" )
77     endif
78     
79     hFileCloseAll()
81 endcase
83 '*******************************************************************************
85 testcase tInvalidModuleNames
87     printlog( "Modulenames in BASIC Organizer" )
89     const MAX_WAIT = 2
90     const OK_BUTTON_ONLY = 1
92     dim iCurrentName as Integer
93     dim sSeparator as String 
94     dim cModuleName as string
96     Randomize
97     iCurrentName = Int( 24 * RND ) + 1 ' Range from 1 to 24
98     cModuleName = hCreateInvalidModuleName( iCurrentName )
99     printlog( "Trying module name: " & cModuleName )
101     hCreateDocument()
102     ToolsMacro_uno
104     ' hCreateModuleForDoc should usually end with the BASIC IDE open
105     ' but we want it to fail by providing an invalid module name
106     if ( hCreateModuleForDoc( cModuleName ) ) then
107         warnlog( "Basic-Ide should not open for invalid module names" )
108     else
109         kontext "Active"
110         if ( Active.exists( MAX_WAIT ) ) then
111             if( Active.getButtonCount() = OK_BUTTON_ONLY ) then
113                 printlog( "Messagebox <Invalid name> displayed: " & Active.getText() )
114                 hCloseDialog( Active, "ok" )
116                 kontext "NeuesModul"
117                 if ( NeuesModul.exists( MAX_WAIT ) ) then
118                     hCloseDialog( NeuesModul, "cancel" )
120                     kontext "Makro"
121                     if ( Makro.exists() ) then
122                         hCloseDialog( Makro, "close" )
123                     else
124                         warnlog( "Test should be back on macro dialog" )
125                     endif
126                 else
127                     warnlog( "<NeuesModul> dialog should show after failed naming attempt" )
128                 endif
129             else
130                 warnlog( "Unexpected messagebox: " & Active.getText() )
131                 hCloseDialog( Active, "close" )
132             endif
133         else
134             warnlog( "<Invalid name> Messagebox missing" )
135         endif
136     endif
138     hFileCloseAll()
140 endcase
142 '*******************************************************************************
144 testcase tValidModuleNames
146     printlog( "Valid modulenames in BASIC Organizer: Names that are BASIC keywords" )
148     dim iCurrentName as Integer
149     dim sModuleName as String
151     Randomize
152     iCurrentName = Int( 8 * RND ) + 1 ' Range from 1 to 8
154     select case iCurrentName
155         case 1  : sModuleName = "option"
156         case 2  : sModuleName = "sub"
157         case 3  : sModuleName = "function"
158         case 4  : sModuleName = "end"
159         case 5  : sModuleName = "exit"
160         case 6  : sModuleName = "_underscore1"
161         case 7  : sModuleName = "underscore_2"
162         case 8  : sModuleName = "ThisIsQuiteALongNameForAModuleDontYouThink"
163     end select
165     hCreateDocument()
166     ToolsMacro_uno
168     if ( hCreateModuleForDoc( sModuleName ) ) then
169         printlog( "The module name was accepted: " & sModuleName )
170         hFileCloseAll()
171     else
172         warnlog( "The module name was not accepted: " & sModuleName )
173         goto endsub
174     endif
175     
176 endcase
178 '*******************************************************************************
180 function hHandleInvalidNameWarning( cTabName as string ) as boolean
182     const CFN = "hHandleInvalidNameWarning(): "
183     const MAX_WAIT = 1
185     kontext "Active"
186     if ( Active.exists( MAX_WAIT ) ) then
188         printlog( "Invalid name message displayed" & Active.getText() )
189         hCloseDialog( Active, "ok" )
190         hHandleInvalidNameWarning() = true
191         
192         kontext "Active"
193         if ( Active.exists( MAX_WAIT ) ) then
194             printlog( "Unexpected messagebox displayed: " & Active.getText() )
195             hHandleInvalidNameWarning() = false
196         endif
198         kontext "BasicIDE"
199         tabbar.typekeys( "<ESCAPE>" , true )
201     else
202         printlog( "Invalid name warning not displayed" )
203         hHandleInvalidNameWarning() = false
204     endif
206 end function
208 '*******************************************************************************
210 function hCreateInvalidModuleName( iName as integer ) as string
213     dim sSeparator as string
214     
215     ' Note: We cannot test for "<" and ">" because these are the characters
216     '       that identify keystrokes for the .typeKeys() method.
218     select case iName
219         case 0  : sSeparator = "_"
220         case 1  : sSeparator = "-"
221         case 2  : sSeparator = "."
222         case 3  : sSeparator = ","
223         case 4  : sSeparator = "+"
224         case 5  : sSeparator = ":"
225         case 6  : sSeparator = "!"
226         case 7  : sSeparator = "$"
227         case 8  : sSeparator = "("
228         case 9  : sSeparator = ")"
229         case 10 : sSeparator = "="
230         case 11 : sSeparator = "?"
231         case 12 : sSeparator = "*"
232         case 13 : sSeparator = " "
233         case 14 : sSeparator = "&"
234         case 15 : sSeparator = "\"
235         case 16 : sSeparator = "/"
236         case 17 : sSeparator = "ยง"
237         case 18 : sSeparator = """"
238         case 19 : sSeparator = "'"
239         case 20 : sSeparator = "@"
240         case 21 : sSeparator = "["
241         case 22 : sSeparator = "]"
242         case 23 : sSeparator = "%"
243         case 24 : sSeparator = CHR$( 387 )
244         case else : sSeparator = ""
245     end select
247     hCreateInvalidModuleName() = "ttModule" & sSeparator & "X"
248     
249 end function