remote_device_ref_unittest.cc 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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/components/multidevice/remote_device_ref.h"
  5. #include <memory>
  6. #include "ash/components/multidevice/remote_device.h"
  7. #include "testing/gtest/include/gtest/gtest.h"
  8. namespace ash::multidevice {
  9. namespace {
  10. const char kFakeBluetoothPublicAddress[] = "01:23:45:67:89:AB";
  11. } // namespace
  12. class RemoteDeviceRefTest : public testing::Test {
  13. public:
  14. RemoteDeviceRefTest(const RemoteDeviceRefTest&) = delete;
  15. RemoteDeviceRefTest& operator=(const RemoteDeviceRefTest&) = delete;
  16. protected:
  17. RemoteDeviceRefTest() = default;
  18. // testing::Test:
  19. void SetUp() override {
  20. std::map<SoftwareFeature, SoftwareFeatureState>
  21. software_feature_to_state_map;
  22. software_feature_to_state_map[SoftwareFeature::kBetterTogetherClient] =
  23. SoftwareFeatureState::kSupported;
  24. software_feature_to_state_map[SoftwareFeature::kBetterTogetherHost] =
  25. SoftwareFeatureState::kEnabled;
  26. std::vector<BeaconSeed> beacon_seeds({BeaconSeed(), BeaconSeed()});
  27. remote_device_ = std::make_shared<RemoteDevice>(
  28. "user_email", "instance_id", "name", "pii_free_name", "public_key",
  29. "persistent_symmetric_key", 42000 /* last_update_time_millis */,
  30. software_feature_to_state_map /* software_features */,
  31. beacon_seeds /* beacon_seeds */,
  32. kFakeBluetoothPublicAddress /* bluetooth_public_address */);
  33. }
  34. std::shared_ptr<RemoteDevice> remote_device_;
  35. };
  36. TEST_F(RemoteDeviceRefTest, TestFields) {
  37. RemoteDeviceRef remote_device_ref(remote_device_);
  38. EXPECT_EQ(remote_device_->user_email, remote_device_ref.user_email());
  39. EXPECT_EQ(remote_device_->instance_id, remote_device_ref.instance_id());
  40. EXPECT_EQ(remote_device_->name, remote_device_ref.name());
  41. EXPECT_EQ(remote_device_->pii_free_name, remote_device_ref.pii_free_name());
  42. EXPECT_EQ(remote_device_->public_key, remote_device_ref.public_key());
  43. EXPECT_EQ(remote_device_->persistent_symmetric_key,
  44. remote_device_ref.persistent_symmetric_key());
  45. EXPECT_EQ(remote_device_->last_update_time_millis,
  46. remote_device_ref.last_update_time_millis());
  47. EXPECT_EQ(&remote_device_->beacon_seeds, &remote_device_ref.beacon_seeds());
  48. EXPECT_EQ(kFakeBluetoothPublicAddress,
  49. remote_device_ref.bluetooth_public_address());
  50. EXPECT_EQ(SoftwareFeatureState::kNotSupported,
  51. remote_device_ref.GetSoftwareFeatureState(
  52. SoftwareFeature::kInstantTetheringClient));
  53. EXPECT_EQ(SoftwareFeatureState::kSupported,
  54. remote_device_ref.GetSoftwareFeatureState(
  55. SoftwareFeature::kBetterTogetherClient));
  56. EXPECT_EQ(SoftwareFeatureState::kEnabled,
  57. remote_device_ref.GetSoftwareFeatureState(
  58. SoftwareFeature::kBetterTogetherHost));
  59. EXPECT_EQ(remote_device_->GetDeviceId(), remote_device_ref.GetDeviceId());
  60. EXPECT_EQ(
  61. RemoteDeviceRef::TruncateDeviceIdForLogs(remote_device_->GetDeviceId()),
  62. remote_device_ref.GetTruncatedDeviceIdForLogs());
  63. }
  64. TEST_F(RemoteDeviceRefTest, TestCopyAndAssign) {
  65. RemoteDeviceRef remote_device_ref_1(remote_device_);
  66. RemoteDeviceRef remote_device_ref_2 = remote_device_ref_1;
  67. EXPECT_EQ(remote_device_ref_2, remote_device_ref_1);
  68. RemoteDeviceRef remote_device_ref_3(remote_device_ref_1);
  69. EXPECT_EQ(remote_device_ref_3, remote_device_ref_1);
  70. }
  71. } // namespace ash::multidevice