Do not store ConsistencyToken when the flag is disabled.
PiperOrigin-RevId: 257476225
Change-Id: I922cabac0d7e54555a5f0ba803b5b712706380e4
diff --git a/src/main/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImpl.java b/src/main/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImpl.java
index 2ca4afa..e361f52 100644
--- a/src/main/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImpl.java
+++ b/src/main/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImpl.java
@@ -546,6 +546,9 @@
private ConsistencyToken handleUpdateConsistencyToken(Result<ConsistencyToken> result) {
threadUtils.checkNotMainThread();
+ if (!uploadingActionsEnabled) {
+ return getConsistencyToken();
+ }
ConsistencyToken consistencyToken;
if (result.isSuccessful()) {
diff --git a/src/test/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImplTest.java b/src/test/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImplTest.java
index 64e3458..18704ec 100644
--- a/src/test/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImplTest.java
+++ b/src/test/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManagerImplTest.java
@@ -80,14 +80,18 @@
import com.google.search.now.wire.feed.PietSharedStateItemProto.PietSharedStateItem;
import com.google.search.now.wire.feed.ResponseProto.Response;
import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.robolectric.RobolectricTestRunner;
+import org.robolectric.ParameterizedRobolectricTestRunner;
+import org.robolectric.ParameterizedRobolectricTestRunner.Parameter;
+import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
/** Tests of the {@link FeedSessionManagerImpl} class. */
-@RunWith(RobolectricTestRunner.class)
+@RunWith(ParameterizedRobolectricTestRunner.class)
public class FeedSessionManagerImplTest {
private static final MutationContext EMPTY_MUTATION = new MutationContext.Builder().build();
@@ -99,14 +103,13 @@
.build();
private static final String SESSION_ID = "session:1";
- private final Configuration configuration =
- new Configuration.Builder().put(ConfigKey.UNDOABLE_ACTIONS_ENABLED, true).build();
private final ContentIdGenerators contentIdGenerators = new ContentIdGenerators();
private final ContentIdGenerators idGenerators = new ContentIdGenerators();
private final FakeClock fakeClock = new FakeClock();
private final String rootContentId = idGenerators.createRootContentId(0);
private final TimingUtils timingUtils = new TimingUtils();
+ private Configuration configuration;
private FakeActionUploadRequestManager fakeActionUploadRequestManager;
private FakeMainThreadRunner fakeMainThreadRunner;
private FakeProtocolAdapter fakeProtocolAdapter;
@@ -117,9 +120,21 @@
private FeedAppLifecycleListener appLifecycleListener;
@Mock private SchedulerApi schedulerApi;
+ @Parameters
+ public static List<Object[]> data() {
+ return Arrays.asList(new Object[][] {{true}, {false}});
+ }
+
+ @Parameter(0)
+ public boolean uploadingActionsEnabled;
+
@Before
public void setUp() {
initMocks(this);
+ configuration =
+ new Configuration.Builder()
+ .put(ConfigKey.UNDOABLE_ACTIONS_ENABLED, uploadingActionsEnabled)
+ .build();
fakeThreadUtils = FakeThreadUtils.withThreadChecks();
fakeMainThreadRunner =
FakeMainThreadRunner.runTasksImmediatelyWithThreadChecks(fakeThreadUtils);
@@ -399,6 +414,8 @@
sessionManager.handleToken(SESSION_ID, streamToken);
assertThat(fakeRequestManager.getLatestStreamToken()).isEqualTo(streamToken);
+ assertThat(fakeStore.getContentById(SessionCache.CONSISTENCY_TOKEN_CONTENT_ID))
+ .hasSize(uploadingActionsEnabled ? 1 : 0);
}
@Test
@@ -616,10 +633,12 @@
FeedSessionManagerImpl sessionManager = getInitializedSessionManager();
ConsistencyToken token =
ConsistencyToken.newBuilder().setToken(ByteString.copyFrom(new byte[] {0x1, 0xf})).build();
+ ConsistencyToken expectedToken =
+ uploadingActionsEnabled ? token : ConsistencyToken.getDefaultInstance();
Consumer<Result<ConsistencyToken>> consumer =
result -> {
assertThat(result.isSuccessful()).isTrue();
- assertThat(result.getValue()).isEqualTo(token);
+ assertThat(result.getValue()).isEqualTo(expectedToken);
};
fakeActionUploadRequestManager.setResult(Result.success(token));
fakeThreadUtils.enforceMainThread(false);