Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5785)

Unified Diff: chromeos/pairing/fake_controller_pairing_controller.cc

Issue 387163002: Move Chrome OS pairing interface to chrome/browser/chromeos (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Code review fixes Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromeos/pairing/fake_controller_pairing_controller.cc
diff --git a/chromeos/pairing/fake_controller_pairing_controller.cc b/chromeos/pairing/fake_controller_pairing_controller.cc
deleted file mode 100644
index 6be3c90b0272ebe08a4e67f06c739f3aff758004..0000000000000000000000000000000000000000
--- a/chromeos/pairing/fake_controller_pairing_controller.cc
+++ /dev/null
@@ -1,335 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chromeos/pairing/fake_controller_pairing_controller.h"
-
-#include <map>
-
-#include "base/bind.h"
-#include "base/logging.h"
-#include "base/message_loop/message_loop.h"
-#include "base/rand_util.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
-
-namespace chromeos {
-
-FakeControllerPairingController::FakeControllerPairingController(
- const std::string& config)
- : current_stage_(STAGE_NONE),
- should_fail_on_connecting_(false),
- connection_lost_begin_(STAGE_NONE),
- connection_lost_end_(STAGE_NONE),
- enrollment_should_fail_(false) {
- ApplyConfig(config);
- AddObserver(this);
-}
-
-FakeControllerPairingController::~FakeControllerPairingController() {
- RemoveObserver(this);
-}
-
-void FakeControllerPairingController::ApplyConfig(const std::string& config) {
- typedef std::vector<std::string> Tokens;
-
- base::StringPairs kv_pairs;
- CHECK(base::SplitStringIntoKeyValuePairs(config, ':', ',', &kv_pairs))
- << "Wrong config format.";
- std::map<std::string, std::string> dict(kv_pairs.begin(), kv_pairs.end());
-
- if (dict.count("async_duration")) {
- int ms = 0;
- CHECK(base::StringToInt(dict["async_duration"], &ms))
- << "Wrong 'async_duration' format.";
- async_duration_ = base::TimeDelta::FromMilliseconds(ms);
- } else {
- async_duration_ = base::TimeDelta::FromMilliseconds(3000);
- }
-
- should_fail_on_connecting_ =
- dict.count("fail_connecting") && (dict["fail_connecting"] == "1");
-
- enrollment_should_fail_ =
- dict.count("fail_enrollment") && (dict["fail_enrollment"] == "1");
-
- if (dict.count("connection_lost")) {
- Tokens lost_begin_end;
- CHECK(Tokenize(dict["connection_lost"], "-", &lost_begin_end) == 2)
- << "Wrong 'connection_lost' format.";
- int begin = 0;
- int end = 0;
- CHECK(base::StringToInt(lost_begin_end[0], &begin) &&
- base::StringToInt(lost_begin_end[1], &end))
- << "Wrong 'connection_lost' format.";
- CHECK((begin == 0 && end == 0) ||
- (STAGE_WAITING_FOR_CODE_CONFIRMATION <= begin && begin <= end &&
- end <= STAGE_HOST_ENROLLMENT_ERROR))
- << "Wrong 'connection_lost' interval.";
- connection_lost_begin_ = static_cast<Stage>(begin);
- connection_lost_end_ = static_cast<Stage>(end);
- } else {
- connection_lost_begin_ = connection_lost_end_ = STAGE_NONE;
- }
-
- if (!dict.count("discovery")) {
- dict["discovery"] =
- "F-Device_1~F-Device_5~F-Device_3~L-Device_3~L-Device_1~F-Device_1";
- }
- base::StringPairs events;
- CHECK(
- base::SplitStringIntoKeyValuePairs(dict["discovery"], '-', '~', &events))
- << "Wrong 'discovery' format.";
- DiscoveryScenario scenario;
- for (base::StringPairs::const_iterator event = events.begin();
- event != events.end();
- ++event) {
- std::string type = event->first;
- std::string device_id = event->second;
- CHECK(type == "F" || type == "L" || type == "N")
- << "Wrong discovery event type.";
- CHECK(!device_id.empty() || type == "N") << "Empty device ID.";
- scenario.push_back(DiscoveryEvent(
- type == "F" ? DEVICE_FOUND : type == "L" ? DEVICE_LOST : NOTHING_FOUND,
- device_id));
- }
- SetDiscoveryScenario(scenario);
-
- preset_confirmation_code_ = dict["code"];
- CHECK(preset_confirmation_code_.empty() ||
- (preset_confirmation_code_.length() == 6 &&
- preset_confirmation_code_.find_first_not_of("0123456789") ==
- std::string::npos))
- << "Wrong 'code' format.";
-}
-
-void FakeControllerPairingController::SetShouldFailOnConnecting() {
- should_fail_on_connecting_ = true;
-}
-
-void FakeControllerPairingController::SetShouldLoseConnection(Stage stage_begin,
- Stage stage_end) {
- connection_lost_begin_ = stage_begin;
- connection_lost_end_ = stage_end;
-}
-
-void FakeControllerPairingController::SetEnrollmentShouldFail() {
- enrollment_should_fail_ = true;
-}
-
-void FakeControllerPairingController::SetDiscoveryScenario(
- const DiscoveryScenario& discovery_scenario) {
- discovery_scenario_ = discovery_scenario;
- // Check that scenario is valid.
- std::set<std::string> devices;
- for (DiscoveryScenario::const_iterator event = discovery_scenario_.begin();
- event != discovery_scenario_.end();
- ++event) {
- switch (event->first) {
- case DEVICE_FOUND: {
- devices.insert(event->second);
- break;
- }
- case DEVICE_LOST: {
- CHECK(devices.count(event->second));
- devices.erase(event->second);
- break;
- }
- case NOTHING_FOUND: {
- CHECK(++event == discovery_scenario_.end());
- return;
- }
- }
- }
-}
-
-void FakeControllerPairingController::AddObserver(Observer* observer) {
- observers_.AddObserver(observer);
-}
-
-void FakeControllerPairingController::RemoveObserver(Observer* observer) {
- observers_.RemoveObserver(observer);
-}
-
-ControllerPairingController::Stage
-FakeControllerPairingController::GetCurrentStage() {
- return current_stage_;
-}
-
-void FakeControllerPairingController::StartPairing() {
- CHECK(current_stage_ == STAGE_NONE);
- ChangeStage(STAGE_DEVICES_DISCOVERY);
-}
-
-ControllerPairingController::DeviceIdList
-FakeControllerPairingController::GetDiscoveredDevices() {
- CHECK(current_stage_ == STAGE_DEVICES_DISCOVERY);
- return DeviceIdList(discovered_devices_.begin(), discovered_devices_.end());
-}
-
-void FakeControllerPairingController::ChooseDeviceForPairing(
- const std::string& device_id) {
- CHECK(current_stage_ == STAGE_DEVICES_DISCOVERY);
- CHECK(discovered_devices_.count(device_id));
- choosen_device_ = device_id;
- ChangeStage(STAGE_ESTABLISHING_CONNECTION);
-}
-
-void FakeControllerPairingController::RepeatDiscovery() {
- CHECK(current_stage_ == STAGE_DEVICE_NOT_FOUND ||
- current_stage_ == STAGE_ESTABLISHING_CONNECTION_ERROR ||
- current_stage_ == STAGE_HOST_ENROLLMENT_ERROR);
- ChangeStage(STAGE_DEVICES_DISCOVERY);
-}
-
-std::string FakeControllerPairingController::GetConfirmationCode() {
- CHECK(current_stage_ == STAGE_WAITING_FOR_CODE_CONFIRMATION);
- if (confirmation_code_.empty()) {
- if (preset_confirmation_code_.empty()) {
- for (int i = 0; i < 6; ++i)
- confirmation_code_.push_back(base::RandInt('0', '9'));
- } else {
- confirmation_code_ = preset_confirmation_code_;
- }
- }
- return confirmation_code_;
-}
-
-void FakeControllerPairingController::SetConfirmationCodeIsCorrect(
- bool correct) {
- CHECK(current_stage_ == STAGE_WAITING_FOR_CODE_CONFIRMATION);
- if (correct)
- ChangeStage(STAGE_HOST_UPDATE_IN_PROGRESS);
- else
- ChangeStage(STAGE_DEVICES_DISCOVERY);
-}
-
-void FakeControllerPairingController::OnAuthenticationDone(
- const chromeos::UserContext& user_context,
- content::BrowserContext* browser_context) {
- CHECK(current_stage_ == STAGE_WAITING_FOR_CREDENTIALS);
- ChangeStage(STAGE_HOST_ENROLLMENT_IN_PROGRESS);
-}
-
-void FakeControllerPairingController::StartSession() {
- CHECK(current_stage_ == STAGE_PAIRING_DONE);
- ChangeStage(STAGE_FINISHED);
-}
-
-void FakeControllerPairingController::ChangeStage(Stage new_stage) {
- if (current_stage_ == new_stage)
- return;
- current_stage_ = new_stage;
- FOR_EACH_OBSERVER(Observer, observers_, PairingStageChanged(new_stage));
-}
-
-void FakeControllerPairingController::ChangeStageLater(Stage new_stage) {
- base::MessageLoop::current()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&FakeControllerPairingController::ChangeStage,
- base::Unretained(this),
- new_stage),
- async_duration_);
-}
-
-void FakeControllerPairingController::ExecuteDiscoveryEvent(
- size_t event_position) {
- if (current_stage_ != STAGE_DEVICES_DISCOVERY)
- return;
- CHECK(event_position < discovery_scenario_.size());
- const DiscoveryEvent& event = discovery_scenario_[event_position];
- switch (event.first) {
- case DEVICE_FOUND: {
- DeviceFound(event.second);
- break;
- }
- case DEVICE_LOST: {
- DeviceLost(event.second);
- break;
- }
- case NOTHING_FOUND: {
- ChangeStage(STAGE_DEVICE_NOT_FOUND);
- break;
- }
- }
- if (++event_position == discovery_scenario_.size()) {
- return;
- }
- base::MessageLoop::current()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&FakeControllerPairingController::ExecuteDiscoveryEvent,
- base::Unretained(this),
- event_position),
- async_duration_);
-}
-
-void FakeControllerPairingController::DeviceFound(
- const std::string& device_id) {
- CHECK(current_stage_ == STAGE_DEVICES_DISCOVERY);
- discovered_devices_.insert(device_id);
- FOR_EACH_OBSERVER(Observer, observers_, DiscoveredDevicesListChanged());
-}
-
-void FakeControllerPairingController::DeviceLost(const std::string& device_id) {
- CHECK(current_stage_ == STAGE_DEVICES_DISCOVERY);
- discovered_devices_.erase(device_id);
- FOR_EACH_OBSERVER(Observer, observers_, DiscoveredDevicesListChanged());
-}
-
-void FakeControllerPairingController::PairingStageChanged(Stage new_stage) {
- Stage next_stage = STAGE_NONE;
- switch (new_stage) {
- case STAGE_DEVICES_DISCOVERY: {
- discovered_devices_.clear();
- base::MessageLoop::current()->PostDelayedTask(
- FROM_HERE,
- base::Bind(&FakeControllerPairingController::ExecuteDiscoveryEvent,
- base::Unretained(this),
- 0),
- async_duration_);
- break;
- }
- case STAGE_ESTABLISHING_CONNECTION: {
- if (should_fail_on_connecting_) {
- next_stage = STAGE_ESTABLISHING_CONNECTION_ERROR;
- should_fail_on_connecting_ = false;
- } else {
- confirmation_code_.clear();
- next_stage = STAGE_WAITING_FOR_CODE_CONFIRMATION;
- }
- break;
- }
- case STAGE_HOST_UPDATE_IN_PROGRESS: {
- next_stage = STAGE_WAITING_FOR_CREDENTIALS;
- break;
- }
- case STAGE_HOST_ENROLLMENT_IN_PROGRESS: {
- if (enrollment_should_fail_) {
- enrollment_should_fail_ = false;
- next_stage = STAGE_HOST_ENROLLMENT_ERROR;
- } else {
- next_stage = STAGE_PAIRING_DONE;
- }
- break;
- }
- case STAGE_HOST_CONNECTION_LOST: {
- next_stage = connection_lost_end_;
- connection_lost_end_ = STAGE_NONE;
- break;
- }
- default:
- break;
- }
- if (new_stage == connection_lost_begin_) {
- connection_lost_begin_ = STAGE_NONE;
- next_stage = STAGE_HOST_CONNECTION_LOST;
- }
- if (next_stage != STAGE_NONE)
- ChangeStageLater(next_stage);
-}
-
-void FakeControllerPairingController::DiscoveredDevicesListChanged() {
-}
-
-} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698