Index: components/gcm_driver/gcm_stats_recorder_impl_unittest.cc |
diff --git a/components/gcm_driver/gcm_stats_recorder_impl_unittest.cc b/components/gcm_driver/gcm_stats_recorder_impl_unittest.cc |
index 30a95dae089b5943b3cdaf6a7884cd00f4de7762..5c6fe253fc3942f32d6ff1af06fc0af5318b93c2 100644 |
--- a/components/gcm_driver/gcm_stats_recorder_impl_unittest.cc |
+++ b/components/gcm_driver/gcm_stats_recorder_impl_unittest.cc |
@@ -10,6 +10,7 @@ |
#include <string> |
#include <vector> |
+#include "components/gcm_driver/crypto/gcm_encryption_provider.h" |
#include "google_apis/gcm/engine/mcs_client.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -98,6 +99,9 @@ static const char kNotifySendStatusDetails[] = "Msg size: 99 bytes, TTL: 7"; |
static const char kIncomingSendErrorEvent[] = "Received 'send error' msg"; |
static const char kIncomingSendErrorDetails[] = ""; |
+static const GCMEncryptionProvider::DecryptionFailure kDecryptionFailureReason = |
+ GCMEncryptionProvider::DECRYPTION_FAILURE_INVALID_PAYLOAD; |
+ |
} // namespace |
class GCMStatsRecorderImplTest : public testing::Test { |
@@ -126,12 +130,18 @@ class GCMStatsRecorderImplTest : public testing::Test { |
EXPECT_EQ(expected_count, |
static_cast<int>(recorder_.sending_activities().size())); |
} |
+ void VerifyRecordedDecryptionFailureCount(int expected_count) { |
+ EXPECT_EQ( |
+ expected_count, |
+ static_cast<int>(recorder_.decryption_failure_activities().size())); |
+ } |
void VerifyAllActivityQueueEmpty(const std::string& remark) { |
EXPECT_TRUE(recorder_.checkin_activities().empty()) << remark; |
EXPECT_TRUE(recorder_.connection_activities().empty()) << remark; |
EXPECT_TRUE(recorder_.registration_activities().empty()) << remark; |
EXPECT_TRUE(recorder_.receiving_activities().empty()) << remark; |
EXPECT_TRUE(recorder_.sending_activities().empty()) << remark; |
+ EXPECT_TRUE(recorder_.decryption_failure_activities().empty()) << remark; |
} |
void VerifyCheckinInitiated(const std::string& remark) { |
@@ -287,6 +297,16 @@ class GCMStatsRecorderImplTest : public testing::Test { |
remark); |
} |
+ void VerifyRecordedDecryptionFailure(const std::string& remark) { |
+ const auto& queue = recorder_.decryption_failure_activities(); |
+ |
+ EXPECT_EQ(kAppId, queue.front().app_id) << remark; |
+ EXPECT_EQ( |
+ GCMEncryptionProvider::ToDecryptionFailureDetailsString( |
+ kDecryptionFailureReason), |
+ queue.front().details) << remark; |
+ } |
+ |
protected: |
void VerifyCheckin( |
const std::deque<CheckinActivity>& queue, |
@@ -526,4 +546,11 @@ TEST_F(GCMStatsRecorderImplTest, RecordSendingTest) { |
VerifyDataSentToWire("4th call"); |
} |
+TEST_F(GCMStatsRecorderImplTest, RecordDecryptionFailureTest) { |
+ recorder_.RecordDecryptionFailure(kAppId, kDecryptionFailureReason); |
+ VerifyRecordedDecryptionFailureCount(1); |
+ |
+ VerifyRecordedDecryptionFailure("1st call"); |
+} |
+ |
} // namespace gcm |