#include "components/sync/invalidations/fcm_handler.h"
#include <set>
#include <string>
#include <utility>
#include "base/files/file_path.h"
#include "base/test/gmock_callback_support.h"
#include "base/test/task_environment.h"
#include "components/gcm_driver/fake_gcm_driver.h"
#include "components/gcm_driver/gcm_driver.h"
#include "components/gcm_driver/instance_id/instance_id.h"
#include "components/gcm_driver/instance_id/instance_id_driver.h"
#include "components/sync/invalidations/fcm_registration_token_observer.h"
#include "components/sync/invalidations/invalidations_listener.h"
#include "google_apis/gcm/engine/account_mapping.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
RunOnceCallback;
RunOnceCallbackRepeatedly;
InstanceID;
_;
Invoke;
NiceMock;
Return;
WithArg;
namespace syncer {
namespace {
const char kDefaultSenderId[] = …;
const char kSyncInvalidationsAppId[] = …;
const int kTokenValidationPeriodMinutesDefault = …;
class MockInstanceID : public InstanceID { … };
class MockInstanceIDDriver : public instance_id::InstanceIDDriver { … };
class MockListener : public InvalidationsListener { … };
class MockTokenObserver : public FCMRegistrationTokenObserver { … };
class FCMHandlerTest : public testing::Test { … };
TEST_F(FCMHandlerTest, ShouldReturnValidToken) { … }
TEST_F(FCMHandlerTest, ShouldPropagatePayloadToListener) { … }
TEST_F(FCMHandlerTest, ShouldNotifyOnTokenChange) { … }
TEST_F(FCMHandlerTest, ShouldScheduleTokenValidationAndActOnNewToken) { … }
TEST_F(FCMHandlerTest, ShouldScheduleTokenValidationAndNotActOnSameToken) { … }
TEST_F(FCMHandlerTest, ShouldClearTokenOnStopListeningPermanently) { … }
TEST_F(FCMHandlerTest, ShouldReplayIncomingMessagesOnAddingListener) { … }
TEST_F(FCMHandlerTest, ShouldLimitIncomingMessagesForReplay) { … }
TEST_F(FCMHandlerTest, ShouldClearLastIncomingMessagesOnStopListening) { … }
}
}