@SmallTest @MediumTest @LargeTest public void testCacheRoundtrip() { ArrayList<String> permissions = Utility.arrayList("stream_publish", "go_outside_and_play"); String token = "AnImaginaryTokenValue"; Date later = TestUtils.nowPlusSeconds(60); Date earlier = TestUtils.nowPlusSeconds(-60); SharedPreferencesTokenCachingStrategy cache = new SharedPreferencesTokenCachingStrategy(getContext()); cache.clear(); Bundle bundle = new Bundle(); TokenCachingStrategy.putToken(bundle, token); TokenCachingStrategy.putExpirationDate(bundle, later); TokenCachingStrategy.putSource(bundle, AccessTokenSource.FACEBOOK_APPLICATION_NATIVE); TokenCachingStrategy.putLastRefreshDate(bundle, earlier); TokenCachingStrategy.putPermissions(bundle, permissions); cache.save(bundle); bundle = cache.load(); AccessToken accessToken = AccessToken.createFromCache(bundle); TestUtils.assertSamePermissions(permissions, accessToken); assertEquals(token, accessToken.getToken()); assertEquals(AccessTokenSource.FACEBOOK_APPLICATION_NATIVE, accessToken.getSource()); assertTrue(!accessToken.isInvalid()); Bundle cachedBundle = accessToken.toCacheBundle(); TestUtils.assertEqualContents(bundle, cachedBundle); }
static AccessToken createFromCache(Bundle bundle) { List list = getPermissionsFromBundle(bundle, "com.facebook.TokenCachingStrategy.Permissions"); List list1 = getPermissionsFromBundle(bundle, "com.facebook.TokenCachingStrategy.DeclinedPermissions"); return new AccessToken(bundle.getString("com.facebook.TokenCachingStrategy.Token"), TokenCachingStrategy.getDate(bundle, "com.facebook.TokenCachingStrategy.ExpirationDate"), list, list1, TokenCachingStrategy.getSource(bundle), TokenCachingStrategy.getDate(bundle, "com.facebook.TokenCachingStrategy.LastRefreshDate")); }