blob: 65e3f96be43cb039c77e23041a275c1b9f8ff274 [file] [log] [blame]
rche11300ef2016-09-02 01:44:281// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
mgershaf9a9232017-04-13 20:19:035#include "net/base/mock_network_change_notifier.h"
rche11300ef2016-09-02 01:44:286
7#include "base/run_loop.h"
8
9namespace net {
10namespace test {
11
12MockNetworkChangeNotifier::MockNetworkChangeNotifier()
rchd6163f32017-01-30 23:50:3813 : force_network_handles_supported_(false),
14 connection_type_(CONNECTION_UNKNOWN) {}
Chris Watkins68b15032017-12-01 03:07:1315MockNetworkChangeNotifier::~MockNetworkChangeNotifier() = default;
rche11300ef2016-09-02 01:44:2816
17MockNetworkChangeNotifier::ConnectionType
18MockNetworkChangeNotifier::GetCurrentConnectionType() const {
rchd6163f32017-01-30 23:50:3819 return connection_type_;
rche11300ef2016-09-02 01:44:2820}
21
22void MockNetworkChangeNotifier::ForceNetworkHandlesSupported() {
23 force_network_handles_supported_ = true;
24}
25
26bool MockNetworkChangeNotifier::AreNetworkHandlesCurrentlySupported() const {
27 return force_network_handles_supported_;
28}
29
30void MockNetworkChangeNotifier::SetConnectedNetworksList(
31 const NetworkList& network_list) {
32 connected_networks_ = network_list;
33}
34
35void MockNetworkChangeNotifier::GetCurrentConnectedNetworks(
36 NetworkList* network_list) const {
37 network_list->clear();
38 *network_list = connected_networks_;
39}
40
41void MockNetworkChangeNotifier::NotifyNetworkMadeDefault(
42 NetworkChangeNotifier::NetworkHandle network) {
jri9f303712016-09-13 01:10:2243 QueueNetworkMadeDefault(network);
rche11300ef2016-09-02 01:44:2844 // Spin the message loop so the notification is delivered.
45 base::RunLoop().RunUntilIdle();
46}
47
jri9f303712016-09-13 01:10:2248void MockNetworkChangeNotifier::QueueNetworkMadeDefault(
49 NetworkChangeNotifier::NetworkHandle network) {
50 NetworkChangeNotifier::NotifyObserversOfSpecificNetworkChange(
51 NetworkChangeNotifier::MADE_DEFAULT, network);
52}
53
rche11300ef2016-09-02 01:44:2854void MockNetworkChangeNotifier::NotifyNetworkDisconnected(
55 NetworkChangeNotifier::NetworkHandle network) {
jri9f303712016-09-13 01:10:2256 QueueNetworkDisconnected(network);
57 // Spin the message loop so the notification is delivered.
58 base::RunLoop().RunUntilIdle();
59}
60
61void MockNetworkChangeNotifier::QueueNetworkDisconnected(
62 NetworkChangeNotifier::NetworkHandle network) {
rche11300ef2016-09-02 01:44:2863 NetworkChangeNotifier::NotifyObserversOfSpecificNetworkChange(
64 NetworkChangeNotifier::DISCONNECTED, network);
rche11300ef2016-09-02 01:44:2865}
66
jri5b785512016-09-13 04:29:1167void MockNetworkChangeNotifier::NotifyNetworkConnected(
68 NetworkChangeNotifier::NetworkHandle network) {
69 NetworkChangeNotifier::NotifyObserversOfSpecificNetworkChange(
70 NetworkChangeNotifier::CONNECTED, network);
71 // Spin the message loop so the notification is delivered.
72 base::RunLoop().RunUntilIdle();
73}
74
rche11300ef2016-09-02 01:44:2875ScopedMockNetworkChangeNotifier::ScopedMockNetworkChangeNotifier()
76 : disable_network_change_notifier_for_tests_(
77 new NetworkChangeNotifier::DisableForTest()),
78 mock_network_change_notifier_(new MockNetworkChangeNotifier()) {}
79
Chris Watkins68b15032017-12-01 03:07:1380ScopedMockNetworkChangeNotifier::~ScopedMockNetworkChangeNotifier() = default;
rche11300ef2016-09-02 01:44:2881
82MockNetworkChangeNotifier*
83ScopedMockNetworkChangeNotifier::mock_network_change_notifier() {
84 return mock_network_change_notifier_.get();
85}
86
87} // namespace test
88} // namespace net