Index: google_apis/gcm/gcm_stats_recorder_unittest.cc |
diff --git a/google_apis/gcm/gcm_stats_recorder_unittest.cc b/google_apis/gcm/gcm_stats_recorder_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7b33b43207efadd00b6fc398bed6de5ab9e354af |
--- /dev/null |
+++ b/google_apis/gcm/gcm_stats_recorder_unittest.cc |
@@ -0,0 +1,92 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "google_apis/gcm/gcm_stats_recorder.h" |
+ |
+#include <deque> |
+#include <string> |
+ |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace gcm { |
+ |
+namespace { |
+ |
+const std::string kAppId[] = { "app id 1", "app id 2" }; |
+const std::string kReceiverId[] = { "receiver 1", "receiver 2" }; |
+const std::string kMessageId[] = { "message id 1", "message id 2" }; |
+const std::string kEvent[] = { "event 1", "event 2" }; |
+const std::string kDetails[] = { "details 1", "details 2" }; |
+ |
+class TestGCMStatsRecorder : public GCMStatsRecorder { |
+ public: |
+ TestGCMStatsRecorder() {}; |
+ virtual ~TestGCMStatsRecorder() {}; |
+ |
+ std::deque<gcm::GCMStatsRecorder::SendingActivity>* sending_activities() { |
+ return &sending_activities_; |
+ } |
+}; |
+ |
+} // namespace |
+ |
+class GCMStatsRecorderTest : public testing::Test { |
+ public: |
+ GCMStatsRecorderTest(); |
+ virtual ~GCMStatsRecorderTest(); |
+ virtual void SetUp() OVERRIDE; |
+ |
+ void VerifyRecordedSending(int count); |
+ |
+ protected: |
+ TestGCMStatsRecorder recorder_; |
+}; |
+ |
+GCMStatsRecorderTest::GCMStatsRecorderTest(){ |
+} |
+ |
+GCMStatsRecorderTest::~GCMStatsRecorderTest() {} |
+ |
+void GCMStatsRecorderTest::SetUp(){ |
+ recorder_.SetRecording(true); |
+} |
+ |
+void GCMStatsRecorderTest::VerifyRecordedSending(int count){ |
+ EXPECT_EQ(count, static_cast<int>(recorder_.sending_activities()->size())); |
+ if (count == 0) |
+ return; |
+ for (int i = 0; i < count; ++i) { |
+ EXPECT_EQ(recorder_.sending_activities()->at(count - i - 1).app_id, |
+ kAppId[i]); |
+ EXPECT_EQ(recorder_.sending_activities()->at(count - i - 1).receiver_id, |
+ kReceiverId[i]); |
+ EXPECT_EQ(recorder_.sending_activities()->at(count - i - 1).message_id, |
+ kMessageId[i]); |
+ EXPECT_EQ(recorder_.sending_activities()->at(count - i - 1).event, |
+ kEvent[i]); |
+ EXPECT_EQ(recorder_.sending_activities()->at(count - i - 1).details, |
+ kDetails[i]); |
+ } |
+} |
+ |
+ |
+TEST_F(GCMStatsRecorderTest, RecordSendingTest) { |
+ recorder_.RecordSending(kAppId[0], kReceiverId[0], kMessageId[0], kEvent[0], |
+ kDetails[0]); |
+ recorder_.RecordSending(kAppId[1], kReceiverId[1], kMessageId[1], kEvent[1], |
+ kDetails[1]); |
+ EXPECT_TRUE(recorder_.is_recording()); |
+ VerifyRecordedSending(2); |
+ |
+ recorder_.Clear(); |
+ VerifyRecordedSending(0); |
+ |
+ recorder_.SetRecording(false); |
+ EXPECT_FALSE(recorder_.is_recording()); |
+ recorder_.RecordSending(kAppId[0], kReceiverId[0], kMessageId[0], kEvent[0], |
+ kDetails[0]); |
+ VerifyRecordedSending(0); |
+} |
+ |
+} // namespace gcm |