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