message_tracker_unittest.cc 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "remoting/signaling/message_tracker.h"
  5. #include "base/test/task_environment.h"
  6. #include "testing/gtest/include/gtest/gtest.h"
  7. namespace remoting {
  8. class MessageTrackerTest : public testing::Test {
  9. public:
  10. protected:
  11. static constexpr base::TimeDelta GetCleanupInterval();
  12. base::test::TaskEnvironment task_environment_{
  13. base::test::TaskEnvironment::TimeSource::MOCK_TIME};
  14. MessageTracker message_tracker_;
  15. };
  16. // static
  17. constexpr base::TimeDelta MessageTrackerTest::GetCleanupInterval() {
  18. return MessageTracker::kCleanupInterval;
  19. }
  20. TEST_F(MessageTrackerTest, TestIsIdTracked_UntrackedIdReturnsTrue) {
  21. ASSERT_FALSE(message_tracker_.IsIdTracked("1"));
  22. }
  23. TEST_F(MessageTrackerTest, TrackIdOnce_IdIsTracked) {
  24. message_tracker_.TrackId("1");
  25. ASSERT_TRUE(message_tracker_.IsIdTracked("1"));
  26. }
  27. TEST_F(MessageTrackerTest, TrackIdAndAdvanceTimer_ExpiredIdNotRejected) {
  28. message_tracker_.TrackId("1");
  29. ASSERT_TRUE(message_tracker_.IsIdTracked("1"));
  30. task_environment_.FastForwardBy(GetCleanupInterval() * 2);
  31. ASSERT_FALSE(message_tracker_.IsIdTracked("1"));
  32. }
  33. TEST_F(MessageTrackerTest, TrackIdAndAdvanceTimer_NotExpiredIdRejected) {
  34. message_tracker_.TrackId("1");
  35. ASSERT_TRUE(message_tracker_.IsIdTracked("1"));
  36. task_environment_.FastForwardBy(GetCleanupInterval() / 2);
  37. ASSERT_TRUE(message_tracker_.IsIdTracked("1"));
  38. }
  39. } // namespace remoting