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