diff options
author | jianli <jianli@chromium.org> | 2014-10-17 14:03:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-17 21:04:47 +0000 |
commit | 115ee92adaf5b74f20a6dd0cec419fd2ce569fc1 (patch) | |
tree | 3310e7e5c34e9c45f9933b74cf07029d5dbbc87d /components/gcm_driver | |
parent | de428287a0c411b6c05f9428a0d00c40aee801f9 (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | components/gcm_driver/gcm_channel_status_request.h | 3 | ||||
-rw-r--r-- | components/gcm_driver/gcm_channel_status_request_unittest.cc | 24 |
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, ""); |