Home | History | Annotate | Download | only in net
      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 
      9 namespace chromeos {
     10 
     11 NetworkPortalDetectorTestImpl::NetworkPortalDetectorTestImpl()
     12     : strategy_id_(PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN) {
     13 }
     14 
     15 NetworkPortalDetectorTestImpl::~NetworkPortalDetectorTestImpl() {
     16 }
     17 
     18 void 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 
     29 void 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 
     38 void 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 
     46 void NetworkPortalDetectorTestImpl::AddObserver(Observer* observer) {
     47   if (observer && !observers_.HasObserver(observer))
     48     observers_.AddObserver(observer);
     49 }
     50 
     51 void 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 
     64 void NetworkPortalDetectorTestImpl::RemoveObserver(Observer* observer) {
     65   if (observer)
     66     observers_.RemoveObserver(observer);
     67 }
     68 
     69 NetworkPortalDetector::CaptivePortalState
     70 NetworkPortalDetectorTestImpl::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 
     82 bool NetworkPortalDetectorTestImpl::IsEnabled() {
     83   return true;
     84 }
     85 
     86 void NetworkPortalDetectorTestImpl::Enable(bool start_detection) {
     87 }
     88 
     89 bool NetworkPortalDetectorTestImpl::StartDetectionIfIdle() {
     90   return false;
     91 }
     92 
     93 void NetworkPortalDetectorTestImpl::SetStrategy(
     94     PortalDetectorStrategy::StrategyId id) {
     95   strategy_id_ = id;
     96 }
     97 
     98 }  // namespace chromeos
     99