| Index: chrome/browser/extensions/api/gcd_private/privet_v3_session_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/gcd_private/privet_v3_session_unittest.cc b/chrome/browser/extensions/api/gcd_private/privet_v3_session_unittest.cc
|
| index 0411ca02dff09fc35b2dd5b08403b9076a38957c..ba5ec9060a3ce1d328b75f4106fd0f8443d6d674 100644
|
| --- a/chrome/browser/extensions/api/gcd_private/privet_v3_session_unittest.cc
|
| +++ b/chrome/browser/extensions/api/gcd_private/privet_v3_session_unittest.cc
|
| @@ -10,6 +10,7 @@
|
| #include "base/thread_task_runner_handle.h"
|
| #include "chrome/browser/local_discovery/privet_http.h"
|
| #include "chrome/common/chrome_switches.h"
|
| +#include "content/public/test/test_browser_thread_bundle.h"
|
| #include "content/public/test/test_utils.h"
|
| #include "crypto/hmac.h"
|
| #include "crypto/p224_spake.h"
|
| @@ -48,47 +49,13 @@ const char kInfoResponse[] =
|
| " \"crypto\":[\"p224_spake2\"]"
|
| "}}";
|
|
|
| -class MockPrivetHTTPClient : public PrivetHTTPClient {
|
| - public:
|
| - MockPrivetHTTPClient() {
|
| - request_context_ = new net::TestURLRequestContextGetter(
|
| - base::ThreadTaskRunnerHandle::Get());
|
| - }
|
| -
|
| - MOCK_METHOD0(GetName, const std::string&());
|
| - MOCK_METHOD1(
|
| - CreateInfoOperationPtr,
|
| - PrivetJSONOperation*(const PrivetJSONOperation::ResultCallback&));
|
| - MOCK_METHOD2(SwitchToHttps, void(uint16_t, const net::SHA256HashValue&));
|
| - MOCK_CONST_METHOD0(IsInHttpsMode, bool());
|
| - MOCK_CONST_METHOD0(GetHost, std::string());
|
| -
|
| - void RefreshPrivetToken(
|
| - const PrivetURLFetcher::TokenCallback& callback) override {
|
| - FAIL();
|
| - }
|
| -
|
| - scoped_ptr<PrivetJSONOperation> CreateInfoOperation(
|
| - const PrivetJSONOperation::ResultCallback& callback) override {
|
| - return make_scoped_ptr(CreateInfoOperationPtr(callback));
|
| - }
|
| -
|
| - scoped_ptr<PrivetURLFetcher> CreateURLFetcher(
|
| - const GURL& url,
|
| - net::URLFetcher::RequestType request_type,
|
| - PrivetURLFetcher::Delegate* delegate) override {
|
| - return make_scoped_ptr(new PrivetURLFetcher(
|
| - url, request_type, request_context_.get(), delegate));
|
| - }
|
| -
|
| - scoped_refptr<net::TestURLRequestContextGetter> request_context_;
|
| -};
|
| -
|
| } // namespace
|
|
|
| class PrivetV3SessionTest : public testing::Test {
|
| public:
|
| - PrivetV3SessionTest() : fetcher_factory_(nullptr) {}
|
| + PrivetV3SessionTest()
|
| + : thread_bundle_(content::TestBrowserThreadBundle::REAL_IO_THREAD),
|
| + fetcher_factory_(nullptr) {}
|
|
|
| void OnInitialized(Result result, const base::DictionaryValue& info) {
|
| info_.MergeDictionary(&info);
|
| @@ -106,21 +73,21 @@ class PrivetV3SessionTest : public testing::Test {
|
| base::CommandLine::ForCurrentProcess()->AppendSwitch(
|
| switches::kEnablePrivetV3);
|
|
|
| - http_client_ = new StrictMock<MockPrivetHTTPClient>();
|
| - session_.reset(new PrivetV3Session(make_scoped_ptr(http_client_)));
|
| + scoped_refptr<net::TestURLRequestContextGetter> context_getter =
|
| + new net::TestURLRequestContextGetter(
|
| + content::BrowserThread::GetMessageLoopProxyForThread(
|
| + content::BrowserThread::IO));
|
| +
|
| + session_.reset(
|
| + new PrivetV3Session(context_getter, net::HostPortPair("host", 80)));
|
|
|
| session_->on_post_data_ =
|
| base::Bind(&PrivetV3SessionTest::OnPostData, base::Unretained(this));
|
| -
|
| - EXPECT_CALL(*http_client_, IsInHttpsMode()).WillRepeatedly(Return(false));
|
| - EXPECT_CALL(*http_client_, GetHost()).WillRepeatedly(Return("1.1.1.1"));
|
| }
|
|
|
| - base::MessageLoop loop_;
|
| + content::TestBrowserThreadBundle thread_bundle_;
|
| net::FakeURLFetcherFactory fetcher_factory_;
|
| - StrictMock<MockPrivetHTTPClient>* http_client_ = nullptr;
|
| base::DictionaryValue info_;
|
| - base::Closure quit_closure_;
|
| scoped_ptr<PrivetV3Session> session_;
|
| };
|
|
|
| @@ -234,14 +201,6 @@ TEST_F(PrivetV3SessionTest, Pairing) {
|
| ASSERT_EQ(sizeof(sha_fingerprint.data), fingerprint.size());
|
| memcpy(sha_fingerprint.data, fingerprint.data(), fingerprint.size());
|
|
|
| - EXPECT_CALL(*http_client_,
|
| - SwitchToHttps(443, Field(&net::SHA256HashValue::data,
|
| - ElementsAreArray(sha_fingerprint.data))))
|
| - .WillOnce(InvokeWithoutArgs([this]() {
|
| - EXPECT_CALL(*http_client_, IsInHttpsMode())
|
| - .WillRepeatedly(Return(true));
|
| - }));
|
| -
|
| EXPECT_CALL(*this, OnCodeConfirmed(Result::STATUS_SUCCESS)).Times(1);
|
| EXPECT_CALL(*this, OnPostData(_))
|
| .WillOnce(Invoke(
|
| @@ -291,7 +250,7 @@ TEST_F(PrivetV3SessionTest, Pairing) {
|
| EXPECT_TRUE(hmac.Verify("testId", access_token));
|
|
|
| fetcher_factory_.SetFakeResponse(
|
| - GURL("http://host/privet/v3/auth"),
|
| + GURL("https://host/privet/v3/auth"),
|
| "{\"accessToken\":\"567\",\"tokenType\":\"testType\","
|
| "\"scope\":\"owner\"}",
|
| net::HTTP_OK, net::URLRequestStatus::SUCCESS);
|
| @@ -315,8 +274,6 @@ TEST_F(PrivetV3SessionTest, Cancel) {
|
| base::Bind(&PrivetV3SessionTest::OnInitialized, base::Unretained(this)));
|
| base::RunLoop().RunUntilIdle();
|
|
|
| - EXPECT_CALL(*http_client_, IsInHttpsMode()).WillRepeatedly(Return(false));
|
| -
|
| EXPECT_CALL(*this, OnPairingStarted(Result::STATUS_SUCCESS)).Times(1);
|
| EXPECT_CALL(*this, OnPostData(_))
|
| .WillOnce(Invoke([this](const base::DictionaryValue& data) {
|
| @@ -342,6 +299,9 @@ TEST_F(PrivetV3SessionTest, Cancel) {
|
| std::string session_id;
|
| EXPECT_TRUE(data.GetString("sessionId", &session_id));
|
| }));
|
| +
|
| + session_.reset();
|
| + base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| // TODO(vitalybuka): replace PrivetHTTPClient with regular URL fetcher and
|
|
|