'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 Statistics dialog '* '************************************************************************************************** '* ' #1 fInvokeTrendlinesDialog ' #1 fInvokeInsertYErrorBarsDialog ' #1 fInsertMeanValueLines ' #1 fSetErrorCategory ' #1 fSetErrorValue ' #1 fSetErrorIndicatorItem ' #1 fSetRegressionCurvesItem '* '\************************************************************************************************ ' ch_tools_statistics.inc - Library for automation of the 'Insert::Statistics...' dialog ' This Include contains a set of functions to modify the controls of the Statistics 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 fInvokeTrendlinesDialog() as INTEGER fInvokeTrendlinesDialog = 99 ' Function to invoke the 'Insert::Statistics...' dialog ' No Input ' Returns error-code: ' 0 := Sucess ' 1 := Serious problem trying to invoke the dialog ' 2 := Failure (Dialog not present after invocation) '99 := Unexpected error printlog "** Invoking 'Insert::Trendlines...' in menu" '/// Execute menu item 'Insert::Trendlines...' try InsertTrendlines catch qaErrorLog "Error 1: Invoking menu item 'Insert::Trendlines...' failed" fInvokeTrendlinesDialog = 1 exit function endcatch '/// Lookup if call was successful Kontext active.SetPage (TabTrendLineType) Kontext "TabTrendLineType" if TabTrendLineType.exists(2) then printlog ">> Trend lines dialog is visible now." fInvokeTrendlinesDialog = 0 else qaErrorLog "Error 2: OOPS, calling the slot '.uno:InsertTrendlines' didn't cause any problem ..." qaErrorLog "..., BUT the dialog doesn't seem to be visible" fInvokeTrendlinesDialog = 2 endif if fInvokeTrendlinesDialog = 99 then warnlog "Error 99: Something unexpected happened!!" endif end function ' '-------------------------------------------------------------------- ' function fInvokeInsertYErrorBarsDialog() as INTEGER fInvokeInsertYErrorBarsDialog = 99 ' Function to invoke the 'Insert::InsertYErrorBars...' dialog ' No Input ' Returns error-code: ' 0 := Sucess ' 1 := Serious problem trying to invoke the dialog ' 2 := Failure (Dialog not present after invocation) '99 := Unexpected error printlog "** Invoking 'Insert::InsertYErrorBars...' in menu" '/// Execute menu item 'Insert::InsertYErrorBars...' try InsertYErrorBars catch qaErrorLog "Error 1: Invoking menu item 'Insert::YErrorBars...' failed" fInvokeInsertYErrorBarsDialog = 1 exit function endcatch '/// Lookup if call was successful Kontext "InsertYErrorBarsDLG" if InsertYErrorBarsDLG.exists(2) then printlog ">> InsertYErrorBars dialog is visible now." fInvokeInsertYErrorBarsDialog = 0 else qaErrorLog "Error 2: OOPS, calling the slot '.uno:InsertYErrorBars' didn't cause any problem ..." qaErrorLog "..., BUT the dialog doesn't seem to be visible" fInvokeInsertYErrorBarsDialog = 2 endif if fInvokeInsertYErrorBarsDialog = 99 then warnlog "Error 99: Something unexpected happened!!" endif end function ' '------------------------------------------------------------------------- ' function fInsertMeanValueLines() as INTEGER fInsertMeanValueLines = 99 ' Function to insert mean value lines in an activated chart object ' Input: QAErrorLog "#i86055#-Insert/ Mean Value Lines needs a check box in sub-menu to remove all lines with once click" ' Returns error-code: ' 0 := Sucess ' 1 := Serious problem trying to execute the command ' 2 := Serious problem trying to check if the line has been inserted ' 3 := Uncorrect selected object ' 4 := Format Line-dialog did not occour '99 := Unexpected error printlog "** Executing 'Insert::MeanValueLines...' in menu" '/// Execute menu item 'Insert::MeanValueLines...' try InsertMeanValueLines catch qaErrorLog "Error 1: Executing menu item 'Insert::MeanValueLines...' failed" fInsertMeanValueLines = 1 exit function endcatch Kontext "DocumentChart" '/// Type three times TAB-key to select the first data series DocumentChart.TypeKeys "" , 3 '/// Type F3-function key to select the mean value line of that data series DocumentChart.TypeKeys "" '/// Open the context menu DocumentChart.OpenContextMenu TRUE if hMenuItemGetCount = 6 then '/// Select the first entry (properties) hMenuSelectNr (1) else qaErrorLog "Error 2: Opening context menu on inserted mean value line failed!" fInsertMeanValueLines = 2 exit function endif Kontext '/// There should be one tab page (chart line) Active.SetPage TabFormatChartLine if Active.GetPageCount <> 1 then qaErrorLog "Error 3: Incorrect selected object!" fInsertMeanValueLines = 3 Active.Cancel exit function endif Kontext "TabFormatChartLine" if TabFormatChartLine.Exists(1) then fInsertMeanValueLines = 0 '/// Leave the dialog with CANCEL TabFormatChartLine.CANCEL printlog ">> Inserting 'Mean Value Lines' seems to work" else qaErrorLog "Error 4: Format Line-dialog did not occour!" fInsertMeanValueLines = 4 exit function end if if fInsertMeanValueLines = 99 then warnlog "Error 99: Something unexpected happened!!" endif end function ' '-------------------------------------------------------------------- ' function fSetErrorCategory ( oErrorCategory as OBJECT ) as INTEGER fSetErrorCategory = 99 ' Function to select 'Error Category' ' Input: ' OBJECT oErrorCategory ' Declaration name of Radio-Button (valid values): ' - NoFunction ' - Variance< ' - StandardDeviation ' - Percentage ' - ErrorMargin ' - ConstantValue ' Returns error-code: ' 0 := Sucess ' 1 := Serious problem trying to check 'Error Category' radio-button ' 2 := 'Error Category' radio-button was not set '12 := Radio-Button for desired 'Error Category' is not enabled '42 := User error, input doesn't match. '99 := Unexpected error printlog "** Setting 'Error Category'" '/// Check if desired 'Error Category' radio-button is enabled Kontext "InsertStatisticsDialog" if NOT oErrorCategory.IsEnabled then qaErrorLog "Error 12: Radio-Button for desired 'Error Category' is not enabled" qaErrorLog "... BUG or Script problem -> Check this out!" fSetErrorCategory = 12 exit function endif '/// Try to check desired 'Error Category' Kontext "InsertStatisticsDialog" try oErrorCategory.Check catch ' Throw error 1 and quit on serious problem qaErrorLog "Error 1: Check 'Error Category' radio-button seems to cause a serious problem -> Check this out!" fSetErrorCategory = 1 exit function endcatch '/// Verify (against input) if 'Error Category' radio-button was checked if oErrorCategory.IsChecked then fSetErrorCategory = 0 printlog ">> Setting 'Error Category' radio-button seems to work" else qaErrorLog "Error 2: Desires 'Error Category' radio-button was not checked -> Check this out!" fSetErrorCategory = 2 endif if fSetErrorCategory = 99 then warnlog "Error 99: Something unexpected happened!!" endif end function ' '-------------------------------------------------------------------- ' function fSetErrorValue ( oErrorValue as OBJECT , _ sErrorValue as STRING , _ OPTIONAL bCheckResult as BOOLEAN , _ OPTIONAL sExpectedValue as STRING ) as INTEGER fSetErrorValue = 99 ' Function to set 'Error Value' ' Input: ' OBJECT oErrorValue ' Declaration name of Spin-Field (valid values): ' - PercentageValue ' - ErrorMarginValue ' - ConstantValuePlus ' - ConstantValueMinus ' - STRING (numeric) sErrorValue ' - Value to assign to Spin-Field ' Returns error-code: ' 0 := Sucess ' 1 := Serious problem trying to check 'Error Value' Spin-Field ' 2 := 'Error Value' Spin-Field was not set '12 := Spin-Field for desired 'Error Value' is not enabled '42 := User error, input doesn't match. '99 := Unexpected error if isMissing ( bCheckResult ) then bCheckResult = FALSE endif if isMissing ( sExpectedValue ) then sExpectedValue = sErrorValue endif printlog "" printlog "** Setting 'Error Value'" '/// Check if desired 'Error Value' Spin-Field is enabled Kontext "InsertStatisticsDialog" if NOT oErrorValue.IsEnabled then qaErrorLog "Error 12: Spin-Field for desired 'Error Value' is not enabled" qaErrorLog "... BUG or Script problem -> Check this out!" fSetErrorValue = 12 exit function endif '/// Try to set desired 'Error Value' Kontext "InsertStatisticsDialog" try oErrorValue.setText ( sErrorValue ) catch ' Throw error 1 and quit on serious problem qaErrorLog "Error 1: Setting 'Error Value' Spin-Field seems to cause a serious problem -> Check this out!" fSetErrorValue = 1 exit function endcatch '/// Verify (against input) if 'Error Value' Spin-Field was set correctly if bCheckResult then if oErrorValue.getText = sExpectedValue then fSetErrorValue = 0 printlog ">> Setting 'Error Value' Spin-Field seems to work" else qaErrorLog "Error 2: Desires 'Error Value' Spin-Field was not set correctly (value out of range?) -> Check this out!" qaErrorLog "Expected result: " & sExpectedValue qaErrorLog "Obtained result: " & oErrorValue.getText fSetErrorValue = 2 endif else fSetErrorValue = 0 qaErrorLog "!! Skipped verification of result" endif if fSetErrorValue = 99 then warnlog "Error 99: Something unexpected happened!!" endif end function ' '-------------------------------------------------------------------- ' function fSetErrorIndicatorItem ( iErrorIndicatorNumber as INTEGER ) as INTEGER fSetErrorIndicatorItem = 99 ' Function to select the 'Error Indicator' item ' Input: ' INTEGER iErrorIndicatorNumber: ' Position in 'Error Indicator' control. ' Posible Values are 1 to 4 ' NOTE: Currently the 'Error Indicator' control can only be addressed using 'typekeys'. ' -> No 100% proof verification of success possible! ' Returns error-code: ' 0 := Sucess. ' 1 := Serious problem while selecting the variant control. '11 := 'Error Indicator' is not visible '42 := User error, input out of range. '99 := Unexpected error. '/// Check if 'Error Indicator' is visible Kontext "InsertStatisticsDialog" if NOT ErrorIndicator.IsVisible then qaErrorLog "Error 11: 'Error Indicator' is not visible" qaErrorLog "... BUG or Script problem -> Check this out!" fSetErrorIndicatorItem = 11 exit function endif '/// Lookup valid input value for 'Error Indicator Item' if ( iErrorIndicatorNumber < 1 ) OR ( iErrorIndicatorNumber > 4 ) then fSetErrorIndicatorItem = 42 warnlog "USER ERROR: Input doesn't match!" exit function endif printlog "** Selecting the 'Error Indicator'" '/// Select the desired entry number Kontext "InsertStatisticsDialog" try ErrorIndicator.typeKeys "" ErrorIndicator.typeKeys "", ( iErrorIndicatorNumber - 1 ) fSetErrorIndicatorItem = 0 printlog ">> Selecting the 'Error Indicator' probably worked" catch ' Throw error 1 and quit on serious problem qaErrorLog "Error 1: Selecting 'Error Indicator' seems to cause a serious problem -> Check this out!" fSetErrorIndicatorItem = 1 exit function endcatch if fSetErrorIndicatorItem = 99 then warnlog "Error 99: Something unexpected happened!!" endif end function ' '-------------------------------------------------------------------- ' function fSetRegressionCurvesItem ( iRegressionCurveNumber as INTEGER ) as INTEGER fSetRegressionCurvesItem = 99 ' Function to select the 'Regression Curves' item ' Input: ' INTEGER iRegressionCurveNumber: ' Position in 'Regression Curves' control. ' Posible Values are 1 to 5 ' NOTE: Currently the 'Regression Curves' control can only be addressed using 'typekeys'. ' -> No 100% proof verification of success possible! ' Returns error-code: ' 0 := Sucess. ' 1 := Serious problem while selecting the variant control. '11 := 'Regression Curves' is not visible '42 := User error, input out of range. '99 := Unexpected error. ' Check if 'Regression Curves' is visible Kontext "InsertStatisticsDialog" if NOT RegressionCurves.IsVisible then qaErrorLog "Error 11: 'Regression Curves' is not visible" qaErrorLog "... BUG or Script problem -> Check this out!" fSetRegressionCurvesItem = 11 exit function endif '/// Lookup valid input value for 'Regression Curves Item' if ( iRegressionCurveNumber < 1 ) OR ( iRegressionCurveNumber > 5 ) then fSetRegressionCurvesItem = 42 warnlog "USER ERROR: Input doesn't match!" exit function endif printlog "** Selecting the 'Regression Curves'" '/// Select the desired entry number Kontext "InsertStatisticsDialog" try RegressionCurves.typeKeys "" RegressionCurves.typeKeys "", ( iRegressionCurveNumber - 1 ) fSetRegressionCurvesItem = 0 printlog ">> Selecting the 'Regression Curves' probably worked" catch ' Throw error 1 and quit on serious problem qaErrorLog "Error 1: Selecting 'Regression Curves' seems to cause a serious problem -> Check this out!" fSetRegressionCurvesItem = 1 exit function endcatch if fSetRegressionCurvesItem = 99 then warnlog "Error 99: Something unexpected happened!!" endif end function