installationservices/swi/test/tuiscriptadaptors/scripts/testpreinstalled_delete.script
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:22:02 +0100
branchRCL_3
changeset 66 8b7f4e561641
parent 0 ba25891c3a9e
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

//
// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of the License "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
//
//! @file
// SWIS unit (integration) tests for upgrades
PRINT Run all SWIS tests
LOAD_SUITE tuiscriptadaptors

//! @SYMTestCaseID 		API-SEC-UISA-PreInstalledDeleteTest-I-0001
//! @SYMTestCaseDesc 		Test pre-installed media for swipolicy allowing deletion of preinstalled files on uninstall where the
//! 				install is launched using the sis filename.
//! @SYMDEF 			INC080962
//! @SYMTestPriority 		High
//! @SYMTestActions 		Perform various tests on pre-installed media applications
//! @SYMTestExpectedResults 	Files installed/uninstalled, preinstalled files and stub sis deleted if stub sis is writable
//! @SYMDevelopedForRelease 	Mike

START_TESTCASE API-SEC-UISA-PreInstalledDeleteTest-I-0001

// Copy files into place on the pre-installed drives
RUN_UTILS MKDIR e:\tswi\
RUN_UTILS MKDIR e:\tswi\preinstalled\
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledinstall.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledinstall.txt
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledpatch.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledpatch.txt
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledpatch2.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledpatch2.txt
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_install_dsa_l1.sis e:\testpreinstalled_install_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_install
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_patch2_dsa_l1.sis e:\testpreinstalled_patch2_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_patch2
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_patch_dsa_l1.sis e:\testpreinstalled_patch_dsa_l1.sis
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_patch_dsa_l1.sis

// pre-installed normal application with read-only stub sis file
RUN_TEST_STEP 20 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_install
// pre-installed patch with read-only stub sis file
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2
// uninstall patch and confirm files are not deleted
RUN_TEST_STEP 10 tuiscriptadaptors UninstallAugStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_patch2
// Make patch sis file writable and re-install
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_patch2_dsa_l1.sis

RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2
// uninstall patch and confirm files are deleted
RUN_TEST_STEP 10 tuiscriptadaptors UninstallAugStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_patch2_delete

// Restore patch files with read-only stub sis and re-install
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledpatch2.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledpatch2.txt
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_patch2_dsa_l1.sis e:\testpreinstalled_patch2_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_patch2
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2

// Uninstall and confirm that files are not deleted
RUN_TEST_STEP 10 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_install

// Make sis files writable and re-install base and patch
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_patch2_dsa_l1.sis
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_install_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_install
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2
// Make patch stub sis and file installed by base package read-only (after install)
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_patch2
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_installfile
//Uninstall base and patch, confirming that only the read-only files are preserved.
RUN_TEST_STEP 50 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_install_delete_withreadonlyfiles

// Restore deleted files and make base sis read-only, patch sis and other files writable
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_install_dsa_l1.sis e:\testpreinstalled_install_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_install
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_patch2_dsa_l1.sis
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledinstall.txt
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledpatch2.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledpatch2.txt

// Re-install
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_install
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2

// Uninstall and confirm that files for patch only are deleted
RUN_TEST_STEP 50 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_install_deletepatchonly

// Restore patch files with read-only stub sis, make base stub sis writable, and re-install base and patch
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledpatch2.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledpatch2.txt
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_patch2_dsa_l1.sis e:\testpreinstalled_patch2_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_patch2
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_install_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_install
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2

// Uninstall and confirm that files from base only are deleted
RUN_TEST_STEP 50 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_install_deletebaseonly

// Restore base files, make both stub sis files writable and re-install both.
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledinstall.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledinstall.txt
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_install_dsa_l1.sis e:\testpreinstalled_install_dsa_l1.sis
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_install_dsa_l1.sis
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_patch2_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_install
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2

// Make sure re-install fails sanely and leaves files in place
RUN_TEST_STEP_RESULT -10256 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_install
RUN_TEST_STEP_RESULT -10146 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch2
RUN_TEST_STEP 10 tuiscriptadaptors MmcCheckFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini filesexist_preinstalled_install_and_patch2

// Uninstall and confirm that base and patch files are deleted
RUN_TEST_STEP 50 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_install_delete

// Install non-preinstalled base.
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini base
// Install pre-installed patch with writable stub sis over non-preinstalled base
RUN_TEST_STEP 50 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch
// Uninstall patch ensuring that files are deleted.
RUN_TEST_STEP 50 tuiscriptadaptors UninstallAugStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_patch_delete

