summaryrefslogtreecommitdiff
path: root/testautomation/framework/optional/includes/f_usage_tracking.inc
diff options
context:
space:
mode:
Diffstat (limited to 'testautomation/framework/optional/includes/f_usage_tracking.inc')
-rw-r--r--testautomation/framework/optional/includes/f_usage_tracking.inc285
1 files changed, 285 insertions, 0 deletions
diff --git a/testautomation/framework/optional/includes/f_usage_tracking.inc b/testautomation/framework/optional/includes/f_usage_tracking.inc
new file mode 100644
index 000000000000..5abdade49ccf
--- /dev/null
+++ b/testautomation/framework/optional/includes/f_usage_tracking.inc
@@ -0,0 +1,285 @@
+'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 : joerg.skottke@sun.com
+'*
+'* short description : Usage tracking
+'*
+'\******************************************************************************
+
+' Concept
+' The usage tracking functionality is disabled during test init.
+' Configuration is done in Tools/Options. There a tabpage must exist that
+' offers the functionality to enable/disable tracking and to show what has
+' logged.
+
+private const LOGFILE = "user\temp\Feedback\Current.csv"
+
+'*******************************************************************************
+
+testcase tUsageTracking1
+
+ printlog( "Test case 1: Presence of the Usage Tracking featureset (API)" )
+
+ if ( not gOOoImprovementIsEnabled ) then
+ warnlog( "Could not access API for usage tracking program" )
+ endif
+
+endcase
+
+'*******************************************************************************
+
+testcase tUsageTracking2
+
+ ' There must not be a log file to start with.
+
+ printlog( "Test case 2: There must be no logfile present yet" )
+
+ dim cLogFile as string
+ cLogFile = gOfficePath & LOGFILE
+ cLogFile = convertpath( cLogFile )
+
+ if ( dir( cLogFile ) = "" ) then
+ printlog( "No log file. Good" )
+ else
+ warnlog( "Logfile not esxpected: " & cLogFile )
+ hDeleteFile( cLogFile )
+ endif
+
+endcase
+
+'*******************************************************************************
+
+testcase tUsageTracking3
+
+ ' When the usage tracking mechanism is off we want the ui to reflect that.
+
+ printlog( "Test case 3: Presence of configuration tabpage and button states for disabled functionality" )
+
+ ToolsOptions
+ hToolsOptions( "StarOffice" , "IMPROVEMENT" )
+
+ kontext "TabOOoImprovement"
+ if ( TabOOoImprovement.exists( 1 ) ) then
+
+ if ( not ParticipateNo.isChecked() ) then
+ qaerrorlog( "#i98736# - UI should reflect current status for usage tracking: No" )
+ endif
+
+ if ( ShowData.isEnabled() ) then
+ qaerrorlog( "#i97340# - Show data button should not be enabled if nothing is logged" )
+
+ ShowData.click()
+
+ kontext "Active"
+ if ( Active.exists( 2 ) ) then
+ qaerrorlog( "Messagebox not required as control should not be enabled (see #i97340#)" )
+ Active.ok()
+
+ kontext "TextImport"
+ if ( TextImport.exists( 5 ) ) then
+ warnlog( "There should be nothing to load if usage tracking is disabled" )
+
+ TextImport.ok()
+
+ kontext "CALC"
+ if ( DocumentCalc.exists( 3 ) ) then
+ hCloseDocument()
+ else
+ warnlog( "If a log exists it should open in a new Calc document" )
+ endif
+ endif
+ endif
+ endif
+ else
+ warnlog( "OOo Improvement Tabpage (Tools/Options) is missing" )
+ endif
+
+ kontext "OptionenDlg"
+ OptionenDlg.cancel()
+
+endcase
+
+'*******************************************************************************
+
+testcase tUsageTracking4
+
+ ' When enabling usage tracking we want the mechanism to work at once
+
+ printlog( "Test case 4: Enable usage tracking, track something and display the log" )
+
+ dim iDocumentType as integer
+
+ dim cLogFile as string
+ cLogFile = gOfficePath & LOGFILE
+ cLogFile = convertpath( cLogFile )
+
+ dim lFileSize as long
+
+ const FILE_SIZE = 2000
+
+ hDeleteFile( cLogFile )
+
+ ToolsOptions
+
+ hToolsOptions( "StarOffice" , "IMPROVEMENT" )
+
+ kontext "TabOOoImprovement"
+ if ( TabOOoImprovement.exists( 1 ) ) then
+
+ ParticipateYes.check()
+
+ if ( hForceUsageTrackingOn() ) then
+
+ kontext "OptionenDlg"
+ OptionenDlg.ok()
+
+ ' Open different document types and modify them so something is logged
+ for iDocumentType = 1 to 4
+
+ hNumericDocType( iDocumentType )
+ hNewDocument()
+ hChangeDoc()
+ hCloseDocument()
+
+ next iDocumentType
+
+ ToolsOptions
+
+ hToolsOptions( "StarOffice" , "IMPROVEMENT" )
+
+ kontext "TabOOoImprovement"
+ if ( TabOOoImprovement.exists( 1 ) ) then
+
+ lFileSize = hGetFileSizeAsLong( cLogFile )
+ printlog( "Filesize is: " & lFileSize & " byte" )
+ if ( lFileSize <> FILE_SIZE ) then
+ warnlog( "The logfile does not have the expected size" )
+ printlog( "Expected: " & FILE_SIZE )
+ printlog( "Found...: " & lFileSize )
+ endif
+
+ ShowData.click()
+
+ kontext "TextImport"
+ if ( TextImport.exists( 3 ) ) then
+
+ TextImport.ok()
+
+ kontext "CALC"
+ if ( DocumentCalc.exists( 3 ) ) then
+ printlog( "Calc document is open" )
+ if ( getDocumentCount <> 1 ) then
+ warnlog( "Other, unexpected documents are open" )
+ else
+ hCloseDocument()
+ endif
+ else
+ warnlog( "Logfile should open in a new spreadsheet document, document missing" )
+ endif
+
+ else
+
+ warnlog( "Text Import (CSV) settings dialog did not open" )
+
+ kontext "Active"
+ if ( Active.exists() ) then
+ warnlog( "Unexpected messagebox" )
+ printlog( Active.getText() )
+ Active.ok()
+ endif
+ endif
+
+ kontext "TabOOoImprovement"
+ ParticipateNo.click()
+
+ kontext "Active"
+ if ( Active.exists( 3 ) ) then
+ Active.Yes()
+ else
+ qaerrorlog( "#i98739# - No delete option available when stopping usage tracking" )
+ endif
+
+ endif
+ else
+ qaerrorlog( "#i98741# - Failed to force Usage Tracking on via API" )
+ endif
+
+ kontext "OptionenDlg"
+ OptionenDlg.ok()
+
+ endif
+
+ hDeleteFile( cLogFile )
+
+endcase
+
+'*******************************************************************************
+
+function hForceUsageTrackingOn()
+
+ ' the usage tracking extension was disabled by force, in this function
+ ' we force it back on as the switch in the UI is ignored
+
+ Dim oUnoOfficeConnection as object
+ Dim oUnoConfigurationAccess as object
+ Dim aPropertyValue(1) As new com.sun.star.beans.PropertyValue ' Array of pairs: Property with Value
+ Dim xViewRoot
+
+ Dim oOOoImprovementController as object ' Check presence of the OOo Improvement Program
+
+ try
+ oUnoConfigurationAccess=oUnoOfficeConnection.createInstance("com.sun.star.configuration.ConfigurationProvider")
+ if (isNull(oUnoConfigurationAccess)) then
+ warnlog (sFileFunction+"Couldn't create Configuration access")
+ exit function
+ endif
+
+ aPropertyValue(0).Name="nodepath"
+ aPropertyValue(1).Name="lazywrite"
+ aPropertyValue(1).Value=False
+
+ oOOoImprovementController = oUnoOfficeConnection.createInstance( "com.sun.star.oooimprovement.CoreController" )
+ if ( isNull( oOOoImprovementController ) ) then
+ hForceUsageTrackingOn() = FALSE
+ else
+ aPropertyValue(0).Value="/org.openoffice.Office.Logging/OOoImprovement"
+ xViewRoot=oUnoConfigurationAccess.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPropertyValue())
+ xViewRoot.replaceByName("EnablingAllowed", true )
+ xViewRoot.commitChanges()
+ if xViewRoot.hasPendingChanges() then
+ qaErrorLog("Configuration not flushed: OOoImprovementProgram/InvitationAccepted: FALSE")
+ end if
+ xViewRoot.dispose()
+ hForceUsageTrackingOn() = TRUE
+ endif
+
+ catch
+ printlog( "Could not enable Usage Tracking via API" )
+ endcatch
+
+end function