Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Unified Diff: components/grpc_support/test/get_stream_engine.cc

Issue 2487863003: Revert of Revert "Revert of Moving gRPC support interfaces out of cronet and into a new component. (patchset … (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/grpc_support/test/get_stream_engine.h ('k') | components/grpc_support/test/quic_test_server.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/grpc_support/test/get_stream_engine.cc
diff --git a/components/grpc_support/test/get_stream_engine.cc b/components/grpc_support/test/get_stream_engine.cc
deleted file mode 100644
index 07dc51453e6fec6464da1b01eceb19534c452ffe..0000000000000000000000000000000000000000
--- a/components/grpc_support/test/get_stream_engine.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright 2016 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/lazy_instance.h"
-#include "base/macros.h"
-#include "base/memory/ptr_util.h"
-#include "base/memory/ref_counted.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/stringprintf.h"
-#include "base/threading/thread.h"
-#include "components/grpc_support/include/bidirectional_stream_c.h"
-#include "components/grpc_support/test/quic_test_server.h"
-#include "net/base/host_port_pair.h"
-#include "net/cert/mock_cert_verifier.h"
-#include "net/dns/mapped_host_resolver.h"
-#include "net/dns/mock_host_resolver.h"
-#include "net/http/http_server_properties_impl.h"
-#include "net/url_request/url_request_test_util.h"
-
-namespace grpc_support {
-namespace {
-
-// URLRequestContextGetter for BidirectionalStreamTest. This is used instead of
-// net::TestURLRequestContextGetter because the URLRequestContext needs to be
-// created on the test_io_thread_ for the test, and TestURLRequestContextGetter
-// does not allow for lazy instantiation of the URLRequestContext if additional
-// setup is required.
-class BidirectionalStreamTestURLRequestContextGetter
- : public net::URLRequestContextGetter {
- public:
- BidirectionalStreamTestURLRequestContextGetter(
- const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
- : task_runner_(task_runner) {}
-
- net::URLRequestContext* GetURLRequestContext() override {
- if (!request_context_.get()) {
- request_context_.reset(
- new net::TestURLRequestContext(true /* delay_initialization */));
- auto mock_host_resolver = base::MakeUnique<net::MockHostResolver>();
- host_resolver_.reset(
- new net::MappedHostResolver(std::move(mock_host_resolver)));
- UpdateHostResolverRules();
- mock_cert_verifier_.reset(new net::MockCertVerifier());
- mock_cert_verifier_->set_default_result(net::OK);
- server_properties_.reset(new net::HttpServerPropertiesImpl());
-
- // Need to enable QUIC for the test server.
- auto params = base::MakeUnique<net::HttpNetworkSession::Params>();
- params->enable_quic = true;
- params->enable_http2 = true;
- net::AlternativeService alternative_service(net::AlternateProtocol::QUIC,
- "", 443);
- url::SchemeHostPort quic_hint_server("https", kTestServerHost, 443);
- server_properties_->SetAlternativeService(
- quic_hint_server, alternative_service, base::Time::Max());
- params->quic_host_whitelist.insert(kTestServerHost);
-
- request_context_->set_cert_verifier(mock_cert_verifier_.get());
- request_context_->set_host_resolver(host_resolver_.get());
- request_context_->set_http_server_properties(server_properties_.get());
- request_context_->set_http_network_session_params(std::move(params));
-
- request_context_->Init();
- }
- return request_context_.get();
- }
-
- scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner()
- const override {
- return task_runner_;
- }
-
- void SetTestServerPort(int port) {
- test_server_port_ = port;
- UpdateHostResolverRules();
- }
-
- private:
- void UpdateHostResolverRules() {
- if (!host_resolver_)
- return;
- host_resolver_->SetRulesFromString(
- base::StringPrintf("MAP notfound.example.com ~NOTFOUND,"
- "MAP test.example.com 127.0.0.1:%d",
- test_server_port_));
- }
- ~BidirectionalStreamTestURLRequestContextGetter() override {}
-
- int test_server_port_;
- std::unique_ptr<net::HttpServerProperties> server_properties_;
- std::unique_ptr<net::MockCertVerifier> mock_cert_verifier_;
- std::unique_ptr<net::MappedHostResolver> host_resolver_;
- std::unique_ptr<net::TestURLRequestContext> request_context_;
- scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
-
- DISALLOW_COPY_AND_ASSIGN(BidirectionalStreamTestURLRequestContextGetter);
-};
-
-base::LazyInstance<
- scoped_refptr<BidirectionalStreamTestURLRequestContextGetter>>
- ::Leaky g_request_context_getter_ = LAZY_INSTANCE_INITIALIZER;
-bool g_initialized_ = false;
-
-} // namespace
-
-void CreateRequestContextGetterIfNecessary() {
- if (!g_initialized_) {
- g_initialized_ = true;
- static base::Thread* test_io_thread_ =
- new base::Thread("grpc_support_test_io_thread");
- base::Thread::Options options;
- options.message_loop_type = base::MessageLoop::TYPE_IO;
- DCHECK(test_io_thread_->StartWithOptions(options));
-
- g_request_context_getter_.Get() =
- new BidirectionalStreamTestURLRequestContextGetter(
- test_io_thread_->task_runner());
- }
-}
-
-stream_engine* GetTestStreamEngine(int port) {
- CreateRequestContextGetterIfNecessary();
- g_request_context_getter_.Get()->SetTestServerPort(port);
- static stream_engine engine;
- engine.obj = g_request_context_getter_.Get().get();
- return &engine;
-}
-
-} // namespace grpc_support
« no previous file with comments | « components/grpc_support/test/get_stream_engine.h ('k') | components/grpc_support/test/quic_test_server.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698