// Restore patch files, set stub sis read-only, and re-install patch
RUN_UTILS MKDIR e:\tswi\
RUN_UTILS MKDIR e:\tswi\preinstalled\
RUN_UTILS COPYFILE z:\tswi\tsis\data\Root5CA\dsa_len1\testpreinstalled_patch_dsa_l1.sis e:\testpreinstalled_patch_dsa_l1.sis
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_patch
RUN_UTILS COPYFILE z:\tswi\tuiscriptadaptors\data\preinstalledinstall.txt e:\tswi\preinstalled\preinstalledpatch.txt
RUN_UTILS MAKEREADWRITE e:\tswi\preinstalled\preinstalledpatch.txt
RUN_TEST_STEP 50 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch
// Uninstall patch and make sure files are not deleted.
RUN_TEST_STEP 50 tuiscriptadaptors UninstallAugStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_patch

// Reinstall patch
RUN_TEST_STEP 50 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch
// Uninstall base and patch and ensure files are not deleted.
RUN_TEST_STEP 10 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_base

// Reinstall both, with writable patch stub sis, then ensure patch files are deleted on uninstall.
RUN_TEST_STEP 10 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini base
RUN_UTILS MAKEREADWRITE e:\testpreinstalled_patch_dsa_l1.sis
RUN_TEST_STEP 50 tuiscriptadaptors InstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_patch
RUN_TEST_STEP 50 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_base_delete

END_TESTCASE API-SEC-UISA-PreInstalledDeleteTest-I-0001


//! @SYMTestCaseID 		API-SEC-UISA-PreInstalledDeleteTest-I-0002
//! @SYMTestCaseDesc 		Test pre-installed media for swipolicy allowing deletion of preinstalled files on uninstall where the
//! 				install is launched using a filehandle.
//! @SYMDEF 			INC080962
//! @SYMTestPriority 		High
//! @SYMTestActions 		Perform various tests on pre-installed media applications
//! @SYMTestExpectedResults 	Files installed/uninstalled, preinstalled files and stub sis deleted if stub sis is writable
//! @SYMDevelopedForRelease 	Mike

START_TESTCASE API-SEC-UISA-PreInstalledDeleteTest-I-0002

// Test correct install and uninstall of a pre-installed package with an exe, with the install launched using a filehandle.
// First copy pre-installed exe files on to the e: drive and mark stub sis read-only
RUN_TEST_STEP 10 tuiscriptadaptors MmcCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setup_preinstalled_exe
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_exe

// Install the preinstalled package by file handle.
RUN_TEST_STEP 50 tuiscriptadaptors InstallFHStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_exe

// Copy the preinstalled exe patch into place and mark stub sis read-only
RUN_TEST_STEP 10 tuiscriptadaptors MmcCopyFilesStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setup_preinstalled_exe_patch

// Install the pre-installed patch with an additional exe
RUN_TEST_STEP 10 tuiscriptadaptors SetClearReadOnlyStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini setreadonly_preinstalled_exe_patch
RUN_TEST_STEP 10 tuiscriptadaptors InstallFHStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_exe_patch

// Run base executable using the launcher supplied in the patch.
RUN_PROGRAM -1 preinstalled_runtestexe2 preinstalled_console_app -s 4000000 
RUN_TEST_STEP 5 tuiscriptadaptors FindRunningExe z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini consoleapp_running

// Uninstall the patch and make sure only the hash is deleted
RUN_TEST_STEP 100 tuiscriptadaptors UninstallAugStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_exe_patch
// Uninstall the base.  This should kill the console app if it's still running, and remove only the hash.
RUN_TEST_STEP 25 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_exe
// The console app shouldn't be running now.
RUN_TEST_STEP_RESULT 106 tuiscriptadaptors FindRunningExe z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini consoleapp_running

// Mark stub sis files readable.
RUN_UTILS MAKEREADWRITE e:\private\10202dce\testpreinstalledexes_patch_root5.sis
RUN_UTILS MAKEREADWRITE e:\private\10202dce\testpreinstalledexes_root5.sis

// Check that we can successfully install again and re-run the base exe using the launcher from the patch.
RUN_TEST_STEP 50 tuiscriptadaptors InstallFHStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_exe
RUN_TEST_STEP 50 tuiscriptadaptors InstallFHStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini preinstalled_exe_patch
RUN_PROGRAM -1 preinstalled_runtestexe2 preinstalled_console_app -s 4000000 
RUN_TEST_STEP 5 tuiscriptadaptors FindRunningExe z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini consoleapp_running

// Uninstall the patch and make sure all the files are deleted.
RUN_TEST_STEP 100 tuiscriptadaptors UninstallAugStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_exe_patch_delete
// Uninstall the base and make sure all the files are deleted.
RUN_TEST_STEP 50 tuiscriptadaptors UninstallStep z:\tswi\tuiscriptadaptors\scripts\testpreinstalled.ini u_preinstalled_exe_delete

END_TESTCASE API-SEC-UISA-PreInstalledDeleteTest-I-0002


// Ensure that SWIS shuts down after the above tests to make sure heap checks run
RUN_TEST_STEP 5 tuiscriptadaptors SwisNotRunning