1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
'encoding UTF-8 Do not remove or change this line!
'*******************************************************************************
'* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
'*
'* Copyright 2008 by Sun Microsystems, Inc.
'*
'* OpenOffice.org - a multi-platform office productivity suite
'*
'* $RCSfile: platforms.inc,v $
'*
'* $Revision: 1.1 $
'*
'* last change: $Author: jsi $ $Date: 2008-06-16 10:03:21 $
'*
'* This file is part of OpenOffice.org.
'*
'* OpenOffice.org is free software: you can redistribute it and/or modify
'* it under the terms of the GNU Lesser General Public License version 3
'* only, as published by the Free Software Foundation.
'*
'* OpenOffice.org is distributed in the hope that it will be useful,
'* but WITHOUT ANY WARRANTY; without even the implied warranty of
'* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
'* GNU Lesser General Public License version 3 for more details
'* (a copy is included in the LICENSE file that accompanied this code).
'*
'* You should have received a copy of the GNU Lesser General Public License
'* version 3 along with OpenOffice.org. If not, see
'* <http://www.openoffice.org/license.html>
'* for a copy of the LGPLv3 License.
'*
'/******************************************************************************
'*
'* owner : joerg.skottke@sun.com
'*
'* short description : Supported extension platforms
'*
'\******************************************************************************
testcase tExtensionPlatforms
printlog( "Verify that only extensions designed for this platform are installed" )
dim cBasePath as string
cBasePath = gTesttoolPath & "extensions\optional\input\platform\"
cBasePath = convertpath( cBasePath )
dim cConfigFile as string
cConfigFile = cBasePath & "extensions.info"
dim iExtensionCount as integer
dim iCurrentExtension as integer
dim cCurrentExtensionName as string
dim cCurrentExtensionPath as string
dim cCurrentExtensionFile as string
dim cCurrentExtensionPlatform as string
dim cInfoArray( 200 ) as string
dim iStatus as integer
dim bShouldInstall as boolean
hGetDataFileSection( cConfigFile, cInfoArray(), "general", "", "" )
iExtensionCount = hGetValueForKeyAsInt( cInfoArray(), "ExtensionCount" )
for iCurrentExtension = 1 to iExtensionCount
hGetDataFileSection( cConfigFile, cInfoArray(), iCurrentExtension, "" , "" )
cCurrentExtensionFile = hGetValueForKeyAsString( cInfoArray(), "File" )
cCurrentExtensionName = hGetValueForKeyAsString( cInfoArray(), "Name" )
cCurrentExtensionPath = cBasePath & cCurrentExtensionFile
cCurrentExtensionPlatform = hGetValueForKeyAsString( cInfoArray(), "Platform" )
' Find out whether the extension should install or not
select case ( cCurrentExtensionPlatform )
case "all" : bShouldInstall = TRUE
case gtSysName : bShouldInstall = TRUE
case gPlatGroup : bShouldInstall = TRUE
case gPlatform : bShouldInstall = TRUE
case else : bShouldInstall = FALSE
end select
printlog( "" )
printlog( "Current extension: " & cCurrentExtensionFile )
iStatus = hExtensionAddGUI( cCurrentExtensionPath, "InstallForUser, NoLicense, NoUpdate, Verbose" )
if ( iStatus >= 0 ) then
kontext "Active"
if ( Active.exists( 2 ) ) then
select case ( bShouldInstall )
case TRUE : warnlog( "Extension should install but a warning is displayed" )
case FALSE : printlog( "Extension is for another platform, it is not installed" )
end select
Active.ok()
else
select case ( bShouldInstall )
case TRUE : printlog( "No platform mismatch warning. Good." )
case FALSE : warnlog( "Platform mismatch warning is missing!" )
end select
endif
kontext "PackageManager"
if ( PackageManager.exists( 1 ) ) then PackageManager.close()
iStatus = hExtensionRemoveGUI( cCurrentExtensionName )
select case ( iStatus )
case 0: ' Extension was removed successfully
select case ( bShouldInstall )
case TRUE : printlog( "Extension was installed and removed, good" )
case FALSE : warnlog( "The extension was removed but should not be installed" )
end select
case 3: ' Extension was not found at removal
select case ( bShouldInstall )
case TRUE : warnlog( "The extension should have been installed but is missing" )
case FALSE : printlog( "The extension was not installed. Good" )
end select
case else : ' Any other returnvalue is bad
warnlog( "Unexpected returnvalue from function: " & iStatus )
end select
else
warnlog( "Bad status returned, installation of extension failed" )
goto endsub
endif
next iCurrentExtension
endcase
|