103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// found in the LICENSE file. 403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "remoting/test/fake_network_manager.h" 603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "base/bind.h" 803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "base/logging.h" 903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "base/message_loop/message_loop.h" 1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "jingle/glue/utils.h" 1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "third_party/webrtc/base/socketaddress.h" 1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace remoting { 1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)FakeNetworkManager::FakeNetworkManager(const rtc::IPAddress& address) 1603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) : started_(false), 1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) weak_factory_(this) { 1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) network_.reset(new rtc::Network("fake", "Fake Network", address, 32)); 1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) network_->AddIP(address); 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)FakeNetworkManager::~FakeNetworkManager() { 2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void FakeNetworkManager::StartUpdating() { 2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) started_ = true; 2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) base::MessageLoop::current()->PostTask( 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) FROM_HERE, 2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) base::Bind(&FakeNetworkManager::SendNetworksChangedSignal, 3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) weak_factory_.GetWeakPtr())); 3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 3303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void FakeNetworkManager::StopUpdating() { 3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) started_ = false; 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void FakeNetworkManager::GetNetworks(NetworkList* networks) const { 3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) networks->clear(); 3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) networks->push_back(network_.get()); 4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)void FakeNetworkManager::SendNetworksChangedSignal() { 4303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) SignalNetworksChanged(); 4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 4503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 4603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace remoting 47