Home | History | Annotate | Download | only in pairing
      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   // Overridden from HostPairingFlow:
     37   virtual void AddObserver(Observer* observer) OVERRIDE;
     38   virtual void RemoveObserver(Observer* observer) OVERRIDE;
     39   virtual Stage GetCurrentStage() OVERRIDE;
     40   virtual void StartPairing() OVERRIDE;
     41   virtual std::string GetDeviceName() OVERRIDE;
     42   virtual std::string GetConfirmationCode() OVERRIDE;
     43   virtual std::string GetEnrollmentDomain() OVERRIDE;
     44   virtual void OnUpdateStatusChanged(UpdateStatus update_status) OVERRIDE;
     45   virtual void SetEnrollmentComplete(bool success) OVERRIDE;
     46 
     47  private:
     48   void ChangeStage(Stage new_stage);
     49   void ChangeStageLater(Stage new_stage);
     50 
     51   // HostPairingFlow::Observer:
     52   virtual void PairingStageChanged(Stage new_stage) OVERRIDE;
     53   virtual void ConfigureHost(bool accepted_eula,
     54                              const std::string& lang,
     55                              const std::string& timezone,
     56                              bool send_reports,
     57                              const std::string& keyboard_layout) OVERRIDE;
     58   virtual void EnrollHost(const std::string& auth_token) OVERRIDE;
     59 
     60   ObserverList<Observer> observers_;
     61   Stage current_stage_;
     62   std::string device_name_;
     63   std::string confirmation_code_;
     64   base::TimeDelta async_duration_;
     65 
     66   // If this flag is true error happens on |STAGE_ENROLLING| once.
     67   bool enrollment_should_fail_;
     68 
     69   // Controller starts its work like if update and reboot already happened.
     70   bool start_after_update_;
     71 
     72   std::string enrollment_domain_;
     73 
     74   DISALLOW_COPY_AND_ASSIGN(FakeHostPairingController);
     75 };
     76 
     77 }  // namespace pairing_chromeos
     78 
     79 #endif  // COMPONENTS_PAIRING_FAKE_HOST_PAIRING_CONTROLLER_H_
     80