network_portal_detector_test_impl.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
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    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
32void 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
41void 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
51void NetworkPortalDetectorTestImpl::AddObserver(Observer* observer) {
52  if (observer && !observers_.HasObserver(observer))
53    observers_.AddObserver(observer);
54}
55
56void 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
71void NetworkPortalDetectorTestImpl::RemoveObserver(Observer* observer) {
72  if (observer)
73    observers_.RemoveObserver(observer);
74}
75
76NetworkPortalDetector::CaptivePortalState
77NetworkPortalDetectorTestImpl::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
89bool NetworkPortalDetectorTestImpl::IsEnabled() {
90  return true;
91}
92
93void NetworkPortalDetectorTestImpl::Enable(bool start_detection) {
94}
95
96bool NetworkPortalDetectorTestImpl::StartDetectionIfIdle() {
97  return false;
98}
99
100void NetworkPortalDetectorTestImpl::SetStrategy(
101    PortalDetectorStrategy::StrategyId id) {
102  strategy_id_ = id;
103}
104
105}  // namespace chromeos
106