diff options
Diffstat (limited to 'testautomation/extensions/optional/includes/publisher.inc')
-rw-r--r-- | testautomation/extensions/optional/includes/publisher.inc | 285 |
1 files changed, 285 insertions, 0 deletions
diff --git a/testautomation/extensions/optional/includes/publisher.inc b/testautomation/extensions/optional/includes/publisher.inc new file mode 100644 index 000000000000..fcf4400ae748 --- /dev/null +++ b/testautomation/extensions/optional/includes/publisher.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 : Extension publisher and release notes +'* +'\****************************************************************************** + +testcase tExtensionPublisher + + printlog( "Extension Manager and Release Notes" ) + + if ( gISOLang <> "en-US" ) then + qaerrorlog( "Test does not handle translated strings, aborting" ) + goto endsub + endif + + ' Specification document + ' http://specs.openoffice.org/appwide/packagemanager/online_update_for_extensions.odt + ' http://specs.openoffice.org/appwide/packagemanager/online_update_for_extensions.odt + + ' This is the path where the test-extensions and the info file are located + dim cBasePath as string + cBasePath = gTesttoolPath & "extensions/optional/input/publisher/" + cBasePath = convertpath( cBasePath ) + + ' Modify this file to add test cases or attributes + dim cInfoFile as string : cinfoFile = cBasePath & "extension.info" + + ' The number of files to test. Information about this is stored in the file + ' specified by cInfoFile + dim iFileCount as integer + dim iCurrentFile as integer + dim iExtensionCount as integer + dim iExitCounter as integer + dim iCurrentExtensionCount as integer : iCurrentExtensionCount = 0 + dim iTry as integer + + ' This is the data we get from the configuration file + dim cCurrentFileName as string + dim cHasReleaseNotes as string + dim cReleaseNotes as string + dim cHasPublisher as string + dim cPublisher as string + + ' This is where we store the configuration data. This array must have more + ' lines than cInfoFile contains. + dim cConfigArray( 60 ) as string + + dim cTestString as string + dim bInstallationComplete as boolean : bInstallationComplete = false + + iExtensionCount = hGetExtensionCount() + + + hGetDataFileSection( cInfoFile, cConfigArray(), "info", "", "" ) + iFileCount = int( hGetValueForKeyAsString( cConfigArray() , "filecount" ) ) + printlog( cInfoFile & " specifies " & iFileCount & " documents to load" ) + + iExtensionCount = iExtensionCount + iFileCount + printlog( "Expected number of extensions after installation: " & iExtensionCount ) + + printlog( "Installing extensions" ) + for iCurrentFile = 1 to iFileCount + + hGetDataFileSection( cInfoFile, cConfigArray(), iCurrentFile, "", "" ) + cCurrentFileName = hGetValueForKeyAsString( cConfigArray() , "file" ) + cCurrentFileName = cBasePath & cCurrentFileName + sExtensionCLI( "add" , cCurrentFileName ) + wait 1000 ' This is required, sExtensionCLI is asynchronous. + + next iCurrentFile + printlog( "Finished installing extensions, now verifying..." ) + + hNewDocument() + ToolsPackageManager + + kontext "PackageManager" + if ( PackageManager.exists( 3 ) ) then + + for iTry = 1 to 30 + + iCurrentExtensionCount = BrowsePackages.getItemCount() + + if ( iCurrentExtensionCount = iExtensionCount ) then + printlog( "All extensions have been installed, good." ) + bInstallationComplete = true + exit for + endif + + printlog( "Waiting for listbox: Number of extensions: " & iCurrentExtensionCount ) + + next iTry + + ' If one or more extensions have not been added to the list we better abort the + ' test as the remaining parts need all extensions to be installed causing + ' lots of cryptig errors to appear in the log. + if ( not bInstallationComplete ) then + warnlog( "Not all extensions have been installed. Aborting test." ) + kontext "PackageManager" + if ( PackageManager.exists() ) then + PackageManager.cancel() + PackageManager.notExists( 2 ) + endif + goto endsub + endif + else + warnlog( "The Extension Manager did not open, Aborting test" ) + goto endsub + endif + + + kontext "PackageManager" + printlog( "Going for the update-dialog" ) + if ( Updates.isEnabled() ) then + + printlog( "Updates-button is enabled" ) + Updates.click() + + kontext "ExtensionUpdate" + if ( ExtensionUpdate.exists( 2 ) ) then + + iExitCounter = 0 + do while ( AvailableUpdatesList.getItemCount() < iFileCount ) + printlog( "Waiting for Updates List to populate..." ) + wait( 1000 ) + iExitCounter = iExitCounter + 1 + if ( iExitCounter = 200 ) then + warnlog( "Update list for extensions is stalled (expected: 7), " & _ + "found: " & AvailableUpdatesList.getItemCount() ) + kontext "ExtensionUpdate" + ExtensionUpdate.cancel() + ExtensionUpdate.notExists( 2 ) + kontext "PackageManager" + PackageManager.cancel() + PackageManager.notExists( 2 ) + goto endsub + endif + loop + + if ( ShowAllUpdates.exists() ) then + if ( ShowAllUpdates.isEnabled() ) then + warnlog( """Show all updates"" should be disabled" ) + else + printlog( """Show all updates"" is disabled, good" ) + endif + else + qaerrorlog( """Show all updates"" checkbox could not be accessed" ) + endif + + if ( AvailableUpdatesList.isEnabled() ) then + + printlog( "Available updates list populated in " & iExitCounter & " seconds" ) + + if ( iExitCounter < 20 ) then + + for iCurrentFile = 1 to iFileCount + + hGetDataFileSection( cInfoFile, cConfigArray(), iCurrentFile, "", "" ) + cCurrentFileName = hGetValueForKeyAsString( cConfigArray() , "display_name" ) + + cHasReleaseNotes = hGetValueForKeyAsString( cConfigArray() , "has_release_notes" ) + cReleaseNotes = hGetValueForKeyAsString( cConfigArray() , "release_notes" ) + + cHasPublisher = hGetValueForKeyAsString( cConfigArray() , "has_publisher" ) + cPublisher = hGetValueForKeyAsString( cConfigArray() , "publisher" ) + + AvailableUpdatesList.select( iCurrentFile ) + + if ( AvailableUpdatesList.getText() = cCurrentFileName ) then + printlog( "Testing extension: " & cCurrentFileName ) + + if ( lcase( cHasReleaseNotes ) = "yes" ) then + if ( ReleaseNotesText.isVisible() ) then + printlog( " - Release notes text is visible. Good." ) + qaerrorlog( "#i84700# cannot read static text on extension update dialog" ) + 'cTestString = ReleaseNotesText.getSelText() + 'if ( cTestString = cReleaseNotes ) then + ' printlog( " - Release notes text is ok." ) + 'else + ' warnlog( "Incorrect release notes text" ) + ' printlog( "Expected: " & cReleaseNotes ) + ' printlog( "Found...: " & ctestString ) + 'endif + else + warnlog( "Release notes text is not visible" ) + endif + else + if ( ReleaseNotesText.isVisible() ) then + warnlog( "Release notes should not be visible" ) + else + printlog( " - No release notes for this extension." ) + endif + endif + + if ( lcase( cHasPublisher ) = "yes" ) then + if ( UpdatePublisherText.isVisible() ) then + printlog( " - Publisher text is visible. Good." ) + qaerrorlog( "#i84700# cannot read static text" ) + 'cTestString = UpdatePublisherText.getText() + 'if ( cTestString = cPublisher ) then + ' printlog( " - Release notes text is ok." ) + 'else + ' warnlog( "Incorrect release notes text" ) + ' printlog( "Expected: " & cPublisher ) + ' printlog( "Found...: " & ctestString ) + 'endif + else + warnlog( "Publisher text is not visible." ) + endif + else + if ( UpdatePublisherText.isVisible() ) then + warnlog( "Publisher should not be visible." ) + else + printlog( " - No Publisher for this extension." ) + endif + endif + + else + warnlog( "The extension is not at the expected position" ) + printlog( "Expected: " & cCurrentFileName ) + printlog( "Found...: " & AvailableUpdatesList.getText() ) + exit for + endif + + next iCurrentFile + else + warnlog( "Updates list not fully populated in 15 seconds -> fail" ) + endif + else + warnlog( "No extensions available for update. Installation failed?" ) + endif + + kontext "ExtensionUpdate" + ExtensionUpdate.cancel() + ExtensionUpdate.notExists( 2 ) + else + warnlog( "Extension Update dialog is not open" ) + endif + + else + warnlog( "Update-button on extension manager ui is disabled" ) + endif + + kontext "PackageManager" + PackageManager.close() + PackageManager.notExists( 2 ) + + printlog( "Removing extensions" ) + for iCurrentFile = 1 to iFileCount + hGetDataFileSection( cInfoFile, cConfigArray(), iCurrentFile, "", "" ) + cCurrentFileName = hGetValueForKeyAsString( cConfigArray() , "file" ) + sExtensionCLI( "remove" , cCurrentFileName ) + next iCurrentFile + printlog( "Finished removing extensions" ) + + hFileCloseAll() + +endcase + |