summaryrefslogtreecommitdiffstats
path: root/components/gcm_driver
diff options
context:
space:
mode:
authorjianli <jianli@chromium.org>2014-10-17 14:03:57 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-17 21:04:47 +0000
commit115ee92adaf5b74f20a6dd0cec419fd2ce569fc1 (patch)
tree3310e7e5c34e9c45f9933b74cf07029d5dbbc87d /components/gcm_driver
parentde428287a0c411b6c05f9428a0d00c40aee801f9 (diff)
downloadchromium_src-115ee92adaf5b74f20a6dd0cec419fd2ce569fc1.zip
chromium_src-115ee92adaf5b74f20a6dd0cec419fd2ce569fc1.tar.gz
chromium_src-115ee92adaf5b74f20a6dd0cec419fd2ce569fc1.tar.bz2
[GCM] DCHECK should not be used since it will skip the code inside
BUG=424697 TEST=Test added Review URL: https://codereview.chromium.org/659393003 Cr-Commit-Position: refs/heads/master@{#300161}
Diffstat (limited to 'components/gcm_driver')
-rw-r--r--components/gcm_driver/gcm_channel_status_request.cc4
-rw-r--r--components/gcm_driver/gcm_channel_status_request.h3
-rw-r--r--components/gcm_driver/gcm_channel_status_request_unittest.cc24
3 files changed, 30 insertions, 1 deletions
diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gcm_driver/gcm_channel_status_request.cc
index 90f3a90..d609f55 100644
--- a/components/gcm_driver/gcm_channel_status_request.cc
+++ b/components/gcm_driver/gcm_channel_status_request.cc
@@ -60,7 +60,9 @@ void GCMChannelStatusRequest::Start() {
sync_pb::ExperimentStatusRequest proto_data;
proto_data.add_experiment_name(kGCMChannelTag);
std::string upload_data;
- DCHECK(proto_data.SerializeToString(&upload_data));
+ if (!proto_data.SerializeToString(&upload_data)) {
+ NOTREACHED();
+ }
url_fetcher_.reset(
net::URLFetcher::Create(request_url, net::URLFetcher::POST, this));
diff --git a/components/gcm_driver/gcm_channel_status_request.h b/components/gcm_driver/gcm_channel_status_request.h
index d7e4f21..e1ddf15 100644
--- a/components/gcm_driver/gcm_channel_status_request.h
+++ b/components/gcm_driver/gcm_channel_status_request.h
@@ -7,6 +7,7 @@
#include "base/callback.h"
#include "base/compiler_specific.h"
+#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
@@ -49,6 +50,8 @@ class GCMChannelStatusRequest : public net::URLFetcherDelegate {
static int min_poll_interval_seconds();
private:
+ FRIEND_TEST_ALL_PREFIXES(GCMChannelStatusRequestTest, RequestData);
+
// Overridden from URLFetcherDelegate:
virtual void OnURLFetchComplete(const net::URLFetcher* source) override;
diff --git a/components/gcm_driver/gcm_channel_status_request_unittest.cc b/components/gcm_driver/gcm_channel_status_request_unittest.cc
index 80db23c..c551503c 100644
--- a/components/gcm_driver/gcm_channel_status_request_unittest.cc
+++ b/components/gcm_driver/gcm_channel_status_request_unittest.cc
@@ -108,6 +108,30 @@ void GCMChannelStatusRequestTest::OnRequestCompleted(
poll_interval_seconds_ = poll_interval_seconds;
}
+TEST_F(GCMChannelStatusRequestTest, RequestData) {
+ StartRequest();
+
+ net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
+ ASSERT_TRUE(fetcher);
+
+ EXPECT_EQ(GURL(request_->channel_status_request_url_),
+ fetcher->GetOriginalURL());
+
+ net::HttpRequestHeaders headers;
+ fetcher->GetExtraRequestHeaders(&headers);
+ std::string user_agent_header;
+ headers.GetHeader("User-Agent", &user_agent_header);
+ EXPECT_FALSE(user_agent_header.empty());
+ EXPECT_EQ(request_->user_agent_, user_agent_header);
+
+ std::string upload_data = fetcher->upload_data();
+ EXPECT_FALSE(upload_data.empty());
+ sync_pb::ExperimentStatusRequest proto_data;
+ proto_data.ParseFromString(upload_data);
+ EXPECT_EQ(1, proto_data.experiment_name_size());
+ EXPECT_EQ("gcm_channel", proto_data.experiment_name(0));
+}
+
TEST_F(GCMChannelStatusRequestTest, ResponseHttpStatusNotOK) {
StartRequest();
SetResponseStatusAndString(net::HTTP_UNAUTHORIZED, "");