/* * Copyright (c) 2015-present, Parse, LLC. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.parse; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.Arrays; import static org.junit.Assert.assertTrue; public class ParseSessionTest { @Before public void setUp() { ParseObject.registerSubclass(ParseSession.class); } @After public void tearDown() { ParseObject.unregisterSubclass(ParseSession.class); } @Test public void testImmutableKeys() { String[] immutableKeys = { "sessionToken", "createdWith", "restricted", "user", "expiresAt", "installationId" }; ParseSession session = new ParseSession(); session.put("foo", "bar"); session.put("USER", "bar"); session.put("_user", "bar"); session.put("token", "bar"); for (String immutableKey : immutableKeys) { try { session.put(immutableKey, "blah"); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().contains("Cannot modify")); } try { session.remove(immutableKey); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().contains("Cannot modify")); } try { session.removeAll(immutableKey, Arrays.asList()); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().contains("Cannot modify")); } } } }