javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorageTests.java
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorageTests.java Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorageTests.java Wed Oct 13 14:23:59 2010 +0300
@@ -188,6 +188,70 @@
storage.removeGrantedPermissions(appUID);
readPermissions = storage.readGrantedPermissions(appUID);
assertTrue(readPermissions == null);
+ // full read/write/remove cycle for update -> the old settings are retained
+ storage.removeGrantedPermissions(appUID);
+ grantedPermissions = storage.readGrantedPermissions(appUID);
+ assertTrue(grantedPermissions == null);
+ grantedPermissions = new Vector();
+ storage.writeGrantedPermissions(appUID, null, grantedPermissions);
+ storage.removeGrantedPermissions(appUID);
+ assertTrue(true);
+ grantedPermissions.addElement(new PolicyBasedPermissionImpl(
+ "permission1",
+ "target1",
+ "action1",
+ PolicyBasedPermission.ALLOWED_TYPE));
+ grantedPermissions.addElement(new PolicyBasedPermissionImpl(
+ "permission2",
+ "target2",
+ "action2",
+ PolicyBasedPermission.ASSIGNED_TYPE));
+ grantedPermissions.addElement(new PolicyBasedPermissionImpl(
+ "permission3",
+ "target3",
+ "action3",
+ new UserSecuritySettingsImpl("settingsname",
+ UserSecuritySettings.ONESHOT_INTERACTION_MODE,
+ new int[] { UserSecuritySettings.ONESHOT_INTERACTION_MODE,
+ UserSecuritySettings.SESSION_INTERACTION_MODE,
+ UserSecuritySettings.BLANKET_INTERACTION_MODE,
+ UserSecuritySettings.NO_INTERACTION_MODE
+ })));
+ storage.writeGrantedPermissions(appUID, null, grantedPermissions);
+ readPermissions = storage.readGrantedPermissions(appUID);
+ assertTrue(readPermissions != null
+ && readPermissions.size() == grantedPermissions.size()
+ && checkGrantedPermissions(readPermissions, grantedPermissions));
+ grantedPermissions2 = new Vector();
+ grantedPermissions2.addElement(new PolicyBasedPermissionImpl(
+ "permission1",
+ "target1",
+ "action1",
+ PolicyBasedPermission.ALLOWED_TYPE));
+ grantedPermissions2.addElement(new PolicyBasedPermissionImpl(
+ "permission2",
+ "target2",
+ "action2",
+ PolicyBasedPermission.ASSIGNED_TYPE));
+ grantedPermissions2.addElement(new PolicyBasedPermissionImpl(
+ "permission3",
+ "target3",
+ "action3",
+ new UserSecuritySettingsImpl("settingsname",
+ UserSecuritySettings.SESSION_INTERACTION_MODE,
+ new int[] { UserSecuritySettings.ONESHOT_INTERACTION_MODE,
+ UserSecuritySettings.SESSION_INTERACTION_MODE,
+ UserSecuritySettings.BLANKET_INTERACTION_MODE,
+ UserSecuritySettings.NO_INTERACTION_MODE
+ })));
+ storage.writeGrantedPermissions(appUID, appUID, grantedPermissions2);
+ readPermissions = storage.readGrantedPermissions(appUID);
+ assertTrue(readPermissions != null
+ && readPermissions.size() == grantedPermissions.size()
+ && checkGrantedPermissions(readPermissions, grantedPermissions));
+ storage.removeGrantedPermissions(appUID);
+ readPermissions = storage.readGrantedPermissions(appUID);
+ assertTrue(readPermissions == null);
// full read/write/remove cycle with different valid values for permissions and user settings
storage.removeGrantedPermissions(appUID);
grantedPermissions = storage.readGrantedPermissions(appUID);