Home | History | Annotate | Download | only in net
      1 // Copyright (c) 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_stub.h"
      6 
      7 #include "chromeos/network/network_state.h"
      8 
      9 namespace chromeos {
     10 
     11 NetworkPortalDetectorStub::NetworkPortalDetectorStub() {}
     12 
     13 NetworkPortalDetectorStub::~NetworkPortalDetectorStub() {
     14 }
     15 
     16 void NetworkPortalDetectorStub::Init() {
     17 }
     18 
     19 void NetworkPortalDetectorStub::Shutdown() {
     20 }
     21 
     22 void NetworkPortalDetectorStub::AddObserver(Observer* observer) {
     23   if (observer && !observers_.HasObserver(observer))
     24     observers_.AddObserver(observer);
     25 }
     26 
     27 void NetworkPortalDetectorStub::AddAndFireObserver(Observer* observer) {
     28   AddObserver(observer);
     29   if (!observer)
     30     return;
     31   if (!default_network_ ||
     32       !portal_state_map_.count(default_network_->path())) {
     33     observer->OnPortalDetectionCompleted(default_network_.get(),
     34                                          CaptivePortalState());
     35   } else {
     36     observer->OnPortalDetectionCompleted(
     37         default_network_.get(),
     38         portal_state_map_[default_network_->path()]);
     39   }
     40 }
     41 
     42 void NetworkPortalDetectorStub::RemoveObserver(Observer* observer) {
     43   if (observer)
     44     observers_.RemoveObserver(observer);
     45 }
     46 
     47 NetworkPortalDetector::CaptivePortalState
     48 NetworkPortalDetectorStub::GetCaptivePortalState(
     49     const chromeos::NetworkState* network) {
     50   if (!network || !portal_state_map_.count(network->path()))
     51     return CaptivePortalState();
     52   return portal_state_map_[network->path()];
     53 }
     54 
     55 bool NetworkPortalDetectorStub::IsEnabled() {
     56   return true;
     57 }
     58 
     59 void NetworkPortalDetectorStub::Enable(bool start_detection) {
     60 }
     61 
     62 bool NetworkPortalDetectorStub::StartDetectionIfIdle() {
     63   return false;
     64 }
     65 
     66 void NetworkPortalDetectorStub::EnableLazyDetection() {
     67 }
     68 
     69 void NetworkPortalDetectorStub::DisableLazyDetection() {
     70 }
     71 
     72 void NetworkPortalDetectorStub::SetDefaultNetworkPathForTesting(
     73     const std::string& service_path) {
     74   if (service_path.empty())
     75     default_network_.reset();
     76   else
     77     default_network_.reset(new NetworkState(service_path));
     78 }
     79 
     80 void NetworkPortalDetectorStub::SetDetectionResultsForTesting(
     81     const std::string& service_path,
     82     const CaptivePortalState& state) {
     83   if (service_path.empty())
     84     return;
     85   portal_state_map_[service_path] = state;
     86 }
     87 
     88 void NetworkPortalDetectorStub::NotifyObserversForTesting() {
     89   CaptivePortalState state;
     90   if (default_network_ &&
     91       portal_state_map_.count(default_network_->path())) {
     92     state = portal_state_map_[default_network_->path()];
     93   }
     94   FOR_EACH_OBSERVER(Observer, observers_,
     95                     OnPortalDetectionCompleted(default_network_.get(), state));
     96 }
     97 
     98 }  // namespace chromeos
     99