| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROMEOS_ASH_SERVICES_NETWORK_CONFIG_TEST_APN_DATA_H_ |
| #define CHROMEOS_ASH_SERVICES_NETWORK_CONFIG_TEST_APN_DATA_H_ |
| |
| #include <string> |
| #include <vector> |
| |
| #include "chromeos/components/onc/onc_utils.h" |
| #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" |
| |
| namespace ash::network_config { |
| |
| // TestApnData helps test creating APNs in different formats from a single data |
| // source. This data source should contain all the expected APN property fields |
| // required for a test. This class also helps comparing the an APN's properties |
| // with the test data source. |
| struct TestApnData { |
| // Empty constructor to let the test set the required fields. |
| TestApnData(); |
| |
| // Explicit constructor to initialize an APN with all its fields. |
| TestApnData(std::string access_point_name, |
| std::string name, |
| std::string username, |
| std::string password, |
| std::string attach, |
| std::string id, |
| chromeos::network_config::mojom::ApnState mojo_state, |
| std::string onc_state, |
| chromeos::network_config::mojom::ApnAuthenticationType |
| mojo_authentication, |
| std::string onc_authentication, |
| chromeos::network_config::mojom::ApnIpType mojo_ip_type, |
| std::string onc_ip_type, |
| chromeos::network_config::mojom::ApnSource mojo_source, |
| std::string onc_source, |
| const std::vector<chromeos::network_config::mojom::ApnType>& |
| mojo_apn_types, |
| const std::vector<std::string>& onc_apn_types); |
| |
| ~TestApnData(); |
| |
| std::string access_point_name; |
| std::string name; |
| std::string username; |
| std::string password; |
| std::string attach; |
| std::string id; |
| |
| chromeos::network_config::mojom::ApnState mojo_state; |
| std::string onc_state; |
| |
| chromeos::network_config::mojom::ApnAuthenticationType mojo_authentication; |
| std::string onc_authentication; |
| |
| chromeos::network_config::mojom::ApnIpType mojo_ip_type; |
| std::string onc_ip_type; |
| |
| chromeos::network_config::mojom::ApnSource mojo_source; |
| std::string onc_source; |
| |
| std::vector<chromeos::network_config::mojom::ApnType> mojo_apn_types; |
| std::vector<std::string> onc_apn_types; |
| |
| chromeos::network_config::mojom::ApnPropertiesPtr AsMojoApn() const; |
| base::DictValue AsOncApn() const; |
| base::DictValue AsShillApn() const; |
| std::string AsApnShillDict() const; |
| |
| // Verifies that an APN constructed as a Mojo struct matches with the test |
| // APN data. |
| bool MojoApnEquals( |
| const chromeos::network_config::mojom::ApnProperties& apn) const; |
| |
| // Verifies that an APN constructed as an ONC dictionary matches with the |
| // test APN data. |
| bool OncApnEquals(const base::DictValue& onc_apn, |
| bool has_state_field, |
| bool is_password_masked) const; |
| }; |
| |
| } // namespace ash::network_config |
| |
| #endif // CHROMEOS_ASH_SERVICES_NETWORK_CONFIG_TEST_APN_DATA_H_ |