@@ -1059,6 +1059,41 @@ public void testUpgradeToRevocableSessionAsync() throws Exception {
10591059 verify (currentUserController , times (1 )).setAsync (user );
10601060 }
10611061
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+
10621097 //endregion
10631098
10641099 //region testUnlinkFromAsync
0 commit comments