summaryrefslogtreecommitdiff
path: root/testautomation/global/required/includes/g_009.inc
blob: 61ef7dd95c372b151753b73cbb8ad67101dc58b1 (plain)
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
'encoding UTF-8  Do not remove or change this line!
'**************************************************************************
' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
'
' Copyright 2000, 2010 Oracle and/or its affiliates.
'
' OpenOffice.org - a multi-platform office productivity suite
'
' 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 : thorsten.bosbach@oracle.com
'*
'* short description : Global resource tests for the menu: Help
'*
'*************************************************************************
'*
' #1 tHelpCheckForUpdates
'*
'\************************************************************************

testcase tHelpCheckForUpdates
    dim sTemp as string
    dim sIniFile as string
    dim i,a as integer
    dim bProxy as boolean
    dim bOnceAgain as boolean
    dim sProxyFile as string
    dim iOldProxy as integer

    bProxy = FALSE
    bOnceAgain = TRUE

    '/// open application ///'
    Call hNewDocument

    if gPlatGroup = "unx" then
        sIniFile = convertPath(gNetzOfficePath+"program/versionrc")
    else
        sIniFile = convertPath(gNetzOfficePath+"program\version.ini")
    endif
    sTemp = GetIniValue (sIniFile, "Version", "UpdateURL")
    if (sTemp <> "" AND NOT gOOO) then
        '/// choose Help -> Check for Updates... ///'
        while (bOnceAgain)
            if bProxy AND bOnceAgain then
                bOnceAgain = FALSE
            endif
            try
                HelpCheckForUpdates
            catch
                bOnceAgain = FALSE
                if (gtplatform = "sol") OR (gtplatform = "x86") or gOOO then
                    printlog "This could be a (patched) installation on Solaris Sparc/Intel or OOo - No Online Update Feature available."
                    hCloseDocument
                else
                    warnlog "Help->Check for Updates failed"
                    hCloseDocument
                endif
                goto endsub
            endcatch
            ' The dialog has to come up: 'Check for Updates'
            Kontext "CheckForUpdates"
            '            if CheckForUpdates.exists(10) then ' id not in build for dialog workaround: ' not working due to i 80859
            if Status.exists(10) then
                if sTemp <> "" then
                    printlog "'Check for Updates' came up"
                else
                    warnlog "'Check for Updates' came up, but the feature is disabled and the dialog hasn't to come up"
                    bOnceAgain = FALSE
                endif
                'dialogTest(CheckForUpdates) ' not working due to i 80859
                '/// A messagebox comes up with either CANCEL and/or OK -> press CANCEL or the only available button. ///'
                ' And will be overlayed soon by an 'active'
                Kontext
                if active.exists(6) then
                    printlog "Active text: '" + active.getText + "'"
                    try
                        active.cancel
                        printlog "Pressed CANCEL"
                    catch
                        active.ok
                        printlog "Pressed OK"
                    endcatch
                    bOnceAgain = FALSE
                else
                    bOnceAgain = FALSE
                    Kontext "CheckForUpdates"
                    try
                        CheckForUpdates.cancel
                    catch
                        'cancel button is no more availabale
                        printlog "cancel wasnt possible"
                        try
                            'CheckForUpdates.close
                            ' close method doesn't work
                            printlog "1:"+status.gettext
                            printlog "2:"+description.gettext
                            closebtn.click
                        catch
                            printlog "close wasnt possible"
                            ' last fallback
                            'printlog resetapplication
                            'hNewDocument
                            printlog "1:"+status.gettext
                            printlog "2:"+description.gettext
                            cancel.click
                        endcatch
                    endcatch
                endif
            else
                bOnceAgain = FALSE
                if sTemp <> "" then
                    if (gtplatform = "sol") OR (gtplatform = "x86") or gOOO then
                        printlog "This could be a (patched) installation on Solaris Sparc/Intel or OOo - No Online Update Feature available."
                    else
                        warnlog "Dialog didn't came up: 'Check for Updates'; URL that was called is: '" + sTemp + "'"
                    endif
                else
                    warnlog "Online Update Feature isn't available in this build, but calling Help -> Check for Updates is possible? (no 'UpdateURL' in file: '"+sIniFile+"')"
                endif
            endif
            ' Set proxy to get connection to update server
            if bProxy then
                ToolsOptions
                hToolsOptions("INTERNET","PROXY")
                Kontext "TabProxyServer"
                a = ProxyServer.getItemCount
                for i = 1 to a
                    printlog "(" + i + "/" + a + "): '" + ProxyServer.getItemText(i) + "'"
                next i
                ProxyServer.select(a) ' should be always manual
                if HttpProxy.isEnabled AND (privateProxyServer <> "") then
                    HttpProxy.setText privateProxyServer
                    HttpPort.setText cStr(privateProxyPort)
                    if bOnceAgain then
                        iOldProxy = ProxyServer.getSelIndex
                    else
                        ProxyServer.select(iOldProxy)
                    endif
                    Kontext "OptionenDlg"
                    OptionenDlg.OK
                else
                    if privateProxyServer <> "" then
                        warnLog "Wrong assumption that last entry is 'manual'! " + ProxyServer.getItemText(a)
                    else
                        qaErrorLog "Maybe you need to use a proxy server to connect to the internet."
                    endif
                    Kontext "OptionenDlg"
                    OptionenDlg.Cancel
                    bOnceAgain = FALSE
                endif
            endif
            bOnceAgain = FALSE
        wend
    else
        qaErrorlog "Test disabled, because it is OOo build and UpdateURL is empty and calling the slot would succeed"
    endif
    '/// close application ///'
    Call hCloseDocument
endcase