| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_ARC_TEST_FAKE_ARC_BRIDGE_BOOTSTRAP_H_ | 5 #ifndef COMPONENTS_ARC_TEST_FAKE_ARC_BRIDGE_BOOTSTRAP_H_ |
| 6 #define COMPONENTS_ARC_TEST_FAKE_ARC_BRIDGE_BOOTSTRAP_H_ | 6 #define COMPONENTS_ARC_TEST_FAKE_ARC_BRIDGE_BOOTSTRAP_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "components/arc/arc_bridge_bootstrap.h" | 9 #include "components/arc/arc_bridge_bootstrap.h" |
| 10 #include "components/arc/test/fake_arc_bridge_instance.h" | 10 #include "components/arc/test/fake_arc_bridge_instance.h" |
| 11 | 11 |
| 12 namespace arc { | 12 namespace arc { |
| 13 | 13 |
| 14 // A fake ArcBridgeBootstrap that creates a local connection. | 14 // A fake ArcBridgeBootstrap that creates a local connection. |
| 15 class FakeArcBridgeBootstrap : public ArcBridgeBootstrap, | 15 class FakeArcBridgeBootstrap : public ArcBridgeBootstrap { |
| 16 public FakeArcBridgeInstance::Delegate { | |
| 17 public: | 16 public: |
| 18 explicit FakeArcBridgeBootstrap(FakeArcBridgeInstance* instance); | 17 FakeArcBridgeBootstrap(); |
| 19 ~FakeArcBridgeBootstrap() override = default; | 18 ~FakeArcBridgeBootstrap() override; |
| 20 | 19 |
| 21 // ArcBridgeBootstrap: | 20 // ArcBridgeBootstrap: |
| 22 void Start() override; | 21 void Start() override; |
| 23 void Stop() override; | 22 void Stop() override; |
| 24 | 23 |
| 24 // To emulate unexpected stop, such as crash. |
| 25 void StopWithReason(ArcBridgeService::StopReason reason); |
| 26 |
| 27 // The following control Start() behavior for testing various situations. |
| 28 |
| 29 // Enables/disables boot failure emulation, in which OnStopped(reason) will |
| 30 // be called when Start() is called. |
| 31 void EnableBootFailureEmulation(ArcBridgeService::StopReason reason); |
| 32 |
| 33 // Emulate Start() is suspended at some phase, before OnReady() is invoked. |
| 34 void SuspendBoot(); |
| 35 |
| 36 // Returns FakeArcBridgeBootstrap instance. This can be used for a factory |
| 37 // in ArcBridgeServiceImpl. |
| 38 static std::unique_ptr<ArcBridgeBootstrap> Create(); |
| 39 |
| 25 private: | 40 private: |
| 26 // FakeArcBridgeInstance::Delegate: | 41 bool boot_failure_emulation_enabled_ = false; |
| 27 void OnStopped(ArcBridgeService::StopReason reason) override; | 42 ArcBridgeService::StopReason boot_failure_reason_; |
| 43 FakeArcBridgeInstance instance_; |
| 28 | 44 |
| 29 // Owned by the caller. | 45 bool boot_suspended_ = false; |
| 30 FakeArcBridgeInstance* instance_; | |
| 31 | 46 |
| 32 DISALLOW_COPY_AND_ASSIGN(FakeArcBridgeBootstrap); | 47 DISALLOW_COPY_AND_ASSIGN(FakeArcBridgeBootstrap); |
| 33 }; | 48 }; |
| 34 | 49 |
| 35 } // namespace arc | 50 } // namespace arc |
| 36 | 51 |
| 37 #endif // COMPONENTS_ARC_TEST_FAKE_ARC_BRIDGE_BOOTSTRAP_H_ | 52 #endif // COMPONENTS_ARC_TEST_FAKE_ARC_BRIDGE_BOOTSTRAP_H_ |
| OLD | NEW |