jl165 merging heads
[LibreOffice.git] / testautomation / framework / optional / includes / scripting_organizers.inc
blob5f804a951ea29632c30f67cfe6ee55804007920a
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 scripting-organizers / document-attached scripts
32 '\******************************************************************************
34 testcase tScriptingOrganizers( iDialog as integer )
36     if ( instr( gtSysName , "Solaris" ) > 0 ) then
37         qaerrorlog( "#i93502# JavaScript organizer broken" )
38         goto endsub
39     endif
41     ' 1 = BeanShell (.bsh)
42     ' 2 = JavaScript (.js)
43     
44     const IDOCPOS = 3
46     dim cFileName as string
47         cFileName = "sftest" & hGetSuffix( "current" )
48     dim cCompare as string
49         
50     dim cFilePath as string
51         cFilePath= hGetWorkPath() & cFileName
52         cFilePath= convertpath( cFilePath )
53         
54     dim iPos as integer  ' position of the workdocument in treelist
55     dim brc as boolean   ' boolean return code used to determine the status
56     
57     dim cLibName as string
58         cLibName = "TTLib"
59     dim cModName as string
60         cModName = "TTMod"
61     dim cScriptName as string
62     
63     dim iItemCount as integer
65     printlog( "" ) 
66     printlog( "Test init: set macro security level to low" )
67     hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
68     
69     select case iDialog
70     case 1 : cScriptName = cModName & ".bsh"
71     case 2 : cScriptName = cModName & ".js"
72     end select
73       
74     brc = hDeleteFile( cFilePath )
75     
76     printlog( "Test init: Create and prepare document" )
77     brc =  hCreateDocument()
78     
79     call hChangeDoc()
80     
81     brc = hFileSaveAsKill( cFilePath )
82     
83     printlog( "" )
84     printlog( "Test 1: ScriptOrganizer/Documents" )
85     brc = hOpenScriptOrganizer( iDialog )
86     if ( not brc ) then
87         warnlog( "Could not open the script Organizer, aborting" )
88         brc = hDestroyDocument()
89         goto endsub
90     endif
91     
92     kontext "ScriptOrganizer"
93     iItemCount = hGetNodeCount( ScriptTreeList )
94     
95     if ( ScriptTreeList.getItemCount() <> IDOCPOS ) then
96         warnlog( "Incorrect number of documents listed in treelist, aborting" )
97         kontext "ScriptOrganizer"
98         ScriptOrganizer.cancel()
99         brc = hDestroyDocument()
100         goto endsub
101     endif    
102     
103     kontext "ScriptOrganizer"
104     ScriptTreeList.select( IDOCPOS )
105     
106     if ( not PBCreate.isEnabled() ) then
107         warnlog( "Create button should be enabled" )
108     endif
109     
110     if ( PBEdit.isEnabled() ) then
111         warnlog( "Edit button should be disabled" )
112     endif
113     
114     if ( PBRename.isEnabled() ) then
115         warnlog( "Rename button should be disabled" )
116     endif
117     
118     if ( PBDelete.isEnabled() ) then    
119         qaerrorlog( "#i50527# - Delete button should be disabled" )
120     endif
121     
123     printlog( "" )
124     printlog( "Test 2: Libraries/Scripts create/rename" )
125     
126     brc = hCreateScriptingObject( "initial_lib" )
127     
128     brc = hRenameScriptingObject( cLibName )
129     
130     brc = hVerifyNodeName( ScriptTreeList , cLibName )
131     if ( not brc ) then
132         qaerrorlog(  "#i50526# Renaming failed: " & cLibName )
133     endif
134     
135     cLibName = ScriptTreeList.getSelText()
136     
137     if ( not PBCreate.isEnabled() ) then
138         warnlog( "Create button should be enabled" )
139     endif
140     
141     if ( PBEdit.isEnabled() ) then
142         warnlog( "Edit button should be disabled" )
143     endif
144     
145     if ( not PBRename.isEnabled() ) then
146         warnlog( "Rename button should be enabled" )
147     endif
148     
149     if ( not PBDelete.isEnabled() ) then
150         warnlog( "Delete button should be enabled" )
151     endif
152     
153     brc = hCreateScriptingObject( "initial_mod" )
154     
155     brc = hRenameScriptingObject( cModName )
156     
157     brc = hVerifyNodeName( ScriptTreeList , cScriptName )
158     if ( not brc ) then
159         qaerrorlog( "#i50526# Renaming failed: " & cScriptName )
160     endif    
161     
162     cModName = ScriptTreeList.getSelText()
163     
164     if ( PBCreate.isEnabled() ) then
165         warnlog( "Create button should not be enabled" )
166     endif
167     
168     if ( not PBEdit.isEnabled() ) then
169         warnlog( "Edit button should be enabled" )
170     endif
172     if ( not PBRename.isEnabled() ) then
173         warnlog( "Rename button should be enabled" )
174     endif
176     if ( not PBDelete.isEnabled() ) then
177         warnlog( "Delte button should be enabled" )
178     endif
179     
180     kontext "ScriptOrganizer"
181     hCloseDialog( ScriptOrganizer, "close" )
182     
183     printlog( "" )
184     printlog( "Test 3: Script storage in documents (save/load)" )
185     try
186         hFileSave
187     catch
188         warnlog( "Document Changed status not set" )
189         hChangeDoc()
190         hFileSave
191     endcatch
192     
193     brc = hDestroyDocument()   
194     
195     brc = hFileOpen( cFilePath )
196     
197     brc = hOpenScriptOrganizer( iDialog )
198     
199     ScriptTreeList.select( 3 )
200     
201     iPos = hExpandNode( ScriptTreeList , 0 )
202     
203     ScriptTreeList.select( 4 )
204     
205     iPos = hExpandNode( ScriptTreeList , 0 )
206     ScriptTreeList.select( 5 )
207     
209     printlog( "" )
210     
211     printlog( "Test 4: Script removal / Document changed" )
212     brc = hDeleteScript( cModName , true )
213     if ( not brc ) then
214         warnlog( "Bad rc: hDelteScript()" )
215     endif    
216     
217     brc = hDeleteScript( cLibName , true )
218     if ( not brc ) then
219         warnlog( "Bad rc: hDelteScript()" )
220     endif        
221     
222     brc = hDeleteScript( cFileName , false )
223     if ( not brc ) then
224        qaerrorlog( "#i50527# Delete enabled for document object" )
225     endif
226         
227     kontext "ScriptOrganizer"
228     hCloseDialog( ScriptOrganizer, "close" )
229     
230     try
231         hFileSave
232     catch
233         warnlog( "Document Changed status expected after script deletion" )
234         brc = hChangeDoc()
235         hFileSave
236     endcatch
237     
238     brc = hDestroyDocument()   
239     
240     printlog( "Reload the document." )
241     brc = hFileOpen( cFilePath )
242     if ( brc ) then
243         qaerrorlog( "#i50530# Macros not completely removed from doc when deleted" )
244     endif
245     
246     printlog( "" )
247     printlog( "Test 5: Verification of script removal" )
248     brc = hOpenScriptOrganizer( iDialog )
249     kontext "ScriptOrganizer"
250     iItemCount = hGetNodeCount( ScriptTreeList )
251     if ( iItemCount <> IDOCPOS ) then
252         warnlog( "Treelist not populated, the test cannot continue" )
253         kontext "ScriptOrganizer"
254         hCloseDialog( ScriptOrganizer, "close" )
255         brc = hDestroyDocument()
256         goto endsub
257     endif
258     
259     iPos = hExpandNode( ScriptTreeList , IDOCPOS )
260     if ( iPos <> 3 ) then
261         warnlog( "Not all libraries/scripts have been deleted" )
262     endif
263             
264     kontext "ScriptOrganizer"
265     hCloseDialog( ScriptOrganizer, "close" )
267     kontext "Navigator"
268     hCloseDialog( Navigator, "close,optional" )
269     
270     brc = hDestroyDocument()
271     
272     brc = hDeleteFile( cFilePath )
273     if ( not brc ) then
274         warnlog( "Could not delete: " & cFilePath & " - do so manually!" )
275     endif
276     
277     
278     hSetmacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
279     
281 endcase