Commit d15b231e authored by Kartik Hegde's avatar Kartik Hegde Committed by Commit Bot

network_context: Add fake network context

Introduce the fake network context class, used by unit tests, to avoid
duplication across multiple routines.

BUG=chromium:956783
TEST=none

Change-Id: I536a208c32a6454c832847325eb3d933d357b40c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2434092Reviewed-by: default avatarSteven Bennetts <stevenjb@chromium.org>
Commit-Queue: Kartik Hegde <khegde@chromium.org>
Cr-Commit-Position: refs/heads/master@{#812443}
parent 96d291f1
......@@ -3419,6 +3419,8 @@ source_set("unit_tests") {
"net/network_diagnostics/dns_resolver_present_routine_unittest.cc",
"net/network_diagnostics/fake_host_resolver.cc",
"net/network_diagnostics/fake_host_resolver.h",
"net/network_diagnostics/fake_network_context.cc",
"net/network_diagnostics/fake_network_context.h",
"net/network_diagnostics/gateway_can_be_pinged_routine_unittest.cc",
"net/network_diagnostics/has_secure_wifi_connection_routine_unittest.cc",
"net/network_diagnostics/http_firewall_routine_unittest.cc",
......
// Copyright 2020 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 "chrome/browser/chromeos/net/network_diagnostics/fake_network_context.h"
#include <utility>
namespace chromeos {
namespace network_diagnostics {
FakeNetworkContext::FakeNetworkContext() = default;
FakeNetworkContext::~FakeNetworkContext() = default;
void FakeNetworkContext::CreateHostResolver(
const base::Optional<net::DnsConfigOverrides>& config_overrides,
mojo::PendingReceiver<network::mojom::HostResolver> receiver) {
DCHECK(!resolver_);
resolver_ = std::make_unique<FakeHostResolver>(std::move(receiver));
resolver_->set_fake_dns_results(std::move(fake_dns_results_));
}
} // namespace network_diagnostics
} // namespace chromeos
// Copyright 2020 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.
#ifndef CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_FAKE_NETWORK_CONTEXT_H_
#define CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_FAKE_NETWORK_CONTEXT_H_
#include <deque>
#include <memory>
#include "chrome/browser/chromeos/net/network_diagnostics/fake_host_resolver.h"
#include "services/network/test/test_network_context.h"
namespace chromeos {
namespace network_diagnostics {
// Used in unit tests, the FakeNetworkContext class simulates the behavior of a
// network context.
class FakeNetworkContext : public network::TestNetworkContext {
public:
FakeNetworkContext();
~FakeNetworkContext() override;
// network::TestNetworkContext:
void CreateHostResolver(
const base::Optional<net::DnsConfigOverrides>& config_overrides,
mojo::PendingReceiver<network::mojom::HostResolver> receiver) override;
// Sets the fake dns results.
void set_fake_dns_results(
std::deque<FakeHostResolver::DnsResult*> fake_dns_results) {
fake_dns_results_ = std::move(fake_dns_results);
}
private:
std::unique_ptr<FakeHostResolver> resolver_;
std::deque<FakeHostResolver::DnsResult*> fake_dns_results_;
};
} // namespace network_diagnostics
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_NET_NETWORK_DIAGNOSTICS_FAKE_NETWORK_CONTEXT_H_
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