shill: Set the cellular service friendly name.

BUG=chromium-os:24897
TEST=unit tests, tested on device with GSM

Change-Id: I2fe803822f2ddc5c52daddcf625b3327f95563ad
Reviewed-on: https://gerrit.chromium.org/gerrit/13933
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/cellular_capability_gsm_unittest.cc b/cellular_capability_gsm_unittest.cc
index b276d4e..228c81e 100644
--- a/cellular_capability_gsm_unittest.cc
+++ b/cellular_capability_gsm_unittest.cc
@@ -403,4 +403,23 @@
             capability_->GetRoamingStateString());
 }
 
+TEST_F(CellularCapabilityGSMTest, CreateFriendlyServiceName) {
+  CellularCapabilityGSM::friendly_service_name_id_ = 0;
+  EXPECT_EQ("GSMNetwork0", capability_->CreateFriendlyServiceName());
+  EXPECT_EQ("GSMNetwork1", capability_->CreateFriendlyServiceName());
+  capability_->serving_operator_.SetCode("1234");
+  EXPECT_EQ("cellular_1234", capability_->CreateFriendlyServiceName());
+  static const char kTestCarrier[] = "A GSM Carrier";
+  cellular_->carrier_ = kTestCarrier;
+  EXPECT_EQ(kTestCarrier, capability_->CreateFriendlyServiceName());
+  static const char kTestOperator[] = "A GSM Operator";
+  capability_->serving_operator_.SetName(kTestOperator);
+  EXPECT_EQ(kTestOperator, capability_->CreateFriendlyServiceName());
+  static const char kHomeProvider[] = "The GSM Home Provider";
+  cellular_->home_provider_.SetName(kHomeProvider);
+  EXPECT_EQ(kTestOperator, capability_->CreateFriendlyServiceName());
+  capability_->registration_state_ = MM_MODEM_GSM_NETWORK_REG_STATUS_HOME;
+  EXPECT_EQ(kHomeProvider, capability_->CreateFriendlyServiceName());
+}
+
 }  // namespace shill