123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662 |
- // Copyright 2022 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.
- #include "ash/system/network/network_list_network_item_view.h"
- #include <memory>
- #include "ash/constants/ash_features.h"
- #include "ash/public/cpp/login_types.h"
- #include "ash/resources/vector_icons/vector_icons.h"
- #include "ash/session/session_controller_impl.h"
- #include "ash/shell.h"
- #include "ash/strings/grit/ash_strings.h"
- #include "ash/style/ash_color_provider.h"
- #include "ash/system/network/fake_network_detailed_network_view.h"
- #include "ash/system/network/network_icon.h"
- #include "ash/system/network/network_info.h"
- #include "ash/test/ash_test_base.h"
- #include "base/i18n/number_formatting.h"
- #include "base/test/scoped_feature_list.h"
- #include "chromeos/services/network_config/public/cpp/cros_network_config_test_helper.h"
- #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h"
- #include "third_party/cros_system_api/dbus/shill/dbus-constants.h"
- #include "ui/base/l10n/l10n_util.h"
- #include "ui/gfx/image/image_unittest_util.h"
- #include "ui/gfx/paint_vector_icon.h"
- #include "ui/gfx/vector_icon_types.h"
- #include "ui/views/accessibility/view_accessibility.h"
- #include "ui/views/controls/image_view.h"
- #include "ui/views/view.h"
- #include "ui/views/view_utils.h"
- namespace ash {
- namespace {
- using chromeos::network_config::CrosNetworkConfigTestHelper;
- using chromeos::network_config::mojom::ActivationStateType;
- using chromeos::network_config::mojom::ConnectionStateType;
- using chromeos::network_config::mojom::NetworkStatePropertiesPtr;
- using chromeos::network_config::mojom::NetworkType;
- using chromeos::network_config::mojom::OncSource;
- using chromeos::network_config::mojom::SecurityType;
- const std::string kWiFiName = "WiFi";
- const std::string kCellularName = "cellular";
- const std::string kTetherName = "tether";
- const std::string kEid = "sim_eid";
- const std::string kEthernetName = "ethernet";
- const char kEthernetDeviceName[] = "ethernet_device";
- const char kEthernetDevicePath[] = "/device/ethernet_device";
- const char kWiFiDeviceName[] = "wifi_device";
- const char kWiFiDevicePath[] = "/device/wifi_device";
- const char kCellularDeviceName[] = "cellular_device";
- const char kCellularDevicePath[] = "/device/cellular_device";
- int kSignalStrength = 50;
- } // namespace
- class NetworkListNetworkItemViewTest : public AshTestBase {
- public:
- void SetUp() override {
- AshTestBase::SetUp();
- feature_list_.InitAndEnableFeature(features::kQuickSettingsNetworkRevamp);
- SetUpDefaultNetworkDevices();
- fake_network_detailed_network_view_ =
- std::make_unique<FakeNetworkDetailedNetworkView>(
- /*delegate=*/nullptr);
- std::unique_ptr<NetworkListNetworkItemView> network_list_network_item_view =
- std::make_unique<NetworkListNetworkItemView>(
- fake_network_detailed_network_view_.get());
- widget_ = CreateFramelessTestWidget();
- widget_->SetFullscreen(true);
- NetworkStatePropertiesPtr wifi_network = CreateStandaloneNetworkProperties(
- kWiFiName, NetworkType::kWiFi, ConnectionStateType::kNotConnected);
- network_list_network_item_view_ =
- widget_->SetContentsView(std::move(network_list_network_item_view));
- network_list_network_item_view_->UpdateViewForNetwork(wifi_network);
- }
- void TearDown() override {
- widget_.reset();
- AshTestBase::TearDown();
- }
- std::vector<ConnectionStateType> GetConnectionStateTypes() {
- return {ConnectionStateType::kConnected, ConnectionStateType::kConnecting,
- ConnectionStateType::kNotConnected, ConnectionStateType::kOnline,
- ConnectionStateType::kPortal};
- }
- std::vector<OncSource> GetPolicies() {
- return {OncSource::kDevicePolicy, OncSource::kNone};
- }
- const NetworkListItemView* LastClickedNetworkListItem() {
- return fake_network_detailed_network_view_
- ->last_clicked_network_list_item();
- }
- NetworkStatePropertiesPtr CreateStandaloneNetworkProperties(
- const std::string& id,
- NetworkType type,
- ConnectionStateType connection_state) {
- return network_config_helper_.CreateStandaloneNetworkProperties(
- id, type, connection_state, kSignalStrength);
- }
- void UpdateViewForNetwork(NetworkStatePropertiesPtr& network) {
- network_list_network_item_view()->UpdateViewForNetwork(network);
- }
- void AssertA11yDescription(NetworkStatePropertiesPtr& network_properties,
- const std::u16string& description) {
- ui::AXNodeData node_data;
- UpdateViewForNetwork(network_properties);
- network_list_network_item_view()
- ->GetViewAccessibility()
- .GetAccessibleNodeData(&node_data);
- std::string a11ydescription =
- node_data.GetStringAttribute(ax::mojom::StringAttribute::kDescription);
- EXPECT_EQ(base::UTF8ToUTF16(a11ydescription), description);
- }
- NetworkListNetworkItemView* network_list_network_item_view() {
- return network_list_network_item_view_;
- }
- private:
- void SetUpDefaultNetworkDevices() {
- network_state_helper()->ClearDevices();
- network_state_helper()->AddDevice(kCellularDevicePath, shill::kTypeCellular,
- kCellularDeviceName);
- network_state_helper()->AddDevice(kEthernetDevicePath, shill::kTypeEthernet,
- kEthernetDeviceName);
- network_state_helper()->AddDevice(kWiFiDevicePath, shill::kTypeWifi,
- kWiFiDeviceName);
- }
- NetworkStateTestHelper* network_state_helper() {
- return &network_config_helper_.network_state_helper();
- }
- base::test::ScopedFeatureList feature_list_;
- std::unique_ptr<views::Widget> widget_;
- std::unique_ptr<FakeNetworkDetailedNetworkView>
- fake_network_detailed_network_view_;
- CrosNetworkConfigTestHelper network_config_helper_;
- NetworkListNetworkItemView* network_list_network_item_view_;
- };
- TEST_F(NetworkListNetworkItemViewTest, HasCorrectLabel) {
- ASSERT_TRUE(network_list_network_item_view()->text_label());
- EXPECT_EQ(base::UTF8ToUTF16(kWiFiName),
- network_list_network_item_view()->text_label()->GetText());
- const std::string kNewWifiName = "New wifi";
- NetworkStatePropertiesPtr wifi_network = CreateStandaloneNetworkProperties(
- kNewWifiName, NetworkType::kWiFi, ConnectionStateType::kNotConnected);
- UpdateViewForNetwork(wifi_network);
- EXPECT_EQ(base::UTF8ToUTF16(kNewWifiName),
- network_list_network_item_view()->text_label()->GetText());
- NetworkStatePropertiesPtr cellular_network =
- CreateStandaloneNetworkProperties(kCellularName, NetworkType::kCellular,
- ConnectionStateType::kConnected);
- cellular_network->type_state->get_cellular()->activation_state =
- ActivationStateType::kActivating;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_NETWORK_LIST_ACTIVATING,
- base::UTF8ToUTF16(kCellularName)),
- network_list_network_item_view()->text_label()->GetText());
- }
- TEST_F(NetworkListNetworkItemViewTest, HasCorrectNonCellularSublabel) {
- EXPECT_FALSE(network_list_network_item_view()->sub_text_label());
- NetworkStatePropertiesPtr wifi_network = CreateStandaloneNetworkProperties(
- kWiFiName, NetworkType::kWiFi, ConnectionStateType::kConnected);
- UpdateViewForNetwork(wifi_network);
- EXPECT_TRUE(network_list_network_item_view()->sub_text_label());
- EXPECT_EQ(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED),
- network_list_network_item_view()->sub_text_label()->GetText());
- wifi_network->connection_state = ConnectionStateType::kConnecting;
- UpdateViewForNetwork(wifi_network);
- EXPECT_EQ(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTING),
- network_list_network_item_view()->sub_text_label()->GetText());
- }
- TEST_F(NetworkListNetworkItemViewTest, HasCorrectCellularSublabel) {
- EXPECT_FALSE(network_list_network_item_view()->sub_text_label());
- // Label for pSIM networks that are connected but not yet activated.
- NetworkStatePropertiesPtr cellular_network =
- CreateStandaloneNetworkProperties(kCellularName, NetworkType::kCellular,
- ConnectionStateType::kConnected);
- cellular_network->type_state->get_cellular()->activation_state =
- ActivationStateType::kNotActivated;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CLICK_TO_ACTIVATE),
- network_list_network_item_view()->sub_text_label()->GetText());
- // Label for unactivated eSIM networks.
- cellular_network->type_state->get_cellular()->eid = kEid;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_UNAVAILABLE_SIM_NETWORK),
- network_list_network_item_view()->sub_text_label()->GetText());
- // label for connected unlocked cellular network.
- cellular_network->type_state->get_cellular()->activation_state =
- ActivationStateType::kActivated;
- cellular_network->type_state->get_cellular()->sim_locked = false;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED),
- network_list_network_item_view()->sub_text_label()->GetText());
- // label for connecting unlocked cellular network.
- cellular_network->connection_state = ConnectionStateType::kConnecting;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTING),
- network_list_network_item_view()->sub_text_label()->GetText());
- // label for unconnected unlocked cellular network.
- cellular_network->connection_state = ConnectionStateType::kNotConnected;
- UpdateViewForNetwork(cellular_network);
- EXPECT_FALSE(network_list_network_item_view()->sub_text_label());
- // label for locked cellular network.
- cellular_network->type_state->get_cellular()->sim_locked = true;
- cellular_network->connection_state = ConnectionStateType::kConnected;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CLICK_TO_UNLOCK),
- network_list_network_item_view()->sub_text_label()->GetText());
- // label for locked cellular network when user is not logged in.
- GetSessionControllerClient()->Reset();
- base::RunLoop().RunUntilIdle();
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_SIGN_IN_TO_UNLOCK),
- network_list_network_item_view()->sub_text_label()->GetText());
- }
- TEST_F(NetworkListNetworkItemViewTest, NotifiesListenerWhenClicked) {
- EXPECT_FALSE(LastClickedNetworkListItem());
- LeftClickOn(network_list_network_item_view());
- EXPECT_EQ(LastClickedNetworkListItem(), network_list_network_item_view());
- }
- TEST_F(NetworkListNetworkItemViewTest, HasEnterpriseIconWhenBlockedByPolicy) {
- EXPECT_FALSE(network_list_network_item_view()->right_view());
- NetworkStatePropertiesPtr wifi_network = CreateStandaloneNetworkProperties(
- kWiFiName, NetworkType::kWiFi, ConnectionStateType::kConnected);
- wifi_network->source = OncSource::kDevicePolicy;
- wifi_network->prohibited_by_policy = true;
- UpdateViewForNetwork(wifi_network);
- ASSERT_TRUE(network_list_network_item_view()->right_view());
- EXPECT_TRUE(network_list_network_item_view()->right_view()->GetVisible());
- ASSERT_TRUE(views::IsViewClass<views::ImageView>(
- network_list_network_item_view()->right_view()));
- const gfx::Image expected_image(CreateVectorIcon(
- kSystemMenuBusinessIcon,
- AshColorProvider::Get()->GetContentLayerColor(
- AshColorProvider::ContentLayerType::kIconColorPrimary)));
- const gfx::Image actual_image(
- static_cast<views::ImageView*>(
- network_list_network_item_view()->right_view())
- ->GetImage());
- EXPECT_TRUE(gfx::test::AreImagesEqual(expected_image, actual_image));
- EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NETWORK_PROHIBITED),
- network_list_network_item_view()->text_label()->GetTooltipText());
- wifi_network->source = OncSource::kNone;
- UpdateViewForNetwork(wifi_network);
- ASSERT_FALSE(network_list_network_item_view()->right_view());
- }
- TEST_F(NetworkListNetworkItemViewTest, HasPoweredIcon) {
- EXPECT_FALSE(network_list_network_item_view()->right_view());
- int battery_percentage = 50;
- NetworkStatePropertiesPtr tether_network = CreateStandaloneNetworkProperties(
- kTetherName, NetworkType::kTether, ConnectionStateType::kConnected);
- tether_network->type_state->get_tether()->battery_percentage =
- battery_percentage;
- UpdateViewForNetwork(tether_network);
- ASSERT_TRUE(network_list_network_item_view()->right_view());
- EXPECT_TRUE(network_list_network_item_view()->right_view()->GetVisible());
- ASSERT_TRUE(views::IsViewClass<views::ImageView>(
- network_list_network_item_view()->right_view()));
- EXPECT_EQ(base::FormatPercent(battery_percentage),
- static_cast<views::ImageView*>(
- network_list_network_item_view()->right_view())
- ->GetTooltipText());
- }
- TEST_F(NetworkListNetworkItemViewTest, HasExpectedA11yText) {
- NetworkStatePropertiesPtr wifi_network = CreateStandaloneNetworkProperties(
- kWiFiName, NetworkType::kWiFi, ConnectionStateType::kConnected);
- wifi_network->connection_state = ConnectionStateType::kConnected;
- UpdateViewForNetwork(wifi_network);
- EXPECT_EQ(
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_NETWORK_A11Y_LABEL_OPEN,
- base::UTF8ToUTF16(kWiFiName)),
- network_list_network_item_view()->GetAccessibleName());
- // Network can be connected to.
- wifi_network->connectable = true;
- wifi_network->connection_state = ConnectionStateType::kNotConnected;
- UpdateViewForNetwork(wifi_network);
- EXPECT_EQ(
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_NETWORK_A11Y_LABEL_CONNECT,
- base::UTF8ToUTF16(kWiFiName)),
- network_list_network_item_view()->GetAccessibleName());
- // Activate cellular network A11Y label is shown when a pSIM network is
- // connected but not yet activated.
- NetworkStatePropertiesPtr cellular_network =
- CreateStandaloneNetworkProperties(kCellularName, NetworkType::kCellular,
- ConnectionStateType::kConnected);
- cellular_network->connectable = true;
- cellular_network->connection_state = ConnectionStateType::kConnected;
- cellular_network->type_state->get_cellular()->activation_state =
- ActivationStateType::kNotActivated;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_A11Y_LABEL_ACTIVATE,
- base::UTF8ToUTF16(kCellularName)),
- network_list_network_item_view()->GetAccessibleName());
- // Contact carrier A11Y label is shown when a eSIM network is connected but
- // not yet activated.
- cellular_network->type_state->get_cellular()->eid = kEid;
- UpdateViewForNetwork(cellular_network);
- EXPECT_EQ(l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_A11Y_UNAVAILABLE_SIM_NETWORK,
- base::UTF8ToUTF16(kCellularName)),
- network_list_network_item_view()->GetAccessibleName());
- }
- TEST_F(NetworkListNetworkItemViewTest, HasExpectedDescriptionForEthernet) {
- NetworkStatePropertiesPtr ethernet_network =
- CreateStandaloneNetworkProperties(kEthernetName, NetworkType::kEthernet,
- ConnectionStateType::kConnected);
- std::u16string connection_status;
- for (const auto& connection : GetConnectionStateTypes()) {
- ethernet_network->connection_state = connection;
- for (const auto& policy : GetPolicies()) {
- ethernet_network->source = OncSource::kNone;
- switch (connection) {
- case ConnectionStateType::kConnected:
- case ConnectionStateType::kPortal:
- case ConnectionStateType::kOnline: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED);
- AssertA11yDescription(ethernet_network, connection_status);
- ethernet_network->source = policy;
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- ethernet_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_ETHERNET_A11Y_DESC_MANAGED_WITH_CONNECTION_STATUS,
- connection_status));
- }
- break;
- }
- case ConnectionStateType::kConnecting: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTING);
- AssertA11yDescription(ethernet_network, connection_status);
- ethernet_network->source = policy;
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- ethernet_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_ETHERNET_A11Y_DESC_MANAGED_WITH_CONNECTION_STATUS,
- connection_status));
- }
- break;
- }
- case ConnectionStateType::kNotConnected:
- AssertA11yDescription(
- ethernet_network,
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_ETHERNET));
- ethernet_network->source = policy;
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- ethernet_network,
- l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_ETHERNET_A11Y_DESC_MANAGED));
- }
- }
- }
- }
- }
- TEST_F(NetworkListNetworkItemViewTest, HasExpectedDescriptionForTether) {
- int battery_percentage = 50;
- std::u16string connection_status;
- NetworkStatePropertiesPtr tether_network = CreateStandaloneNetworkProperties(
- kTetherName, NetworkType::kTether, ConnectionStateType::kConnected);
- tether_network->type_state->get_tether()->battery_percentage =
- battery_percentage;
- for (const auto& connection : GetConnectionStateTypes()) {
- tether_network->connection_state = connection;
- switch (connection) {
- case ConnectionStateType::kConnected:
- case ConnectionStateType::kPortal:
- case ConnectionStateType::kOnline: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED);
- AssertA11yDescription(
- tether_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_TETHER_NETWORK_A11Y_DESC_WITH_CONNECTION_STATUS,
- connection_status, base::FormatPercent(kSignalStrength),
- base::FormatPercent(battery_percentage)));
- break;
- }
- case ConnectionStateType::kConnecting: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTING);
- AssertA11yDescription(
- tether_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_TETHER_NETWORK_A11Y_DESC_WITH_CONNECTION_STATUS,
- connection_status, base::FormatPercent(kSignalStrength),
- base::FormatPercent(battery_percentage)));
- break;
- }
- case ConnectionStateType::kNotConnected:
- AssertA11yDescription(tether_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_TETHER_NETWORK_A11Y_DESC,
- base::FormatPercent(kSignalStrength),
- base::FormatPercent(battery_percentage)));
- }
- }
- }
- TEST_F(NetworkListNetworkItemViewTest, HasExpectedDescriptionForCellular) {
- NetworkStatePropertiesPtr cellular_network =
- CreateStandaloneNetworkProperties(kCellularName, NetworkType::kCellular,
- ConnectionStateType::kConnected);
- // Cellular is not activated
- cellular_network->type_state->get_cellular()->activation_state =
- ActivationStateType::kNotActivated;
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CLICK_TO_ACTIVATE));
- // Cellular is not activated and is an eSIM network.
- cellular_network->type_state->get_cellular()->eid = kEid;
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_UNAVAILABLE_SIM_NETWORK));
- // eSIM is locked.
- cellular_network->type_state->get_cellular()->activation_state =
- ActivationStateType::kActivated;
- cellular_network->type_state->get_cellular()->sim_locked = true;
- cellular_network->connection_state = ConnectionStateType::kConnected;
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CLICK_TO_UNLOCK));
- // User is not signed in.
- GetSessionControllerClient()->Reset();
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_SIGN_IN_TO_UNLOCK));
- cellular_network->type_state->get_cellular()->sim_locked = false;
- std::u16string connection_status;
- for (const auto& connection : GetConnectionStateTypes()) {
- cellular_network->connection_state = connection;
- for (const auto& policy : GetPolicies()) {
- cellular_network->source = policy;
- switch (connection) {
- case ConnectionStateType::kConnected:
- case ConnectionStateType::kPortal:
- case ConnectionStateType::kOnline: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED);
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_CELLULAR_NETWORK_A11Y_DESC_MANAGED_WITH_CONNECTION_STATUS,
- connection_status, base::FormatPercent(kSignalStrength)));
- } else {
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_CELLULAR_NETWORK_A11Y_DESC_WITH_CONNECTION_STATUS,
- connection_status, base::FormatPercent(kSignalStrength)));
- }
- break;
- }
- case ConnectionStateType::kConnecting: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTING);
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_CELLULAR_NETWORK_A11Y_DESC_MANAGED_WITH_CONNECTION_STATUS,
- connection_status, base::FormatPercent(kSignalStrength)));
- } else {
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_CELLULAR_NETWORK_A11Y_DESC_WITH_CONNECTION_STATUS,
- connection_status, base::FormatPercent(kSignalStrength)));
- }
- break;
- }
- case ConnectionStateType::kNotConnected:
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_CELLULAR_NETWORK_A11Y_DESC_MANAGED,
- base::FormatPercent(kSignalStrength)));
- } else {
- AssertA11yDescription(
- cellular_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_CELLULAR_NETWORK_A11Y_DESC,
- base::FormatPercent(kSignalStrength)));
- }
- }
- }
- }
- }
- TEST_F(NetworkListNetworkItemViewTest, HasExpectedDescriptionForWiFi) {
- SecurityType security_types[2] = {SecurityType::kNone, SecurityType::kWepPsk};
- NetworkStatePropertiesPtr wifi_network = CreateStandaloneNetworkProperties(
- kWiFiName, NetworkType::kWiFi, ConnectionStateType::kConnected);
- for (const auto& security : security_types) {
- wifi_network->type_state->get_wifi()->security = security;
- const std::u16string security_label = l10n_util::GetStringUTF16(
- security == SecurityType::kWepPsk
- ? IDS_ASH_STATUS_TRAY_NETWORK_STATUS_SECURED
- : IDS_ASH_STATUS_TRAY_NETWORK_STATUS_UNSECURED);
- for (const auto& connection : GetConnectionStateTypes()) {
- wifi_network->connection_state = connection;
- std::u16string connection_status;
- for (const auto& policy : GetPolicies()) {
- wifi_network->source = policy;
- switch (connection) {
- case ConnectionStateType::kConnected:
- case ConnectionStateType::kPortal:
- case ConnectionStateType::kOnline: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTED);
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- wifi_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_WIFI_NETWORK_A11Y_DESC_MANAGED_WITH_CONNECTION_STATUS,
- security_label, connection_status,
- base::FormatPercent(kSignalStrength)));
- } else {
- AssertA11yDescription(
- wifi_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_WIFI_NETWORK_A11Y_DESC_WITH_CONNECTION_STATUS,
- security_label, connection_status,
- base::FormatPercent(kSignalStrength)));
- }
- break;
- }
- case ConnectionStateType::kConnecting: {
- connection_status = l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_NETWORK_STATUS_CONNECTING);
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- wifi_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_WIFI_NETWORK_A11Y_DESC_MANAGED_WITH_CONNECTION_STATUS,
- security_label, connection_status,
- base::FormatPercent(kSignalStrength)));
- } else {
- AssertA11yDescription(
- wifi_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_WIFI_NETWORK_A11Y_DESC_WITH_CONNECTION_STATUS,
- security_label, connection_status,
- base::FormatPercent(kSignalStrength)));
- }
- break;
- }
- case ConnectionStateType::kNotConnected:
- if (policy == OncSource::kDevicePolicy) {
- AssertA11yDescription(
- wifi_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_WIFI_NETWORK_A11Y_DESC_MANAGED,
- security_label, base::FormatPercent(kSignalStrength)));
- } else {
- AssertA11yDescription(
- wifi_network,
- l10n_util::GetStringFUTF16(
- IDS_ASH_STATUS_TRAY_WIFI_NETWORK_A11Y_DESC,
- security_label, base::FormatPercent(kSignalStrength)));
- }
- }
- }
- }
- }
- }
- } // namespace ash
|