Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Side by Side Diff: chromeos/network/network_state_handler_unittest.cc

Issue 2701463003: Create a Tether section in the system tray network list. (Closed)
Patch Set: Add a GetTetherNetworkList method and test. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromeos/network/network_state_handler.h" 5 #include "chromeos/network/network_state_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 13
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/command_line.h"
15 #include "base/macros.h" 16 #include "base/macros.h"
16 #include "base/message_loop/message_loop.h" 17 #include "base/message_loop/message_loop.h"
17 #include "base/run_loop.h" 18 #include "base/run_loop.h"
18 #include "base/values.h" 19 #include "base/values.h"
20 #include "chromeos/chromeos_switches.h"
19 #include "chromeos/dbus/dbus_thread_manager.h" 21 #include "chromeos/dbus/dbus_thread_manager.h"
20 #include "chromeos/dbus/shill_device_client.h" 22 #include "chromeos/dbus/shill_device_client.h"
21 #include "chromeos/dbus/shill_ipconfig_client.h" 23 #include "chromeos/dbus/shill_ipconfig_client.h"
22 #include "chromeos/dbus/shill_manager_client.h" 24 #include "chromeos/dbus/shill_manager_client.h"
23 #include "chromeos/dbus/shill_profile_client.h" 25 #include "chromeos/dbus/shill_profile_client.h"
24 #include "chromeos/dbus/shill_service_client.h" 26 #include "chromeos/dbus/shill_service_client.h"
25 #include "chromeos/network/device_state.h" 27 #include "chromeos/network/device_state.h"
26 #include "chromeos/network/network_state.h" 28 #include "chromeos/network/network_state.h"
27 #include "chromeos/network/network_state_handler.h" 29 #include "chromeos/network/network_state_handler.h"
28 #include "chromeos/network/network_state_handler_observer.h" 30 #include "chromeos/network/network_state_handler_observer.h"
29 #include "dbus/object_path.h" 31 #include "dbus/object_path.h"
30 #include "testing/gtest/include/gtest/gtest.h" 32 #include "testing/gtest/include/gtest/gtest.h"
31 #include "third_party/cros_system_api/dbus/service_constants.h" 33 #include "third_party/cros_system_api/dbus/service_constants.h"
32 34
33 namespace { 35 namespace {
34 36
35 void ErrorCallbackFunction(const std::string& error_name, 37 void ErrorCallbackFunction(const std::string& error_name,
36 const std::string& error_message) { 38 const std::string& error_message) {
37 LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message; 39 LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message;
38 } 40 }
39 41
40 const char kShillManagerClientStubWifiDevice[] = "/device/stub_wifi_device1"; 42 const char kShillManagerClientStubWifiDevice[] = "/device/stub_wifi_device1";
41 const char kShillManagerClientStubCellularDevice[] = 43 const char kShillManagerClientStubCellularDevice[] =
42 "/device/stub_cellular_device1"; 44 "/device/stub_cellular_device1";
43 const char kShillManagerClientStubDefaultService[] = "/service/eth1"; 45 const char kShillManagerClientStubDefaultService[] = "/service/eth1";
44 const char kShillManagerClientStubDefaultWifi[] = "/service/wifi1"; 46 const char kShillManagerClientStubDefaultWifi[] = "/service/wifi1";
45 const char kShillManagerClientStubWifi2[] = "/service/wifi2"; 47 const char kShillManagerClientStubWifi2[] = "/service/wifi2";
46 const char kShillManagerClientStubCellular[] = "/service/cellular1"; 48 const char kShillManagerClientStubCellular[] = "/service/cellular1";
47 49
48 const char kTetherName[] = "Device"; 50 const char kTetherGuid1[] = "tether1";
51 const char kTetherGuid2[] = "tether2";
52 const char kTetherName1[] = "Device1";
53 const char kTetherName2[] = "Device2";
49 54
50 using chromeos::DeviceState; 55 using chromeos::DeviceState;
51 using chromeos::NetworkState; 56 using chromeos::NetworkState;
52 using chromeos::NetworkStateHandler; 57 using chromeos::NetworkStateHandler;
53 58
54 class TestObserver : public chromeos::NetworkStateHandlerObserver { 59 class TestObserver : public chromeos::NetworkStateHandlerObserver {
55 public: 60 public:
56 explicit TestObserver(NetworkStateHandler* handler) 61 explicit TestObserver(NetworkStateHandler* handler)
57 : handler_(handler), 62 : handler_(handler),
58 device_list_changed_count_(0), 63 device_list_changed_count_(0),
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 EXPECT_EQ(kNumShillManagerClientStubImplServices, networks.size()); 369 EXPECT_EQ(kNumShillManagerClientStubImplServices, networks.size());
365 // Get configured (profile) networks. 370 // Get configured (profile) networks.
366 network_state_handler_->GetNetworkListByType(NetworkTypePattern::Default(), 371 network_state_handler_->GetNetworkListByType(NetworkTypePattern::Default(),
367 true /* configured_only */, 372 true /* configured_only */,
368 false /* visible_only */, 373 false /* visible_only */,
369 0 /* no limit */, 374 0 /* no limit */,
370 &networks); 375 &networks);
371 EXPECT_EQ(1u, networks.size()); 376 EXPECT_EQ(1u, networks.size());
372 } 377 }
373 378
379 TEST_F(NetworkStateHandlerTest, GetTetherNetworkList) {
380 NetworkStateHandler::NetworkStateList tether_networks;
381
382 network_state_handler_->GetTetherNetworkList(0 /* no limit */,
383 &tether_networks);
384 EXPECT_EQ(0u, tether_networks.size());
385
386 network_state_handler_->AddTetherNetworkState(kTetherGuid1, kTetherName1);
387
388 network_state_handler_->GetTetherNetworkList(0 /* no limit */,
389 &tether_networks);
390 EXPECT_EQ(1u, tether_networks.size());
391
392 network_state_handler_->AddTetherNetworkState(kTetherGuid2, kTetherName2);
393
394 network_state_handler_->GetTetherNetworkList(0 /* no limit */,
395 &tether_networks);
396 EXPECT_EQ(2u, tether_networks.size());
397
398 network_state_handler_->GetTetherNetworkList(1 /* no limit */,
399 &tether_networks);
400 EXPECT_EQ(1u, tether_networks.size());
401 }
402
374 TEST_F(NetworkStateHandlerTest, NetworkListChanged) { 403 TEST_F(NetworkStateHandlerTest, NetworkListChanged) {
375 size_t stub_network_count = test_observer_->network_count(); 404 size_t stub_network_count = test_observer_->network_count();
376 // Set up two additional visible networks. 405 // Set up two additional visible networks.
377 const std::string wifi3 = "/service/wifi3"; 406 const std::string wifi3 = "/service/wifi3";
378 const std::string wifi4 = "/service/wifi4"; 407 const std::string wifi4 = "/service/wifi4";
379 service_test_->SetServiceProperties( 408 service_test_->SetServiceProperties(
380 wifi3, "wifi3_guid", "wifi3", 409 wifi3, "wifi3_guid", "wifi3",
381 shill::kTypeWifi, shill::kStateIdle, true /* visible */); 410 shill::kTypeWifi, shill::kStateIdle, true /* visible */);
382 service_test_->SetServiceProperties( 411 service_test_->SetServiceProperties(
383 wifi4, "wifi4_guid", "wifi4", 412 wifi4, "wifi4_guid", "wifi4",
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 NetworkStateHandler::TECHNOLOGY_ENABLED, 519 NetworkStateHandler::TECHNOLOGY_ENABLED,
491 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 520 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
492 521
493 manager_test_->RemoveTechnology(shill::kTypeWimax); 522 manager_test_->RemoveTechnology(shill::kTypeWimax);
494 base::RunLoop().RunUntilIdle(); 523 base::RunLoop().RunUntilIdle();
495 EXPECT_EQ( 524 EXPECT_EQ(
496 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE, 525 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
497 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax())); 526 network_state_handler_->GetTechnologyState(NetworkTypePattern::Wimax()));
498 } 527 }
499 528
529 TEST_F(NetworkStateHandlerTest, TetherTechnologyState) {
530 EXPECT_EQ(
531 NetworkStateHandler::TECHNOLOGY_UNAVAILABLE,
532 network_state_handler_->GetTechnologyState(NetworkTypePattern::Tether()));
533
534 base::CommandLine::ForCurrentProcess()->AppendSwitch(
535 chromeos::switches::kEnableTether);
536
537 EXPECT_EQ(
538 NetworkStateHandler::TECHNOLOGY_ENABLED,
539 network_state_handler_->GetTechnologyState(NetworkTypePattern::Tether()));
540 }
541
500 TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) { 542 TEST_F(NetworkStateHandlerTest, ServicePropertyChanged) {
501 // Set a service property. 543 // Set a service property.
502 const std::string eth1 = kShillManagerClientStubDefaultService; 544 const std::string eth1 = kShillManagerClientStubDefaultService;
503 const NetworkState* ethernet = network_state_handler_->GetNetworkState(eth1); 545 const NetworkState* ethernet = network_state_handler_->GetNetworkState(eth1);
504 ASSERT_TRUE(ethernet); 546 ASSERT_TRUE(ethernet);
505 EXPECT_EQ("", ethernet->security_class()); 547 EXPECT_EQ("", ethernet->security_class());
506 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(eth1)); 548 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(eth1));
507 base::StringValue security_class_value("TestSecurityClass"); 549 base::StringValue security_class_value("TestSecurityClass");
508 SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value); 550 SetServiceProperty(eth1, shill::kSecurityClassProperty, security_class_value);
509 base::RunLoop().RunUntilIdle(); 551 base::RunLoop().RunUntilIdle();
(...skipping 30 matching lines...) Expand all
540 582
541 // Remove the service, verify that there is no longer a NetworkState for it. 583 // Remove the service, verify that there is no longer a NetworkState for it.
542 service_test_->RemoveService(wifi_path); 584 service_test_->RemoveService(wifi_path);
543 UpdateManagerProperties(); 585 UpdateManagerProperties();
544 EXPECT_FALSE(network_state_handler_->GetNetworkState(wifi_path)); 586 EXPECT_FALSE(network_state_handler_->GetNetworkState(wifi_path));
545 } 587 }
546 588
547 TEST_F(NetworkStateHandlerTest, TetherNetworkState) { 589 TEST_F(NetworkStateHandlerTest, TetherNetworkState) {
548 EXPECT_EQ(0u, test_observer_->network_list_changed_count()); 590 EXPECT_EQ(0u, test_observer_->network_list_changed_count());
549 591
550 const std::string& guid = 592 network_state_handler_->AddTetherNetworkState(kTetherGuid1, kTetherName1);
551 network_state_handler_->CreateTetherNetworkState(kTetherName);
552 593
553 EXPECT_EQ(1u, test_observer_->network_list_changed_count()); 594 EXPECT_EQ(1u, test_observer_->network_list_changed_count());
554 595
555 const NetworkState* tether_network = 596 const NetworkState* tether_network =
556 network_state_handler_->GetNetworkStateFromGuid(guid); 597 network_state_handler_->GetNetworkStateFromGuid(kTetherGuid1);
557 ASSERT_TRUE(tether_network); 598 ASSERT_TRUE(tether_network);
558 EXPECT_EQ(kTetherName, tether_network->name()); 599 EXPECT_EQ(kTetherName1, tether_network->name());
559 600
560 network_state_handler_->RemoveTetherNetworkState(guid); 601 network_state_handler_->RemoveTetherNetworkState(kTetherGuid1);
561 602
562 EXPECT_EQ(2u, test_observer_->network_list_changed_count()); 603 EXPECT_EQ(2u, test_observer_->network_list_changed_count());
563 604
564 ASSERT_FALSE(network_state_handler_->GetNetworkStateFromGuid(guid)); 605 ASSERT_FALSE(network_state_handler_->GetNetworkStateFromGuid(kTetherGuid1));
565 } 606 }
566 607
567 TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) { 608 TEST_F(NetworkStateHandlerTest, NetworkConnectionStateChanged) {
568 const std::string eth1 = kShillManagerClientStubDefaultService; 609 const std::string eth1 = kShillManagerClientStubDefaultService;
569 EXPECT_EQ(0, test_observer_->ConnectionStateChangesForService(eth1)); 610 EXPECT_EQ(0, test_observer_->ConnectionStateChangesForService(eth1));
570 611
571 // Change a network state. 612 // Change a network state.
572 base::StringValue connection_state_idle_value(shill::kStateIdle); 613 base::StringValue connection_state_idle_value(shill::kStateIdle);
573 service_test_->SetServiceProperty(eth1, shill::kStateProperty, 614 service_test_->SetServiceProperty(eth1, shill::kStateProperty,
574 connection_state_idle_value); 615 connection_state_idle_value);
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 kShillManagerClientStubDefaultWifi, shill::kIPConfigProperty, 859 kShillManagerClientStubDefaultWifi, shill::kIPConfigProperty,
819 base::StringValue(kIPConfigPath)); 860 base::StringValue(kIPConfigPath));
820 UpdateManagerProperties(); 861 UpdateManagerProperties();
821 EXPECT_EQ(1, test_observer_->PropertyUpdatesForDevice( 862 EXPECT_EQ(1, test_observer_->PropertyUpdatesForDevice(
822 kShillManagerClientStubWifiDevice)); 863 kShillManagerClientStubWifiDevice));
823 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService( 864 EXPECT_EQ(1, test_observer_->PropertyUpdatesForService(
824 kShillManagerClientStubDefaultWifi)); 865 kShillManagerClientStubDefaultWifi));
825 } 866 }
826 867
827 } // namespace chromeos 868 } // namespace chromeos
OLDNEW
« chromeos/network/network_state_handler.cc ('K') | « chromeos/network/network_state_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698