--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/persistentstorage/dbms/tdbms/t_dbenvcreate.cpp Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,126 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+// DBMS security policy - testing new APIs - preparation operations
+// Please, ensure that t_predbsc test is executed before t_dbsc<N> tests!
+//
+//
+
+#include <d32dbms.h>
+#include <e32test.h>
+
+static RTest TheTest(_L("t_dbenvcreate: DBMS platform security testing - preparation"));
+static RDbs TheDbs;
+const TUid KSecureDbUid = {0x11335578};
+const TUid KSecureDbUid2 = {0x11335579};
+_LIT(KProtDbZName, "z:z.db");
+_LIT(KProtDbCName, "C:z.Db");
+_LIT(KProtDbZName2, "z:TEstDB.dB");
+_LIT(KProtDbCName2, "c:teSTDB.db");
+_LIT(KProtDbCName3, "c:AbcD.Db");
+_LIT(KProtDbCName4, "c:A0123456789B0123456789C0123456789D0123456789E0123456789F0123.Db");
+_LIT(KProtDbCName5, "c:ZADFS.Db");
+_LIT(KProtDbFormat3, "SECURE[1133557A]");
+_LIT(KProtDbCPath, "C:\\Private\\100012a5\\Dbs_11335578_z.dB");
+_LIT(KProtDbCPath2, "C:\\Private\\100012a5\\dBS_11335579_TesTDB.db");
+
+///////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////
+//Test macros and functions
+static void Check(TInt aValue, TInt aLine)
+ {
+ if(!aValue)
+ {
+ TheTest(EFalse, aLine);
+ }
+ }
+static void Check(TInt aValue, TInt aExpected, TInt aLine)
+ {
+ if(aValue != aExpected)
+ {
+ RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue);
+ TheTest(EFalse, aLine);
+ }
+ }
+#define TEST(arg) ::Check((arg), __LINE__)
+#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__)
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+/**
+@SYMTestCaseID SYSLIB-DBMS-CT-0023
+@SYMTestCaseDesc This test app must be executed before all t_dbsc<N> tests.
+ It ensures that the test data is copied and prepared for the tests executed
+ after the current executable.
+@SYMTestPriority High
+@SYMTestActions Copy test databases from Z: to C: drive in the DBMS server private data cage.
+@SYMTestExpectedResults The test must not fail.
+@SYMREQ REQ2429
+ DBMS shall provide an API to apply security policies to database tables.
+*/
+static void DoRun()
+ {
+ TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-DBMS-CT-0023 Copy protected databases from Z: to C: "));
+ TInt err = TheDbs.CopyDatabase(KProtDbZName, KProtDbCName, KSecureDbUid);
+ TEST2(err, KErrNone);
+ err = TheDbs.CopyDatabase(KProtDbZName2, KProtDbCName2, KSecureDbUid2);
+ TEST2(err, KErrNone);
+
+ TheTest.Next(_L("Create protected database on C:"));
+ RDbNamedDatabase db;
+ err = db.Create(TheDbs, KProtDbCName3, KProtDbFormat3);
+ TEST2(err, KErrNone);
+ db.Close();
+
+ err = db.Create(TheDbs, KProtDbCName4, KProtDbFormat3);
+ TEST2(err, KErrNone);
+ db.Close();
+
+ err = db.Create(TheDbs, KProtDbCName5, KProtDbFormat3);
+ TEST2(err, KErrNone);
+ db.Close();
+
+ RFs fileSess;
+ err = fileSess.Connect();
+ TEST2(err, KErrNone);
+ err = fileSess.SetAtt(KProtDbCPath, 0, KEntryAttReadOnly);
+ TEST2(err, KErrNone);
+ err = fileSess.SetAtt(KProtDbCPath2, 0, KEntryAttReadOnly);
+ TEST2(err, KErrNone);
+ fileSess.Close();
+ }
+
+TInt E32Main()
+ {
+ __UHEAP_MARK;
+ CTrapCleanup* tc = CTrapCleanup::New();
+ TEST(tc != NULL);
+
+ TheTest.Title();
+
+ TInt err = TheDbs.Connect();
+ TEST2(err, KErrNone);
+
+ ::DoRun();
+
+ TheDbs.Close();
+
+ TheTest.End();
+ TheTest.Close();
+
+ delete tc;
+
+ __UHEAP_MARKEND;
+ User::Heap().Check();
+ return KErrNone;
+ }