privileged_host_device_setter_impl_unittest.cc 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2018 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. #include "ash/services/multidevice_setup/privileged_host_device_setter_impl.h"
  5. #include <memory>
  6. #include "ash/services/multidevice_setup/public/cpp/fake_multidevice_setup.h"
  7. #include "base/bind.h"
  8. #include "base/run_loop.h"
  9. #include "base/test/task_environment.h"
  10. #include "testing/gtest/include/gtest/gtest.h"
  11. namespace ash {
  12. namespace multidevice_setup {
  13. class MultiDeviceSetupPrivilegedHostDeviceSetterImplTest
  14. : public testing::Test {
  15. public:
  16. MultiDeviceSetupPrivilegedHostDeviceSetterImplTest(
  17. const MultiDeviceSetupPrivilegedHostDeviceSetterImplTest&) = delete;
  18. MultiDeviceSetupPrivilegedHostDeviceSetterImplTest& operator=(
  19. const MultiDeviceSetupPrivilegedHostDeviceSetterImplTest&) = delete;
  20. protected:
  21. MultiDeviceSetupPrivilegedHostDeviceSetterImplTest() = default;
  22. ~MultiDeviceSetupPrivilegedHostDeviceSetterImplTest() override = default;
  23. void SetUp() override {
  24. fake_multidevice_setup_ = std::make_unique<FakeMultiDeviceSetup>();
  25. host_setter_ = PrivilegedHostDeviceSetterImpl::Factory::Create(
  26. fake_multidevice_setup_.get());
  27. }
  28. void CallSetHostDevice(
  29. const std::string& host_instance_id_or_legacy_device_id,
  30. bool should_succeed) {
  31. auto& args = fake_multidevice_setup_->set_host_without_auth_args();
  32. size_t num_calls_before = args.size();
  33. host_setter_->SetHostDevice(
  34. host_instance_id_or_legacy_device_id,
  35. base::BindOnce(&MultiDeviceSetupPrivilegedHostDeviceSetterImplTest::
  36. OnSetHostDeviceResult,
  37. base::Unretained(this)));
  38. EXPECT_EQ(num_calls_before + 1u, args.size());
  39. EXPECT_EQ(host_instance_id_or_legacy_device_id, args.back().first);
  40. std::move(args.back().second).Run(should_succeed);
  41. EXPECT_EQ(should_succeed, *last_set_host_success_);
  42. last_set_host_success_.reset();
  43. }
  44. private:
  45. base::test::TaskEnvironment task_environment_;
  46. void OnSetHostDeviceResult(bool success) {
  47. EXPECT_FALSE(last_set_host_success_);
  48. last_set_host_success_ = success;
  49. }
  50. absl::optional<bool> last_set_host_success_;
  51. std::unique_ptr<FakeMultiDeviceSetup> fake_multidevice_setup_;
  52. std::unique_ptr<PrivilegedHostDeviceSetterBase> host_setter_;
  53. };
  54. TEST_F(MultiDeviceSetupPrivilegedHostDeviceSetterImplTest, SetHostDevice) {
  55. CallSetHostDevice("hostId1", false /* should_succeed */);
  56. CallSetHostDevice("hostId2", true /* should_succeed */);
  57. }
  58. } // namespace multidevice_setup
  59. } // namespace ash