1// Copyright 2013 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 5#include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h" 6 7#include "chromeos/network/network_state.h" 8 9namespace chromeos { 10 11NetworkPortalDetectorTestImpl::NetworkPortalDetectorTestImpl() 12 : strategy_id_(PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN) { 13} 14 15NetworkPortalDetectorTestImpl::~NetworkPortalDetectorTestImpl() { 16} 17 18void NetworkPortalDetectorTestImpl::SetDefaultNetworkForTesting( 19 const std::string& guid) { 20 DVLOG(1) << "SetDefaultNetworkForTesting: " << guid; 21 if (guid.empty()) { 22 default_network_.reset(); 23 } else { 24 default_network_.reset(new NetworkState("/service/" + guid)); 25 default_network_->SetGuid(guid); 26 } 27} 28 29void NetworkPortalDetectorTestImpl::SetDetectionResultsForTesting( 30 const std::string& guid, 31 const CaptivePortalState& state) { 32 DVLOG(1) << "SetDetectionResultsForTesting: " << guid << " = " 33 << NetworkPortalDetector::CaptivePortalStatusString(state.status); 34 if (!guid.empty()) 35 portal_state_map_[guid] = state; 36} 37 38void NetworkPortalDetectorTestImpl::NotifyObserversForTesting() { 39 CaptivePortalState state; 40 if (default_network_ && portal_state_map_.count(default_network_->guid())) 41 state = portal_state_map_[default_network_->guid()]; 42 FOR_EACH_OBSERVER(Observer, observers_, 43 OnPortalDetectionCompleted(default_network_.get(), state)); 44} 45 46void NetworkPortalDetectorTestImpl::AddObserver(Observer* observer) { 47 if (observer && !observers_.HasObserver(observer)) 48 observers_.AddObserver(observer); 49} 50 51void NetworkPortalDetectorTestImpl::AddAndFireObserver(Observer* observer) { 52 AddObserver(observer); 53 if (!observer) 54 return; 55 if (!default_network_ || !portal_state_map_.count(default_network_->guid())) { 56 observer->OnPortalDetectionCompleted(default_network_.get(), 57 CaptivePortalState()); 58 } else { 59 observer->OnPortalDetectionCompleted( 60 default_network_.get(), portal_state_map_[default_network_->guid()]); 61 } 62} 63 64void NetworkPortalDetectorTestImpl::RemoveObserver(Observer* observer) { 65 if (observer) 66 observers_.RemoveObserver(observer); 67} 68 69NetworkPortalDetector::CaptivePortalState 70NetworkPortalDetectorTestImpl::GetCaptivePortalState( 71 const std::string& guid) { 72 CaptivePortalStateMap::iterator it = portal_state_map_.find(guid); 73 if (it == portal_state_map_.end()) { 74 DVLOG(2) << "GetCaptivePortalState Not found: " << guid; 75 return CaptivePortalState(); 76 } 77 DVLOG(2) << "GetCaptivePortalState: " << guid << " = " 78 << CaptivePortalStatusString(it->second.status); 79 return it->second; 80} 81 82bool NetworkPortalDetectorTestImpl::IsEnabled() { 83 return true; 84} 85 86void NetworkPortalDetectorTestImpl::Enable(bool start_detection) { 87} 88 89bool NetworkPortalDetectorTestImpl::StartDetectionIfIdle() { 90 return false; 91} 92 93void NetworkPortalDetectorTestImpl::SetStrategy( 94 PortalDetectorStrategy::StrategyId id) { 95 strategy_id_ = id; 96} 97 98} // namespace chromeos 99