| // Copyright 2021 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROMEOS_NETWORK_TEST_CELLULAR_ESIM_PROFILE_HANDLER_H_ |
| #define CHROMEOS_NETWORK_TEST_CELLULAR_ESIM_PROFILE_HANDLER_H_ |
| |
| #include <string> |
| |
| #include "base/containers/flat_set.h" |
| #include "chromeos/network/cellular_esim_profile_handler.h" |
| |
| namespace chromeos { |
| |
| // A Test implementation of CellularESimProfileHandler that stores profile list |
| // in-memory and fetches esim profiles directly from the fake hermes clients. |
| class TestCellularESimProfileHandler : public CellularESimProfileHandler { |
| public: |
| TestCellularESimProfileHandler(); |
| ~TestCellularESimProfileHandler() override; |
| |
| void SetHasRefreshedProfilesForEuicc(const std::string& eid, |
| bool has_refreshed); |
| |
| // Enables or disables profile list update notification. |
| // When set to false, this class will disable triggering the |
| // NotifyESimProfileListUpdated() and when the next time it's set to true, it |
| // will call the NotifyESimProfileListUpdated() to fire any pending list |
| // update notification. |
| void SetEnableNotifyProfileListUpdate(bool enable_notify_profile_list_update); |
| |
| // CellularESimProfileHandler: |
| std::vector<CellularESimProfile> GetESimProfiles() override; |
| bool HasRefreshedProfilesForEuicc(const std::string& eid) override; |
| void SetDevicePrefs(PrefService* device_prefs) override; |
| void OnHermesPropertiesUpdated() override; |
| |
| private: |
| std::vector<CellularESimProfile> esim_profile_states_; |
| base::flat_set<std::string> refreshed_eids_; |
| bool enable_notify_profile_list_update_; |
| bool has_pending_notify_list_update_; |
| }; |
| |
| } // namespace chromeos |
| |
| #endif // CHROMEOS_NETWORK_TEST_CELLULAR_ESIM_PROFILE_HANDLER_H_ |