Commit 115ee92a authored by jianli's avatar jianli Committed by Commit bot

[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}
parent de428287
......@@ -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));
......
......@@ -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;
......
......@@ -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, "");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment