// 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