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

Unified Diff: chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc

Issue 14134007: NetworkPortalDetector/NetworkStateInformer: Switch over to use NetworkStateHandler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
diff --git a/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc b/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
index 5b28e7e39c84d8e6f1d31fd107da88108acf8366..d59bf8d55922571527c9fbece66e26bcabd39b18 100644
--- a/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
+++ b/chrome/browser/chromeos/net/network_portal_detector_impl_unittest.cc
@@ -9,15 +9,34 @@
#include "chrome/browser/captive_portal/captive_portal_detector.h"
#include "chrome/browser/captive_portal/testing_utils.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
-#include "chrome/browser/chromeos/cros/network_library.h"
-#include "chrome/browser/chromeos/cros/network_library_impl_base.h"
#include "chrome/browser/chromeos/net/network_portal_detector_impl.h"
#include "chrome/test/base/testing_profile.h"
+#include "chromeos/dbus/dbus_thread_manager.h"
+#include "chromeos/dbus/shill_device_client.h"
+#include "chromeos/dbus/shill_service_client.h"
+#include "chromeos/network/network_state.h"
+#include "chromeos/network/network_state_handler.h"
+#include "dbus/object_path.h"
#include "net/base/net_errors.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos {
+namespace {
+
+void ErrorCallbackFunction(const std::string& error_name,
+ const std::string& error_message) {
+ LOG(ERROR) << "Shill Error: " << error_name << " : " << error_message;
+}
+
+} // namespace
+
+// Service paths for stub network devices.
+const char* kStubEthernet = "stub_ethernet";
+const char* kStubWireless1 = "stub_wifi1";
+const char* kStubWireless2 = "stub_wifi2";
+
class NetworkPortalDetectorImplTest
: public testing::Test,
public captive_portal::CaptivePortalDetectorTestBase {
@@ -26,18 +45,8 @@ class NetworkPortalDetectorImplTest
virtual ~NetworkPortalDetectorImplTest() {}
virtual void SetUp() {
- CrosLibrary::Initialize(true);
- network_library_ = CrosLibrary::Get()->GetNetworkLibrary();
- DCHECK(network_library_);
-
- ethernet_network_ = network_library_->FindNetworkByPath("eth1");
- DCHECK(ethernet_network_);
-
- wifi1_network_ = network_library_->FindNetworkByPath("wifi1");
- DCHECK(wifi1_network_);
-
- wifi2_network_ = network_library_->FindNetworkByPath("wifi2");
- DCHECK(wifi2_network_);
+ DBusThreadManager::InitializeWithStub();
+ SetupNetworkStateHandler();
profile_.reset(new TestingProfile());
network_portal_detector_.reset(
@@ -53,23 +62,22 @@ class NetworkPortalDetectorImplTest
virtual void TearDown() {
network_portal_detector_->Shutdown();
- CrosLibrary::Shutdown();
+ profile_.reset();
+ NetworkStateHandler::Shutdown();
+ DBusThreadManager::Shutdown();
}
void CheckPortalState(NetworkPortalDetector::CaptivePortalStatus status,
int response_code,
- const Network* network) {
+ const std::string& network_service_path) {
+ const NetworkState* network =
+ NetworkStateHandler::Get()->GetNetworkState(network_service_path);
NetworkPortalDetector::CaptivePortalState state =
network_portal_detector()->GetCaptivePortalState(network);
ASSERT_EQ(status, state.status);
ASSERT_EQ(response_code, state.response_code);
}
- NetworkLibrary* network_library() { return network_library_; }
- Network* ethernet_network() { return ethernet_network_; }
- Network* wifi1_network() { return wifi1_network_; }
- Network* wifi2_network() { return wifi2_network_; }
-
Profile* profile() { return profile_.get(); }
NetworkPortalDetectorImpl* network_portal_detector() {
@@ -133,36 +141,49 @@ class NetworkPortalDetectorImplTest
network_portal_detector()->set_time_ticks_for_testing(time_ticks);
}
- void SetBehindPortal(Network* network) {
- Network::TestApi test_api(network);
- test_api.SetBehindPortal();
- static_cast<NetworkLibraryImplBase*>(
- network_library())->CallConnectToNetwork(network);
+ void SetBehindPortal(const std::string& service_path) {
+ DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
+ dbus::ObjectPath(service_path),
+ flimflam::kStateProperty, base::StringValue(flimflam::kStatePortal),
+ base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
MessageLoop::current()->RunUntilIdle();
}
- void SetConnected(Network* network) {
- Network::TestApi test_api(network);
- test_api.SetConnected();
- static_cast<NetworkLibraryImplBase*>(
- network_library())->CallConnectToNetwork(network);
+ void SetConnected(const std::string& service_path) {
+ DBusThreadManager::Get()->GetShillServiceClient()->SetProperty(
+ dbus::ObjectPath(service_path),
+ flimflam::kStateProperty, base::StringValue(flimflam::kStateOnline),
+ base::Bind(&base::DoNothing), base::Bind(&ErrorCallbackFunction));
MessageLoop::current()->RunUntilIdle();
}
private:
- NetworkLibrary* network_library_;
-
- // Pointer to a fake ethernet network.
- Network* ethernet_network_;
-
- // Pointer to a fake wifi1 network.
- Network* wifi1_network_;
+ void SetupDefaultShillState() {
+ MessageLoop::current()->RunUntilIdle();
+ ShillServiceClient::TestInterface* service_test =
+ DBusThreadManager::Get()->GetShillServiceClient()->GetTestInterface();
+ service_test->ClearServices();
+ const bool add_to_watchlist = true;
+ service_test->AddService(kStubEthernet,
+ kStubEthernet,
+ flimflam::kTypeEthernet, flimflam::kStateIdle,
+ add_to_watchlist);
+ service_test->AddService(kStubWireless1,
+ kStubWireless1,
+ flimflam::kTypeWifi, flimflam::kStateIdle,
+ add_to_watchlist);
+ service_test->AddService(kStubWireless2,
+ kStubWireless2,
+ flimflam::kTypeWifi, flimflam::kStateIdle,
+ add_to_watchlist);
+ }
- // Pointer to a fake wifi2 network.
- Network* wifi2_network_;
+ void SetupNetworkStateHandler() {
+ SetupDefaultShillState();
+ NetworkStateHandler::Initialize();
+ }
MessageLoop message_loop_;
-
scoped_ptr<TestingProfile> profile_;
scoped_ptr<NetworkPortalDetectorImpl> network_portal_detector_;
};
@@ -170,86 +191,86 @@ class NetworkPortalDetectorImplTest
TEST_F(NetworkPortalDetectorImplTest, NoPortal) {
ASSERT_TRUE(is_state_idle());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
CompleteURLFetch(net::OK, 204, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, Portal) {
ASSERT_TRUE(is_state_idle());
// Check HTTP 200 response code.
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::OK, 200, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
- wifi1_network());
+ kStubWireless1);
// Check HTTP 301 response code.
- SetConnected(wifi2_network());
+ SetConnected(kStubWireless2);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::OK, 301, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 301,
- wifi2_network());
+ kStubWireless2);
// Check HTTP 302 response code.
- SetConnected(ethernet_network());
+ SetConnected(kStubEthernet);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::OK, 302, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 302,
- ethernet_network());
+ kStubEthernet);
}
TEST_F(NetworkPortalDetectorImplTest, TwoNetworks) {
ASSERT_TRUE(is_state_idle());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
// wifi is in portal state.
CompleteURLFetch(net::OK, 200, NULL);
ASSERT_TRUE(is_state_idle());
- SetConnected(ethernet_network());
+ SetConnected(kStubEthernet);
ASSERT_TRUE(is_state_checking_for_portal());
// ethernet is in online state.
CompleteURLFetch(net::OK, 204, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- ethernet_network());
+ kStubEthernet);
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, NetworkChanged) {
ASSERT_TRUE(is_state_idle());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
// WiFi is in portal state.
fetcher()->set_response_code(200);
ASSERT_TRUE(is_state_checking_for_portal());
// Active network is changed during portal detection for wifi.
- SetConnected(ethernet_network());
+ SetConnected(kStubEthernet);
// Portal detection for wifi is cancelled, portal detection for
// ethernet is initiated.
@@ -259,27 +280,27 @@ TEST_F(NetworkPortalDetectorImplTest, NetworkChanged) {
CompleteURLFetch(net::OK, 204, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- ethernet_network());
+ kStubEthernet);
// As active network was changed during portal detection for wifi
// network, it's state must be unknown.
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, NetworkStateNotChanged) {
ASSERT_TRUE(is_state_idle());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::OK, 204, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- wifi1_network());
+ kStubWireless1);
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
ASSERT_TRUE(is_state_idle());
}
@@ -287,32 +308,32 @@ TEST_F(NetworkPortalDetectorImplTest, NetworkStateChanged) {
// Test for Portal -> Online -> Portal network state transitions.
ASSERT_TRUE(is_state_idle());
- SetBehindPortal(wifi1_network());
+ SetBehindPortal(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::OK, 200, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
- wifi1_network());
+ kStubWireless1);
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::OK, 204, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- wifi1_network());
+ kStubWireless1);
- SetBehindPortal(wifi1_network());
+ SetBehindPortal(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::OK, 200, NULL);
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, PortalDetectionTimeout) {
@@ -324,7 +345,7 @@ TEST_F(NetworkPortalDetectorImplTest, PortalDetectionTimeout) {
ASSERT_TRUE(is_state_idle());
ASSERT_EQ(0, attempt_count());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
MessageLoop::current()->RunUntilIdle();
// First portal detection timeouts, next portal detection is
@@ -342,7 +363,7 @@ TEST_F(NetworkPortalDetectorImplTest, PortalDetectionRetryAfter) {
ASSERT_TRUE(is_state_idle());
ASSERT_EQ(0, attempt_count());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
CompleteURLFetch(net::OK, 503, retry_after);
// First portal detection completed, next portal detection is
@@ -360,7 +381,7 @@ TEST_F(NetworkPortalDetectorImplTest, PortalDetectorRetryAfterIsSmall) {
ASSERT_TRUE(is_state_idle());
ASSERT_EQ(0, attempt_count());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
CompleteURLFetch(net::OK, 503, retry_after);
// First portal detection completed, next portal detection is
@@ -380,7 +401,7 @@ TEST_F(NetworkPortalDetectorImplTest, FirstAttemptFailed) {
ASSERT_TRUE(is_state_idle());
ASSERT_EQ(0, attempt_count());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
CompleteURLFetch(net::OK, 503, retry_after);
ASSERT_TRUE(is_state_portal_detection_pending());
@@ -394,7 +415,7 @@ TEST_F(NetworkPortalDetectorImplTest, FirstAttemptFailed) {
ASSERT_TRUE(is_state_idle());
ASSERT_EQ(2, attempt_count());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, AllAttemptsFailed) {
@@ -406,7 +427,7 @@ TEST_F(NetworkPortalDetectorImplTest, AllAttemptsFailed) {
ASSERT_TRUE(is_state_idle());
ASSERT_EQ(0, attempt_count());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
CompleteURLFetch(net::OK, 503, retry_after);
ASSERT_TRUE(is_state_portal_detection_pending());
@@ -428,19 +449,19 @@ TEST_F(NetworkPortalDetectorImplTest, AllAttemptsFailed) {
ASSERT_TRUE(is_state_idle());
ASSERT_EQ(3, attempt_count());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_OFFLINE, 503,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, ProxyAuthRequired) {
ASSERT_TRUE(is_state_idle());
set_min_time_between_attempts(base::TimeDelta());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
CompleteURLFetch(net::OK, 407, NULL);
ASSERT_EQ(1, attempt_count());
ASSERT_TRUE(is_state_portal_detection_pending());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
// To run CaptivePortalDetector::DetectCaptivePortal().
MessageLoop::current()->RunUntilIdle();
@@ -449,7 +470,7 @@ TEST_F(NetworkPortalDetectorImplTest, ProxyAuthRequired) {
ASSERT_EQ(2, attempt_count());
ASSERT_TRUE(is_state_portal_detection_pending());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
// To run CaptivePortalDetector::DetectCaptivePortal().
MessageLoop::current()->RunUntilIdle();
@@ -459,14 +480,14 @@ TEST_F(NetworkPortalDetectorImplTest, ProxyAuthRequired) {
ASSERT_TRUE(is_state_idle());
CheckPortalState(
NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED, 407,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, NoResponseButBehindPortal) {
ASSERT_TRUE(is_state_idle());
set_min_time_between_attempts(base::TimeDelta());
- SetBehindPortal(wifi1_network());
+ SetBehindPortal(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
@@ -495,7 +516,7 @@ TEST_F(NetworkPortalDetectorImplTest, NoResponseButBehindPortal) {
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL,
net::URLFetcher::RESPONSE_CODE_INVALID,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForOnlineNetwork) {
@@ -503,7 +524,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForOnlineNetwork) {
set_min_time_between_attempts(base::TimeDelta());
set_lazy_check_interval(base::TimeDelta());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
enable_lazy_detection();
CompleteURLFetch(net::OK, 204, NULL);
@@ -511,7 +532,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForOnlineNetwork) {
ASSERT_TRUE(is_state_portal_detection_pending());
CheckPortalState(
NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- wifi1_network());
+ kStubWireless1);
// To run CaptivePortalDetector::DetectCaptivePortal().
MessageLoop::current()->RunUntilIdle();
@@ -522,7 +543,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForOnlineNetwork) {
ASSERT_TRUE(is_state_portal_detection_pending());
CheckPortalState(
NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- wifi1_network());
+ kStubWireless1);
// To run CaptivePortalDetector::DetectCaptivePortal().
MessageLoop::current()->RunUntilIdle();
@@ -536,7 +557,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForOnlineNetwork) {
ASSERT_TRUE(is_state_idle());
CheckPortalState(
NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE, 204,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForPortalNetwork) {
@@ -544,7 +565,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForPortalNetwork) {
set_min_time_between_attempts(base::TimeDelta());
set_lazy_check_interval(base::TimeDelta());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
enable_lazy_detection();
CompleteURLFetch(net::ERR_CONNECTION_CLOSED,
@@ -553,7 +574,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForPortalNetwork) {
ASSERT_EQ(1, attempt_count());
ASSERT_TRUE(is_state_portal_detection_pending());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
// To run CaptivePortalDetector::DetectCaptivePortal().
MessageLoop::current()->RunUntilIdle();
@@ -564,7 +585,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForPortalNetwork) {
ASSERT_EQ(2, attempt_count());
ASSERT_TRUE(is_state_portal_detection_pending());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
// To run CaptivePortalDetector::DetectCaptivePortal().
MessageLoop::current()->RunUntilIdle();
@@ -573,7 +594,7 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForPortalNetwork) {
ASSERT_EQ(3, attempt_count());
ASSERT_TRUE(is_state_portal_detection_pending());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
- wifi1_network());
+ kStubWireless1);
// To run CaptivePortalDetector::DetectCaptivePortal().
MessageLoop::current()->RunUntilIdle();
@@ -586,24 +607,24 @@ TEST_F(NetworkPortalDetectorImplTest, LazyDetectionForPortalNetwork) {
ASSERT_EQ(3, attempt_count());
ASSERT_TRUE(is_state_idle());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL, 200,
- wifi1_network());
+ kStubWireless1);
}
TEST_F(NetworkPortalDetectorImplTest, DetectionTimeoutIsCancelled) {
ASSERT_TRUE(is_state_idle());
set_min_time_between_attempts(base::TimeDelta());
- SetConnected(wifi1_network());
+ SetConnected(kStubWireless1);
ASSERT_TRUE(is_state_checking_for_portal());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
cancel_portal_detection();
ASSERT_TRUE(is_state_idle());
ASSERT_TRUE(detection_timeout_is_cancelled());
CheckPortalState(NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_UNKNOWN, -1,
- wifi1_network());
+ kStubWireless1);
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698