blob: a4f1307a8a43654a57303d39b2336577b67d2748 [file] [log] [blame]
'encoding UTF-8 Do not remove or change this line!
'**************************************************************
'
' Licensed to the Apache Software Foundation (ASF) under one
' or more contributor license agreements. See the NOTICE file
' distributed with this work for additional information
' regarding copyright ownership. The ASF licenses this file
' to you under the Apache License, Version 2.0 (the
' "License"); you may not use this file except in compliance
' with the License. You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing,
' software distributed under the License is distributed on an
' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
' KIND, either express or implied. See the License for the
' specific language governing permissions and limitations
' under the License.
'
'**************************************************************
'*
'* short description : Tool library for Legend dialog
'*
'**************************************************************************************************
'*
' #1 fInvokeLegendDialog
' #1 fCloseLegendDialogOK
' #1 fSetDisplayLegend
' #1 fSetLegendPosition
'*
'\************************************************************************************************
' ch_tools_legend.inc - A library for automation of the 'Insert/Legend...' dialog
' This Include contains a set of functions to modify the controls of the Legend dialog.
' All functions are designed to return error-codes depending on the behaviour of the action applied.
' Return codes:
' Error 0: Success.
' Error 1: The basic action beeing applied caused a serious problem, e.g. a crash.
' Error 2 TO 9: A functional problem occured.
' Error 11 TO 19: Wrong marginal conditions end up in failture, e.g. control not visible.
' NOTE: This errors can also be used for 'negative' testing.
' Error 42: Wrong input. Probably only of interest during test development .
' Error 99: Unexpected behaviour - Shouldn't normally occur.
' ATTENTION:
' Only Errors 42 and 99 throw 'warnlogs'.
' All other errors are silent.
' They only throw QAErrorlogs the give a hint what probably went wrong.
' Expected Errors MUST exclusivly be handled by the calling routine.
'
'--------------------------------------------------------------------
'
function fInvokeLegendDialog() as INTEGER
fInvokeLegendDialog = 99
' Function to invoke the 'Insert/Legend...' dialog
' Return (Error codes):
' 0 = Sucess
' 1 = Serious problem trying to invoke the dialog
' 2 = Failure (Dialog not present after invocation)
' 99 = Unexpected error
printlog "Invoking 'Insert/Legend...' in menu"
'/// Execute menu item 'Insert/Legend...'
try
InsertLegend
catch
qaErrorLog "Error 1: Invoking menu item 'Insert/Legend...' failed"
fInvokeLegendDialog = 1
exit function
endcatch
'/// Lookup if call was successful
Kontext "InsertLegendDialog"
if InsertLegendDialog.exists(2) then
printlog ">> Legend dialog is visible now."
fInvokeLegendDialog = 0
else
QAErrorLog "Error 2: The slot 'InsertLegend' has been executed but the dialog is not visible"
fInvokeLegendDialog = 2
endif
if fInvokeLegendDialog = 99 then
warnlog "Error 99: Something unexpected happened!!"
endif
end function
'
'--------------------------------------------------------------------
'
function fCloseLegendDialogOK() as INTEGER
fCloseLegendDialogOK = 99
' Function to close the Legend dialog using OK button
' No Input
' Returns error-code:
' 0 := Sucess
' 1 := Serious problem trying to Close the dialog
' 2 := Failure (Dialog present after applying OK button)
'15 := Dialog not present before closing
'99 := Unexpected error
printlog "** Closing Legend dialog"
Kontext "InsertLegendDialog"
'/// Check existence of Legend dialog
if InsertLegendDialog.exists(2) then
printlog ">> Legend dialog is visible as expected."
else
' Return Error 15 and quit if dialog not found
qaErrorLog "Error 15: OOPS, Legend dialog should be visible ..."
qaErrorLog "... this is a BUG or a scripting error -> Check this out!"
fCloseLegendDialogOK = 15
exit function
endif
'/// Click OK button in Legend dialog
try
InsertLegendDialog.OK
catch
qaErrorLog "Error 1: Closing the Legend dialog seems to have a serious problem -> Check this out!"
fCloseLegendDialogOK = 1
exit function
endcatch
'///+ Check that the Legend dialog is not available any longer
Kontext "InsertLegendDialog"
if InsertLegendDialog.exists(2) then
' Return Error 2 if still present
qaErrorLog "Error 2: Legend dialog should be invisible now ..."
qaErrorLog "... closing the dialog doesn't seem to work -> Check this out!"
fCloseLegendDialogOK = 2
else
printlog ">> Closing the Legend dialog seems to work as expected"
fCloseLegendDialogOK = 0
endif
if fCloseLegendDialogOK = 99 then
warnlog "Error 99: Something unexpected happened!!"
endif
end function
'
'--------------------------------------------------------------------
'
function fSetDisplayLegend ( bDisplayLegend as BOOLEAN ) as INTEGER
fSetDisplayLegend = 99
' Function to [en|dis]able visibility of chart legend
' Input:
' BOOLEAN bDisplayLegend
' TRUE := Check 'Dislay (legend)'
' FALSE := Uncheck 'Dislay (legend)'
' Returns error-code:
' 0 := Sucess
' 1 := Serious problem trying to check grid
' 2 := 'Dislay (legend)' was not set
'11 := 'Dislay (legend)' Check-box is not visible
'99 := Unexpected error
printlog "** Setting Display Legend"
'/// Check if 'Dislay (legend)' check-box is visible
Kontext "InsertLegendDialog"
if NOT Display.IsVisible then
qaErrorLog "Error 11: Check-box for 'Dislay (legend)' is not visible"
qaErrorLog "... BUG or Script problem -> Check this out!"
fSetDisplayLegend = 11
exit function
endif
'/// Try to (Un)Check 'Dislay (legend)'
Kontext "InsertLegendDialog"
try
if bDisplayLegend then
Display.Check
else
Display.UnCheck
endif
catch
' Throw error 1 and quit on serious problem
qaErrorLog "Error 1: Check 'Dislay (legend)' seems to cause a serious problem -> Check this out!"
fSetDisplayLegend = 1
exit function
endcatch
'/// Verify (against input) if check-box was checked
if Display.IsChecked = bDisplayLegend then
fSetDisplayLegend = 0
printlog ">> Setting 'Dislay (legend)' seems to work"
else
qaErrorLog "Error 2: 'Dislay (legend)' was not checked -> Check this out!"
fSetDisplayLegend = 2
endif
if fSetDisplayLegend = 99 then
warnlog "Error 99: Something unexpected happened!!"
endif
end function
'
'--------------------------------------------------------------------
'
function fSetLegendPosition ( oPosition as OBJECT ) as INTEGER
fSetLegendPosition = 99
' Function to select Legend position
' Input:
' OBJECT oPosition
' Declaration name of Radio-Button: Position[Left|Right|Top|Bottom] are valid values
' Returns error-code:
' 0 := Sucess
' 1 := Serious problem trying to check Legend position radio-button
' 2 := Legend position radio-button was not set
'12 := Radio-Button for desired position is not enabled
'42 := User error, input doesn't match.
'99 := Unexpected error
printlog "** Setting Legend position"
'/// Check if Legend position radio-button is enabled
Kontext "InsertLegendDialog"
if NOT oPosition.IsEnabled then
qaErrorLog "Error 12: Radio-Button for desired position is not enabled"
qaErrorLog "... BUG or Script problem -> Check this out!"
fSetLegendPosition = 12
exit function
endif
'/// Try to (Un)Check desired radio-button
Kontext "InsertLegendDialog"
try
oPosition.Check
catch
' Throw error 1 and quit on serious problem
qaErrorLog "Error 1: Check Legend position radio-button seems to cause a serious problem -> Check this out!"
fSetLegendPosition = 1
exit function
endcatch
'/// Verify (against input) if Legend position radio-button was checked
if oPosition.IsChecked then
fSetLegendPosition = 0
printlog ">> Setting Legend position radio-button seems to work"
else
qaErrorLog "Error 2: Desires Legend position radio-button was not checked -> Check this out!"
fSetLegendPosition = 2
endif
if fSetLegendPosition = 99 then
warnlog "Error 99: Something unexpected happened!!"
endif
end function