diff options
author | Samuel Tan <samueltan@google.com> | 2016-05-07 00:41:12 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-05-07 00:41:12 +0000 |
commit | cfc5df0822c5a914d82a2ca1663d3aab290a0674 (patch) | |
tree | 3386c31f83aa7506dbda0a8b6ac74e1e18ae6764 | |
parent | 98b0e9ac68dfe167620bbfd484f85f7861c034a9 (diff) | |
parent | 66d60167138f31fcfbc6bc5119a329fc46f09fcf (diff) | |
download | shill-cfc5df0822c5a914d82a2ca1663d3aab290a0674.tar.gz |
shill: Provide reason string to Service::UserInitiatedConnect and ...Service::UserInitiatedDisconnect
am: 66d6016713
* commit '66d60167138f31fcfbc6bc5119a329fc46f09fcf':
shill: Provide reason string to Service::UserInitiatedConnect and ...Service::UserInitiatedDisconnect
Change-Id: I55ad77681eca1bfe2270974e06e750af6e6ea02b
-rw-r--r-- | dbus/chromeos_service_dbus_adaptor.cc | 8 | ||||
-rw-r--r-- | mock_service.h | 2 | ||||
-rw-r--r-- | service.cc | 8 | ||||
-rw-r--r-- | service.h | 4 | ||||
-rw-r--r-- | service_unittest.cc | 20 | ||||
-rw-r--r-- | wifi/wifi_service_unittest.cc | 2 |
6 files changed, 26 insertions, 18 deletions
diff --git a/dbus/chromeos_service_dbus_adaptor.cc b/dbus/chromeos_service_dbus_adaptor.cc index 4da8cab9..426c54c0 100644 --- a/dbus/chromeos_service_dbus_adaptor.cc +++ b/dbus/chromeos_service_dbus_adaptor.cc @@ -29,6 +29,10 @@ using std::map; using std::string; using std::vector; +namespace { +const char kDBusRpcReasonString[] = "D-Bus RPC"; +} // namespace + namespace shill { namespace Logging { @@ -163,14 +167,14 @@ bool ChromeosServiceDBusAdaptor::ClearProperties(brillo::ErrorPtr* /*error*/, bool ChromeosServiceDBusAdaptor::Connect(brillo::ErrorPtr* error) { SLOG(this, 2) << __func__; Error e; - service_->UserInitiatedConnect(&e); + service_->UserInitiatedConnect(kDBusRpcReasonString, &e); return !e.ToChromeosError(error); } bool ChromeosServiceDBusAdaptor::Disconnect(brillo::ErrorPtr* error) { SLOG(this, 2) << __func__; Error e; - service_->UserInitiatedDisconnect(&e); + service_->UserInitiatedDisconnect(kDBusRpcReasonString, &e); return !e.ToChromeosError(error); } diff --git a/mock_service.h b/mock_service.h index 2c3a8f5e..1ae54b3c 100644 --- a/mock_service.h +++ b/mock_service.h @@ -44,7 +44,7 @@ class MockService : public Service { MOCK_METHOD3(DisconnectWithFailure, void(Service::ConnectFailure failure, Error* error, const char* reason)); - MOCK_METHOD1(UserInitiatedDisconnect, void(Error* error)); + MOCK_METHOD2(UserInitiatedDisconnect, void(const char* reason, Error* error)); MOCK_METHOD1(CalculateState, std::string(Error* error)); MOCK_CONST_METHOD0(state, ConnectState()); MOCK_METHOD1(SetState, void(ConnectState state)); @@ -353,13 +353,13 @@ void Service::DisconnectWithFailure(ConnectFailure failure, SetFailure(failure); } -void Service::UserInitiatedDisconnect(Error* error) { - Disconnect(error, "D-Bus RPC"); +void Service::UserInitiatedDisconnect(const char* reason, Error* error) { + Disconnect(error, reason); explicitly_disconnected_ = true; } -void Service::UserInitiatedConnect(Error* error) { - Connect(error, "D-Bus RPC"); +void Service::UserInitiatedConnect(const char* reason, Error* error) { + Connect(error, reason); is_in_user_connect_ = true; } @@ -183,10 +183,10 @@ class Service : public base::RefCounted<Service> { // Disconnects this service via Disconnect(). The service will not be eligible // for auto-connect until a subsequent call to Connect, or Load. Do not // override this method. - virtual void UserInitiatedDisconnect(Error* error); + virtual void UserInitiatedDisconnect(const char* reason, Error* error); // Connect to this service via Connect(). This function indicates that the // connection attempt is user-initiated. - virtual void UserInitiatedConnect(Error* error); + virtual void UserInitiatedConnect(const char* reason, Error* error); // The default implementation returns the error kInvalidArguments. virtual void ActivateCellularModem(const std::string& carrier, diff --git a/service_unittest.cc b/service_unittest.cc index d5c122f3..1a644ff2 100644 --- a/service_unittest.cc +++ b/service_unittest.cc @@ -79,6 +79,10 @@ using testing::SetArgumentPointee; using testing::Test; using testing::Values; +namespace { + const char kConnectDisconnectReason[] = "RPC"; +} + namespace shill { class ServiceTest : public PropertyStoreTest { @@ -889,7 +893,7 @@ TEST_F(ServiceTest, UserInitiatedConnectionResult) { Error error; // User-initiated connection attempt succeed. service_->SetState(Service::kStateIdle); - service_->UserInitiatedConnect(&error); + service_->UserInitiatedConnect(kConnectDisconnectReason, &error); EXPECT_CALL(*metrics(), NotifyUserInitiatedConnectionResult( Metrics::kMetricWifiUserInitiatedConnectionResult, Metrics::kUserInitiatedConnectionResultSuccess)); @@ -900,7 +904,7 @@ TEST_F(ServiceTest, UserInitiatedConnectionResult) { // User-initiated connection attempt failed. service_->SetState(Service::kStateIdle); - service_->UserInitiatedConnect(&error); + service_->UserInitiatedConnect(kConnectDisconnectReason, &error); EXPECT_CALL(*metrics(), NotifyUserInitiatedConnectionResult( Metrics::kMetricWifiUserInitiatedConnectionResult, Metrics::kUserInitiatedConnectionResultFailure)); @@ -912,7 +916,7 @@ TEST_F(ServiceTest, UserInitiatedConnectionResult) { // User-initiated connection attempt aborted. service_->SetState(Service::kStateIdle); - service_->UserInitiatedConnect(&error); + service_->UserInitiatedConnect(kConnectDisconnectReason, &error); service_->SetState(Service::kStateAssociating); EXPECT_CALL(*metrics(), NotifyUserInitiatedConnectionResult( Metrics::kMetricWifiUserInitiatedConnectionResult, @@ -924,7 +928,7 @@ TEST_F(ServiceTest, UserInitiatedConnectionResult) { // No metric reporting for other state transition. service_->SetState(Service::kStateIdle); - service_->UserInitiatedConnect(&error); + service_->UserInitiatedConnect(kConnectDisconnectReason, &error); EXPECT_CALL(*metrics(), NotifyUserInitiatedConnectionResult(_, _)).Times(0); EXPECT_CALL(*metrics(), NotifyUserInitiatedConnectionFailureReason(_, _)) .Times(0); @@ -944,7 +948,7 @@ TEST_F(ServiceTest, UserInitiatedConnectionResult) { // No metric reporting for other technology. service_->technology_ = Technology::kCellular; service_->SetState(Service::kStateIdle); - service_->UserInitiatedConnect(&error); + service_->UserInitiatedConnect(kConnectDisconnectReason, &error); EXPECT_CALL(*metrics(), NotifyUserInitiatedConnectionResult(_, _)).Times(0); EXPECT_CALL(*metrics(), NotifyUserInitiatedConnectionFailureReason(_, _)) .Times(0); @@ -1004,7 +1008,7 @@ TEST_F(ServiceTest, IsAutoConnectable) { // We should not auto-connect to a Service that a user has // deliberately disconnected. Error error; - service_->UserInitiatedDisconnect(&error); + service_->UserInitiatedDisconnect(kConnectDisconnectReason, &error); EXPECT_FALSE(service_->IsAutoConnectable(&reason)); EXPECT_STREQ(Service::kAutoConnExplicitDisconnect, reason); @@ -1019,7 +1023,7 @@ TEST_F(ServiceTest, IsAutoConnectable) { EXPECT_TRUE(service_->IsAutoConnectable(&reason)); // A deliberate Connect should also re-enable auto-connect. - service_->UserInitiatedDisconnect(&error); + service_->UserInitiatedDisconnect(kConnectDisconnectReason, &error); EXPECT_FALSE(service_->IsAutoConnectable(&reason)); service_->Connect(&error, "in test"); EXPECT_TRUE(service_->IsAutoConnectable(&reason)); @@ -1029,7 +1033,7 @@ TEST_F(ServiceTest, IsAutoConnectable) { EXPECT_TRUE(service_->IsAutoConnectable(&reason)); // A resume also re-enables auto-connect. - service_->UserInitiatedDisconnect(&error); + service_->UserInitiatedDisconnect(kConnectDisconnectReason, &error); EXPECT_FALSE(service_->IsAutoConnectable(&reason)); service_->OnAfterResume(); EXPECT_TRUE(service_->IsAutoConnectable(&reason)); diff --git a/wifi/wifi_service_unittest.cc b/wifi/wifi_service_unittest.cc index 3fe9f183..ff400b2e 100644 --- a/wifi/wifi_service_unittest.cc +++ b/wifi/wifi_service_unittest.cc @@ -1409,7 +1409,7 @@ TEST_F(WiFiServiceTest, AutoConnect) { dispatcher()->DispatchPendingEvents(); Error error; - service->UserInitiatedDisconnect(&error); + service->UserInitiatedDisconnect("RPC", &error); dispatcher()->DispatchPendingEvents(); EXPECT_FALSE(service->IsAutoConnectable(&reason)); } |