summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Tan <samueltan@google.com>2016-05-07 00:41:12 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-05-07 00:41:12 +0000
commitcfc5df0822c5a914d82a2ca1663d3aab290a0674 (patch)
tree3386c31f83aa7506dbda0a8b6ac74e1e18ae6764
parent98b0e9ac68dfe167620bbfd484f85f7861c034a9 (diff)
parent66d60167138f31fcfbc6bc5119a329fc46f09fcf (diff)
downloadshill-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.cc8
-rw-r--r--mock_service.h2
-rw-r--r--service.cc8
-rw-r--r--service.h4
-rw-r--r--service_unittest.cc20
-rw-r--r--wifi/wifi_service_unittest.cc2
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));
diff --git a/service.cc b/service.cc
index 8f371a83..9cf5727e 100644
--- a/service.cc
+++ b/service.cc
@@ -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;
}
diff --git a/service.h b/service.h
index e2521535..c0641476 100644
--- a/service.h
+++ b/service.h
@@ -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));
}