summaryrefslogtreecommitdiff
path: root/testautomation/chart2/optional/includes/loadsave/ch2_xml_format.inc
blob: 515d9fe55ca64ed86b2a94314557cda4d492efcc (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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
'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 : oliver.craemer@sun.com
'*
'* short description : Verify the Chart2 XML file format
'*
'************************************************************************
'*
' #1 tCompareXMLFormatCreate   ' Verify Chart2 XML file format by using three characteristcs on new chart
' #1 tCompareXMLFormatLoad     ' Verify Chart2 XML file format by using three characteristcs on loaded chart
'*
'\***********************************************************************

testcase tCompareXMLFormatCreate
'///+ Test purpose: Verify within three characteristics that there is really a chart 

    dim sOutputFile as string
    dim sUnpackedStorageDir as string
    dim sChartContentXML as string
    
    gApplication   = "WRITER"
    sOutputFile = convertpath(gOfficepath & "user\work\Chart2_XML.odt")
    sUnpackedStorageDir = (gOfficePath & ConvertPath("user\work\chart2_XML2"))
    sChartContentXML = (gOfficePath & ConvertPath("user\work\chart2_XML2") & ConvertPath("\Object 1\content.xml"))
    
    '/// File / New / Text
    printlog " Open new Writer document"
    call hNewDocument
    '/// Insert chart with Insert / Object / Chart
    printlog " Insert chart with Insert / Object / Chart"
    InsertChart
    '/// Save document to <i>gOfficepath</i>/user/work/Chart2_XML.odt
    printlog " Save document to <i>gOfficepath</i>/user/work/Chart2_XML.odt"
    if NOT hFileSaveAsKill (sOutputFile) then
        warnlog "Saving test document failed -> Aborting"
        call hCloseDocument
        goto endsub
    else
        printlog "File saved successfully."
    endif    
    '/// File / Close
    call hCloseDocument
    sleep(3)
    printlog "File closed"    
    '/// Uncompress with <i>unzip</i> or <i>jar</i> the 
    '///+ <i>gOfficepath</i>/user/work/verySimpleChart.ods document
    '///+ into <i>gOfficePath</i>/user/work/chart2_XML-directory
    printlog "Unpack storage of test document."
    UnpackStorage(sOutputFile, sUnpackedStorageDir)
    printlog "Read the test documents DOM."    
    '/// Load the XML file <i>gOfficePath</i>/user/work/chart2_XML/Object 1/content.xml
    '///+ in an XML editor
    SAXReadFile(sChartContentXML)       
    printlog "Set the DOM pointer to document root"
    printlog "|-/"
    SAXSeekElement("/")
    printlog "  |-office:document-content"
    '/// Open the element 'office:document-content' 
    SAXSeekElement("office:document-content")
    printlog "    |-office:body"
    '/// Open the element 'office:body'
    SAXSeekElement("office:body")
    printlog "      |-office:chart"
    '/// Open the element 'office:chart'
    SAXSeekElement("office:chart")
    printlog "         |-chart:chart"
    '/// Open the element 'chart:chart'
    SAXSeekElement("chart:chart")
    '/// Get the attribute value for <i>chart:class</i>.
    '///+ If it is 'chart:bar' the first characteristics validation has been
    '///+ passed.
    if SAXGetAttributeValue("chart:class") = "chart:bar" then
        printlog "This is a bar chart as expected"
    else 
        warnlog "This is no bar chart, it is a " & SaxGetAttributeValue("chart:class")
    endif        
    printlog "Seek for chart:plot-area"
    printlog "            |-chart:plot-area"
    '/// Open the element 'chart:plot-area'
    SAXSeekElement("chart:plot-area")
    '/// If the attribute value of 'chart:data-source-has-labels' is 'both'
    '///+ the second characteristics validation has been passed.
    if SAXGetAttributeValue("chart:data-source-has-labels") = "both" then
        printlog "The label attribute for chart:plot-area is correct"
    else 
        warnlog "The lable attribute is not both, it is " & SaxGetAttributeValue("chart:data-source-has-labels")
    endif    
    printlog "Seek for chart:series"
    printlog "               |-chart:series"
    '/// Open the element 'chart:series'
    SAXSeekElement("chart:series")
    '/// If the attribute valie of 'chart:values-cell-range-address' is local-table.$B$2:.$B$5''
    '///+ the hird characteristics validation has been passed.
    if SAXGetAttributeValue("chart:values-cell-range-address") = "local-table.$B$2:.$B$5" then
        printlog "The cell range for chart:series is correct"
    else 
        warnlog "The cell range is not local-table.$B$2:.$B$5, it is " & SaxGetAttributeValue("chart:values-cell-range-address")
    endif
    ' DEBUG: printlog "I'm here: " & SAXGetElementName   
    '/// Close the XML editor.
    SAXRelease    
endcase
'
'--------------------------------------------------------------------
'
testcase tCompareXMLFormatLoad
'///+ Test purpose: Verify within three characteristics that there is really a chart 

    dim sOutputFile as string
    dim sUnpackedStorageDir as string
    dim sChartContentXML as string
    
    gApplication   = "CALC"
    sOutputFile = convertpath(gOfficepath & "user\work\verySimpleChart.ods")
    sUnpackedStorageDir = (gOfficePath & ConvertPath("user\work\chart2_XML"))
    sChartContentXML = (gOfficePath & ConvertPath("user\work\chart2_XML") & ConvertPath("\Object 1\content.xml"))
    
    '/// File / Open / <i>gTestToolPath</i>/chart2/update/input/verySimpleChart.ods
    '/// File / Save As / <i>gOfficepath</i>/user/work/verySimpleChart.ods 
    if fLoadVerySimpleChartAndSaveLocal() > 0 then
        warnlog "Loading test document failed!"
        goto endsub
    else
        printlog "Test document has successfully been loaded."
    endif
    
    '/// Select the chart object using the navigator
    printlog "Select chart using navigator"
    if fSelectFirstOLE = 0 then
        printlog "Chart is selected"
    else 
        warnlog "Chart could not be selected"
        call hCloseDocument
        goto endsub
    endif
    
    '/// Activate chart with Edit / Object / Edit
    printlog "Activate chart by Edit / Object / Edit"
    EditObjectEdit
    
    'Save document localy
    Kontext "DocumentCalc"
    '/// Press twice <ESCAPE> to leave the chart object
    DocumentCalc.TypeKeys "<ESCAPE>" , 2   'Leave chart and unselect it
    '/// Press <CTRL+HOME> to get to cell A1
    DocumentCalc.TypeKeys "<MOD1 HOME>"
    '/// Press <F9> to re-calculate the spreadsheet and the objects
    DocumentCalc.TypeKeys "<F9>"
    '/// Save the document again
    if NOT hFileSave (sOutputFile) then
        warnlog "Saving test document localy failed -> Aborting"
        call hCloseDocument
        goto endsub
    else
        printlog "File with very simple chart saved successfully."
    endif    
    '/// File / Close
    call hCloseDocument
    sleep(3)
    printlog "File with very simple chart closed"    
    '/// Uncompress with <i>unzip</i> or <i>jar</i> the 
    '///+ <i>gOfficepath</i>/user/work/verySimpleChart.ods document
    '///+ into <i>gOfficePath</i>/user/work/chart2_XML-directory
    printlog "Unpack storage of test document."
    UnpackStorage(sOutputFile, sUnpackedStorageDir)
    printlog "Read the test documents DOM."    
    '/// Load the XML file <i>gOfficePath</i>/user/work/chart2_XML/Object 1/content.xml
    '///+ in an XML editor
    SAXReadFile(sChartContentXML)       
    printlog "Set the DOM pointer to document root"
    printlog "|-/"
    SAXSeekElement("/")
    printlog "  |-office:document-content"
    '/// Open the element 'office:document-content' 
    SAXSeekElement("office:document-content")
    printlog "    |-office:body"
    '/// Open the element 'office:body'
    SAXSeekElement("office:body")
    printlog "      |-office:chart"
    '/// Open the element 'office:chart'
    SAXSeekElement("office:chart")
    printlog "         |-chart:chart"
    '/// Open the element 'chart:chart'
    SAXSeekElement("chart:chart")
    '/// Get the attribute value for <i>chart:class</i>.
    '///+ If it is 'chart:bar' the first characteristics validation has been
    '///+ passed.
    if SAXGetAttributeValue("chart:class") = "chart:bar" then
        printlog "This is a bar chart as expected"
    else 
        warnlog "This is no bar chart, it is a " & SaxGetAttributeValue("chart:class")
    endif        
    printlog "Seek for chart:plot-area"
    printlog "            |-chart:plot-area"
    '/// Open the element 'chart:plot-area'
    SAXSeekElement("chart:plot-area")
    '/// If the attribute value of 'table:cell-range-address' is 'Sheet1.A1:Sheet1.B2'
    '///+ the second characteristics validation has been passed.
    if SAXGetAttributeValue("table:cell-range-address") = "Sheet1.A1:B2" then
        printlog "The cell range for chart:plot-area is correct"
    else 
        warnlog "#i100780#: The cell range is not Sheet1.A1:B2, it is " & SaxGetAttributeValue("table:cell-range-address")
    endif    
    printlog "Seek for chart:series"
    printlog "               |-chart:series"
    '/// Open the element 'chart:series'
    SAXSeekElement("chart:series")
    '/// If the attribute valie of 'chart:values-cell-range-address' is Sheet1.A1:Sheet1.A2''
    '///+ the hird characteristics validation has been passed.
    if SAXGetAttributeValue("chart:values-cell-range-address") = "Sheet1.A1:A2" then
        printlog "The cell range for chart:series is correct"
    else 
        warnlog "#i100780#: The cell range is not Sheet1.A1:A2, it is " & SaxGetAttributeValue("chart:values-cell-range-address")
    endif
    ' DEBUG: printlog "I'm here: " & SAXGetElementName   
    '/// Close the XML editor.
    SAXRelease    
endcase