javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorageTests.java
branchRCL_3
changeset 83 26b2b12093af
parent 71 d5e927d5853b
--- 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);