network_feature_pod_button_unittest.cc 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Copyright 2021 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/system/network/network_feature_pod_button.h"
  5. #include <memory>
  6. #include "ash/constants/ash_features.h"
  7. #include "ash/system/unified/feature_pod_button.h"
  8. #include "ash/test/ash_test_base.h"
  9. #include "base/test/scoped_feature_list.h"
  10. namespace ash {
  11. namespace {
  12. class FakeNetworkFeaturePodButtonDelegate
  13. : public NetworkFeaturePodButton::Delegate {
  14. public:
  15. size_t feature_pod_button_theme_changed_count() {
  16. return feature_pod_button_theme_changed_count_;
  17. }
  18. private:
  19. // NetworkFeaturePodButton::Delegate:
  20. void OnFeaturePodButtonThemeChanged() override {
  21. ++feature_pod_button_theme_changed_count_;
  22. }
  23. size_t feature_pod_button_theme_changed_count_ = 0;
  24. };
  25. } // namespace
  26. class NetworkFeaturePodButtonTest : public AshTestBase {
  27. public:
  28. void SetUp() override {
  29. AshTestBase::SetUp();
  30. feature_list_.InitAndEnableFeature(features::kQuickSettingsNetworkRevamp);
  31. network_feature_pod_button_ =
  32. std::make_unique<NetworkFeaturePodButton>(/*controller=*/nullptr,
  33. /*delegate=*/delegate());
  34. }
  35. void TearDown() override {
  36. network_feature_pod_button_.reset();
  37. AshTestBase::TearDown();
  38. }
  39. void CallOnThemeChanged() { network_feature_pod_button_->OnThemeChanged(); }
  40. FakeNetworkFeaturePodButtonDelegate* delegate() {
  41. return &fake_network_feature_pod_button_delegate_;
  42. }
  43. private:
  44. base::test::ScopedFeatureList feature_list_;
  45. std::unique_ptr<NetworkFeaturePodButton> network_feature_pod_button_;
  46. FakeNetworkFeaturePodButtonDelegate fake_network_feature_pod_button_delegate_;
  47. };
  48. TEST_F(NetworkFeaturePodButtonTest, NotifiesDelegateWhenThemeChanges) {
  49. EXPECT_EQ(0u, delegate()->feature_pod_button_theme_changed_count());
  50. CallOnThemeChanged();
  51. EXPECT_EQ(1u, delegate()->feature_pod_button_theme_changed_count());
  52. }
  53. } // namespace ash