blob: 65e3f96be43cb039c77e23041a275c1b9f8ff274 [file] [log] [blame]
// Copyright (c) 2012 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 "net/base/mock_network_change_notifier.h"
#include "base/run_loop.h"
namespace net {
namespace test {
MockNetworkChangeNotifier::MockNetworkChangeNotifier()
: force_network_handles_supported_(false),
connection_type_(CONNECTION_UNKNOWN) {}
MockNetworkChangeNotifier::~MockNetworkChangeNotifier() = default;
MockNetworkChangeNotifier::ConnectionType
MockNetworkChangeNotifier::GetCurrentConnectionType() const {
return connection_type_;
}
void MockNetworkChangeNotifier::ForceNetworkHandlesSupported() {
force_network_handles_supported_ = true;
}
bool MockNetworkChangeNotifier::AreNetworkHandlesCurrentlySupported() const {
return force_network_handles_supported_;
}
void MockNetworkChangeNotifier::SetConnectedNetworksList(
const NetworkList& network_list) {
connected_networks_ = network_list;
}
void MockNetworkChangeNotifier::GetCurrentConnectedNetworks(
NetworkList* network_list) const {
network_list->clear();
*network_list = connected_networks_;
}
void MockNetworkChangeNotifier::NotifyNetworkMadeDefault(
NetworkChangeNotifier::NetworkHandle network) {
QueueNetworkMadeDefault(network);
// Spin the message loop so the notification is delivered.
base::RunLoop().RunUntilIdle();
}
void MockNetworkChangeNotifier::QueueNetworkMadeDefault(
NetworkChangeNotifier::NetworkHandle network) {
NetworkChangeNotifier::NotifyObserversOfSpecificNetworkChange(
NetworkChangeNotifier::MADE_DEFAULT, network);
}
void MockNetworkChangeNotifier::NotifyNetworkDisconnected(
NetworkChangeNotifier::NetworkHandle network) {
QueueNetworkDisconnected(network);
// Spin the message loop so the notification is delivered.
base::RunLoop().RunUntilIdle();
}
void MockNetworkChangeNotifier::QueueNetworkDisconnected(
NetworkChangeNotifier::NetworkHandle network) {
NetworkChangeNotifier::NotifyObserversOfSpecificNetworkChange(
NetworkChangeNotifier::DISCONNECTED, network);
}
void MockNetworkChangeNotifier::NotifyNetworkConnected(
NetworkChangeNotifier::NetworkHandle network) {
NetworkChangeNotifier::NotifyObserversOfSpecificNetworkChange(
NetworkChangeNotifier::CONNECTED, network);
// Spin the message loop so the notification is delivered.
base::RunLoop().RunUntilIdle();
}
ScopedMockNetworkChangeNotifier::ScopedMockNetworkChangeNotifier()
: disable_network_change_notifier_for_tests_(
new NetworkChangeNotifier::DisableForTest()),
mock_network_change_notifier_(new MockNetworkChangeNotifier()) {}
ScopedMockNetworkChangeNotifier::~ScopedMockNetworkChangeNotifier() = default;
MockNetworkChangeNotifier*
ScopedMockNetworkChangeNotifier::mock_network_change_notifier() {
return mock_network_change_notifier_.get();
}
} // namespace test
} // namespace net