@@ -1059,6 +1059,41 @@ public void testUpgradeToRevocableSessionAsync() throws Exception {
1059
1059
verify (currentUserController , times (1 )).setAsync (user );
1060
1060
}
1061
1061
1062
+ @ Test
1063
+ public void testDontOverwriteSessionTokenForCurrentUser () throws Exception {
1064
+ ParseUser .State sessionTokenState = new ParseUser .State .Builder ()
1065
+ .sessionToken ("sessionToken" )
1066
+ .put ("key0" , "value0" )
1067
+ .put ("key1" , "value1" )
1068
+ .isComplete (true )
1069
+ .build ();
1070
+ ParseUser .State newState = new ParseUser .State .Builder ()
1071
+ .put ("key0" , "newValue0" )
1072
+ .put ("key2" , "value2" )
1073
+ .isComplete (true )
1074
+ .build ();
1075
+ ParseUser .State emptyState = new ParseUser .State .Builder ().isComplete (true ).build ();
1076
+
1077
+ ParseUser user = ParseObject .from (sessionTokenState );
1078
+ user .setIsCurrentUser (true );
1079
+ assertEquals (user .getSessionToken (), "sessionToken" );
1080
+ assertEquals (user .getString ("key0" ), "value0" );
1081
+ assertEquals (user .getString ("key1" ), "value1" );
1082
+
1083
+ user .setState (newState );
1084
+ assertEquals (user .getSessionToken (), "sessionToken" );
1085
+ assertEquals (user .getString ("key0" ), "newValue0" );
1086
+ assertNull (user .getString ("key1" ));
1087
+ assertEquals (user .getString ("key2" ), "value2" );
1088
+
1089
+ user .setIsCurrentUser (false );
1090
+ user .setState (emptyState );
1091
+ assertNull (user .getSessionToken ());
1092
+ assertNull (user .getString ("key0" ));
1093
+ assertNull (user .getString ("key1" ));
1094
+ assertNull (user .getString ("key2" ));
1095
+ }
1096
+
1062
1097
//endregion
1063
1098
1064
1099
//region testUnlinkFromAsync
0 commit comments