Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: components/gcm_driver/gcm_stats_recorder_impl_unittest.cc

Issue 1616113003: List message decryption failures on chrome://gcm-internals (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase after CL 1619053003 Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/gcm_driver/gcm_stats_recorder_impl.h" 5 #include "components/gcm_driver/gcm_stats_recorder_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <deque> 9 #include <deque>
10 #include <string> 10 #include <string>
11 #include <vector> 11 #include <vector>
12 12
13 #include "components/gcm_driver/crypto/gcm_encryption_provider.h"
13 #include "google_apis/gcm/engine/mcs_client.h" 14 #include "google_apis/gcm/engine/mcs_client.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 16
16 namespace gcm { 17 namespace gcm {
17 18
18 namespace { 19 namespace {
19 20
20 static uint64_t kAndroidId = 4U; 21 static uint64_t kAndroidId = 4U;
21 static const char kCheckinStatus[] = "URL_FETCHING_FAILED"; 22 static const char kCheckinStatus[] = "URL_FETCHING_FAILED";
22 static const char kHost[] = "www.example.com"; 23 static const char kHost[] = "www.example.com";
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 static const char kDataDeletedMessageDetails[] = 92 static const char kDataDeletedMessageDetails[] =
92 "Message has been deleted on server"; 93 "Message has been deleted on server";
93 94
94 static const char kDataSentToWireEvent[] = "Data msg sent to wire"; 95 static const char kDataSentToWireEvent[] = "Data msg sent to wire";
95 static const char kSentToWireDetails[] = "Msg queued for 5 seconds"; 96 static const char kSentToWireDetails[] = "Msg queued for 5 seconds";
96 static const char kNotifySendStatusEvent[] = "SEND status: QUEUED"; 97 static const char kNotifySendStatusEvent[] = "SEND status: QUEUED";
97 static const char kNotifySendStatusDetails[] = "Msg size: 99 bytes, TTL: 7"; 98 static const char kNotifySendStatusDetails[] = "Msg size: 99 bytes, TTL: 7";
98 static const char kIncomingSendErrorEvent[] = "Received 'send error' msg"; 99 static const char kIncomingSendErrorEvent[] = "Received 'send error' msg";
99 static const char kIncomingSendErrorDetails[] = ""; 100 static const char kIncomingSendErrorDetails[] = "";
100 101
102 static const GCMEncryptionProvider::DecryptionFailure kDecryptionFailureReason =
103 GCMEncryptionProvider::DECRYPTION_FAILURE_INVALID_PAYLOAD;
104
101 } // namespace 105 } // namespace
102 106
103 class GCMStatsRecorderImplTest : public testing::Test { 107 class GCMStatsRecorderImplTest : public testing::Test {
104 public: 108 public:
105 GCMStatsRecorderImplTest(); 109 GCMStatsRecorderImplTest();
106 ~GCMStatsRecorderImplTest() override; 110 ~GCMStatsRecorderImplTest() override;
107 void SetUp() override; 111 void SetUp() override;
108 112
109 void VerifyRecordedCheckinCount(int expected_count) { 113 void VerifyRecordedCheckinCount(int expected_count) {
110 EXPECT_EQ(expected_count, 114 EXPECT_EQ(expected_count,
111 static_cast<int>(recorder_.checkin_activities().size())); 115 static_cast<int>(recorder_.checkin_activities().size()));
112 } 116 }
113 void VerifyRecordedConnectionCount(int expected_count) { 117 void VerifyRecordedConnectionCount(int expected_count) {
114 EXPECT_EQ(expected_count, 118 EXPECT_EQ(expected_count,
115 static_cast<int>(recorder_.connection_activities().size())); 119 static_cast<int>(recorder_.connection_activities().size()));
116 } 120 }
117 void VerifyRecordedRegistrationCount(int expected_count) { 121 void VerifyRecordedRegistrationCount(int expected_count) {
118 EXPECT_EQ(expected_count, 122 EXPECT_EQ(expected_count,
119 static_cast<int>(recorder_.registration_activities().size())); 123 static_cast<int>(recorder_.registration_activities().size()));
120 } 124 }
121 void VerifyRecordedReceivingCount(int expected_count) { 125 void VerifyRecordedReceivingCount(int expected_count) {
122 EXPECT_EQ(expected_count, 126 EXPECT_EQ(expected_count,
123 static_cast<int>(recorder_.receiving_activities().size())); 127 static_cast<int>(recorder_.receiving_activities().size()));
124 } 128 }
125 void VerifyRecordedSendingCount(int expected_count) { 129 void VerifyRecordedSendingCount(int expected_count) {
126 EXPECT_EQ(expected_count, 130 EXPECT_EQ(expected_count,
127 static_cast<int>(recorder_.sending_activities().size())); 131 static_cast<int>(recorder_.sending_activities().size()));
128 } 132 }
133 void VerifyRecordedDecryptionFailureCount(int expected_count) {
134 EXPECT_EQ(
135 expected_count,
136 static_cast<int>(recorder_.decryption_failure_activities().size()));
137 }
129 void VerifyAllActivityQueueEmpty(const std::string& remark) { 138 void VerifyAllActivityQueueEmpty(const std::string& remark) {
130 EXPECT_TRUE(recorder_.checkin_activities().empty()) << remark; 139 EXPECT_TRUE(recorder_.checkin_activities().empty()) << remark;
131 EXPECT_TRUE(recorder_.connection_activities().empty()) << remark; 140 EXPECT_TRUE(recorder_.connection_activities().empty()) << remark;
132 EXPECT_TRUE(recorder_.registration_activities().empty()) << remark; 141 EXPECT_TRUE(recorder_.registration_activities().empty()) << remark;
133 EXPECT_TRUE(recorder_.receiving_activities().empty()) << remark; 142 EXPECT_TRUE(recorder_.receiving_activities().empty()) << remark;
134 EXPECT_TRUE(recorder_.sending_activities().empty()) << remark; 143 EXPECT_TRUE(recorder_.sending_activities().empty()) << remark;
144 EXPECT_TRUE(recorder_.decryption_failure_activities().empty()) << remark;
135 } 145 }
136 146
137 void VerifyCheckinInitiated(const std::string& remark) { 147 void VerifyCheckinInitiated(const std::string& remark) {
138 VerifyCheckin(recorder_.checkin_activities(), 148 VerifyCheckin(recorder_.checkin_activities(),
139 kCheckinInitiatedEvent, 149 kCheckinInitiatedEvent,
140 kCheckinInitiatedDetails, 150 kCheckinInitiatedDetails,
141 remark); 151 remark);
142 } 152 }
143 153
144 void VerifyCheckinDelayedDueToBackoff(const std::string& remark) { 154 void VerifyCheckinDelayedDueToBackoff(const std::string& remark) {
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 remark); 290 remark);
281 } 291 }
282 292
283 void VerifyIncomingSendError(const std::string& remark) { 293 void VerifyIncomingSendError(const std::string& remark) {
284 VerifySendingData(recorder_.sending_activities(), 294 VerifySendingData(recorder_.sending_activities(),
285 kIncomingSendErrorEvent, 295 kIncomingSendErrorEvent,
286 kIncomingSendErrorDetails, 296 kIncomingSendErrorDetails,
287 remark); 297 remark);
288 } 298 }
289 299
300 void VerifyRecordedDecryptionFailure(const std::string& remark) {
301 const auto& queue = recorder_.decryption_failure_activities();
302
303 EXPECT_EQ(kAppId, queue.front().app_id) << remark;
304 EXPECT_EQ(
305 GCMEncryptionProvider::ToDecryptionFailureDetailsString(
306 kDecryptionFailureReason),
307 queue.front().details) << remark;
308 }
309
290 protected: 310 protected:
291 void VerifyCheckin( 311 void VerifyCheckin(
292 const std::deque<CheckinActivity>& queue, 312 const std::deque<CheckinActivity>& queue,
293 const std::string& event, 313 const std::string& event,
294 const std::string& details, 314 const std::string& details,
295 const std::string& remark) { 315 const std::string& remark) {
296 EXPECT_EQ(event, queue.front().event) << remark; 316 EXPECT_EQ(event, queue.front().event) << remark;
297 EXPECT_EQ(details, queue.front().details) << remark; 317 EXPECT_EQ(details, queue.front().details) << remark;
298 } 318 }
299 319
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 539
520 recorder_.RecordIncomingSendError(kAppId, kReceiverId, kMessageId); 540 recorder_.RecordIncomingSendError(kAppId, kReceiverId, kMessageId);
521 VerifyRecordedSendingCount(3); 541 VerifyRecordedSendingCount(3);
522 VerifyIncomingSendError("3rd call"); 542 VerifyIncomingSendError("3rd call");
523 543
524 recorder_.RecordDataSentToWire(kAppId, kReceiverId, kMessageId, kQueuedSec); 544 recorder_.RecordDataSentToWire(kAppId, kReceiverId, kMessageId, kQueuedSec);
525 VerifyRecordedSendingCount(4); 545 VerifyRecordedSendingCount(4);
526 VerifyDataSentToWire("4th call"); 546 VerifyDataSentToWire("4th call");
527 } 547 }
528 548
549 TEST_F(GCMStatsRecorderImplTest, RecordDecryptionFailureTest) {
550 recorder_.RecordDecryptionFailure(kAppId, kDecryptionFailureReason);
551 VerifyRecordedDecryptionFailureCount(1);
552
553 VerifyRecordedDecryptionFailure("1st call");
554 }
555
529 } // namespace gcm 556 } // namespace gcm
OLDNEW
« no previous file with comments | « components/gcm_driver/gcm_stats_recorder_impl.cc ('k') | components/gcm_driver/resources/gcm_internals.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698