--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/authorisation/userpromptservice/test/tups/scripts/tups_integ.script Thu Sep 10 14:01:51 2009 +0300
@@ -0,0 +1,3300 @@
+//
+// 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:
+//
+//
+// 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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+//tups_install
+//PRINT Run Basic test cases PREQ1262 for integration test
+
+//
+// Prepare various clones of TUPSInteg.exe with different SIDs.
+// Don't forget to delete clones at the end of test script.
+// but do not delete original one !!!!
+
+RUN_PROGRAM 100 SETCAP TUPSInteg_data.exe 1c000 -SID 80001234 TUPSInteg_2.exe
+RUN_PROGRAM 100 SETCAP TUPSInteg_data.exe 1c000 -SID 80002222 TUPSInteg_3.exe
+RUN_PROGRAM 100 SETCAP TUPSInteg_data.exe 1c000 -SID 10004444 TUPSInteg_4.exe
+RUN_PROGRAM 100 SETCAP TUPSInteg_data.exe 810 -SID 10006666 TUPSInteg_allfiles_readdevice.exe
+RUN_PROGRAM 100 SETCAP TUPSInteg_data.exe 10 -SID 10007777 TUPSInteg_readdevice.exe
+RUN_PROGRAM 100 SETCAP TUPSInteg_data.exe 20 -SID 10008888 TUPSInteg_writedevice.exe
+RUN_PROGRAM 100 SETCAP TUPSInteg_data.exe 1cf00 -SID 101F7790 TUPSInteg_minor.exe
+
+// load suites
+LOAD_SUITE TUPSInteg_1
+LOAD_SUITE TUPSInteg_unprotected
+
+// load clones
+LOAD_SUITE TUPSInteg_2
+LOAD_SUITE TUPSInteg_3
+LOAD_SUITE TUPSInteg_4
+LOAD_SUITE TUPSInteg_allfiles_readdevice
+LOAD_SUITE TUPSInteg_readdevice
+LOAD_SUITE TUPSInteg_writedevice
+LOAD_SUITE TUPSInteg_minor
+
+// Load software step installer.
+LOAD_SUITE tups_install
+LOAD_SUITE tups_backuprestore
+
+
+//! @SYMTestCaseID SEC-UPS-MISC-0001
+//! @SYMTestCaseDesc Set up properties for policy evaluators and dialog creators, and Delete Existing Database
+
+START_TESTCASE SEC-UPS-MISC-0001
+
+RUN_TEST_STEP 100 TUPSInteg_1 PropertyStep z:\tups\integ\scripts\tups_properties.ini PropertiesToDestroy
+
+// Set up properties for policy evaluators and dialog creators.
+RUN_TEST_STEP 100 TUPSInteg_1 PropertyStep z:\tups\integ\scripts\tups_properties.ini PropertiesToCreate
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+END_TESTCASE SEC-UPS-MISC-0001
+
+
+//********************** SEC-UPS-A : BASIC USER PROMPTING **********************
+
+//! @SYMTestCaseID SEC-UPS-INTEG-A001
+//! @SYMTestCaseDesc User prompt service: option “only this session”
+//! (only_this_session)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7367, REQ7410, REQ7411, REQ7412, REQ7413, REQ7414, REQ7415, REQ7417, REQ7446
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog that matches the UID of the service
+//! offered by the “system server”.
+//!
+//!
+//! Test Actions:
+//! • Launch “test client” which tries to connect to a system server and use service.
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “Only this session” option.
+//! • Check that now the “test client” can use the intended service from the “system server”.
+//! • Check again In same session that client still can use test service without need of user prompt.
+//! • Disconnect session and create new one.
+//! • Ask “test client” to request again for the same service to the system server. This should cause
+//! the service provided to request for a new user prompt.
+//! • Select again “Only this session” option.
+//! • Check that “test client” can use again the intended service from system server.
+//!
+//! @SYMTestExpectedResults • User prompt service dialog is displayed correctly in both occasions that “test client”
+//! request for authorisation.
+//! • Information displayed about the client is complete (see Appendix A).
+//! • “Test client” can use service from system server in both occasions after selecting “Only
+//! this session”
+//! • Information about the “Test client” is displayed correctly by user prompt.
+//! • Decision DB is not affected by previous operation as “only this session” is not expected to
+//! be stored.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-A001
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini only_this_session
+END_TESTCASE SEC-UPS-INTEG-A001
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-A002
+//! @SYMTestCaseDesc User prompt service: User prompt service: option “never”
+//! (never)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7367, REQ7372, REQ7374
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch “test client” which tries to connect to a system server and use service.
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “Never” option.
+//! • Check that now the “test client” can NOT use the intended service after user selected “never”.
+//! • Disconnect session and create new one.
+//! • Ask “test client” to request again for the same service to the system server. System server should
+//! deny access to “test client” immediately without showing user prompt. Make sure that UPS was invoked
+//! again.
+//!
+//!
+//! @SYMTestExpectedResults • User prompt service dialog is displayed correctly.
+//! • Security dialog is displayed within one second (1 sec) of client request for service.
+//! • Information displayed about the client is complete (see Appendix A).
+//! • “Test client” can NOT use service from system server after selecting “Never”
+//! • Decision DB is updated correctly with the never decision.
+//! • The second time the “Test client” tries to access the service from the system server it
+//! should receive a silent denial.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-A002
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini never
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini never_b
+END_TESTCASE SEC-UPS-INTEG-A002
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-A003
+//! @SYMTestCaseDesc User prompt service: option “Always”
+//! (always)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7428, REQ7429, REQ7367, REQ7372, REQ7374, REQ7493
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//! • Special: make sure that client have all necessary capabilities in order to test REQ7493
+//!
+//! Test Actions:
+//! • Launch “test client” which tries to connect to a system server and use service.
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “Always” option.
+//! • Check in same session that now the “test client” now can use the intended service after user
+//! selected “Always”.
+//! • Ask “test client” to request again for the same service to the system server. System server should
+//! give immediate access to “test client” without showing user prompt (in same session).
+//! • Disconnect session and create new one.
+//! • Ask “test client” to request again for the same service to the system server. System server should
+//! give immediate access to “test client” without showing user prompt. Make sure that UPS was invoked
+//! again.
+//!
+//! @SYMTestExpectedResults • User prompt service dialog is displayed correctly.
+//! • Security dialog is displayed within one second (1 sec) of client request for service.
+//! • Information displayed about the client is complete (see Appendix A).
+//! • “Test client” can use service from system server after selecting “Always”
+//! • Decision DB is updated correctly with the Always decision.
+//! • The second time the “Test client” tries to access the service from the system server it
+//! should receive immediate access.
+//! • The response time from UPS for second use of test client is 100 ms (H4 board without demand
+//! paging)
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-A003
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini always
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini always_b
+END_TESTCASE SEC-UPS-INTEG-A003
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-A004
+//! @SYMTestCaseDesc User prompt service: “Yes” or “No” selection”
+//! (yes_or_no)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7372
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//! • Policy is set to display “yes” or “no” option
+//!
+//! Test Actions:
+//! • Launch “test client” which tries to connect to a system server and use service.
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “yes” option.
+//! • Check that now the “test client” now can use the intended service.
+//! • In same session that before, request uses service.
+//! • UPS should prompt user again. Select yes
+//! • Launch “test client” in a new session. When security dialog is displayed select “no”.
+//! • Check that test client can not access intended service.
+//!
+//! @SYMTestExpectedResults • User prompt service dialog is displayed correctly.
+//! • Security dialog is displayed within one second (1 sec) of client request for service.
+//! • Information displayed about the client is complete (see Appendix A).
+//! • Decision DB does not store any new decision.
+//! • Access to test service is denied or granted accordingly.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-A004
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini yes_or_no
+END_TESTCASE SEC-UPS-INTEG-A004
+
+
+
+//********************** SEC-UPS-B : USE CASES FOR UPS INVOLVING CONCURRENCY **********************
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-B004
+//! @SYMTestCaseDesc Concurrent process can access service despite unattended security dialog.
+//! (Unattended_Dialog)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 3 “test client” (A, B & C) which requests use of different system servers. Client A should
+//! not have any decision related to it stored in DB, Clients B should have a decision “Always” stored
+//! in DB, Client C should have decision “Never” stored in DB. Make sure that Client B & C are launch
+//! after security dialog is displayed for Client A.
+//! • Do not act in the security dialog for Client A when this one is displayed.
+//! • Check that Client B can access intended test service.
+//! • Check that Client C can not access intended test service and did receive a denial response.
+//! • Act now in security dialog for Client A, select “always”.
+//! • Check that Client A can access intended test service.
+//!
+//! @SYMTestExpectedResults • Final check in Decision DB shows 3 decisions stored: “Always” for Clients A & B, “Never”
+//! for Client C.
+//! • Accesses to service were granted for Clients A & B.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-B004
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Setup up the Database so that Client B has an 'Always' Decision and Client C has a 'Never' Decision stored
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Unattended_Dialog_ClientB_Setup
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Unattended_Dialog_ClientC_Setup
+
+// Run 3 concurrent clients with a Coordinator to ensure that the Clients are synchronised
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini Unattended_Dialog_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Unattended_Dialog_ClientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Unattended_Dialog_ClientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Unattended_Dialog_ClientC
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini Unattended_Dialog_dbManagementcheck
+
+END_TESTCASE SEC-UPS-INTEG-B004
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-B005
+//! @SYMTestCaseDesc Cancellation of UPS request in concurrent system server.
+//! (concurrent_cancellation)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427, REQ7431, REQ7432
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 2 “test client” (A & B ) which requests use of different system servers. Client A
+//! should have a decision “Always” stored in DB, client B should have decision “Never” stored in DB.
+//! Client A & B run continuously and they request periodic use of a test service, each of this request
+//! should cause UPS to be invoked, UPS should continuously issue an appropriate silence response for A &
+//! B.
+//! • Launch “test client C” which requests use of different system servers. This client C does not have
+//! any related decision stored in DB.
+//! • The system server for client C is expected to request UPS for security dialog.
+//! • Do not act in security dialog displayed for client C, instead instruct system server for client C
+//! to cancel previous request made to UPS.
+//! • Make sure that clients A & B can still receive appropriate silent response from UPS despite
+//! cancellation of request by system server attending client C.
+//! • Launch test client D which should attempt use of same service attempted by client C. Security
+//! dialog should be displayed, select “Always”.
+//! • Check that client D can access intended service.
+//! • Launch client D in new session and check that it received silent acceptance.
+//!
+//!
+//! @SYMTestExpectedResults • Final check in Decision DB shows 2 decisions stored: “Always” for Clients A, “Never” for
+//! Client B.
+//! • Access to service was granted for Clients A & D.
+//! • Access to service was denied for Clients B.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-B005
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientA_setup
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientB_setup
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientC_cancel
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientD
+CONSECUTIVE
+
+// Concurrent cancellation with UPS calling the same server, policy evaluator, dialog creator and policy from clients B + D
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientB_samepolicy
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientC_cancel
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_cancellation_clientD_samepolicy
+CONSECUTIVE
+
+END_TESTCASE SEC-UPS-INTEG-B005
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-B008
+//! @SYMTestCaseDesc Early closure of client with concurrent processes, policy evaluator stage
+//! (client_dying_at_evaluator_point)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that
+//! matches the UID of the service offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 2 “test client” (A & B) which requests use of different system servers.
+//! Client A should have a decision “Always” stored in DB, client B should have
+//! decision “Never” stored in DB. Clients A & B run continuously and they request
+//! periodic use of a test service, each of this request should cause UPS to be
+//! invoked, UPS should continuously issue an appropriate silence response for A & B.
+//! • Launch “test client C” which requests use of a different system server. System
+//! server will invoke UPS and this one should invoke a policy evaluator. When
+//! policy evaluator is running shut down test client C.
+//! • Make sure that Clients A & B can still receive appropriate silent response from UPS.
+//!
+//! @SYMTestExpectedResults
+//! • Final check in Decision DB shows 2 decisions stored: “Always” for Clients A, “Never”
+//! for Client B.
+//! • Access to service was granted for Clients A.
+//! • Access to service was denied for Clients B & C.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-B008
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_client_00a
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_client_00b
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini dying_client_at_evaluator_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_minor DyingClient z:\tups\integ\scripts\tups_integ.ini dying_client_at_evaluator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_client_00a
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_client_00b
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini client_dying_at_evaluator_point_dbManagementCheck
+
+END_TESTCASE SEC-UPS-INTEG-B008
+
+
+
+//! @SYMTestCaseID SEC-UPS-B009
+//! @SYMTestCaseDesc Early closure of client with concurrent processes, dialog displayed stage
+//! (client_dying_at_dialog_point)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that
+//! matches the UID of the service offered by the “system server”.
+//! Test Actions:
+//! • Launch 2 “test client” (A & B) which requests use of different system
+//! servers. Client A should have a decision “Always” stored in DB, client B
+//! should have decision “Never” stored in DB. Clients A & B run continuously and
+//! they request periodic use of a test service, each of this request should cause
+//! UPS to be invoked, UPS should continuously issue an appropriate silence response
+//! for A & B.
+//! • Launch “test client C” which requests use of a different system server. System
+//! server will invoke UPS and at some stage a security dialog will be invoked. When
+//! security dialog is displayed do not act on this one and shut down test client C.
+//! • Make sure that Clients A & B can still receive appropriate silent response from UPS.
+//!
+//! @SYMTestExpectedResults
+//! • Final check in Decision DB shows 2 decisions stored: “Always” for Clients A,
+//! “Never” for Client B.
+//! • Access to service was granted for Clients A.
+//! • Access to service was denied for Clients B & C.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-B009
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_client_00a
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_client_00b
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini dying_client_at_dialog_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_minor DyingClient z:\tups\integ\scripts\tups_integ.ini dying_client_at_dialog
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_client_00a
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_client_00b
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini client_dying_at_dialog_point_dbManagementCheck
+
+END_TESTCASE SEC-UPS-B009
+
+
+
+//! @SYMTestCaseID SEC-UPS-B010
+//! @SYMTestCaseDesc Multiple clients requesting multiple services in concurrent manner.
+//! (multiple_client_requests_concurrent)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • As set in test assumptions section on detail description of this test.
+//!
+//! Test Actions:
+//! • Execute test actions as set in “tests sequence part 1” above.
+//! • Execute test actions as set in “tests sequence part 2” above.
+//! • Reset test clients and test system servers.
+//! • Execute test actions as set in “tests sequence part 3” above.
+//!
+//! @SYMTestExpectedResults Test services are granted/denied accordingly as set in detail test description.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-B010
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client1
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client3
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client4
+CONSECUTIVE
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client1
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client3
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client4
+CONSECUTIVE
+
+// Close and Reset UPS
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client1
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client3
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini concurrent_multiple_request_client4
+CONSECUTIVE
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_24
+
+END_TESTCASE SEC-UPS-B010
+
+
+//! @SYMTestCaseID SEC-UPS-B011
+//! @SYMTestCaseDesc Multiple clients requesting multiple services in non–concurrent manner.
+//! (multiple_client_requests_consecutive)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ****
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • As set for test case SEC-UPS-B002C, but each test client and system server do not run concurrently
+//! with other tests clients.
+//!
+//! Test Actions:
+//! • Execute test actions as set in “tests sequence part 1” on test case SEC-UPS-B010 above.
+//! • Execute test actions as set in “tests sequence part 2” on test case SEC-UPS-B010 above.
+//! • Reset test clients and test system servers.
+//! • Execute test actions as set in “tests sequence part 3” on test case SEC-UPS-B010 above.
+//!
+//! @SYMTestExpectedResults Test services are granted/denied accordingly as set in detail test description for test case
+//! SEC-UPS-B010 above.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-B011
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client1_Part1
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client2_Part1
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client3_Part1
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client4
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client1_Part2
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client2_Part2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client3_Part2
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client4
+
+// Close and Reset UPS
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client1_Part2
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client2_Part2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client3_Part2
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini multiple_request_client4
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_24
+
+END_TESTCASE SEC-UPS-B011
+
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-B012
+//! @SYMTestCaseDesc Concurrent process can access service despite multiple unattended security dialogs.
+//! (Multiple_Unattended_Dialogs)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the service offered by the “system
+//! server”.
+//!
+//! Test Actions:
+//! • Launch 3 “test client” (A, B & C) which requests use of different system servers. Clients A & B should not have any decision
+//! related to it stored in DB, Clients C should have a decision “Always” stored in DB. Make sure that Client B is launched after
+//! security dialog is displayed for Client A. Make sure that request for security dialog for client B is made before client C is
+//! launched.
+//! • Do not act in the security dialog for Client A when this one is displayed.
+//! • Check that Client C can access intended test service and UPS did issue a silent acceptance to system server from UPS for the
+//! request made for client C.
+//! • Act now in security dialog for Client A, select “Never”.
+//! • Check that Client A can NOT access intended test service.
+//! • Act now in security dialog for Client B, select “Always”.
+//! • Check that Client B can access intended test service.
+//!
+//! @SYMTestExpectedResults • Final check in Decision DB shows 4 decisions stored: “Always” for Clients B & C. “Never” for Client A.
+//! • Accesses to service were granted for Clients B & C.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-B012
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Setup up the Database so that Client C has an 'Always' Decision stored
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Multiple_Unattended_Dialogs_ClientC_Setup
+
+// Run 3 concurrent clients with a Coordinator to ensure that the Clients are synchronised
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini Multiple_Unattended_Dialogs_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Multiple_Unattended_Dialogs_ClientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Multiple_Unattended_Dialogs_ClientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Multiple_Unattended_Dialogs_ClientC
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini Multiple_Unattended_Dialogs_dbManagementcheck
+
+END_TESTCASE SEC-UPS-INTEG-B012
+
+
+//********************** SEC-UPS-C : DIALOG SERIALISATION SPECIFIC TESTS **********************
+
+
+//! @SYMTestCaseID SEC-UPS-C001
+//! @SYMTestCaseDesc Dialog serialisation
+//! (Dialog_Serialisation)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7472
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the service //! offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 3 “test client” (A ,B & C) in turns, these Clients requests use of a system server. System server should request prompt of //! security dialog to UPS. Make sure that requests for the 3 security dialog are made before acting in the first dialog that is expected //! to be displayed.
+//! • For first security dialog to be displayed (client A) select “always”.
+//! • Check that client A can access intended service.
+//! • For second security dialog to be displayed (client B) select “only this session”.
+//! • Check that client B can access intended service.
+//! • For third security dialog to be displayed (client C) select “never”.
+//! • Check that client C can NOT access intended service.
+//! • Shut down clients and servers.
+//! • Launch client A again, check that it can access test service and UPS is issuing silent acceptance.
+//! • Launch client C again, check that it can access test service and UPS is issuing silent denial.
+//!
+//!
+//! @SYMTestExpectedResults • User prompt service dialogs are displayed correctly, and only 1 dialog at any time.
+//! • Information displayed about the client is complete (see Appendix A).
+//! • Clients A & C can access test service.
+//! • Client B can not access test service.
+//! •Decision DB is updated correctly with the Always decision.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-C001
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Run 3 concurrent clients with a Coordinator to ensure that the Clients are synchronised
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini Dialog_Serialisation_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Dialog_Serialisation_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Dialog_Serialisation_clientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Dialog_Serialisation_clientC
+CONSECUTIVE
+
+// Silent acceptance checking for Client A
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Dialog_Serialisation_clientA_DecisionCheck
+
+// Silent denial checking for Client C
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Dialog_Serialisation_clientC_DecisionCheck
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini Dialog_Serialisation_dbManagementcheck
+
+END_TESTCASE SEC-UPS-C001
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-C005
+//! @SYMTestCaseDesc To ensure that a cancellation of a user prompt dialog (cancel button) does not affect
+//! adversatively the behaviour of the UPS.
+//! (single_dialog_cancellation)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of
+//! the service offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch a “test client A” which requests use of a system server.
+//! • System server asks for a user prompt to the UPS.
+//! • When security dialog is displayed, cancel request made from system server to UPS, this should
+//! cause cancellation of notifier and therefore cancellation of security dialog.
+//! • Close test client A.
+//! • Launch test client B which tries to use the same test service.
+//! • System server requests security dialog.
+//! • When dialog is displayed select “always”
+//! • Check that client B can use test service.
+//!
+//! @SYMTestExpectedResults
+//! • User prompt service dialogs is displayed correctly.
+//! • Cancellation of security dialog does not cause UPS malfunction.
+//! • Decision DB is upgraded with new decision for test client B.
+//!
+//! @SYMTestType CIT
+//!
+
+
+START_TESTCASE SEC-UPS-INTEG-C005
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Client A is run concurrently with a Coordinator so that the request can be cancelled once the Dialog Creator has been invoked
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini single_dialog_cancellation_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_minor CancelPrompt z:\tups\integ\scripts\tups_integ.ini single_dialog_cancellation_ClientA
+CONSECUTIVE
+
+// Client B makes an attempt to access the same service as Client A
+RUN_TEST_STEP 100 TUPSInteg_minor SimpleRequest z:\tups\integ\scripts\tups_integ.ini single_dialog_cancellation_ClientB
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini single_dialog_cancellation_dbManagementCheck
+
+END_TESTCASE SEC-UPS-INTEG-C005
+
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-C006
+//! @SYMTestCaseDesc Cancellation of first dialog from a queue of pending security dialogs.
+//! (cancellation_first_dialog)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7431 REQ7432
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services there is an appropriate policy, policy evaluator and dialog creator that matches the UID of the service //! offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 3 “test client” in turns (A,B & C), these Clients try to use of a test service in system server.
+//! • Make sure system server has request security dialog for all clients before acting in any security dialog.
+//! • Once user prompt is displayed for client A, induce system server to cancel request to UPS for client A, this should cause security //! dialog for client A to be removed from screen.
+//! • Security dialog for client B should appear on screen select “never” and check that application can NOT use intended service.
+//! • Security dialog for client C should appear on screen select “always” and check that application can use intended service.
+//!
+//! @SYMTestExpectedResults • Decision DB is upgraded with new decisions for Clients B (“never”) and C (“always”)
+//! • UPS does not malfunction after cancellation of dialog for Client A.
+//!
+//! @SYMTestType CIT
+//!
+
+
+START_TESTCASE SEC-UPS-INTEG-C006
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Client A, B and C are run concurrently with a Coordinator so that the first dialog (Client A) can be cancelled once all of the service requests
+// have been invoked
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini cancellation_first_dialog_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_minor CancelPrompt z:\tups\integ\scripts\tups_integ.ini cancellation_first_dialog_ClientA_cancel
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_first_dialog_ClientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_first_dialog_ClientC
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini cancellation_first_dialog_dbManagementCheck
+
+END_TESTCASE SEC-UPS-INTEG-C006
+
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-C007
+//! @SYMTestCaseDesc Cancellation of last dialog from a queue of pending security dialogs.
+//! (cancellation_last_dialog)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7431 REQ7432
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services there is an appropriate policy, policy evaluator and dialog creator that matches the UID of the service //! offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 3 “test client” in turns (A, B & C), these Clients try to use of a test service in system server.
+//! • Make sure system server has request security dialog for all clients before acting in any security dialog.
+//! • Security dialog for client A should appear on screen select “always” and check that application can use intended service.
+//! • Security dialog for client B should appear on screen select “never” and check that application can NOT use intended service.
+//! • Once user prompt is displayed for client C, induce system server to cancel request to UPS for client C, this should cause security //! dialog for client C to be removed from screen.
+//! • In new session ask client A to try to access test service, UPS should grant silent acceptance and client A should have access to //! test service.
+//! • In new session ask client B to try to access test service, UPS should grant silent denial and client B should NOT have access to //! test service.
+//!
+//! @SYMTestExpectedResults • Decision DB is upgraded with new decisions for Clients B (“never”) and
+//! A (“always”).
+//! • UPS does not malfunction after cancellation of dialog for Client C.
+//! @SYMTestType CIT
+//!
+
+
+START_TESTCASE SEC-UPS-INTEG-C007
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Client A, B and C are run concurrently with a Coordinator so that the last dialog (Client C) can be cancelled once all of the service requests
+// have been invoked
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini cancellation_last_dialog_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_last_dialog_ClientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_last_dialog_ClientB
+RUN_TEST_STEP 100 TUPSInteg_minor CancelPrompt z:\tups\integ\scripts\tups_integ.ini cancellation_last_dialog_ClientC_cancel
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini cancellation_last_dialog_dbManagementCheck
+
+END_TESTCASE SEC-UPS-INTEG-C007
+
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-C008
+//! @SYMTestCaseDesc Cancellation of middle position dialog from a queue of pending security dialogs.
+//! (cancellation_middle_dialog)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7431 REQ7432
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services there is an appropriate policy, policy evaluator and dialog creator that matches the UID of the service //! offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 3 “test client” in turns (A, B & C), these Clients try to use of a test service in system server.
+//! • Make sure system server has request security dialog for all clients before acting in any security dialog.
+//! • Security dialog for client A should appear on screen select “always” and check that application can use intended service.
+//! • Once user prompt is displayed for client B, induce system server to cancel request to UPS for client B, this should cause security //! dialog for client B to be removed from screen.
+//! • Security dialog for client C should appear on screen select “Always” and check that client can use intended service.
+//! • In new session ask client A to try to access test service, UPS should grant silent acceptance and client A should have access to //! test service.
+//! • In new session ask client C to try to access test service, UPS should grant silent acceptance and client B should have access to //! test service.
+//!
+//! @SYMTestExpectedResults • Decision DB is upgraded with 2 new “Always” decisions for Clients A & C.
+//! • UPS does not malfunction after cancellation of dialog for Client B.
+//!
+//! @SYMTestType CIT
+
+
+START_TESTCASE SEC-UPS-INTEG-C008
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Client A, B and C are run concurrently with a Coordinator so that the middle dialog (Client B) can be cancelled once all of the service requests
+// have been invoked
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini cancellation_middle_dialog_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_middle_dialog_ClientA
+RUN_TEST_STEP 100 TUPSInteg_minor CancelPrompt z:\tups\integ\scripts\tups_integ.ini cancellation_middle_dialog_ClientB_cancel
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_middle_dialog_ClientC
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini cancellation_middle_dialog_dbManagementCheck
+
+END_TESTCASE SEC-UPS-INTEG-C008
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-C009
+//! @SYMTestCaseDesc Cancellation of request whilst Policy Evaluator is Generating Fingerprints
+//! (cancellation_during_fingerprint_generation)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7431 REQ7432
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • For each of the services there is an appropriate policy, policy evaluator and
+//! dialog creator that matches the UID of the service offered by the “system server”.
+//! Test Actions:
+//! • Launch 3 “test client” in turns (A, B & C), these Clients try to use of a test
+//! service in system server.
+//! • Make sure system server has request security dialog for all clients to UPS before
+//! acting in any security dialog. At this stage client A should be hold with security
+//! dialog open (on display), client B need to be hold while its request is at
+//! “GenerateFingerPrints” stage, client C can be hold at display queuing stage.
+//! • Once all clients have reached stages described above cancel request from client B,
+//! consecutively let other two clients requests (A & C) run normally to competition.
+//! • Check that request for A and C can be served normally by UPS.
+//! • Check that request for client B received a “KerrCancel” from UPS.
+//!
+//! @SYMTestExpectedResults • Decisions for client A and C are correctly stored in decision DB.
+//! • No decision was stored for client B.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-C009
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Client A, B and C are run concurrently with a Coordinator so that the middle dialog (Client B) can be cancelled whilst the policy evaluator is generating
+// fingerprints
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_fingerprint_generation_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_fingerprint_generation_ClientA
+RUN_TEST_STEP 100 TUPSInteg_minor CancelPrompt z:\tups\integ\scripts\tups_integ.ini cancellation_during_fingerprint_generation_ClientB_cancel
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_fingerprint_generation_ClientC
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_fingerprint_generation_dbManagementCheck
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_2
+
+END_TESTCASE SEC-UPS-INTEG-C009
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-C010
+//! @SYMTestCaseDesc Cancellation of request whilst Dialog Creator is Preparing a Dialog
+//! (cancellation_during_prepare_dialog)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7431 REQ7432
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • For each of the services there is an appropriate policy, policy evaluator and
+//! dialog creator that matches the UID of the service offered by the “system server”.
+//! Test Actions:
+//! • Launch 3 “test client” in turns (A, B & C), these Clients try to use of a test
+//! service in system server.
+//! • Make sure system server has request security dialog for all clients to UPS before
+//! acting in any security dialog. At this stage client A should be hold with security
+//! dialog open (on display), client B need to be hold while its request is at
+//! “PrepareDialog” stage, client C can be hold at display queuing stage.
+//! • Once all clients have reached stages described above cancel request from client B,
+//! consecutively let other two clients requests (A & C) run normally to competition.
+//! • Check that request for A and C can be served normally by UPS.
+//! • Check that request for client B received a “KerrCancel” from UPS.
+//!
+//! @SYMTestExpectedResults • Decisions for client A and C are correctly stored in decision DB.
+//! • No decision was stored for client B.
+//!
+//! @SYMTestType CIT
+
+
+
+START_TESTCASE SEC-UPS-INTEG-C010
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Client A, B and C are run concurrently with a Coordinator so that the middle dialog (Client B) can be cancelled whilst the dialog creator is preparing
+// a dialog
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSCoordinatorStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_prepare_dialog_Coordinator
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_prepare_dialog_ClientA
+RUN_TEST_STEP 100 TUPSInteg_minor CancelPrompt z:\tups\integ\scripts\tups_integ.ini cancellation_during_prepare_dialog_ClientB_cancel
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_prepare_dialog_ClientC
+CONSECUTIVE
+
+// Database Management Checks
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini cancellation_during_prepare_dialog_dbManagementCheck
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_2
+
+END_TESTCASE SEC-UPS-INTEG-C010
+
+
+//********************** SEC-UPS-D : DECISION DATABASE SPECIFIC TESTS **********************
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-D003
+//! @SYMTestCaseDesc Deletion of decision DB after DB corruption
+//! (BD_corruption)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ0
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services there is an appropriate policy, policy evaluator and
+//! dialog creator that matches the UID of the service offered by the “system server”.
+//!
+//! Test Actions:
+//! • Launch 2 “test client” in turns (A & B) these Clients try to use of a system server.
+//! • System server asks for a user prompt to the UPS for each of the Clients.
+//! • For the first 2 test clients (A & B) select “Always” option.
+//! • Check that “test client” A & B can now use the intended service from the system server.
+//! • Close client, system servers and UPS
+//! • Change some bytes in decision DB file that will be interpreted as DB corruption.
+//! • Launch again test clients A & B, as the decision DB is expected to have been deleted,
+//! it is expected that 2 user prompts will be displayed again for A & B.
+//! • Select “Never” for A and “always” for B.
+//! • Check that A can access intended service and B can NOT.
+//! @SYMTestExpectedResults • The decision DB is deleted after corruption and replaced with new one.
+//! • A new DB is created with “”Never” decision for client A and “Always” decision for client B.
+//! • Corruption of decision DB does not cause failure in UPS.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-D003
+// First attempt of corruption
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_adddecisions
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_checkdecisions
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+// replaces database with corrupted database
+RUN_UTILS CopyFile z:\tups\integ\corrupted_db_integ\ups_corrupted1.db c:\private\10283558\database\ups.db
+RUN_UTILS MakeReadWrite c:\private\10283558\database\ups.db
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_adddecisions
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_checkdecisions
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+// second attempt of corruption
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_adddecisions
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_checkdecisions
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+// replaces database with corrupted database
+RUN_UTILS CopyFile z:\tups\integ\corrupted_db_integ\ups_corrupted2.db c:\private\10283558\database\ups.db
+// The database file is deliberately left as read only (DEF122590).
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_adddecisions
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini BD_corruption_checkdecisions
+END_TESTCASE SEC-UPS-INTEG-D003
+
+
+//! @SYMTestCaseID SEC-UPS-D004
+//! @SYMTestCaseDesc Removal of single decision from DB by user operation.
+//! (remove_single_db_decision)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7379
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services There is an appropriate policy, policy evaluator and dialog creator that matches the UID //! of the service offered by the “system server”.
+//!
+//! Test Actions:
+//! • Populate decision DB for 3 test clients (A, B, C) with “Never” decisions for 3 Clients.
+//! • Remove individual decision for Client B from DB using decision DB management API.
+//! • Launch test clients (A, B, C) which should try to use service from system server.
+//! • System server requests UPS for security for user security prompting, at this point UPS should give silent denial //! for Client A & C, but should prompt user security dialog for Client B.
+//! • Select “Always” for test client B when security dialog is displayed.
+//! • Check that Client B can now use the intended service.
+//!
+//! @SYMTestExpectedResults • Only decision for test client B changes; final state of decision DB should show decisions for A & C as
+//! “never”, decision for C as “Always”.
+//! • Test client B is granted access to intended service.
+//!
+//! @SYMTestType CIT
+
+
+START_TESTCASE SEC-UPS-D004
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// * STAGE 1 - CONSECUTIVE REMOVAL OF DECISIONS FROM DATABASE
+
+// Populate decisions in the database and close off sessions
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_setup_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_setup_clientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_setup_clientC
+
+// Initial check on the decisions for denial from UPS
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_initialCheck_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_initialCheck_clientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_initialCheck_clientC
+
+// Initial Database Management Record Check and Count
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_initialDBCheck
+
+// Remove database decisions for client B using the UPS DB Management API
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_removeDecision_clientB
+
+// UPS DB Management checking on records and Execute Decision Count
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_postClientRemovalDBCheck
+
+// Remove database decisions for Policy Evaluator 2 using the UPS DB Management API
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_removeDecision_evaluator2
+
+// UPS DB Management checking on records and Execute Decision Count
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_postEvaluatorRemovalDBCheck
+
+// Relaunch clients checking that clients A & C requesting PE 1 or 3 return denials and others require a User Prompt of which
+// Always is selected
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_checkAndRepopulate_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_checkAndRepopulate_clientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_checkAndRepopulate_clientC
+
+// Final check on the decisions from UPS
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_finalCheck_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_finalCheck_clientB
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_finalCheck_clientC
+
+// Final Stage of UPS DB Management checking on records and Execute Decision Count
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_single_db_decision_finalDBCheck
+
+
+// * STAGE 2 - CONCURRENT OPERATIONS ON UPS WHILST REMOVING DECISIONS FROM DATABASE
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with sample inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+
+// Perform initial checking on sample decisions
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+
+// Concurrently check the decisions of clients B & C whilst remove select decisions from the Database for Client A
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_decisions_concurrent_clientA
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+CONSECUTIVE
+
+// UPS DB Management checking on records and Execute Decision Count
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_decisions_concurrent_dbCheck
+
+END_TESTCASE SEC-UPS-D004
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-D006
+//! @SYMTestCaseDesc Removal of decision from DB by uninstalling client.
+//! (client_removal)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7387
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services There is an appropriate policy, policy evaluator and dialog
+//! creator that matches the UID of the service offered by the “system server”.
+//! • The test clients used for this test case were installed with a SIS file that did not
+//! install the policy or policy evaluator mapped to these test clients.
+//! • There is more than one decision stored for test applications.
+//!
+//! Test Actions:
+//! • Populate decision DB for 3 test clients (A, B, C) with “Always” decisions for 3 Clients.
+//! • Uninstall test client B.
+//! • Launch test clients (A & C), these two Clients should have normal access to test service
+//! without need for security dialog prompt.
+//!
+//! @SYMTestExpectedResults • Decision for test client B was removed from decision DB. Decisions for test clients
+//! A & C are still present in DB with value “always”
+//! • Test client A & C are granted access to test service.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-D006
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// Installs new client via swi (tupsinteg_post1)
+RUN_TEST_STEP !Heap=0x150000 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_post1
+LOAD_SUITE tupsinteg_post1
+
+// creates decision for new installed client.
+// This odd jump to another script is indispensable in this situation.
+RUN_SCRIPT z:\tups\integ\scripts\tups_integ_post1.script
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+// Unsinstall new client via swi (tupsinteg_post1)
+RUN_TEST_STEP 100 tups_install UninstallStep z:\tups\integ\scripts\tups_integ.ini uninstall_post1
+CONSECUTIVE
+
+// Need to reinstall client to be able to check decisions
+RUN_TEST_STEP !Heap=0x150000 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_post1
+
+// creates decision for new installed client.
+// This odd jump to another script is indispensable in this situation.
+RUN_SCRIPT z:\tups\integ\scripts\tups_integ_post1.script
+
+// decisions for other clients are expected to be unchanged.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// Last Unsinstall of new client via swi (tupsinteg_post1) (clean up)
+RUN_TEST_STEP 100 tups_install UninstallStep z:\tups\integ\scripts\tups_integ.ini uninstall_post1
+
+END_TESTCASE SEC-INTEG-UPS-D006
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-D007
+//! @SYMTestCaseDesc Removal of decision from DB by upgrading client.
+//! (client_update)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7387 REQ7470
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • For each of the services There is an appropriate policy, policy evaluator
+//! and dialog creator that matches the UID of the service offered by the “system server”.
+//! • The test clients used for this test case were installed with a SIS file that did not
+//! install the policy or policy evaluator mapped to these test clients.
+//! • More than 1 decision is associated to test client.
+//! Test Actions:
+//! • Populate decision DB for 3 test clients (A, B, C) with “Always” decisions for 3 Clients.
+//! • Upgrade test client B by using SIS file. This SIS file should replace EXE file associated
+//! to test client B.
+//! • Launch test clients (A, B, C), A & C should have normal access to test service without
+//! need for security dialog prompt. UPS should display security dialog for Client B, select “Never”.
+//!
+//! @SYMTestExpectedResults • Decision for test client B was changed in the decision DB from “Always” to “Never”.
+//! Decisions for test clients A & C are still present in DB with value “always”
+//! • Test client A & C are granted access to test service.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-D007
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// Installs new client via swi (tupsinteg_post1)
+RUN_TEST_STEP !Heap=0x150000 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_post1
+
+// creates decision for new installed client.
+// This odd jump to another script is indispensable in this situation.
+RUN_SCRIPT z:\tups\integ\scripts\tups_integ_post1.script
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+// Reinstall client via swi, this counts as an upgrate (tupsinteg_post1)
+RUN_TEST_STEP !Heap=0x150000 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_post1
+CONSECUTIVE
+
+// creates decision for new installed client.
+// This odd jump to another script is indispensable in this situation.
+RUN_SCRIPT z:\tups\integ\scripts\tups_integ_post1_check.script
+
+// decisions for other clients are expected to be unchanged.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// Last Unsinstall of new client via swi (tupsinteg_post1) (clean up)
+RUN_TEST_STEP 100 tups_install UninstallStep z:\tups\integ\scripts\tups_integ.ini uninstall_post1
+
+END_TESTCASE SEC-INTEG-UPS-D007
+
+//! @SYMTestCaseID SEC-INTEG-UPS-D009
+//! @SYMTestCaseDesc Removal of decision from DB by uninstalling policy file
+//! (policy_removal)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7397 REQ7399 REQ7400
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • For each of the services there is an appropriate policy, policy evaluator and dialog creator
+//! that matches the UID of the service offered by the “system server”.
+//! • The SIS file used to install test policy did NOT install any executable client that could be
+//! mapped to this policy.
+//! Test Actions:
+//! • Populate decision DB for 3 test clients (A, B, C) with “Always” decisions for 3 Clients.
+//! • Uninstall policy mapped to Client B.
+//! • Launch test clients (A, B, C). Clients A & C should have normal access test service.
+//! • For Client B, test system server should receive a KErrUpsMissingPolicyFile form UPS.
+//! • Check that Client A & C can access test service.
+//!
+//! @SYMTestExpectedResults • Decision DB contains only “Always” decision stored for Clients A & C, Client B
+//! should not have any decision associated to it.
+//! • Test client A & C are granted access to test service.
+//! • Test client B is granted not granted service.
+//! • KErrUpsMissingPolicyFile issued to system server when request security dialog for client B.
+//!
+//! @SYMTestType CIT
+START_TESTCASE SEC-INTEG-UPS-D009
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// installs policy file version 1
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_policies1v1
+
+
+// populates decisions related to policy just installed
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v1_populate
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v1_check
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_29
+
+// uninstall policy file.
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini un_install_policies1v1
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_27
+
+END_TESTCASE SEC-INTEG-UPS-D009
+
+//! @SYMTestCaseID SEC-INTEG-UPS-D010
+//! @SYMTestCaseDesc Removal of decision from DB by upgrading policy file
+//! (policy_update)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7397 REQ7399 REQ7400
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! Preconditions:
+//! • For each of the services There is an appropriate policy, policy evaluator and
+//! dialog creator that matches the UID of the service offered by the “system server”.
+//! • The SIS file used to install test policy did NOT install any executable client that
+//! could be mapped to this policy.
+//! Test Actions:
+//! • Populate decision DB for 3 test clients (A, B, C) with “Always” decisions for 3 Clients.
+//! • Upgrade policy mapped to Client B via SWI.
+//! • Launch test clients (A, B, C). Clients A & C should have normal access test service (no
+//! prompting). For Client B, UPS should prompt again for user permission, select “never” option.
+//! • Check that Client A & C can access test service.
+//! @SYMTestExpectedResults • Decision DB contains only “Always” decision stored for Clients A & C, for Client
+//! B the decision stored now is “never”.
+//! • Test client A & C are granted access to test service.
+//! • Policy files were installed in private directory
+//!
+//! @SYMTestType CIT
+START_TESTCASE SEC-INTEG-UPS-D010
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// installs policy file version 1
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_policies1v1
+
+
+// populates decisions related to policy just installed
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v1_populate
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v1_check
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_29
+
+// installs policy file version 2, this should cause decisions to be deleted
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_policies1v2
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v2_inflight_change
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+CONSECUTIVE
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_29
+
+// Cleanup
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini un_install_policies1v2
+
+//////////// repeats same test sequence but without concurrency /////////////////////////
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// installs policy file version 1
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_policies1v1
+
+// populates decisions related to policy just installed
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v1_populate
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v1_check
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_29
+
+// installs policy file version 2, this should cause decisions to be deleted.
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_policies1v2
+
+// populates decisions that are expected to be deleted.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v2_populate
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v2_check
+
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_29
+
+// Cleanup
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini un_install_policies1v2
+
+
+
+END_TESTCASE SEC-INTEG-UPS-D010
+
+
+//********************** SEC-UPS-E : SECURITY POLICIES AND POLICY EVALUATOR PLUG-INS **********************
+//! @SYMTestCaseID SEC-UPS-INTEG-E001
+//! @SYMTestCaseDesc To ensure that when a single bit is set in the “options” no security
+//! dialog will be prompted to user.
+//! (single_bit_set)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7391, REQ7392, REQ7433
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Test A: Set only ‘EYes’ bit to true in test policy for“test client”.
+//! Induce UPS invocation by using a “test client”
+//! Check if test client can access intended service.
+//! Test B: Set only ‘ENo’ bit to true in test policy for“test client”.
+//! Induce UPS invocation by using a “test client”
+//! Check if test client can access intended service.
+//! Test C: Set only ‘ESession’ bit to true in test policy for“test client”.
+//! Induce UPS invocation by using a “test client”
+//! Check if test client can access intended service.
+//! Test D: Set only ‘EAlways’ bit to true in test policy for“test client”.
+//! Induce UPS invocation by using a “test client”
+//! Check if test client can access intended service.
+//! Test E: Set only ‘ENever’ bit to true in test policy for“test client”.
+//! Induce UPS invocation by using a “test client”
+//! Check if test client can access intended service.
+//!
+//! @SYMTestExpectedResults Only for tests A, C & D the test service will be able to access
+//! intended service.
+//! For all of the tests (A to E), no decision is stored in decision DB.
+//! No security dialog is displayed (all decisions are silent).
+//!
+//! @SYMTestType CIT
+//
+START_TESTCASE SEC-UPS-INTEG-E001
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini single_bit_set
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini single_bit_set_b
+END_TESTCASE SEC-UPS-INTEG-E001
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-E002
+//! @SYMTestCaseDesc To ensure that a default policy evaluator will be invoked if a service
+//! requested do not match any existing policy in the phone
+//! (no_matching_policy)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ0
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions: There is not matching policy for the test client to
+//! be used for this test case.
+//! Test Actions:
+//! - Launch test client which tries to access test service, system server
+//! should invoke UPS.
+//! - A “Yes” or “No” dialog should be displayed select “YES
+//! Check that access is granted to test service.
+//! - Launch again same test client, a “Yes” or “Not” dialog should be displayed
+//! select “No”.
+//! - Check that access is NOT granted to test service.
+//! - Launch again same test client, a “Yes” or “Not” dialog should be displayed
+//! select “Yes”.
+//! - Check that access is granted to test service.
+//!
+//! @SYMTestExpectedResults Yes” or “No” dialog is displayed every time that test client
+//! request service access.
+//!
+//! @SYMTestType CIT
+//
+START_TESTCASE SEC-UPS-INTEG-E002
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep Z:\tups\integ\scripts\tups_integ.ini no_matching_policy
+END_TESTCASE SEC-UPS-INTEG-E002
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-E004
+//! @SYMTestCaseDesc To ensure that UPS will return an appropriate error if the policy
+//! evaluator set in the “policy evaluator” field is not present in the phone
+//! (missing_policy_evaluator)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7444
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions there is an appropriate policy, policy evaluator
+//! and dialog creator that matches the UID of the service offered by the
+//! “system server”. However the policy evaluator referred in the “policy
+//! evaluator UID field” is not present in the phone.
+//! Actions: Launch test client which tries to use test service, system server should invoke UPS.
+//! UPS should return KErrUpsMissingPolicyEvaluator to system server.
+//!
+//! @SYMTestExpectedResults System server receives KErrUpsMissingPolicyEvaluator
+//! and test client can not use intended service
+//!
+//! @SYMTestType CIT
+//
+START_TESTCASE SEC-UPS-INTEG-E004
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini missing_policy_evaluator
+END_TESTCASE SEC-UPS-INTEG-E004
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-E006
+//! @SYMTestCaseDesc To ensure that UPS will return appropriate error if dialog creator referred
+//! by “Dialog creator UID” field in policy is not present in phone
+//! (missing_dialog_creator)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7444
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions preconditions There is an appropriate policy, policy evaluator that matches
+//! the UID of the service offered by the “system server”. However the dialog
+//! creator referred in the “Dialog creator UID field” is not present in the phone.
+//! Launch test client which tries to access test service, system server should
+//! invoke UPS. Launch test client which tries to use test service, system server
+//! should invoke UPS.
+//!
+//! @SYMTestExpectedResults System server receives KErrUpsMissingDialogCreator
+//! and test client can not use intended service
+//!
+//! @SYMTestType CIT
+//
+START_TESTCASE SEC-UPS-INTEG-E006
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini missing_dialog_creator
+END_TESTCASE SEC-UPS-INTEG-E006
+
+//! @SYMTestCaseID SEC-UPS-INTEG-E007
+//! @SYMTestCaseDesc Matching destination by wild card, asterisk symbols – limited range.
+//! (asterisk_limited)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ0
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator
+//! that matches the UID of the service offered by the “system server”.
+//! The value for “destination” in policy file contains asterisk.
+//! Test Actions:
+//! • Launch test client A which tries to access test service. The service
+//! requested by this Client is a phone connection to a 0900 number.
+//! (The policy associated to this service states that all 0900* should be
+//! prompted for user decision)
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “Always” option. Check that Client
+//! A can access intended service.
+//! • Launch Client A in a new session, check that Client A receives a silent
+//! acceptance and can access the intended service.
+//! • Launch test client B which tries to access test service. The service
+//! requested by this Client is an internet connection to a “.RU” address.
+//! (The policy associated to this service states that all “.RU” addresses
+//! should be blocked).
+//! • System server asks for a user prompt to the UPS.
+//! • UPS should reply with a silent denial. Check that Client B can not
+//! access intended service.
+//!
+//! @SYMTestExpectedResults • An “Always” decision is stored in decision DB for Client A.
+//! • Client A can access intended service.
+//! • No decision is stored for Client B in decision DB.
+//! • Client B can NOT access intended service.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-E007
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini asterisk_limited
+END_TESTCASE SEC-UPS-INTEG-E007
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-E008
+//! @SYMTestCaseDesc Matching destination by wild card, asterisk symbols – All option.
+//! (asterisk_all)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ0
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator
+//! that matches the UID of the service offered by the “system server”.
+//! The value for “destination” in policy file contains asterisk.
+//! Test Actions:
+//! • Launch test client A with which tries to access test service.
+//! The service requested by this Client is a phone connection to a 0500 number.
+//! (The policy associated to this service states that all destinations should be prompted
+//! for user decision, “*” in destination)
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “Always” option. Check that Client A can
+//! access intended service.
+//! • Launch Client A in a new session, check that Client A receives a silent acceptance
+//! and can access the intended service.
+//! • Launch test client B which tries to access test service. The service requested by this
+//! Client is an internet connection to a “.RU” address. (The policy associated to this service
+//! states that all “.RU” addresses should be blocked).
+//! • System server asks for a user prompt to the UPS.
+//! • UPS should reply with a silent denial. Check that Client B can not access intended service.
+//!
+//!
+//! @SYMTestExpectedResults • An “Always” decision is stored in decision DB for Client A.
+//! • Client A can access intended service.
+//! • No decision is stored for Client B in decision DB.
+//! • Client B can NOT access intended service.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-E008
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini asterisk_all
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini asterisk_all_b
+END_TESTCASE SEC-UPS-INTEG-E008
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-E009
+//! @SYMTestCaseDesc Matching destination by wild card, question mark symbols.
+//! (question_mark_card)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ0
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that
+//! matches the UID of the service offered by the “system server”. The value
+//! for “destination” in policy file contains question mark symbols.
+//! Test Actions:
+//! • Launch test client A which tries to access test service. The service requested
+//! by this Client is a phone connection to a 0900 number. (The policy associated to
+//! this service states that all 0?00 should be prompted for user decision)
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “Always” option. Check that Client A can access
+//! intended service.
+//! • Launch Client A in a new session, check that Client A receives a silent acceptance
+//! and can access the intended service.
+//! • Launch test client B which tries to access test service. The service requested by
+//! this Client is an phone call to 118 500. (The policy associated to this service states
+//! that all 118??? Phone numbers should be blocked).
+//! • System server asks for a user prompt to the UPS.
+//! • UPS should reply with a silent denial. Check that Client B can not access intended
+//! service.
+//!
+//!
+//! @SYMTestExpectedResults • An “Always” decision is stored in decision DB for Client A.
+//! • Client A can access intended service.
+//! • No decision is stored for Client B in decision DB.
+//! • Client B can NOT access intended service.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-E009
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini question_mark_card
+END_TESTCASE SEC-UPS-INTEG-E009
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E017
+//! @SYMTestCaseDesc Post manufacture install of Policy Evaluator
+//! (policy_evaluator_install)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7408
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • There a policy file associated to test service, however the policy evaluator specified
+//! in the “Policy evaluator field” is not present in the phone
+//! Test Actions:
+//! • Using SIS file install new policy evaluator that is listed in policy file (This SIS file
+//! only installs policy evaluator plug-in, it does NOT install policy file).
+//! • Launch test client which uses policy file that invokes use of new policy evaluator, verify
+//! that UPS invokes the new policy evaluator, use test client to store new “never” and “always”
+//! decisions.
+//! • Uninstall the policy evaluator that was just previously installed, re-install again the same
+//! policy evaluator; as decisions are not expected to be deleted verify that the decisions are
+//! still there in database.
+//! • Run the previous test sequence concurrently with other clients using decisions stored in DB not
+//! related to new policy evaluator, check that these decisions are not affected by installation
+//! and removal of policy evaluator.
+//!
+//! @SYMTestExpectedResults • Newly installed policy evaluator is used after installation by SIS file.
+//! • Decisions in DB are not affected by installation/removal of policy evaluator.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E017
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// installs new policy evaluator
+RUN_TEST_STEP !Heap=0x150000 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_evaluator5
+
+// Delay added to alow new plugin to be scaned by some magic entity in the phone
+DELAY 8000
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini newevaluator5
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// uninstall policy file.
+RUN_TEST_STEP 100 tups_install UninstallStep z:\tups\integ\scripts\tups_integ.ini uninstall_evaluator5
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_30
+
+END_TESTCASE SEC-INTEG-UPS-E017
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E018
+//! @SYMTestCaseDesc Post manufacture install of dialog creator
+//! (dialog_creator_install)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7408
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • Existence of SIS file that can install new dialog creator and policy file.
+//! Test Actions:
+//! • Using SIS file install new dialog creator and policy file.
+//! • Request specific services to test system server that will invoke ups for
+//! authorization and using the new dialog creator and policy file installed. Make
+//! sure that an “always” and “never” decisions are stored in DB.
+//! • Uninstall the SIS file, check the new decisions related to previously installed
+//! dialog creator were removed for DB.
+//!
+//! @SYMTestExpectedResults
+//! • Newly installed dialog and policy are used by UPS after installation by
+//! SIS file.
+//! • New decisions related to new dialog creator and policy file are stored correctly
+//! into decision DB.
+//! • Decisions related to policy file (installed by the same SIS file) are removed
+//! from DB.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E018
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// installs new policy evaluator
+RUN_TEST_STEP !Heap=0x150000 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_dialog7
+// Delay Allows new plugin to be scanned by ECOM
+DELAY 8000
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini newdialog7
+
+
+// uninstall policy file.
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini uninstall_dialog7
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_27
+
+END_TESTCASE SEC-INTEG-UPS-E018
+
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E024
+//! @SYMTestCaseDesc Security Policy Authorisation - EAlwaysCheck
+//! (alwayscheck_authoristion)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7389
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • Policy file related to test service to be used has property “authorisationPolicy” set
+//! to “EAlwaysCheck”.
+//! Test Actions:
+//! • Request use of the service that matches policy file mentioned in “preconditions”.
+//! Test system server should invoke UPS.
+//! • Use different values for “aServerCheckOk” parameter in “Authorise” methods (ETrue
+//! and EFalse)
+//! • Check that UPS invokes correct policy evaluator and dialog creator as set in policy
+//! file.
+//!
+//! @SYMTestExpectedResults
+//! • All new requests made to UPS for test service will cause a user prompt from UPS.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E024
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini alwayscheck_platsec_true
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini alwayscheck_platsec_false
+END_TESTCASE SEC-INTEG-UPS-E024
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E025
+//! @SYMTestCaseDesc Security Policy Authorisation - ECheckPostManufacture
+//! (checkpostmanufacture_authoristion)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7389
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • Policy file related to test service to be used has property “authorisationPolicy”
+//! set to “ECheckPostManufacture”.
+//! Test Actions:
+//! • Request use of the service that matches policy file mentioned in “preconditions”.
+//! Test system server should invoke UPS.
+//! • Use different values for “aServerCheckOk” parameter in “Authorise” methods (ETrue
+//! and EFalse).
+//! • Use different types of applications to request the same service including: applications
+//! with protected SID on Z drive, unprotected SID on Z drive, protected SID on C drive and
+//! unprotected SID on C drive.
+//!
+//! @SYMTestExpectedResults Only requests made from applications with protected SID running from Z drive having
+//! passed system server checks should receive immediate access approval, any other type
+//! should cause a security user prompt.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E025
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// CLIENT WITH PROTECTED SID ON Z
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_true_zdrive_protect
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_false_zdrive_protect
+
+
+// CLIENT WITH UNPROTECTED SID ON Z
+RUN_TEST_STEP 100 TUPSInteg_unprotected UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_true_zdrive_unprotect
+RUN_TEST_STEP 100 TUPSInteg_unprotected UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_false_zdrive_unprotect
+
+
+// CLIENT WITH PROTECTED SID ON C
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_true_cdrive_protect
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_false_cdrive_protect
+
+
+// CLIENT WITH UNPROTECTED SID ON C
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_true_cdrive_unprotect
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkpostmanufacture_platsec_false_cdrive_unprotect
+
+END_TESTCASE SEC-INTEG-UPS-E025
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E026
+//! @SYMTestCaseDesc Security Policy Authorisation - ECheckUnprotectedSids
+//! (checkunprotectedsids_authoristion)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7389
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • Policy file related to test service to be used has property “authorisationPolicy”
+//! set to “ECheckUnprotectedSids”.
+//! Test Actions:
+//! • Request use of the service that matches policy file mentioned in “preconditions”.
+//! Test system server should invoke UPS.
+//! • Use different values for “aServerCheckOk” parameter in “Authorise” methods (ETrue
+//! and EFalse).
+//! • Use different types of applications to request the same service including:
+//! applications with protected SID on Z drive, unprotected SID on Z drive, protected
+//! SID on C drive and unprotected SID on C drive.
+//!
+//! @SYMTestExpectedResults
+//! • Any request for tests services made from clients with protected SID should receive
+//! immediate silent approval from UPS.
+//! • Request for tests services made from clients with unprotected SID should cause user
+//! security dialog from UPS.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E026
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// CLIENT WITH PROTECTED SID ON Z
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_true_zdrive_protect
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_false_zdrive_protect
+
+// CLIENT WITH UNPROTECTED SID ON Z
+RUN_TEST_STEP 100 TUPSInteg_unprotected UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_true_zdrive_unprotect
+RUN_TEST_STEP 100 TUPSInteg_unprotected UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_false_zdrive_unprotect
+
+// CLIENT WITH PROTECTED SID ON C
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_true_cdrive_protect
+RUN_TEST_STEP 100 TUPSInteg_4 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_false_cdrive_protect
+
+// CLIENT WITH UNPROTECTED SID ON C
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_true_cdrive_unprotect
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkunprotectedsids_platsec_false_cdrive_unprotect
+
+END_TESTCASE SEC-INTEG-UPS-E026
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E027
+//! @SYMTestCaseDesc Security Policy Authorisation - ECheckIfFailed
+//! (checkiffailed_authoristion)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7389
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • Policy file related to test service to be used has property
+//! “authorisationPolicy” set to “ECheckIfFailed”.
+//! Test Actions:
+//! • Request use of the service that matches policy file mentioned in
+//! “preconditions”. Test system server should invoke UPS.
+//! • Use different values for “aServerCheckOk” parameter in “Authorise”
+//! request (ETrue and EFalse).
+//! @SYMTestExpectedResults
+//! • Only requests made with “aServerCheckOk” parameter set to Efalse should cause
+//! UPS to display user security dialog, otherwise UPS should return silent approval.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E027
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkiffailed_platsec_true
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini checkiffailed_platsec_false
+END_TESTCASE SEC-INTEG-UPS-E027
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E028
+//! @SYMTestCaseDesc Security Policy Authorisation - ENeverCheck
+//! (nevercheck_authoristion)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7389
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • Policy file related to test service to be used has property “authorisationPolicy” set
+//! to “ENeverCheck”.
+//! Test Actions:
+//! • Request use of the service that matches policy file mentioned in “preconditions”. Test
+//! system server should invoke UPS.
+//! • Use different values for “aServerCheckOk” parameter in “Authorise” request (ETrue and
+//! EFalse).
+//!
+//! @SYMTestExpectedResults
+//! • UPS shouldn’t display any security dialog, UPS should return silent acceptance server
+//! checks passed, UPS should return silent denial server checks failed.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E028
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini nevercheck_platsec_true
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini nevercheck_platsec_false
+END_TESTCASE SEC-INTEG-UPS-E028
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E029
+//! @SYMTestCaseDesc System server with no policy files
+//! (no_policy_files_server)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is NO policy file at all related to the system server been used for test purpose
+//!
+//! Test Actions:
+//! • Launch “test clients” which tries to use of system servers. System server should request UPS for
+//! user security dialog. Set plat sec check to ETrue in request to UPS.
+//! • Launch “test clients” which tries to use of system servers. System server should request UPS for
+//! user security dialog. Set plat sec check to EFalse in request to UPS.
+//!
+//! @SYMTestExpectedResults • System server shuold receive a EDecisionYes for first request
+//! • System server shuold receive a EDecisionNo for second request
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E029
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini no_policy_files_server
+END_TESTCASE SEC-INTEG-UPS-E029
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E030
+//! @SYMTestCaseDesc Option session returned for always decision stored.
+//! (session_overwrites_always)
+//!
+//!
+//! @SYMTestPurpose To check that if a policy includes the “session” option for an “always” decision already stored,
+//! then UPS will reply with “ESession” every time this decision is queried
+//!
+//! @SYMPREQ
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • The UPS policy stated for the test service to be used allows at least the options “ESession”
+//! and “EAlways”
+//!
+//! Test Actions:
+//! • Launch “test client” which tries to connect to a system server and use service.
+//! • System server asks for a user prompt to the UPS.
+//! • When UPS prompts user, select the “Always” option.
+//! • Check that UPS returned “ESession” to system server.
+//! • In a new session request the same service and destination, check that UPS returns an “ESession”
+//! silent reply to system server. Check that the correct policy evaluator was invoked but no dialog
+//! creator was invoked.
+//!
+//!
+//! @SYMTestExpectedResults • UPS returns “ESession” even if an “Always” decision was selected by the use.
+//! • A new “Always” decision was added to decision DB.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E030
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini session_overwrites_always
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini session_overwrites_always_b
+END_TESTCASE SEC-INTEG-UPS-E030
+
+
+//! @SYMTestCaseID SEC-UPS-E031
+//! @SYMTestCaseDesc To check that UPS can handle client entities of a max length of 32 bytes
+//! (client_entity)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7374
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • Policy evaluator used for test can populate “CClientEntity” object at will.
+//! • Appropriate policy file, policy evaluator and dialog creator are present in phone for test service
+//! to be requested
+//!
+//! Test Actions:
+//! • Make request to ups for security user prompt for some arbitrary destinations. For these destination
+//! instruct policy evaluator to create different CClientEntity lengths including:
+//! - 0 bytes.
+//! - 1 bytes.
+//! - 32 bytes.
+//! - 33 bytes.
+//!
+//! • For the previous requests select “Always” or “Never” when security dialog is displayed.
+//!
+//! @SYMTestExpectedResults • For client entities of length 0, 1 or 32 bytes a corresponding decision is expected to be
+//! created in decision database. The client entity value is reported correctly in DB.
+//!
+//! • For CClientEntity of 33 bytes length, the constructor is expected to return
+//! KErrUpsBadClientEntityLength and no decision is created in database.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-E031
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini client_Entity
+
+END_TESTCASE SEC-UPS-E031
+
+
+//! @SYMTestCaseID SEC-UPS-E032
+//! @SYMTestCaseDesc Force prompt – decision removed
+//! (force_prompt_decision_removed)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ0
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy file for the test service to be use.
+//! • Policy evaluator has the ability to force prompt at run time. Policy evaluator increases by
+//! one the value of “evaluator info” every time that a security dialog is prompted for a particular
+//! decision in the DB.
+//!
+//! Test Actions:
+//! • Part 1: Test client A has two pre-stored decision as “Always”.
+//! • Instruct client A to request access to test service that matches its pre-stored decisions,
+//! instruct policy evaluator to force prompt new security dialog for these decisions.
+//! • When new security dialogs appear select “yes” for one of the pre-stored decisions and select
+//! “no” for the other decision”.
+//! • Check that both pre-stored decision for client A were removed from DB.
+//!
+//! • Part 2: Test client B has two pre-stored decision as “Never”.
+//! • Instruct client B to request access to test service that matches its pre-stored decisions,
+//! instruct policy evaluator to force prompt new security dialog for these decisions.
+//! • When new security dialogs appear select “yes” for one of the pre-stored decisions and select
+//! “no” for the other decision”.
+//! • Check that both pre-stored decision for client B were removed from DB.
+//!
+//! @SYMTestExpectedResults • Decisions in database where updated correctly in DB.
+//! • “client info” field was increased by two at the end of test.
+//!
+//! @SYMTestType CIT
+
+
+START_TESTCASE SEC-UPS-E032
+
+//* PART 1
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Client A setup of pre-stored decisions
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientA_setup
+
+// Initial check to ensure that DB decision acceptance is issued by UPS
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientA_initialCheck
+
+// Check decision database state before force prompting
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientA_intitalDbCheck
+
+// Force the dialog prompt on the Decisions stored about Client A in the Database
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientA_forcePrompt
+
+// Check that decisions have been removed and that new options can be chosen
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientA_noDecisionCheck
+
+// Check for No Decisions using Database Management Step
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientA_dbManagementCheck
+
+
+// * PART 2
+
+// Client B setup of pre-stored decisions
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientB_setup
+
+// Initial check to ensure that DB decision denial is issued by UPS
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientB_initialCheck
+
+// Check decision database state before force prompting
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientB_intitalDbCheck
+
+// Force the dialog prompt on the Decisions stored about Client B in the Database
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientB_forcePrompt
+
+// Check that decisions have been removed and that new options can be chosen
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientB_noDecisionCheck
+
+// Check for No Decisions using Database Management Step
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_decision_removed_clientB_dbManagementCheck
+
+END_TESTCASE SEC-UPS-E032
+
+
+//**************************************************************************************************************
+
+
+//! @SYMTestCaseID SEC-UPS-E033
+//! @SYMTestCaseDesc Force prompt – multiple fingerprints- record overwritten
+//! (force_prompt_multifingerprint_overwriterecord)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7409 REQ7403
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy file for the test service to be use.
+//! • Policy evaluator has the ability to force prompt at run time. Policy evaluator increases by one
+//! the value of “evaluator info” every time that a security dialog is prompted for a particular
+//! decision in the DB.
+//! • Policy evaluator generates 3 fingerprints FP1, FP2 & FP3 which are checked by UPS in decision DB
+//! in that order (FP1 would be the first match if all 3 fingerprints exist in decision DB.
+//!
+//! Test Actions:
+//! • Part 1: Test client A has 3 pre-stored decision as “Always” matching FP1, FP2 & FP3.
+//! • Instruct client A to request access to test service that matches FP1. Test system server should
+//! invoke UPS for decision check. When policy evaluator is invoked instruct this one to generate FP1,
+//! FP2 & FP3.
+//! • At dialog display stage select “never” for fingerprint FP3.
+//! • Check that finger print FP1 was removed from DB, FP2 remain unchanged, FP3 was replaced with a
+//! Never Decision
+//! • “Evaluator info is increased by 1.
+//!
+//! • Part 2: Reset test so it remains in original conditions (3 “always” decisions for FP1, FP2 & FP3
+//! in decision DB).
+//! • Instruct client A to request access to test service that matches FP1. Test system server should
+//! invoke UPS for decision check. When policy evaluator is invoked instruct this one to generate FP1,
+//! FP2 &FP3.
+//! • At dialog display stage select “always” for fingerprint FP3.
+//! • Check that finger print FP1 was removed from DB, FP2 & FP3 remain unchanged.
+//! • “Evaluator info is increased by 1.
+//!
+//! @SYMTestExpectedResults • First matching fingerprint FP1 is deleted from DB as this one is not selected by user in
+//! dialog creator stage.
+//! • FP3 is replaced with a “never” decision in case 1 but remains unchanged for case 2
+//! (“always” decision)
+//! • Evaluator info is increased by one in both cases.
+//!
+//! @SYMTestType CIT
+
+
+START_TESTCASE SEC-UPS-E033
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+//* PART 1
+
+// Client setup of pre-stored 'ALWAYS' decisions using the 3 different fingerprints
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_setup
+
+// Initial check to ensure that DB decisions stored for the 3 fingerprints return the expected result
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_initialCheck
+
+// Check decision database state before force prompting
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_initialDbCheck
+
+// Force the dialog prompt on decision FingerPrint 1, and 'NEVER' decision selected for FingerPrint 3 chosen at Dialog
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_forcePrompt_part1
+
+// Check that decisions within DB have been altered/removed/added as necessary using Database Management Step
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_dbManagementCheck_part1
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+
+//* PART 2
+
+// Client setup of pre-stored 'ALWAYS' decisions using the 3 different fingerprints
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_setup
+
+// Initial check to ensure that DB decisions stored for the 3 fingerprints return the expected result
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_initialCheck
+
+// Check decision database state before force prompting
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_initialDbCheck
+
+// Force the dialog prompt on decision FingerPrint 1, and 'ALWAYS' decision selected for FingerPrint 3 chosen at Dialog
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_forcePrompt_part2
+
+// Check that decisions within DB have been altered/removed/added as necessary using the Database Management Step
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_overwriterecord_dbManagementCheck_part2
+
+END_TESTCASE SEC-UPS-E033
+
+
+//! @SYMTestCaseID SEC-UPS-E034
+//! @SYMTestCaseDesc Force prompt – multiple fingerprints - new record
+//! (force_prompt_multifingerprint_newrecord)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7409 REQ7403
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy file for the test service to be use.
+//! • Policy evaluator has the ability to force prompt at run time. Policy evaluator increases by one
+//! the value of “evaluator info” every time that a security dialog is prompted for a particular
+//! decision in the DB.
+//! • Policy evaluator generates 3 fingerprints FP1, FP2 & FP3 which are checked by UPS in decision DB
+//! in that order (FP1 would be the first match if all 3 fingerprints exist in decision DB.
+//!
+//! Test Actions:
+//! • Part 1: Test client A has 2 pre-stored decision as “Always” matching FP1 & FP2.
+//! • Instruct client A to request access to test service that matches FP1. Test system server should
+//! invoke UPS for decision check. When policy evaluator is invoked instruct this one to generate FP1,
+//! FP2 &FP3.
+//! • At dialog display stage select “never” for fingerprint FP3.
+//! • Check that finger print FP1 was removed from DB, FP2 remain unchanged, new FP3 is created in
+//! decision DB (with never decision).
+//! • “Evaluator info is increased by 1.
+//!
+//! • Part 2: Reset test so it remains in original conditions (2 “always” decisions for FP1& FP2).
+//! • Instruct client A to request access to test service that matches FP1. Test system server should
+//! invoke UPS for decision check. When policy evaluator is invoked instruct this one to generate FP1,
+//! FP2 &FP3.
+//! • At dialog display stage select “always” for fingerprint FP3.
+//! • Check that finger print FP1 was removed from DB, FP2 remain unchanged, new FP3 is created in
+//! decision DB (with always decision).
+//! • “Evaluator info is increased by 1.
+//!
+//! @SYMTestExpectedResults • In both cases decision related to FP1 are removed from DB.
+//! • FP3 is created with a “never” decision in case 1 and with an “always” in cases 2.
+//! • Evaluator info is increased by one in both cases.
+//!
+//!
+//! @SYMTestType CIT
+
+
+START_TESTCASE SEC-UPS-E034
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+//* PART 1
+
+// Client setup of pre-stored 'ALWAYS' decisions using 2 of the 3 fingerprints
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_setup
+
+// Initial check to ensure that DB decisions stored for the 2 fingerprints return the expected result
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_initialCheck
+
+// Check decision database state before force prompting
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_intitalDbCheck
+
+// Force the dialog prompt on decision FingerPrint 1, and 'NEVER' decision selected for FingerPrint 3 chosen at Dialog
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_forcePrompt_part1
+
+// Check that decisions within DB have been altered/removed/added as necessary using the Database Management Step
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_dbManagementCheck_part1
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+
+//* PART 2
+
+// Client setup of pre-stored 'ALWAYS' decisions using 2 of the 3 fingerprints
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_setup
+
+// Initial check to ensure that DB decisions stored for the 2 fingerprints return the expected result
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_initialCheck
+
+// Check decision database state before force prompting
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_intitalDbCheck
+
+// Force the dialog prompt on decision FingerPrint 1, and 'ALWAYS' decision selected for FingerPrint 3 chosen at Dialog
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_forcePrompt_part2
+
+// Check that decisions within DB have been altered/removed/added as necessary using the Database Management Step
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini force_prompt_multifingerprint_newrecord_dbManagementCheck_part2
+
+
+END_TESTCASE SEC-UPS-E034
+
+
+//! @SYMTestCaseID SEC-UPS-E035
+//! @SYMTestCaseDesc Invocation of Default Symbian policy evaluator
+//! (invoke_default_policy_evaluator)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//!
+//! @SYMTestExpectedResults Preconditions:
+//! • There is an appropriate policy file for the test service to be use, but in the header of
+//! the policy file there is NO mention of policy evaluator.
+//! • Note: It is expected that the Symbian policy evaluator will generate a NULL value
+//! fingerprint.
+//! • Dialog creator specified by policy evaluator is present.
+//!
+//! Test Actions:
+//! • Case 1: Request service to test system server, this one is expected to invoke UPS.
+//! • Check that Symbian default policy evaluator was invoked.
+//! • When security dialog is invoked select “Always”.
+//! • Check that decision is stored correctly.
+//!
+//! • Case 2: Request service to test system server, this one is expected to invoke UPS.
+//! • Check that Symbian default policy evaluator was invoked.
+//! • When security dialog is invoked select “never”.
+//! • Check that decision is stored correctly.
+//!
+//! • Extra Checking: Use dumpupsdb.exe tool to export and re-import UPS database, check
+//! consistency of imported database.
+//!
+//! @SYMTestExpectedResults • Two new decisions where created: 1 “never” and 1 ”always” which are expected to have NULL
+//! value fingerprints.
+//! • Decision database with null value fingerprint can be exported and re-imported correctly.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-E035
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Case 1:
+
+// Client call to UPS invoking the defualt policy evaluator and selecting 'ALWAYS' from the dialog
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Always
+
+// Initial check to ensure that DB contains an ALWAYS decision for the client with a NULL fingerprint
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Alaways_initalCheck
+
+// Database Management Checking to ensure that each value in the decision is what is expected
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Alaways_dbManagementCheck
+
+
+// Case 2:
+
+// Client call to UPS invoking the defualt policy evaluator and selecting 'NEVER' from the dialog
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Never
+
+// Initial check to ensure that DB contains an additional NEVER decision for the client with a NULL fingerprint
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Never_initalCheck
+
+// Database Management Checking to ensure that each value in the decision is what is expected
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Never_dbManagementCheck
+
+
+// Database Import/Export Checking:
+
+// Shutdown UPS Server
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+// Dump contents of the database
+RUN_PROGRAM dumpupsdb.exe -e -db \private\10283558\database\ups.db -f c:\exportdb.db -s
+
+// Delete Existing UPS Database
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Reimport Database Contents
+RUN_PROGRAM dumpupsdb.exe -i -db \private\10283558\database\ups.db -f c:\exportdb.db -s
+
+// Delete Temporary Export File
+RUN_UTILS DeleteFile c:\exportdb.db
+
+// Re Check the NULL fingerprint Decisions Imported into the Database
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Alaways_initalCheck
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Never_initalCheck
+
+// Final Datbase Management Check to ensure that the values of the Decision are still as expected
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini invoke_default_policy_evaluator_Never_dbManagementCheck
+
+END_TESTCASE SEC-UPS-E035
+
+//! @SYMTestCaseID SEC-INTEG-UPS-E036
+//! @SYMTestCaseDesc System Server Security
+//! (System_Server_Security)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7408
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • There is an appropriate policy file in the phone that uses SystemServerSecurity
+//! property set with different values for individual policies including
+//! ESystemServerSecurityPassedOrFailed, ESystemServerSecurityFailed and
+//! ESystemServerSecurityPassed.
+//! Test Actions:
+//! • Case 1: Request set services to a test system server to ensure that an individual
+//! policy set with ESystemServerSecurityPassedOrFailed is invoked, use different
+//! values for platSecPass parameter in authorize request.
+//! • Case 2: : Request set services to a test system server to ensure that an
+//! individual policy set with ESystemServerSecurityFailed is invoked, use values
+//! for platSecPass parameter as EFalse in authorize request.
+//! • Case 3: : Request set services to a test system server to ensure that an
+//! individual policy set with ESystemServerSecurityPassed is invoked, use values for
+//! platSecPass parameter as ETrue in authorize request.
+//!
+//! @SYMTestExpectedResults
+//! • On each case the appropriate individual policy is invoked.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-E036
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// case 1
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini ESystemServerSecurityPassedOrFailed
+// case 2
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini ESystemServerSecurityFailed
+// case 3
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini ESystemServerSecurityPassed
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_8
+
+END_TESTCASE SEC-INTEG-UPS-E036
+
+
+
+//********************** SEC-UPS-G : NEGATIVE TEST CASES **********************
+
+//! @SYMTestCaseID SEC-INTEG-UPS-G001
+//! @SYMTestCaseDesc Policy installation via SWI signed with CA certificate non present in certstore.
+//! (policy_file_ca_not_in_store)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7398
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • Policy to be installed does not currently exist in phone
+//! • The SIS file to attempt a policy file installation has been signed with
+//! a CA certificate is not present in the SWI CA store.
+//! Test Actions:
+//! • Install sis that installs policy.
+//!
+//! @SYMTestExpectedResults
+//! • SWI should reject SIS file for security reasons.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-G001
+
+RUN_TEST_STEP_RESULT -10254 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini ca_cert_no_stored
+
+END_TESTCASE SEC-INTEG-UPS-G001
+
+
+
+
+
+
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-G002
+//! @SYMTestCaseDesc Tamper attempt in policy files backup and restore
+//! (tampered_policy_file_backup_restore)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ4701
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • There is a set of static policies already present in phone.
+//! • The policy files installed via SIS file to be used for test purpose was flagged
+//! with “VERIFY” in the package file.
+//! Test Actions:
+//! • Install policy file flagged with “VERIFY”, populate decisions in database.
+//! • Back up policy files.
+//! • Delete policy file form private directory.
+//! • Try to restore static policies from a backed up archive that is different that the
+//! one obtained originally.
+//!
+//!
+//! @SYMTestExpectedResults
+//! • Restore operation should fail and tampered archive rejected.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-G002
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+RUN_UTILS MakeReadWrite c:\tswi\tbackuprestore\backup10285777.1
+RUN_UTILS DeleteFile C:\tswi\tbackuprestore\backup10285777.1
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+
+// installs policy file with VERIFY flag
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_policies1v2
+
+// populates decisions related to policy just installed
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v2_populate
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v2_check
+
+// backs up policy file
+RUN_TEST_STEP 100 tups_backuprestore BACKUP z:\tups\integ\scripts\tups_integ.ini backup_policy_file2
+
+// deletes valid backup files
+RUN_UTILS MakeReadWrite c:\tswi\tbackuprestore\backup10285777.1
+RUN_UTILS DeleteFile c:\tswi\tbackuprestore\backup10285777.1
+
+//copies altered backup files to replace the valid ones.
+RUN_UTILS CopyFile z:\tups\integ\tampered_backup\backup10285777.1 c:\tswi\tbackuprestore\backup10285777.1
+RUN_UTILS MakeReadWrite c:\tswi\tbackuprestore\backup10285777.1
+
+//Deletes current policy file been used by
+RUN_UTILS DeleteFile c:\private\10283558\policies\ups_101f7f1f_ff000001.rsc
+
+// restores policy file
+RUN_TEST_STEP_RESULT -1 100 tups_backuprestore RESTORE z:\tups\integ\scripts\tups_integ.ini backup_policy_file2
+
+// uninstall SIS files previously installed
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini un_install_policies1v2
+
+END_TESTCASE SEC-INTEG-UPS-G002
+
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-G004
+//! @SYMTestCaseDesc Non ProtServ capability system server
+//! (no_protser_cap)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//! • The system server request prompt to UPS does NOT have ProtServ capability.
+//!
+//! Test Actions:
+//! • Launch “test client” which tries to connect to a system server and use service.
+//! • System server asks for a user prompt to the UPS (Authorise method).
+//! • UPS should deny the request from system server.
+//!
+//! @SYMTestExpectedResults • System server receives a KErrPermissionDenied from Ups.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-G004
+RUN_TEST_STEP 100 TUPSInteg_1 NonProtServAuthorisation z:\tups\integ\scripts\tups_integ.ini no_protser_cap
+// test variation: server has no capabilities but plat sec test passed
+// Note: nop decision is stored or dialog prompted.
+RUN_TEST_STEP 100 TUPSInteg_1 NonProtServAuthorisation z:\tups\integ\scripts\tups_integ.ini no_protser_cap_b
+END_TESTCASE SEC-UPS-INTEG-G004
+
+//! @SYMTestCaseID SEC-UPS-INTEG-G006
+//! @SYMTestCaseDesc Non AllFiles capability CA
+//! (no_allfiles_cap_ca)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7398
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • Policy to be installed does not currently exist in phone.
+//! • The SIS file to attempt a policy file installation has been
+//! signed with a CA certificate but this CA certificate has not Installation via SWI of policy file signed with a CA certificate with no All_files capabilities.
+//!
+//! Test Actions:
+//! • Install non CA signed sis that installs policy.
+//!
+//! @SYMTestExpectedResults • System server receives a KErrSecurityError from SWI.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-G006
+RUN_TEST_STEP_RESULT -10254 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini no_allfiles_ca
+END_TESTCASE SEC-UPS-INTEG-G006
+
+//! @SYMTestCaseID SEC-UPS-G007
+//! @SYMTestCaseDesc Protected deletion and update of decisions.
+//! (remove_update_capabilityChecking)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7381
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • Existence of test application 1 without AllFiles capabilities.
+//! • Existence of test application 2 without WriteDeviceData capabilities.
+//!
+//! Test Actions:
+//! • Instruct test application 1 to attempt a record update in decision database using UpsManagement.
+//! • Instruct test application 2 to attempt a record delete in decision database using UpsManagement.
+//!
+//! @SYMTestExpectedResults • Test application1 should not be able to update record.
+//! • Test application2 should not be able to delete record.
+//!
+//! @SYMTestType CIT
+
+
+START_TESTCASE SEC-UPS-G007
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with sample inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+
+// Perform initial checking on sample decisions
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+
+// * STAGE 1 - UPDATE RECORD CAPABILITY TEST (AllFiles Required)
+
+// Perform attempt to update a decision "WITHOUT" the appropriate capabilities
+RUN_TEST_STEP !Result=-46 100 TUPSInteg_writedevice UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_Update
+
+// Run Database Management Checking for Unauthorised Update
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_unauthorisedUpdate_DBCheck
+
+// Perform attempt to update a decision "WITH" the appropriate capabilities
+RUN_TEST_STEP 100 TUPSInteg_allfiles_readdevice UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_Update
+
+// Run Database Management Checking for authorised Update
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_authorisedUpdate_DBCheck
+
+
+// * STAGE 2 - REMOVE RECORD CAPABILITY TEST (WriteDeviceData Required)
+
+// Perform attempt to remove a decision "WITHOUT" the appropriate capabilities
+RUN_TEST_STEP !Result=-46 100 TUPSInteg_allfiles_readdevice UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_Remove
+
+// Run Database Management Checking for Unauthorised Remove
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_unauthorisedRemove_DBCheck
+
+// Perform attempt to remove a decision "WITH" the appropriate capabilities
+RUN_TEST_STEP 100 TUPSInteg_writedevice UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_Remove
+
+// Run Database Management Checking for authorised Remove
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini remove_update_capabilityChecking_authorisedRemove_DBCheck
+
+END_TESTCASE SEC-UPS-G007
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-G008
+//! @SYMTestCaseDesc Policy Evaluator Leaving
+//! (policy_evaluator_leave)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//! • Test Client doesn’t have any decision stored in DB related to service about to be used by test
+//! client.
+//!
+//! Test Actions:
+//! • Launch “test clients” which tries to use of system servers. System server should request UPS for
+//! user security dialog.
+//! • When UPS invokes policy evaluator, induce a “leave” in policy evaluator.
+//! • UPS should process this leave from policy evaluator and reply with a silent denial to system
+//! server.
+//!
+//! @SYMTestExpectedResults • System server receives a silent denial from UPS.
+//!
+//! @SYMTestType CIT
+
+//Delete Current Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+START_TESTCASE SEC-UPS-INTEG-G008
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_leave_session
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_leave_always
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_leave_never
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_leave_yes
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_leave_no
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_leaving_concurrent
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_always_concurrent
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policyevaluator_never_concurrent
+CONSECUTIVE
+
+END_TESTCASE SEC-UPS-INTEG-G008
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-G009
+//! @SYMTestCaseDesc Dialog Creator Leaving
+//! (dialog_creator_leave)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//! • Test Client doesn’t have any decision stored in DB related to service about to be used by test
+//! client.
+//!
+//! Test Actions:
+//! • Launch “test clients” which tries to use of system servers. System server should request UPS for
+//! user security dialog.
+//! • When UPS invokes dialog, induce a “leave” in dialog creator.
+//! • UPS should process this leave from policy evaluator and reply with a silent denial to system
+//! server.
+//!
+//! @SYMTestExpectedResults • System server receives a silent denial from UPS.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-G009
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_leave_session
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_leave_always
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_leave_never
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_leave_yes
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_leave_no
+
+CONCURRENT
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_leaving_concurrent
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_always_concurrent
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini dialogcreator_never_concurrent
+CONSECUTIVE
+
+END_TESTCASE SEC-UPS-INTEG-G009
+
+
+//! @SYMTestCaseID SEC-UPS-G010
+//! @SYMTestCaseDesc Protected reading of decisions
+//! (readDecision_capabilityChecking)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7492
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There are some previous decisions stored in decision data base.
+//! • Test application does not have ReadDeviceData but it has WriteDeviceData capabilities.
+//!
+//! Test Actions:
+//! • Try to use test application with not ReadDeviceData capabilities to read existing entry from decision DB.
+//!
+//! @SYMTestExpectedResults • Reading of entry fails, test application is returned error.
+//!
+//! @SYMTestType CIT
+
+
+START_TESTCASE SEC-UPS-G010
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with sample inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample2
+
+// Perform initial checking on sample decisions
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample2
+
+// Perform attempt to read a decision "WITHOUT" the appropriate capabilities
+RUN_TEST_STEP !Result=-46 100 TUPSInteg_writedevice UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini readDecision_capabilityChecking_dbRead
+
+// Perform attempt to update a decision "WITH" the appropriate capabilities
+RUN_TEST_STEP 100 TUPSInteg_readdevice UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini readDecision_capabilityChecking_dbRead
+
+END_TESTCASE SEC-UPS-G010
+
+
+
+//********************** SEC-UPS-H : MISCELLANEOUS **********************
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-H008
+//! @SYMTestCaseDesc Eclipsing of policy via SWI.
+//! (policy_file_eclipse)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7393 REQ7498
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • There is a policy file in ROM that matches the UID of the service offered by
+//! the “system server”. (uses policy evaluator A)
+//! • The policy to be deployed via SWI to eclipse the policy above maps the policy to
+//! a different policy evaluator. (uses policy evaluator B). New policy is written in
+//! system drive.
+//! • There are some decisions stored in DB related to policy file about to be eclipsed.
+//! Test Actions:
+//! • Launch “test client” which tries to use system servers. System server should invoke
+//! UPS to display security dialog.
+//! • Select “always” option on security dialog, make sure that “policy evaluator A” was
+//! invoked, check that test client can access intended service.
+//! • Deploy new policy using SIS file to eclipse existing ROM policy.
+//! • Check that previous entries related to policy file were deleted from DB.
+//! • Launch the same test client again, the security dialog should be displayed again as the
+//! existing “always” decision stored in DB is expected to be deleted.
+//! • Select “always” option on security dialog, make sure that “policy evaluator B” was
+//! invoked, check that test client can access intended service.
+//!
+//!
+//! @SYMTestExpectedResults
+//! • After deployment of new policy a different policy evaluator is invoked for system
+//! server.
+//! • Related decisions were removed after eclipsing.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-H008
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini pre_eclipse
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_30
+
+// SIS file eclipses policy file from ROM
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_eclipse1
+
+// Eclipsing of policy file is expected to remove some decisions
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_27
+
+// cheks new policy file (on C drive)
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini post_eclipse
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_32
+
+// uninstall last eclipse.
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini uninstall_eclipse1
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_27
+
+END_TESTCASE SEC-INTEG-UPS-H008
+
+
+//! @SYMTestCaseID SEC-INTEG-UPS-H009
+//! @SYMTestCaseDesc Policy files backup and restore.
+//! (policy_file_backup_restore)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ4701
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions
+//! Preconditions:
+//! • There is a set of static policies already present in phone.
+//! • The policy files installed via SIS file to be used for test purpose was flagged
+//! with “VERIFY” in the package file.
+//! Test Actions:
+//! • Install policy file flagged with “VERIFY”, populate decisions in database.
+//! • Back up static policies.
+//! • Uninstall the policy file.
+//! • Try to restore static policies.
+//! • Verify that policy files can be reused correctly, verify correctness of decision
+//! database.
+//!
+//!
+//! @SYMTestExpectedResults
+//! • Restore operation does not show any problem in operation.
+//! • Policy file restored is equal to policy file backed up.
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-INTEG-UPS-H009
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+RUN_UTILS MakeReadWrite c:\tswi\tbackuprestore\backup10285777.1
+RUN_UTILS DeleteFile C:\tswi\tbackuprestore\backup10285777.1
+
+// populate decision database with some inital values.
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini populate_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+// installs policy file with VERIFY flag
+RUN_TEST_STEP 100 tups_install InstallStep z:\tups\integ\scripts\tups_integ.ini install_policies1v2
+
+// populates decisions related to policy just installed
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v2_populate
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini policies1v2_check
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_29
+
+// backs up policy file
+RUN_TEST_STEP 100 tups_backuprestore BACKUP z:\tups\integ\scripts\tups_integ.ini backup_policy_file2
+
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+// uninstall the augmentation before trying to restore the policy file
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini un_install_policies1v2
+
+// restores policy file
+RUN_TEST_STEP 100 tups_backuprestore RESTORE z:\tups\integ\scripts\tups_integ.ini backup_policy_file2
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_27
+
+// uninstall SIS files previously installed
+RUN_TEST_STEP 100 tups_install UninstallAugStep z:\tups\integ\scripts\tups_integ.ini un_install_policies1v2
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_2 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+RUN_TEST_STEP 100 TUPSInteg_3 UPSClientStep z:\tups\integ\scripts\tups_integ.ini check_sample
+
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_27
+
+END_TESTCASE SEC-INTEG-UPS-H009
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-H010
+//! @SYMTestCaseDesc Simple request cancelation
+//! (simple_cancel)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7427
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Preconditions:
+//! • There is an appropriate policy, policy evaluator and dialog creator that matches the UID of the
+//! service offered by the “system server”.
+//! • Test Client doesn’t have any decision stored in DB related to service about to be used by test
+//! client.
+//!
+//! Test Actions:
+//! • Launch “test clients” which tries to use of system servers. System server should request UPS for
+//! user security dialog.
+//! • When server requests UPS authorisation, cancel the request using CancelPrompt method.
+//!
+//! @SYMTestExpectedResults • System server receives a KErrCancel from Ups.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-H010
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini simple_cancel
+END_TESTCASE SEC-UPS-INTEG-H010
+
+
+//! @SYMTestCaseID SEC-UPS-H011
+//! @SYMTestCaseDesc Reversible decision DB export by dumpupsdb
+//! (Export_Import_DBDumpTool)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7443 REQ7442
+//!
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Test Actions:
+//! • Populate decision database with a reasonable number of decisions.
+//! • Check correct behaviour of UPS with this decision DB.
+//! • Stop UPS server running and use “dumpupsdb.exe” to export database to temporary file.
+//! • Using dumpupsdb.exe” re-import this temporary file into the decision DB (ups.db).
+//! • Check that re-imported decision database contains the same records that the original and UPS
+//! behaves normally when using it.
+//!
+//! @SYMTestExpectedResults • There is no functional difference between the original decision database and the
+//! re-imported one.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-H011
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Run the initial data entry step to populate the database with entries
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Export_Import_DBDumpTool_Setup
+
+// Check the newly created Decisions within the UPS Database
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Export_Import_DBDumpTool_Verify
+
+// Shutdown UPS Server
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+// Dump contents of the database
+RUN_PROGRAM dumpupsdb.exe -e -db \private\10283558\database\ups.db -f c:\exportdb.db -s
+RUN_PROGRAM dumpupsdb.exe -e -db \private\10283558\database\ups.db -f c:\exportdba.txt -s
+
+// Delete Existing UPS Database
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Reimport Database Contents
+RUN_PROGRAM dumpupsdb.exe -i -db \private\10283558\database\ups.db -f c:\exportdb.db -s
+RUN_PROGRAM dumpupsdb.exe -e -db \private\10283558\database\ups.db -f c:\exportdbb.txt -s
+
+// Delete Temporary Export File
+RUN_UTILS DeleteFile c:\exportdb.db
+
+// Rerun service requests using Reimported Database
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Export_Import_DBDumpTool_Verify
+
+/////////// repeats same test sequence with (-b) flag in dumpupsdb.exe
+
+// Delete Existing Database
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Run the initial data entry step to populate the database with entries
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Export_Import_DBDumpTool_Setup
+
+// Check the newly created Decisions within the UPS Database
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Export_Import_DBDumpTool_Verify
+
+// Shutdown UPS Server
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+// Dump contents of the database
+RUN_PROGRAM dumpupsdb.exe -e -db \private\10283558\database\ups.db -f c:\exportdb.db -s -b
+
+// Delete Existing UPS Database
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+// Reimport Database Contents
+RUN_PROGRAM dumpupsdb.exe -i -db \private\10283558\database\ups.db -f c:\exportdb.db -s -b
+
+// Delete Temporary Export File
+RUN_UTILS DeleteFile c:\exportdb.db
+
+// Rerun service requests using Reimported Database
+RUN_TEST_STEP 100 TUPSInteg_1 UPSClientStep z:\tups\integ\scripts\tups_integ.ini Export_Import_DBDumpTool_Verify
+
+END_TESTCASE SEC-UPS-H011
+
+
+//! @SYMTestCaseID SEC-UPS-INTEG-H012
+//! @SYMTestCaseDesc UPS sub-session in different thread
+//! (ups_session_shared)
+//!
+//! @SYMPREQ PREQ1262
+//! @SYMREQ REQ7446
+//! @SYMTestPriority Critical
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Test Actions:
+//! • Open an UPS session from a test server.
+//! • Create a new thread and share UPS session with this new thread.
+//! • From this new thread create a sub-session to ups, request authorisation to UPS
+//! using this sub-session.
+//! • Check that UPS behaves like normal and the appropriate decision is stored in DB.
+//!
+//! @SYMTestExpectedResults • Authorize method for UPS can be used successfully for thread different that
+//! the one owning the UPS session.
+//!
+//! @SYMTestType CIT
+
+START_TESTCASE SEC-UPS-INTEG-H012
+// Shutdown UPS Server
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+// Delete Existing UPS Database
+RUN_UTILS DeleteFile c:\private\10283558\database\ups.db
+
+RUN_TEST_STEP 100 TUPSInteg_minor Multithread z:\tups\integ\scripts\tups_integ.ini ups_session_shared
+RUN_TEST_STEP 100 TUPSInteg_1 UPSDbManagementStep z:\tups\integ\scripts\tups_integ.ini count_2
+
+// Shutdown UPS Server
+RUN_TEST_STEP 100 TUPSInteg_1 UtilsCloseUps
+
+// Dump contents of the database
+RUN_PROGRAM dumpupsdb.exe -e -db \private\10283558\database\ups.db -f c:\multithread.db -s -b
+END_TESTCASE SEC-UPS-INTEG-H012
+
+
+//! @SYMTestCaseID SEC-UPS-MISC-0002
+//! @SYMTestCaseDesc Clears off properties previously set for policy evaluators and dialog creators.
+
+START_TESTCASE SEC-UPS-MISC-0002
+RUN_TEST_STEP 100 TUPSInteg_1 PropertyStep z:\tups\integ\scripts\tups_properties.ini PropertiesToDestroy
+END_TESTCASE SEC-UPS-MISC-0002
+
+
+PRINT Complete_TUPS_Tests