| Index: chrome/browser/local_discovery/privet_url_fetcher_unittest.cc
|
| diff --git a/chrome/browser/local_discovery/privet_url_fetcher_unittest.cc b/chrome/browser/local_discovery/privet_url_fetcher_unittest.cc
|
| deleted file mode 100644
|
| index 3219f46c4a77cf0c900c18a68f393b921f9be186..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/local_discovery/privet_url_fetcher_unittest.cc
|
| +++ /dev/null
|
| @@ -1,302 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/location.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "base/thread_task_runner_handle.h"
|
| -#include "chrome/browser/local_discovery/privet_url_fetcher.h"
|
| -#include "net/url_request/test_url_fetcher_factory.h"
|
| -#include "net/url_request/url_request_test_util.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using testing::StrictMock;
|
| -
|
| -namespace local_discovery {
|
| -
|
| -namespace {
|
| -
|
| -const char kSamplePrivetURL[] =
|
| - "http://10.0.0.8:7676/privet/register?action=start";
|
| -const char kSamplePrivetToken[] = "MyToken";
|
| -const char kEmptyPrivetToken[] = "\"\"";
|
| -
|
| -const char kSampleParsableJSON[] = "{ \"hello\" : 2 }";
|
| -const char kSampleUnparsableJSON[] = "{ \"hello\" : }";
|
| -const char kSampleJSONWithError[] = "{ \"error\" : \"unittest_example\" }";
|
| -
|
| -class MockPrivetURLFetcherDelegate : public PrivetURLFetcher::Delegate {
|
| - public:
|
| - MockPrivetURLFetcherDelegate() : raw_mode_(false) {
|
| - }
|
| -
|
| - ~MockPrivetURLFetcherDelegate() override {
|
| - }
|
| -
|
| - void OnError(PrivetURLFetcher* fetcher,
|
| - PrivetURLFetcher::ErrorType error) override {
|
| - OnErrorInternal(error);
|
| - }
|
| -
|
| - MOCK_METHOD1(OnErrorInternal, void(PrivetURLFetcher::ErrorType error));
|
| -
|
| - void OnParsedJson(PrivetURLFetcher* fetcher,
|
| - const base::DictionaryValue& value,
|
| - bool has_error) override {
|
| - saved_value_.reset(value.DeepCopy());
|
| - OnParsedJsonInternal(has_error);
|
| - }
|
| -
|
| - MOCK_METHOD1(OnParsedJsonInternal, void(bool has_error));
|
| -
|
| - virtual void OnNeedPrivetToken(
|
| - PrivetURLFetcher* fetcher,
|
| - const PrivetURLFetcher::TokenCallback& callback) {
|
| - }
|
| -
|
| - bool OnRawData(PrivetURLFetcher* fetcher,
|
| - bool response_is_file,
|
| - const std::string& data,
|
| - const base::FilePath& response_file) {
|
| - if (!raw_mode_) return false;
|
| -
|
| - if (response_is_file) {
|
| - EXPECT_TRUE(response_file != base::FilePath());
|
| - OnFileInternal();
|
| - } else {
|
| - OnRawDataInternal(data);
|
| - }
|
| -
|
| - return true;
|
| - }
|
| -
|
| - MOCK_METHOD1(OnRawDataInternal, void(const std::string& data));
|
| -
|
| - MOCK_METHOD0(OnFileInternal, void());
|
| -
|
| - const base::DictionaryValue* saved_value() { return saved_value_.get(); }
|
| -
|
| - void SetRawMode(bool raw_mode) {
|
| - raw_mode_ = raw_mode;
|
| - }
|
| -
|
| - private:
|
| - scoped_ptr<base::DictionaryValue> saved_value_;
|
| - bool raw_mode_;
|
| -};
|
| -
|
| -class PrivetURLFetcherTest : public ::testing::Test {
|
| - public:
|
| - PrivetURLFetcherTest() {
|
| - request_context_ = new net::TestURLRequestContextGetter(
|
| - base::ThreadTaskRunnerHandle::Get());
|
| - privet_urlfetcher_.reset(new PrivetURLFetcher(
|
| - GURL(kSamplePrivetURL),
|
| - net::URLFetcher::POST,
|
| - request_context_.get(),
|
| - &delegate_));
|
| -
|
| - PrivetURLFetcher::SetTokenForHost(GURL(kSamplePrivetURL).GetOrigin().spec(),
|
| - kSamplePrivetToken);
|
| - }
|
| - virtual ~PrivetURLFetcherTest() {
|
| - }
|
| -
|
| - void RunFor(base::TimeDelta time_period) {
|
| - base::CancelableCallback<void()> callback(base::Bind(
|
| - &PrivetURLFetcherTest::Stop, base::Unretained(this)));
|
| - base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
|
| - FROM_HERE, callback.callback(), time_period);
|
| -
|
| - base::MessageLoop::current()->Run();
|
| - callback.Cancel();
|
| - }
|
| -
|
| - void Stop() { base::MessageLoop::current()->QuitWhenIdle(); }
|
| -
|
| - protected:
|
| - base::MessageLoop loop_;
|
| - scoped_refptr<net::TestURLRequestContextGetter> request_context_;
|
| - net::TestURLFetcherFactory fetcher_factory_;
|
| - scoped_ptr<PrivetURLFetcher> privet_urlfetcher_;
|
| - StrictMock<MockPrivetURLFetcherDelegate> delegate_;
|
| -};
|
| -
|
| -TEST_F(PrivetURLFetcherTest, FetchSuccess) {
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseString(kSampleParsableJSON);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(200);
|
| -
|
| - EXPECT_CALL(delegate_, OnParsedJsonInternal(false));
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -
|
| - const base::DictionaryValue* value = delegate_.saved_value();
|
| - int hello_value;
|
| - ASSERT_TRUE(value != NULL);
|
| - ASSERT_TRUE(value->GetInteger("hello", &hello_value));
|
| - EXPECT_EQ(2, hello_value);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, HTTP503Retry) {
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseString(kSampleParsableJSON);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(503);
|
| -
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -
|
| - RunFor(base::TimeDelta::FromSeconds(7));
|
| - fetcher = fetcher_factory_.GetFetcherByID(0);
|
| -
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseString(kSampleParsableJSON);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(200);
|
| -
|
| - EXPECT_CALL(delegate_, OnParsedJsonInternal(false));
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, ResponseCodeError) {
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseString(kSampleParsableJSON);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(404);
|
| -
|
| - EXPECT_CALL(delegate_,
|
| - OnErrorInternal(PrivetURLFetcher::RESPONSE_CODE_ERROR));
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, JsonParseError) {
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseString(kSampleUnparsableJSON);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(200);
|
| -
|
| - EXPECT_CALL(delegate_,
|
| - OnErrorInternal(PrivetURLFetcher::JSON_PARSE_ERROR));
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, Header) {
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - net::HttpRequestHeaders headers;
|
| - fetcher->GetExtraRequestHeaders(&headers);
|
| -
|
| - std::string header_token;
|
| - ASSERT_TRUE(headers.GetHeader("X-Privet-Token", &header_token));
|
| - EXPECT_EQ(kSamplePrivetToken, header_token);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, Header2) {
|
| - PrivetURLFetcher::SetTokenForHost(GURL(kSamplePrivetURL).GetOrigin().spec(),
|
| - "");
|
| -
|
| - privet_urlfetcher_->SendEmptyPrivetToken();
|
| - privet_urlfetcher_->Start();
|
| -
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - net::HttpRequestHeaders headers;
|
| - fetcher->GetExtraRequestHeaders(&headers);
|
| -
|
| - std::string header_token;
|
| - ASSERT_TRUE(headers.GetHeader("X-Privet-Token", &header_token));
|
| - EXPECT_EQ(kEmptyPrivetToken, header_token);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, AlwaysSendEmpty) {
|
| - PrivetURLFetcher::SetTokenForHost(GURL(kSamplePrivetURL).GetOrigin().spec(),
|
| - "SampleToken");
|
| -
|
| - privet_urlfetcher_->SendEmptyPrivetToken();
|
| - privet_urlfetcher_->Start();
|
| -
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - net::HttpRequestHeaders headers;
|
| - fetcher->GetExtraRequestHeaders(&headers);
|
| -
|
| - std::string header_token;
|
| - ASSERT_TRUE(headers.GetHeader("X-Privet-Token", &header_token));
|
| - EXPECT_EQ(kEmptyPrivetToken, header_token);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, FetchHasError) {
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseString(kSampleJSONWithError);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(200);
|
| -
|
| - EXPECT_CALL(delegate_, OnParsedJsonInternal(true));
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, FetcherRawData) {
|
| - delegate_.SetRawMode(true);
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseString(kSampleJSONWithError);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(200);
|
| -
|
| - EXPECT_CALL(delegate_, OnRawDataInternal(kSampleJSONWithError));
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, RangeRequest) {
|
| - delegate_.SetRawMode(true);
|
| - privet_urlfetcher_->SetByteRange(200, 300);
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - net::HttpRequestHeaders headers;
|
| - fetcher->GetExtraRequestHeaders(&headers);
|
| -
|
| - std::string header_range;
|
| - ASSERT_TRUE(headers.GetHeader("Range", &header_range));
|
| - EXPECT_EQ("bytes=200-300", header_range);
|
| -}
|
| -
|
| -TEST_F(PrivetURLFetcherTest, FetcherToFile) {
|
| - delegate_.SetRawMode(true);
|
| - privet_urlfetcher_->SaveResponseToFile();
|
| - privet_urlfetcher_->Start();
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - ASSERT_TRUE(fetcher != NULL);
|
| - fetcher->SetResponseFilePath(
|
| - base::FilePath(FILE_PATH_LITERAL("sample/file")));
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(200);
|
| -
|
| - EXPECT_CALL(delegate_, OnFileInternal());
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -} // namespace local_discovery
|
|
|