Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / components / pairing / fake_host_pairing_controller.h
1 // Copyright 2014 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 #ifndef COMPONENTS_PAIRING_FAKE_HOST_PAIRING_CONTROLLER_H_
6 #define COMPONENTS_PAIRING_FAKE_HOST_PAIRING_CONTROLLER_H_
7
8 #include "base/macros.h"
9 #include "base/observer_list.h"
10 #include "base/time/time.h"
11 #include "components/pairing/host_pairing_controller.h"
12
13 namespace pairing_chromeos {
14
15 class FakeHostPairingController
16     : public HostPairingController,
17       public HostPairingController::Observer {
18  public:
19   typedef HostPairingController::Observer Observer;
20
21   // Config is a comma separated list of key-value pairs separated by colon.
22   // Supported options:
23   // * async_duration - integer. Default: 3000.
24   // * start_after_update - {0,1}. Default: 0.
25   // * fail_enrollment - {0,1}. Default: 0.
26   // * code - 6 digits or empty string. Default: empty string. If strings is
27   // empty, random code is generated.
28   // * device_name - string. Default: "Chromebox-01".
29   // * domain - string. Default: "example.com".
30   explicit FakeHostPairingController(const std::string& config);
31   virtual ~FakeHostPairingController();
32
33   // Applies given |config| to flow.
34   void ApplyConfig(const std::string& config);
35
36  private:
37   void ChangeStage(Stage new_stage);
38   void ChangeStageLater(Stage new_stage);
39
40   // HostPairingController:
41   virtual void AddObserver(Observer* observer) override;
42   virtual void RemoveObserver(Observer* observer) override;
43   virtual Stage GetCurrentStage() override;
44   virtual void StartPairing() override;
45   virtual std::string GetDeviceName() override;
46   virtual std::string GetConfirmationCode() override;
47   virtual std::string GetEnrollmentDomain() override;
48   virtual void OnUpdateStatusChanged(UpdateStatus update_status) override;
49   virtual void OnEnrollmentStatusChanged(
50       EnrollmentStatus enrollment_status) override;
51
52   // HostPairingController::Observer:
53   virtual void PairingStageChanged(Stage new_stage) override;
54   virtual void ConfigureHost(bool accepted_eula,
55                              const std::string& lang,
56                              const std::string& timezone,
57                              bool send_reports,
58                              const std::string& keyboard_layout) override;
59   virtual void EnrollHost(const std::string& auth_token) override;
60
61   ObserverList<Observer> observers_;
62   Stage current_stage_;
63   std::string device_name_;
64   std::string confirmation_code_;
65   base::TimeDelta async_duration_;
66
67   // If this flag is true error happens on |STAGE_ENROLLING| once.
68   bool enrollment_should_fail_;
69
70   // Controller starts its work like if update and reboot already happened.
71   bool start_after_update_;
72
73   std::string enrollment_domain_;
74
75   DISALLOW_COPY_AND_ASSIGN(FakeHostPairingController);
76 };
77
78 }  // namespace pairing_chromeos
79
80 #endif  // COMPONENTS_PAIRING_FAKE_HOST_PAIRING_CONTROLLER_H_