sl@0: // Create tests sl@0: sl@0: [create1] sl@0: SPCreateL0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityAllFiles sl@0: SetDBPolicy2=EReadPolicy,ECapabilityAllFiles sl@0: CreateSP3=[102827c7]sec.db sl@0: SPClose4= sl@0: Exec5=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec7=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec10=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close11= sl@0: EndBlock12= sl@0: sl@0: [create1a] sl@0: SPCreateL0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityWriteUserData sl@0: SetDBPolicy2=EReadPolicy,ECapabilityWriteUserData sl@0: CreateSP3=[102827c7]sec1.db sl@0: SPClose4= sl@0: Exec5=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec7=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec10=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close11= sl@0: EndBlock12= sl@0: sl@0: [create1b] sl@0: SPCreate0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityAllFiles sl@0: SetDBPolicy2=EWritePolicy,ECapabilityAllFiles sl@0: SetDBPolicy3=EReadPolicy,ECapabilityWriteUserData sl@0: CreateSP4=[102827c7]sec4.db sl@0: SPClose5= sl@0: Exec6=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec7=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec10=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec11=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close12= sl@0: EndBlock13= sl@0: sl@0: [create2] sl@0: SPCreate0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityWriteUserData sl@0: CreateSP2=[102827c7]sec2.db sl@0: SPClose3= sl@0: Exec4=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec5=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec7=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close10= sl@0: EndBlock11= sl@0: sl@0: [create3] sl@0: SPCreate0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityAllFiles sl@0: CreateSP2=[102827c7]sec.db sl@0: ExpectedError2=KErrPermissionDenied sl@0: SPClose3= sl@0: EndBlock4= sl@0: sl@0: [create4] sl@0: SPCreate0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityAllFiles sl@0: CreateSP2=[102827c8]sec.db sl@0: ExpectedError2=KErrPermissionDenied sl@0: SPClose3= sl@0: EndBlock4= sl@0: sl@0: [create5] sl@0: SPCreate0= sl@0: CreateSP1=[102827c7]sec.db sl@0: ExpectedError1=KErrPermissionDenied sl@0: SPClose2= sl@0: EndBlock3= sl@0: sl@0: [create6] sl@0: CreateSP0=[102827c7]sec.db sl@0: EndBlock1= sl@0: sl@0: [create7] sl@0: SPCreate0= sl@0: SetDBPolicy1=EReadPolicy,ECapabilityAllFiles sl@0: CreateSP2=[102827c7]sec.db sl@0: ExpectedError2=KErrPermissionDenied sl@0: SPClose3= sl@0: EndBlock4= sl@0: sl@0: [create8] sl@0: SPCreate0= sl@0: SetDBPolicy1=EWritePolicy,ECapabilityAllFiles sl@0: CreateSP2=[102827c7]sec.db sl@0: ExpectedError2=KErrPermissionDenied sl@0: SPClose3= sl@0: EndBlock4= sl@0: sl@0: [create9] sl@0: SPCreate0= sl@0: SetDBPolicy1=EWritePolicy,ECapabilityAllFiles sl@0: SetDBPolicy2=EReadPolicy,ECapabilityAllFiles sl@0: CreateSP3=[102827c7]sec.db sl@0: ExpectedError3=KErrPermissionDenied sl@0: SPClose4= sl@0: EndBlock5= sl@0: sl@0: [create10] sl@0: SPCreate0= sl@0: SetDBPolicy1=EWritePolicy,ECapabilityAllFiles sl@0: SetDBPolicy2=EReadPolicy,ECapabilityAllFiles sl@0: SetDBPolicy2=ESchemaPolicy,ECapabilityAllFiles sl@0: CreateSP3=[102827c7]sec3.db sl@0: ExpectedError3=KErrPermissionDenied sl@0: SPClose4= sl@0: EndBlock5= sl@0: sl@0: [create11] sl@0: SPCreate0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityWriteUserData sl@0: CreateSP2=[102827c8]sec.db sl@0: SPClose3= sl@0: Exec4=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec5=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec7=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close10= sl@0: EndBlock11= sl@0: sl@0: [create12] sl@0: Create0=c:\private\102827c7\sec.db sl@0: Exec1=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec2=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec3=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec4=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec5=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close7= sl@0: EndBlock8= sl@0: sl@0: [create12a] sl@0: Create0=c:\private\102827c8\sec.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: EndBlock1= sl@0: sl@0: [create12b] sl@0: Create0=c:\private\102827c8\sec3.db sl@0: Exec1=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec2=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec3=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec4=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec5=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close7= sl@0: EndBlock8= sl@0: sl@0: // Read tests sl@0: sl@0: [read1] sl@0: Open0=[102827c7]sec.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Close6=[102827c7]sec.db sl@0: EndBlock7= sl@0: sl@0: [read2] sl@0: Open0=[102827c8]sec.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Close6=[102827c8]sec.db sl@0: EndBlock7= sl@0: sl@0: [read3] sl@0: Open0=[102827c7]sec.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: Close1=[102827c7]sec.db sl@0: EndBlock2= sl@0: sl@0: [read4] sl@0: Open0=[102827c7]sec1.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Close6=[102827c7]sec1.db sl@0: EndBlock7= sl@0: sl@0: // Write tests sl@0: sl@0: [write1] sl@0: Open0=[102827c7]sec4.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(6, "new", "starter", 1); sl@0: ExpectedError6=KErrPermissionDenied sl@0: Prepare7=select count(*) from names; sl@0: ColumnIndex8= sl@0: Next9= sl@0: ColumnInt10=0,5 sl@0: St_Close11= sl@0: Close12=[102827c7]sec4.db sl@0: EndBlock13= sl@0: sl@0: [write2] sl@0: Open0=[102827c7]sec4.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(6, "new", "starter", 1); sl@0: Prepare7=select count(*) from names; sl@0: ColumnIndex8= sl@0: Next9= sl@0: ColumnInt10=0,6 sl@0: St_Close11= sl@0: Close12=[102827c7]sec4.db sl@0: EndBlock13= sl@0: sl@0: // Schema tests sl@0: sl@0: [schema1] sl@0: Open0=[102827c7]sec4.db sl@0: Exec1=create table newtab(pkey int primary key, fname text, lname text, ref int); sl@0: ExpectedError1=KErrPermissionDenied sl@0: Close2= sl@0: EndBlock3= sl@0: sl@0: [schema2] sl@0: Open0=[102827c7]sec4.db sl@0: Exec1=create table newtab(pkey int primary key, fname text, lname text, ref int); sl@0: Close2= sl@0: EndBlock3= sl@0: sl@0: // Attach tests sl@0: sl@0: [attach1] sl@0: Open0=[102827c7]sec1.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Exec6=attach "C:\private\10281e17\[102827c7]sec1.db" as [102827c7]sec1 sl@0: ExpectedError6=KErrPermissionDenied sl@0: Close7= sl@0: EndBlock8= sl@0: sl@0: [attach2] sl@0: Open0=[102827c7]sec.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Attach6=C:[102827c7]sec1.db,fred sl@0: Prepare7=select count(*) from fred.names; sl@0: ColumnIndex8= sl@0: Next9= sl@0: ColumnInt10=0,5 sl@0: St_Close11= sl@0: Detach12=fred sl@0: Prepare13=select count(*) from fred.names; sl@0: ExpectedError13=KSqlErrGeneral sl@0: Close14= sl@0: EndBlock15= sl@0: sl@0: [attach3] sl@0: Open0=[102827c7]sec1.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Attach6=C:[102827c7]sec.db,tom sl@0: ExpectedError6=KErrPermissionDenied sl@0: Close7= sl@0: EndBlock8= sl@0: sl@0: [attach4] sl@0: Open0=[102827c7]sec.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Attach6=c:\private\102827c7\sec.db,bob sl@0: Prepare7=select count(*) from bob.names; sl@0: ColumnIndex8= sl@0: Next9= sl@0: ColumnInt10=0,5 sl@0: St_Close11= sl@0: Detach12=bob sl@0: Prepare13=select count(*) from bob.names; sl@0: ExpectedError13=KSqlErrGeneral sl@0: Close14= sl@0: EndBlock15= sl@0: sl@0: [attach5] sl@0: Open0=c:\private\102827c7\sec.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Attach6=[102827c7]sec.db,bob sl@0: Prepare7=select count(*) from bob.names; sl@0: ColumnIndex8= sl@0: Next9= sl@0: ColumnInt10=0,5 sl@0: St_Close11= sl@0: Detach12=bob sl@0: Prepare13=select count(*) from bob.names; sl@0: ExpectedError13=KSqlErrGeneral sl@0: Close14= sl@0: EndBlock15= sl@0: sl@0: [attach6] sl@0: // this is the test case where we try to cheat ATTACH by passing in arguments that will execute SQL while the authorizer is disabled. sl@0: Open0=[102827c7]sec.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Attach6=[102827c7]sec1.db' AS fred; delete from names;,fred2 sl@0: ExpectedError6=KSqlErrGeneral sl@0: Prepare7=select count(*) from names; sl@0: ColumnIndex8= sl@0: Next9= sl@0: ColumnInt10=0,5 sl@0: St_Close11= sl@0: Prepare12=select count(*) from fred.names; sl@0: ColumnIndex13= sl@0: Next14= sl@0: ColumnInt15=0,5 sl@0: St_Close16= sl@0: Detach17=fred sl@0: Prepare18=select count(*) from fred.names; sl@0: ExpectedError18=KSqlErrGeneral sl@0: Close19= sl@0: EndBlock20= sl@0: sl@0: // Copy tests sl@0: sl@0: [copy1] sl@0: Copy0=[102827c7]sec.db,C:\sec_dest.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: EndBlock1= sl@0: sl@0: [copy2] sl@0: Create0=C:\[102827c7]sec_source.db sl@0: Copy1=C:\[102827c7]sec.db,[102827c7]sec_dest.db sl@0: ExpectedError1=KErrPermissionDenied sl@0: Close2= sl@0: Delete3=C:\[102827c7]sec_source.db sl@0: EndBlock4= sl@0: sl@0: [copy3] sl@0: Copy0=C:\private\102827c7\sec.db,[102827c7]sec_dest.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: EndBlock1= sl@0: sl@0: [copy4] sl@0: Copy0=[102827c7]sec.db,C:\private\102827c7\sec_dest.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: EndBlock1= sl@0: sl@0: [copy5] sl@0: Copy0=[102827c7]sec.db,[102827c7]sec_copy.db sl@0: EndBlock1= sl@0: sl@0: [copy6] sl@0: Copy0=C:\private\102827c7\sec.db, C:\private\102827c7\sec_copy.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: EndBlock1= sl@0: sl@0: [copy7] sl@0: Copy0=C:\private\102827c7\sec.db, C:\sec_copy.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: EndBlock1= sl@0: sl@0: sl@0: // Concurrency tests sl@0: sl@0: sl@0: // Policy check tests sl@0: sl@0: [policy1] sl@0: SPCreateL0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityWriteUserData sl@0: SetDBPolicy2=EReadPolicy,ECapabilityWriteUserData sl@0: SetPolicy3=ETable,names,EWritePolicy,ECapabilityAllFiles sl@0: SetPolicy4=ETable,names,EReadPolicy,ECapabilityAllFiles sl@0: CreateSP5=[102827c7]secpol.db sl@0: SPClose6= sl@0: Exec7=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec10=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec11=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec12=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close13= sl@0: EndBlock14= sl@0: sl@0: [policy2] sl@0: Open0=[102827c7]secpol.db sl@0: Prepare1=select count(*) from names; sl@0: ColumnIndex2= sl@0: Next3= sl@0: ColumnInt4=0,5 sl@0: St_Close5= sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(6, "new", "starter", 1); sl@0: Prepare7=select count(*) from names; sl@0: ColumnIndex8= sl@0: Next9= sl@0: ColumnInt10=0,6 sl@0: St_Close11= sl@0: Close12= sl@0: EndBlock13= sl@0: sl@0: [policy3] sl@0: // this test has been deferred as it has duplicated a developer test sl@0: SPCreateL0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityWriteUserData sl@0: SetDBPolicy2=EReadPolicy,ECapabilityWriteUserData sl@0: SetPolicy3=ETable,names,EWritePolicy,ECapabilityAllFiles sl@0: SetPolicy4=ETable,names,EReadPolicy,ECapabilityAllFiles sl@0: CreateSP5=[102827c7]secpol1.db sl@0: sl@0: Exec7=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec10=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec11=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec12=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close13= sl@0: Function14=SecurityPolicyCheck sl@0: sl@0: SPClose6= sl@0: EndBlock14= sl@0: sl@0: sl@0: // Inernalize & Externalize tests sl@0: sl@0: [External1] sl@0: SPCreate0= sl@0: SetDBPolicy1=ESchemaPolicy,ECapabilityAllFiles sl@0: SetDBPolicy2=EReadPolicy,ECapabilityAllFiles sl@0: SetPolicy3=ETable,names,EWritePolicy,ECapabilityAllFiles sl@0: Delete4=c:\ext.pol sl@0: ExpectedError4=KErrNotFound sl@0: SPExternalizeL5=c:\ext.pol sl@0: EndBlock6= sl@0: sl@0: [External2] sl@0: SPCreate0= sl@0: SPInternalizeL1=c:\ext.pol sl@0: CreateSP2=[102827c7]ext.db sl@0: SPClose3= sl@0: Exec4=create table names(pkey int primary key, fname text, lname text, ref int); sl@0: Exec5=insert into names(pkey, fname, lname, ref) values(1, "tom", "jones", 2); sl@0: Exec6=insert into names(pkey, fname, lname, ref) values(2, "jim", "davies", 1); sl@0: Exec7=insert into names(pkey, fname, lname, ref) values(3, "bob", "smith", 1); sl@0: Exec8=insert into names(pkey, fname, lname, ref) values(4, "dave", "house", 3); sl@0: Exec9=insert into names(pkey, fname, lname, ref) values(5, "jane", "hobbs", 4); sl@0: Close10= sl@0: EndBlock11= sl@0: sl@0: [External3] sl@0: Open0=[102827c7]ext.db sl@0: ExpectedError0=KErrPermissionDenied sl@0: Close1=[102827c7]ext.db sl@0: EndBlock2= sl@0: