{"text_format":"3","workbook":"xls","n_sheets":4,"sheets":["AMA","DSC","Doc Info","Notes"],"not_rendered":{"external_links":1,"defined_names":7},"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"AMA","index":0,"n_rows":12,"n_cols":10,"rows_kept":12,"flags":["formulas_cached_only"]}
["Test Case ID","Test Case Name","REQs Tested","Priority","Test Type","Test Purpose","Test Actions","Expected Results","Test Status","Comments"]
["API-APPFWK-AMASTARTER-0001","Cancel a pending asynchronous Start() request.","REQ9141",1,"CIT","To ensure that you can successfully cancel a Start() request that has not yet completed.","Call asynchronous Start() with a DSC that takes a long time to complete execution.\nCall CancelStart().","The request status for the Start() call will have the value KErrCancel.","Implemented"]
["API-APPFWK-AMASTARTER-0002","Call CancelStart() without first calling asynchronous Start()","REQ9141",1,"CIT","To ensure that calling Cancel() when there isn’t an outstanding asynchronous Start() request does not cause an error.","Call CancelStart().","The call doesn’t panic or leave. (CancelStart() has no return value.)","Implemented"]
["API-APPFWK-AMASTARTER-0003","Call StartL() when an asynchronous Start() is pending.","REQ9141",1,"CIT","To ensure that attempting to execute a second DSC when one is pending correctly fails.","1.Call asynchronous Start() with a DSC that takes a long time to complete execution.\n2.Call synchronous Start() (with a valid DSC). Check Leave value.\n3.Call asynchronous Start() (with a valid DSC). Check Leave value.\n4.Call User::WaitForRequest() to wait for the asynchronous Start() to complete. Check that the last item in the list has been started.","1.The associated TRequestStatus object has the value KRequestPending.\n2.Leaves with KRequestPending.\n3.Leaves with KRequestPending.\n4.The last item is running.","Implemented"]
["API-APPFWK-AMASTARTER-0004","AMA started asynchronously using DLL","REQ9141",1,"CIT","Check if AMA can be started asynchronously using AmaStarter DLL.","NOTE: This test case is an adaptation of APPFWK-AMASTARTER-0008 which exercises the existing synchronous Start() method. Implementing it should simply require copying the source for that test case and replacing the synchronous call to Start() with an asynchronous call and a call to User::WaitForRequest().\nThe test uses a known DSC store database with valid items in it.\nThen the test uses the asynchronous version of CAmaStart::Start() with the appropriate item id to start these AMAs from an existing DSC item in the created test database.\nThe test calls User::WaitForRequest() to wait for the asynchronous Start() to complete.\n(Dependancy : The appropriate database has been created.)","The different AMAs are started as expected from the test database.\nThe application logs are read to check the applications were launched as expected.\nThe TRequestStatus object used for the Start() call has a value of KErrNone.","Implemented"]
["API-APPFWK-AMASTARTER-0005","Call asynchronous Start() with the ID of a non-existent DSC ","REQ9141",1,"CIT","Attempt to start non-existent DSC with Start()","The test uses the ID for a DSC that does not exist.\nThen the test calls (asynchronous) CAmaStart::Start() with the appropriate DSC ID.\nThe test calls User::WaitForRequest() to wait for the Start() call to complete.","The TRequestStatus object used for the Start() call has a value of KErrArgument","Implemented"]
["API-APPFWK-AMASTARTER-0006","AMA started using LoadAmaStart DLL","REQ9141",1,"CIT","Check if AMA can be started using LoadAmaStart DLL","The test uses a known DSC store database with valid items in it.\nThen the test uses CLoadAmaStart::StartL() with the appropriate item id to start these AMAs from an existing DSC item in the created test database.","The different AMAs are started as expected from the test database.\nThe application logs are read to check the applications were launched as expected.","Implemented"]
["API-APPFWK-AMASTARTER-0007","CAppfwkAmaStarterTestStepStandalone","REQ9141",1,"CIT","To check correct launch of AMCs when AmaStarter is used standalone..","Use the same DSC store database as per the AmaStarter SysStart test cases. Launch separate AmaStarter.exe's each time that will use all the DSC items in the database.","The test AMC EXE should be launched successfully with the same results as per when launched using SysStart. Compare the application log files to certify this.","Implemented"]
["API-APPFWK-AMASTARTER-0008","CAppfwkAmaStarterTestStepStartL","REQ9141",1,"UT","Check if AMA can be started using AmaStarter DLL.","The test uses a known DSC store database with valid items in it. Then the test uses CAmaStart::StartL() with the appropriate item id to start these AMAs from an existing DSC item in the created test database.","The different AMAs are started as expected from the test database. The application logs are read to check the applications were launched as expected.","Implemented"]
["API-APPFWK-AMASTARTER-0009","CAppfwkAmaStarterTestStepInvalidSid","REQ9141",1,"UT","Ensuring SID check","Launch the AMAstarer with application with invalid SID.","AMAStarter should leave with Error.","Implemented"]
["API-APPFWK-AMASTARTER-0012","CAppfwkAmaStarterTestStepStartLAsync","REQ9141",1,"UT","AMA started asynchronously using DLL","The test uses a known DSC store database with valid items in it. Then the test uses (asynchronous) CAmaStart::Start() with the appropriate item id to start these AMAs from an existing DSC item in the created test database. The test calls User::WaitForRequest() to wait for the Start() call to complete.","The different AMAs are started as expected from the test database. The application logs are read to check the applications were launched as expected. The TRequestStatus object used for the Start() call has a value of KErrNone","Implemented"]
["API-APPFWK-AMASTARTER-0013","CAppfwkAmaStarterTestStepStartLAsync","REQ9141",1,"UT","Attempt to start non-existent DSC with Start()","The test uses the ID for a DSC that does not exist. Then the test calls (asynchronous) CAmaStart::Start() with the appropriate DSC ID. The test calls User::WaitForRequest() to wait for the Start() call to complete.","The TRequestStatus object used for the Start() call has a value of KErrArgument","Implemented"]

{"sheet":"DSC","index":1,"n_rows":58,"n_cols":9,"rows_kept":58,"flags":["formulas_cached_only"]}
["Test Case ID","Test Case Name","Requirements Tested","Priority","Test Type","Test Purpose","Test Actions","Expected Results","Test Status"]
["API-APPFWK-DSCSTORE-0001","DSC API","REQ6732 REQ6734 REQ6735 REQ6736 REQ6737 REQ6738 REQ6739 REQ6740 REQ6741",1,"Component Integration Test","To ensure a configuration can be created items can be added updated and deleted.","Connect to the DSC database.\\nCreate a DSC with a valid UID.\\nCheck DSC created exists.\\nAdd 2 DSC Items with at position ELast.\\nAdd DSC item to the beginning.\\nRead the DSC items created specifying the correct index. \\nModify all the 4 DSC items with change in some attributes.\\nEnumerate the DSC items and check if updating is correct.\\nAdd a DSC Monitor item to the DSC count of DSC items should be 5.\\nRead the Monitor item and validate the attributes.\\nDelete each of the DSC items created and check the count should be zero.\\nDelete the DSC created above and checks it does not exist.\\nClose the connection to DSC database.","All the actions should succeed as mentioned.","Implemented"]
["API-APPFWK-DSCSTORE-0002","Test default and multiple DSC Ids","REQ6732",1,"Component Integration Test","To test the availability of default DSC Id and multiple DSC Ids.","Repeat the test APPFWK-DSCSTORE-0001 using KDefaultSymbianDsc to test multiple DSCs and default Uid.","All the actions should succeed as mentioned.","Implemented"]
["API-APPFWK-DSCSTORE-0003","Check error conditions","REQ6732 REQ6734 REQ6735 REQ6736 REQ6737 REQ6738 REQ6739 REQ6740 REQ6741 REQ6742",1,"Component Integration Test","To check correct handling of error conditions with client having appropriate platsec capabilities.","Creation of DSC with already existing DSC Id. Should returns KErrAlreadyExisted.\\nDeletion of non existing DSC. Should return without affecting the DSC.\\nPerforming read/delete operation for DSC item specifying negative index a very large index value index value higher than the number of DSC items exists in the DSC but not ELast invalid DSC Id. Should return without affecting the DSC.\\nCreate duplicate DSC item with same filename and arguments. Should return KErrAlreadyExisted.\\nCreate a read lock (by using EnumOpen) and try to add or update the DSC item. Should return KErrLocked.\\nAdd duplicate AMC to the DSC. Should return KErrAlreadyExisted.","Every test action should fail with appropriate error mentioned.","Implemented"]
["API-APPFWK-DSCSTORE-0004","OOM testing","REQ6734 REQ6735 REQ6737 REQ6738 REQ6740 REQ6741",1,"Component  Integration Test","To ensure correct working of DSC client API under OOM conditions.","Add few DSC items and make the memory allocation failure for next addition of DSC item.\\nRead all the DSC items added before memory allocation failure.\\nDelete all DSC items and check the count.","The out of memory condition should not effect the previous additions and should exit gracefully.","Implemented"]
["API-APPFWK-DSCSTORE-0005","Open and close a non existent DSC database.\\nWith WriteDeviceData","REQ6734 REQ6735 REQ6736 REQ6737 \\nREQ6738 REQ6739 REQ6740 REQ6741",1,"Unit Test","To ensure DSC database can be created successfully on first use and connection can be opened and closed successfully","Precondition: DSC database does not exist\\n1.Call OpenL() to open session to DSC database.\\n2.Call Close() to close session to DSC database.\\n3.Call IsOpened() to check session closed successfully.","DSC database shall be created and connected then closed accordingly.","Implemented"]
["API-APPFWK-DSCSTORE-0006","Open a connection to DSC database when database does not exist.\\nWithout WriteDeviceData","REQ6734 REQ6735 REQ6736 REQ6737 \\nREQ6738 REQ6739 REQ6740 REQ6741\\n",1,"Unit Test","To ensure DSC database can not be created and connected if the user doesn’t have enough capability.","Precondition: DSC database does not exist\\n1.Call OpenL() to open session to DSC database.","Open session failed with KErrPermissionDenied","Implemented"]
["API-APPFWK-DSCSTORE-0007","Open a connection to an existing DSC database.\\nWith WriteDeviceData","REQ6734 REQ6735 REQ6736 REQ6737 \\nREQ6738 REQ6739 REQ6740 REQ6741\\n",1,"Unit Test","To ensure DSC database connection can be opened successfully","Precondition: DSC database exists\\n1.Call OpenL() to open session to DSC database.\\n2.Call Close() to close session to DSC database.","Session opened successfully. DSC database shall be connected and then closed accordingly.","Implemented"]
["API-APPFWK-DSCSTORE-0008","Open a connection to an existing DSC database.\\nWithout WriteDeviceData","REQ6734 REQ6735 REQ6736 REQ6737 \\nREQ6738 REQ6739 REQ6740 REQ6741",1,"Unit Test","To ensure it’s possible to connect to an existing DSC database without having WriteDeviceData capability..","Precondition: DSC database exists.\\n1.Call OpenL() to open session to DSC database.\\n2.Call Close() to close session to DSC database.","Session opened successfully. DSC database shall be connected and then closed accordingly.","Implemented"]
["API-APPFWK-DSCSTORE-0009","Test whether a connection to DSC database is valid","REQ6734 REQ6735 REQ6736 REQ6737 \\nREQ6738 REQ6739 REQ6740 REQ6741",1,"Unit Test","To test the connection to DSC database which has not been opened.","1.Call IsOpened() should return EFalse","Return EFalse. Session is not connected.","Implemented"]
["API-APPFWK-DSCSTORE-0010","Test whether a connection to DSC database is valid","REQ6734 REQ6735 REQ6736 REQ6737 \\nREQ6738 REQ6739 REQ6740 REQ6741\\n",1,"Unit Test","IsOpened() should return ETrue on an open session.","1.Call OpenL() to open the session to DSC database\\n2.Call IsOpened() should return ETrue\\n3.Call Close() to close the session","Return ETrue. Session is connected.","Implemented"]
["API-APPFWK-DSCSTORE-0011","Create a new DSC\\nWith WriteDeviceData","REQ6734",1,"Unit Test","To ensure a new DSC can be added successfully.","Precondition: DscId does not exist in DSC database\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return EFalse\\n3.Call CreateDscL() to create a new DSC \\n4.DscExistsL() return ETrue\\n5.Close the session.","The default value of DscId is  KDefaultSymbianDsc. \\nDscId is added to the database.","Implemented"]
["API-APPFWK-DSCSTORE-0012","Create an existing DSC\\nWith WriteDeviceData","REQ6734\\n",1,"Unit Test","Adding a DSC which is already in the database should fail","Precondition: DscId exists in DSC database \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.Call CreateDscL()  should leave with KErrAlreadyExists\\n4.Call Close() to close the session.","DscId can not be added to the database. Leave with KErrAlreadyExists.","Implemented"]
["API-APPFWK-DSCSTORE-0013","Delete an existing DSC\\nWith WriteDeviceData","REQ6735\\n",1,"Unit Test","To ensure an existing DSC can be deleted if the user has enough capability.","Precondition: DscId exists in DSC database \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.Call DeleteDscL() to delete DscId\\n4.DscExistsL() return EFalse\\n5.Close the session.","DscId is deleted and all items in DscId are deleted too.","Implemented"]
["API-APPFWK-DSCSTORE-0014","Delete a non-existing DSC\\nWith WriteDeviceData","REQ6735\\n",1,"Unit Test","Delete a non-existing DSC should fail.","Precondition: DscId does not exist in DSC database \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return EFalse\\n3.Call DeleteDscL() to delete non-existing DscId\\n4.3. Close the session.","Leave with KErrNotFound.","Implemented"]
["API-APPFWK-DSCSTORE-0015","Check a DSC exists  \\nWith ReadDeviceData","REQ6736\\n",1,"Unit Test","Should be able to tell if the DSC exists in database if the user has enough capability.","Precondition: DscId exists in DSC database \\n1.Call OpenL() to open a session to DSC database\\n2.Call DscExistsL() should return ETrue\\n3.Call Close() to close the session.","The default value of aDscId is  KDefaultSymbianDsc. \\nReturn ETrue for the existing DscId","Implemented"]
["API-APPFWK-DSCSTORE-0016","Check a DSC does not exist  \\nWith ReadDeviceData","REQ6736\\n",1,"Unit Test","Should be able to tell if a DSC doesn’t exist in database if the user has enough capability.","Precondition: DscId does not exist in DSC database \\n1.Call OpenL() to open a session to DSC database\\n2.Call DscExistsL() should return EFalse\\n3.Call Close() to close the session.","Return EFalse for non-existing DSC\\n","Implemented"]
["API-APPFWK-DSCSTORE-0057","Get the description for an existing DSC  \\nWith ReadDeviceData","REQ6736\\n",1,"Unit Test","Should be able to get description if  the DSC exists in database","Precondition: DscId exists in DSC database \\n1.Call OpenL() to open a session to DSC database\\n2.Call GetDscDescriptionL() to get the description\\n3.Call Close() to close the session.","Return with description","Implemented"]
["API-APPFWK-DSCSTORE-0038","Get the descriptions for a non-existing  DSC  \\nWith ReadDeviceData","REQ6736\\n",1,"Unit Test","Get the descriptions for a non-existing DSC should fail","Precondition: DscId exists in DSC database \\n1.Call OpenL() to open a session to DSC database\\n2.Call GetDscDescriptionL() to get the descriptions\\n3.Call Close() to close the session.","Leave with KErrNotFound","Implemented"]
["API-APPFWK-DSCSTORE-0017","Add a new item to DSC at the beginning of the DSC\\nWith ReadDeviceData and WriteDeviceData","REQ6737\\n",1,"Unit Test","To ensure a new item can be added at the beginning of the DSC if the user has enough capability.","Precondition: item does not exist in DSC \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.ItemExistsL() should return EFalse\\n4.Call AddItemL() to add the item.\\n5.ItemExistsL( should return ETrue\\n6.Close the session.","item is added at the beginning of DSC","Implemented"]
["API-APPFWK-DSCSTORE-0018","Add a new item to DSC at the end of the DSC\\nWith ReadDeviceData and WriteDeviceData","REQ6737\\n",1,"Unit Test","To ensure a new item can be added at the end of the DSC if the user has enough capability.","Repeat APPFWK-DSCSTORE-0017 with default value of position is ELast.","item is added at the end of DSC","Implemented"]
["API-APPFWK-DSCSTORE-0019","Add an item to non-existing DSC \\nWith ReadDeviceData and WriteDeviceData","REQ6737REQ6733\\n",1,"Unit Test","Add an item to non-existing DSC should leave.","Precondition: DSC does not exist. \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() should return EFalse\\n3.Call AddItemL() to add the item should leave\\n4.Close the session.","Unable to add. Leave with  KErrNotFound.","Implemented"]
["API-APPFWK-DSCSTORE-0020","Add an existing item to the DSC. \\nWith ReadDeviceData and WriteDeviceData","REQ6737\\n",1,"Unit Test","To ensure that duplicate item can not be added to the DSC.","Precondition: item exists in DSC\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.ItemExistsL() return ETrue\\n4.Call AddItemL() to add the item should leave.\\n5.Close the session.","Unable to add. Leave with  KErrAlreadyExists.","Implemented"]
["API-APPFWK-DSCSTORE-0021","Add an item which exists in 1st DSC to 2nd DSC \\nWith ReadDeviceData and WriteDeviceData","REQ6737\\n",1,"Unit Test","To ensure that same item can be added to different DSCs.","Precondition: item exists in dsc1 does not exist in dsc2 \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( dsc1) return ETrue \\n3.item->SetDscId(dsc2)\\n4.DscExistsL(dsc2) return EFalse\\n5.Call AddItemL() to add the item to dsc2.\\n6.DscExis","Result as expected. The item is added to the dsc2.","Implemented"]
["API-APPFWK-DSCSTORE-0022","Add an item which violates the restriction to the DSC\\nWith ReadDeviceData and WriteDeviceData","REQ6737\\n",1,"Unit Test","Unable to add an item which violates the restriction to the DSC","Precondition: item violates the restriction of DSC i.e.: FileName is NULL \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.Call AddItemL() to add item will leave\\n4.Close the connection","Item cannot be added to the DSC. Leave with KErrArgument","Implemented"]
["API-APPFWK-DSCSTORE-0023","Check the existence of an existing DSC item by file name and arguments\\nWith ReadDeviceData","REQ6740",1,"Unit Test","Should be able to tell if an item exists in the DSC if the user has enough capability.","Precondition: item exists in DSC\\nFile name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.Call ItemExistsL() should return ETrue\\n4.Close the session.","Return ETrue for existing item\\n","Implemented"]
["API-APPFWK-DSCSTORE-0024","Check the existence of a non-existing DSC item by file name and arguments\\nWith ReadDeviceData","REQ6740",1,"Unit Test","Should be able to tell if an item exists in the DSC if the user has enough capability.","Precondition: item does not exist in DSC.\\nFile name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.Call ItemExistsL() should return EFalse\\n4.Close the session.","Return EFalse for non-existing item.\\n","Implemented"]
["API-APPFWK-DSCSTORE-0025","Check the existence of a DSC item in a non-existing DSC \\nWith ReadDeviceData","REQ6740\\n",1,"Unit Test","Checking a DSC item in the non-existing DSC if the user has enough capability.","Precondition: DSC does not exist\\nFile name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return EFalse\\n3.Call ItemExistsL() will return EFalse.\\n4.Close the session.","Return EFalse for non-existing item","Implemented"]
["API-APPFWK-DSCSTORE-0026","Check the existence of an existing DSC item by Item Id\\nWith ReadDeviceData","REQ6740",1,"Unit Test","Should be able to tell if an item exists in the DSC if the user has enough capability.","Precondition: item exists in DSC. check the existence by Item ID while file name is NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.Call ItemExistsL() should return ETrue\\n4.Close the session.","Return ETrue for existing item\\n","Implemented"]
["API-APPFWK-DSCSTORE-0027","Check the existence of a non-existing DSC item by Item Id\\nWith ReadDeviceData","REQ6740",1,"Unit Test","Should be able to tell if an item exists in the DSC if the user has enough capability.","Precondition: item does not exist in DSC. check the existence by Item ID while file name is NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.Call ItemExistsL() should return EFalse\\n4.Close the session.","Return EFalse for non-existing item.\\n","Implemented"]
["API-APPFWK-DSCSTORE-0028","Deleting an existing item from a DSC by file name and arguments\\nWith ReadDeviceData and WriteDeviceData","REQ6738\\n",1,"Unit Test","To ensure an existing item can be removed from the DSC if the user has enough capability.","Precondition: item exists in DSC file name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) and ItemExistsL() return ETrue\\n3.Call DeleteItemL() to remove the item.\\n4.Call ItemExistsL() return EFalse\\n5.Close the session.","The item is deleted from the DSC","Implemented"]
["API-APPFWK-DSCSTORE-0029","Deleting a non-existing item from a DSC by file name and arguments\\nWith ReadDeviceData and WriteDeviceData","REQ6738\\n",1,"Unit Test","To ensure deleting a non-existing item from the DSC shall leave if the user has enough capability.","Precondition: item does not exists in DSC file name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.ItemExistsL() return EFalse\\n4.Call DeleteItemL() to remove the item.\\n5.Close the session.","Leave with KErrNotFound","Implemented"]
["API-APPFWK-DSCSTORE-0030","Deleting an item from a non-existing DSC by file name and arguments\\n\\nWith ReadDeviceData and WriteDeviceData","REQ6738\\n",1,"Unit Test","To ensure deleting an item from a non-existing DSC shall leave if the user has enough capability.","Precondition: DSC does not exist\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return EFalse\\n3.Call DeleteItemL() to remove the item.\\n4.Close the session.","Leave with KErrNotFound.","Implemented"]
["API-APPFWK-DSCSTORE-0031","Deleting an existing item from a DSC by Item ID\\nWith ReadDeviceData and WriteDeviceData","REQ6738\\n",1,"Unit Test","To ensure an existing item can be removed from the DSC if the user has enough capability.","Precondition: item exists in DSC. Delete the item by Item ID while file name is NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) and ItemExistsL() return ETrue\\n3.Call DeleteItemL() to remove the item.\\n4.Call ItemExistsL() return E","The item is deleted from the DSC","Implemented"]
["API-APPFWK-DSCSTORE-0032","Deleting a non-existing item from a DSC by Item ID\\nWith ReadDeviceData and WriteDeviceData","REQ6738\\n",1,"Unit Test","To ensure deleting a non-existing item from the DSC shall leave if the user has enough capability.","Precondition: item does not exist in DscId. Delete the item by Item ID while file name is NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.ItemExistsL() return EFalse\\n4.Call DeleteItemL() to remove the item.\\n5.Clos","Leave with KErrNotFound","Implemented"]
["API-APPFWK-DSCSTORE-0033","Deleting an item from a non-existing DSC by Item ID\\n\\nWith ReadDeviceData and WriteDeviceData","REQ6738\\n",1,"Unit Test","To ensure deleting an item from a non-existing DSC shall leave if the user has enough capability.","Precondition:  DSC does not exist. Delete the item by Item ID while file name is NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return EFalse\\n3.Call DeleteItemL() to remove the item.\\n4.Close the session.","Leave with KErrNotFound.","Implemented"]
["API-APPFWK-DSCSTORE-0034","Deleting an item which exists in two DSC from the 1st   DSC  \\nWith ReadDeviceData and WriteDeviceData","REQ6738\\n",1,"Unit Test","To ensure deleting an item from the DSC won’t affect the same item in the other DSC if the user has enough capability.","Precondition: item exists in both DSC1 and DSC2\\n1.Call OpenL() to open a session to DSC database\\n2.DSC1 DSC2 exist\\n3.item exists in DSC1 and DSC2\\n4.Call DeleteItemL() to remove the item from DSC1\\n5.item exists in DSC2 and item does not exist in DSC1 ","The item is removed from the 1st  DSC the 2nd  DSC is not affected.","Implemented"]
["API-APPFWK-DSCSTORE-0035","Update an item in the DSC \\nWith ReadDeviceData and WriteDeviceData","REQ6739\\n",1,"Unit Test","To ensure an existing item can be updated if the user has enough capability.","Precondition: item exists in DSC file name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) and ItemExistL()  return ETrue\\n3.Call UpdateItemL() to update the item.\\n4.Close the session.","The item is updated accordingly.\\n","Implemented"]
["API-APPFWK-DSCSTORE-0037","Update an item in the non-existing DSC \\nWith WriteDeviceData and ReadDeviceData","REQ6739\\n",1,"Unit Test","To ensure that updating an item in the non-existing DSC shall leave if the user has enough capability.","Precondition: DSC does not exist\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistL( ) return EFalse\\n3.Call UpdateItemL() to update the item.\\n4.Close the session.","Leave with KErrNotFound","Implemented"]
["API-APPFWK-DSCSTORE-0039","Update an item determined by Item Id \\nWith WriteDeviceData and ReadDeviceData","REQ6739\\n",1,"Unit Test","To ensure that update an item by Item Id is not allowed.","Precondition: item with specified Item Id exists in DSC. File name is NULL. \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.ItemExistL() return ETrue\\n4.Call UpdateItemL() to update the item.\\n5.Close the session.","Leave with KErrArgument","Implemented"]
["API-APPFWK-DSCSTORE-0040","Read an existing item from DSC by file name and arguments\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","An existing item can be located by file name and arguments and read from the DSC if the user has enough capability.","Precondition: item exists in DSC file name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.ItemExistsL() return ETrue\\n4.Call ReadItemL(item) to read the item.\\n5.Close the session.","item is updated with the information retrieved from the DSC.","Implemented"]
["API-APPFWK-DSCSTORE-0041","Read a non-existing item from DSC by file name and arguments\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","Read a non-existing item shall fail if the user has enough capability.","Precondition: item does not exist in DSC file name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.ItemExistsL() return EFalse\\n4.Call ReadItemL() to read the item.\\n5.Close the session.","Leave with KErrNotFound","Implemented"]
["API-APPFWK-DSCSTORE-0042","Read an item from a non-existing DSC by file name and arguments\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","Read an item from a non-existing DSC shall fail if the user has enough capability.","Precondition: DSC does not exist file name is not NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return EFalse\\n3.Call ReadItemL() to read the item.\\n4.Close the session.","Leave with KErrNotFound","Implemented"]
["API-APPFWK-DSCSTORE-0043","Read an existing item from DSC by Item ID\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","An existing item can be located by Item Id and read from the DSC if the user has enough capability.","Precondition: item with specified Item Id exists in DSC file name is  NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.ItemExistsL() return ETrue\\n4.Call ReadItemL(item) to read the item.\\n5.Close the session.","item is updated with the information retrieved from the DSC.","Implemented"]
["API-APPFWK-DSCSTORE-0044","Read a non-existing item from DSC by Item ID\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","Read a non-existing item shall fail if the user has enough capability.","Precondition: item with specified Item Id does not exist in DSC file name is  NULL\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL( ) return ETrue\\n3.ItemExistsL() return EFalse\\n4.Call ReadItemL(item) to read the item.\\n5.Close the sessio","Leave with KErrNotFound","Implemented"]
["API-APPFWK-DSCSTORE-0045","Open a DSC for enumerating\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","Open an existing DSC for enumerating if the user has enough capability.","Precondition: DSC exists\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.Call EnumOpenLC() to open the DSC.\\n4.Call EnumClose() to close DSC.\\n5.Call Close() to Close the session.","DSC is opened and closed successfully for enumeration. The default value of DSC is KDefaultSymbianDsc","Implemented"]
["API-APPFWK-DSCSTORE-0046","Open a non-existing DSC for enumerating\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","Unable to open a non-existing DSC for enumerating if the user has enough capability.","Precondition: DSC does not exist \\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return EFalse\\n3.Call EnumOpenLC() should leave.\\n4.Call Close() to close the session","Leave with KErrNotFound.","Implemented"]
["API-APPFWK-DSCSTORE-0047","Enumerating items in the DSC opened by EnumOpenLC()\\nWith ReadDeviceData","REQ6741\\n",1,"Unit Test","Enumerating items from the opened DSC if the user has enough capability.","1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.Call EnumOpenLC() to open DSC\\n4.Call EnumReadNextL() to read the item.\\n5.Repeat 4 until return NULL\\n6.EnumClose();\\n7.Close the session.","Return the pointer to the item according to the sequence in DSC. When reaching the end NULL pointer will be returned.","Implemented"]
["API-APPFWK-DSCSTORE-0048","Enumerating items in the DSC without open Enum\\n","REQ6741\\n",1,"Unit Test","Read an item from the un-open DSC","1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.Call EnumReadNextL() to read the item should leave\\n4.Call Close() to close the session","Leave with KErrNotReady","Implemented"]
["API-APPFWK-DSCSTORE-0049","Two sessions reading DSC at the same time \\n","REQ6742\\n",1,"Unit Test","Multiple sessions can read DSC database at the same time \\n","Precondition: DSC exists. Two process run concurrently\\n1st process:\\n1. Call OpenL() to open a session to DSC database\\n2. DscExistsL() return ETrue\\n3. OpenL() to open a session to DSC database\\n4. EnumOpenLC() to open a Dsc\\n5. EnumReadNextL() to enume","Both sessions shall be able to read","Implemented"]
["API-APPFWK-DSCSTORE-0050","Write to DSC while other session is reading is not allowed\\n","REQ6742\\n",1,"Unit Test","Reading DSC should block another session’s attempt to write to DSC \\n","Precondition: DSC exists. Two process run concurrently\\n1st process:\\n1.Call OpenL() to open a session to DSC database\\n2.DscExistsL() return ETrue\\n3.OpenL() to open a session to DSC database\\n4.EnumOpenLC() to open a Dsc\\n5.EnumReadNextL() to enumerate ","UpdateItemL will leave with KErrLocked","Implemented"]
["API-APPFWK-DSCSTORE-0051","Call APIs  without open a session to DSC database\\nWith proper capabilities","REQ6734 REQ6735\\nREQ6736 REQ6737\\nREQ6738 REQ6739\\nREQ6740 REQ6741\\n",1,"Unit Test","To ensure that without open a session to DSC database no APIs can be executed","1.Call CreateDscL() \\n2.Call DeleteDscL() \\n3.Call DscExistsL() \\n4.Call AddItemL().\\n5.Call ItemExistL() \\n6.Call EnumOpenLC() \\n7.Call EnumReadNextL() \\n8.Call ReadItemL() \\n9.Call UpdateItemL() \\n10.Call DeleteItemL() ","Each test action should leave with KErrNotReady.","Implemented"]
["API-APPFWK-DSCSTORE-0052","Call APIs when database is opened for enumeration\\nWith enough capabilities","REQ6734 REQ6735\\nREQ6736 REQ6737\\nREQ6738 REQ6739\\nREQ6740 REQ6741",1,"Unit Test","When DSC is opened for enumeration most APIs not related to enumeration are not allowed to executed","1.Call OpenL() to open a session to DSC database\\n2.Call EnumOpenLC() \\n3.Call EnumOpenLC() again will leave. \\n4.Call AddItemL() \\n5.Call ReadItemL()\\n6.Call UpdateItemL()\\n7.Call DeleteItemL()\\n8.Call CreateDscL()\\n9.Call DeleteDscL()\\n10.Call EnumClose","Test action 3~11 should leave with KErrLocked.","Implemented"]
["API-APPFWK-DSCSTORE-0053","Call APIs  \\nWith WriteDeviceData only","REQ6736 REQ6737\\nREQ6738 REQ6739\\nREQ6740 REQ6741",1,"Unit Test","To ensure that without ReadDeviceData capability user can not execute read actions","1.Call OpenL() to open an existing DSC database\\n2.Call DscExistsL() \\n3.Call AddItemL().\\n4.Call ItemExistL() \\n5.Call ReadItemL() \\n6.Call UpdateItemL() \\n7.Call DeleteItemL() \\n8.Call EnumOpenLC() \\n9.Call Close() to close the connection","Test action 2-8 should leave with KErrPermissionDenied.","Implemented"]
["API-APPFWK-DSCSTORE-0055","Call APIs  \\nWith WriteDeviceData only","REQ6736 REQ6737\\nREQ6738 REQ6739\\nREQ6740 REQ6741",1,"Unit Test","To ensure that with WriteDeviceData only capability user can execute write only actions","1.Call OpenL() to open an existing DSC database\\n2.Call CreateDscL()\\n3.Call Close() to close the connection","DSC can be added to database","Implemented"]
["API-APPFWK-DSCSTORE-0054","Call APIs\\nWith ReadDeviceData only","REQ6734 REQ6735\\nREQ6737REQ6738 REQ6739",1,"Unit Test","To ensure that without WriteDeviceData capability user can not execute write actions","1.Call OpenL() to open an existing DSC database\\n2.Call CreateDscL()\\n3.Call DeleteDscL()\\n4.Call AddItemL().\\n5.Call UpdateItemL() \\n6.Call DeleteItemL() \\n7.Call Close() to close the connection","2-6  should  leave with KErrPermissionDenied","Implemented"]
["API-APPFWK-DSCSTORE-0056","Call APIs\\nWith ReadDeviceData only","REQ6734 REQ6735\\nREQ6737REQ6738 REQ6739",1,"Unit Test","To ensure that with ReadDeviceData only user can execute read only actions","1.Call OpenL() to open an existing DSC database\\n2.Call DscExistsL()\\n3.Call ItemExistsL()\\n4.Call ReadItemL().\\n5.Call EnumOpenLC() \\n6.Call Close() to close the connection","2-6  should  be successful","Implemented"]
["API-APPFWK-DSCSTORE-0058","CheckMaxStringLength",null,1,"Unit Test","To establish that the database can be interrogated to find the maximum query-string length.","Call RDscStore::MaxStringLength()","The value of KDscStoreMaxStringLength (255) is returned.","Implemented"]

{"sheet":"Doc Info","index":2,"n_rows":34,"n_cols":6,"rows_kept":34,"merged":[[0,1,0,5],[2,1,2,5],[3,4,3,5],[4,4,4,5],[5,4,5,5],[6,4,6,5],[7,4,7,5],[8,4,8,5],[10,1,10,5],[11,4,11,5],[12,4,12,5],[13,4,13,5],[14,4,14,5],[15,4,15,5],[16,4,16,5],[18,1,18,5],[20,1,20,5],[21,1,21,2],[21,3,21,5],[22,1,22,2],[22,3,22,5],[23,1,23,2],[23,3,23,5],[24,1,24,2],[24,3,24,5],[26,1,26,5]],"flags":["formulas_cached_only"]}
[null,"AFSS_AMASTART_TestSpecification.xls"]
[]
[null,"About this Document"]
[null,"Document Reference","N/A","Authors","Sanjeev Malhotra, Crystal Wang"]
[null,"Security Classification","Internal","Owners","AFSS"]
[null,"Team / Department","AFSS","Reviewers","Phil Hodgson, Andrew Bevan, Aleks Pamir, Sanjeev Malhotra, Jaimin Patel ,Roger Planas Munso, Crystal Wang"]
[null,"Last Revised Date",null,"Contributors","Crystal Wang, Roger Planas,Sanjeev Malhotra"]
[null,"Status","For Review","Approver","Hemang Shah, Krishnan Subramanian"]
[null,"Version","v1.1","Distribution"]
[]
[null,"References"]
[null,"No.","Document Reference","Version","Description"]
[null,"[R1]","SGL.GT0328.406",1,"PREQ871 Unit Test Specification.doc"]
[null,"[R2]","SGL.GT0328.403",1,"PREQ871 Integration Test Specification.doc"]
[null,"[R3]","SGL.GT0328.402",1,"PREQ1089 Unit Test Specification.doc"]
[null,"[R4]","SGL.GT0328.404",1,"PREQ1089 Integration Test Specification.doc"]
[]
[]
[null,"Open Issues"]
[]
[null,"Glossary"]
[null,"Term",null,"Definition"]
[null,"AMA",null,"After-market Application"]
[null,"DSC",null,"Dynamic Start-up Configuration"]
[null,"AFSS",null,"Application Framework and System State"]
[]
[null,"Document History"]
[null,"Date","Version","Status","Author","Description"]
[null,"2007-09-05","v0.1","Draft","Jonathan Price","First draft based on SGL.PR0073.035 Rev 1.7"]
[null,"2007-11-01","v0.2","Draft","Jonathan Price","Added test cases for AMAStarter"]
[null,"2007-11-06","v0.3","Draft","Jonathan Price","Edit and add to AMAStarter test cases"]
[null,"2008-03-12","v0.4","Draft","Krishnan Subramanian","Made a separate test specification for amastart component"]
[null,"2008-03-13","v1.0","Issued","Krishnan Subramanian","Issued for PREQ1871."]
[null,"2008-11-06","V1.1","For Review","Nithi","Update for  migration to TMS"]

{"sheet":"Notes","index":3,"n_rows":8,"n_cols":4,"rows_kept":8,"merged":[[7,0,7,1]],"flags":["formulas_cached_only"]}
["Component","Sub-Component","# tests","Notes"]
["amastart","AMA",11,"Jono"]
["amastart","DSC",57,"Jono"]
[]
[]
[]
[]
["TOTAL",null,68]