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);