shill: Consolidate Cellular DBus properties in the Cellular class.
BUG=chromium:321854
TEST=(1) Run platform2 unittests.
(2) Run network_3g, network_ui, network3g_pseudomodem suite on 3G, LTE, and
CDMA modems.
Change-Id: I5717c5de8597f8bfac15b3947f455c6e44344929
Reviewed-on: https://chromium-review.googlesource.com/177700
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Prathmesh Prabhu <pprabhu@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
diff --git a/adaptor_interfaces.h b/adaptor_interfaces.h
index 55cb701..2f2df0a 100644
--- a/adaptor_interfaces.h
+++ b/adaptor_interfaces.h
@@ -34,6 +34,8 @@
virtual void EmitIntChanged(const std::string &name, int value) = 0;
virtual void EmitStringChanged(const std::string &name,
const std::string &value) = 0;
+ virtual void EmitStringmapChanged(const std::string &name,
+ const Stringmap &value) = 0;
virtual void EmitStringmapsChanged(const std::string &name,
const Stringmaps &value) = 0;
virtual void EmitKeyValueStoreChanged(const std::string &name,
diff --git a/cellular.cc b/cellular.cc
index 403369b..24d4805 100644
--- a/cellular.cc
+++ b/cellular.cc
@@ -116,25 +116,17 @@
dbus_owner_(owner),
dbus_service_(service),
dbus_path_(path),
+ scanning_supported_(false),
+ provider_requires_roaming_(false),
+ scan_interval_(0),
+ sim_present_(false),
modem_info_(modem_info),
proxy_factory_(proxy_factory),
ppp_device_factory_(PPPDeviceFactory::GetInstance()),
allow_roaming_(false),
explicit_disconnect_(false),
is_ppp_authenticating_(false) {
- PropertyStore *store = this->mutable_store();
- // TODO(jglasgow): kDBusConnectionProperty is deprecated.
- store->RegisterConstString(kDBusConnectionProperty, &dbus_owner_);
- store->RegisterConstString(kDBusServiceProperty, &dbus_service_);
- store->RegisterConstString(kDBusObjectProperty, &dbus_path_);
- HelpRegisterConstDerivedString(kTechnologyFamilyProperty,
- &Cellular::GetTechnologyFamily);
- HelpRegisterDerivedBool(kCellularAllowRoamingProperty,
- &Cellular::GetAllowRoaming,
- &Cellular::SetAllowRoaming);
- store->RegisterConstStringmap(kHomeProviderProperty,
- &home_provider_.ToDict());
-
+ RegisterProperties();
// For now, only a single capability is supported.
InitCapability(type);
@@ -777,10 +769,6 @@
invalidated_properties);
}
-void Cellular::set_home_provider(const Operator &oper) {
- home_provider_.CopyFrom(oper);
-}
-
string Cellular::CreateFriendlyServiceName() {
SLOG(Cellular, 2) << __func__;
return capability_.get() ? capability_->CreateFriendlyServiceName() : "";
@@ -1044,4 +1032,207 @@
OnPPPDisconnected();
}
+void Cellular::RegisterProperties() {
+ PropertyStore *store = this->mutable_store();
+
+ // These properties do not have setters, and events are not generated when
+ // they are changed.
+ // TODO(jglasgow): kDBusConnectionProperty is deprecated. crbug.com/323754
+ store->RegisterConstString(kDBusConnectionProperty, &dbus_owner_);
+ store->RegisterConstString(kDBusServiceProperty, &dbus_service_);
+ store->RegisterConstString(kDBusObjectProperty, &dbus_path_);
+
+ store->RegisterUint16(kScanIntervalProperty, &scan_interval_);
+
+ // These properties have setters that should be used to change their values.
+ // Events are generated whenever the values change.
+ store->RegisterConstStringmap(kHomeProviderProperty,
+ &home_provider_.ToDict());
+ store->RegisterConstString(kCarrierProperty, &carrier_);
+ store->RegisterConstBool(kSupportNetworkScanProperty, &scanning_supported_);
+ store->RegisterConstString(kEsnProperty, &esn_);
+ store->RegisterConstString(kFirmwareRevisionProperty, &firmware_revision_);
+ store->RegisterConstString(kHardwareRevisionProperty, &hardware_revision_);
+ store->RegisterConstString(kImeiProperty, &imei_);
+ store->RegisterConstString(kImsiProperty, &imsi_);
+ store->RegisterConstString(kMdnProperty, &mdn_);
+ store->RegisterConstString(kMeidProperty, &meid_);
+ store->RegisterConstString(kMinProperty, &min_);
+ store->RegisterConstString(kManufacturerProperty, &manufacturer_);
+ store->RegisterConstString(kModelIDProperty, &model_id_);
+
+ store->RegisterConstString(kSelectedNetworkProperty, &selected_network_);
+ store->RegisterConstStringmaps(kFoundNetworksProperty, &found_networks_);
+ store->RegisterConstBool(kProviderRequiresRoamingProperty,
+ &provider_requires_roaming_);
+ store->RegisterConstBool(kSIMPresentProperty, &sim_present_);
+ store->RegisterConstStringmaps(kCellularApnListProperty, &apn_list_);
+
+ // TODO(pprabhu): Decide whether these need their own custom setters.
+ HelpRegisterConstDerivedString(kTechnologyFamilyProperty,
+ &Cellular::GetTechnologyFamily);
+ HelpRegisterDerivedBool(kCellularAllowRoamingProperty,
+ &Cellular::GetAllowRoaming,
+ &Cellular::SetAllowRoaming);
+}
+
+void Cellular::set_home_provider(const Operator &oper) {
+ if (home_provider_.Equals(oper))
+ return;
+
+ home_provider_.CopyFrom(oper);
+ adaptor()->EmitStringmapChanged(kHomeProviderProperty,
+ home_provider_.ToDict());
+}
+
+void Cellular::set_carrier(const string &carrier) {
+ if (carrier_ == carrier)
+ return;
+
+ carrier_ = carrier;
+ adaptor()->EmitStringChanged(kCarrierProperty, carrier_);
+}
+
+void Cellular::set_scanning_supported(bool scanning_supported) {
+ if (scanning_supported_ == scanning_supported)
+ return;
+
+ scanning_supported_ = scanning_supported;
+ if (adaptor())
+ adaptor()->EmitBoolChanged(kSupportNetworkScanProperty,
+ scanning_supported_);
+ else
+ SLOG(Cellular, 2) << "Could not emit signal for property |"
+ << kSupportNetworkScanProperty
+ << "| change. DBus adaptor is NULL!";
+}
+
+void Cellular::set_esn(const string &esn) {
+ if (esn_ == esn)
+ return;
+
+ esn_ = esn;
+ adaptor()->EmitStringChanged(kEsnProperty, esn_);
+}
+
+void Cellular::set_firmware_revision(const std::string &firmware_revision) {
+ if (firmware_revision_ == firmware_revision)
+ return;
+
+ firmware_revision_ = firmware_revision;
+ adaptor()->EmitStringChanged(kFirmwareRevisionProperty, firmware_revision_);
+}
+
+void Cellular::set_hardware_revision(const std::string &hardware_revision) {
+ if (hardware_revision_ == hardware_revision)
+ return;
+
+ hardware_revision_ = hardware_revision;
+ adaptor()->EmitStringChanged(kHardwareRevisionProperty, hardware_revision_);
+}
+
+// TODO(armansito): The following methods should probably log their argument
+// values. Need to learn if any of them need to be scrubbed.
+void Cellular::set_imei(const std::string &imei) {
+ if (imei_ == imei)
+ return;
+
+ imei_ = imei;
+ adaptor()->EmitStringChanged(kImeiProperty, imei_);
+}
+
+void Cellular::set_imsi(const std::string &imsi) {
+ if (imsi_ == imsi)
+ return;
+
+ imsi_ = imsi;
+ adaptor()->EmitStringChanged(kImsiProperty, imsi_);
+}
+
+void Cellular::set_mdn(const std::string &mdn) {
+ if (mdn_ == mdn)
+ return;
+
+ mdn_ = mdn;
+ adaptor()->EmitStringChanged(kMdnProperty, mdn_);
+}
+
+void Cellular::set_meid(const std::string &meid) {
+ if (meid_ == meid)
+ return;
+
+ meid_ = meid;
+ adaptor()->EmitStringChanged(kMeidProperty, meid_);
+}
+
+void Cellular::set_min(const std::string &min) {
+ if (min_ == min)
+ return;
+
+ min_ = min;
+ adaptor()->EmitStringChanged(kMinProperty, min_);
+}
+
+void Cellular::set_manufacturer(const std::string &manufacturer) {
+ if (manufacturer_ == manufacturer)
+ return;
+
+ manufacturer_ = manufacturer;
+ adaptor()->EmitStringChanged(kManufacturerProperty, manufacturer_);
+}
+
+void Cellular::set_model_id(const std::string &model_id) {
+ if (model_id_ == model_id)
+ return;
+
+ model_id_ = model_id;
+ adaptor()->EmitStringChanged(kModelIDProperty, model_id_);
+}
+
+void Cellular::set_selected_network(const std::string &selected_network) {
+ if (selected_network_ == selected_network)
+ return;
+
+ selected_network_ = selected_network;
+ adaptor()->EmitStringChanged(kSelectedNetworkProperty, selected_network_);
+}
+
+void Cellular::set_found_networks(const Stringmaps &found_networks) {
+ // There is no canonical form of a Stringmaps value.
+ // So don't check for redundant updates.
+ found_networks_ = found_networks;
+ adaptor()->EmitStringmapsChanged(kFoundNetworksProperty, found_networks_);
+}
+
+void Cellular::set_provider_requires_roaming(bool provider_requires_roaming) {
+ if (provider_requires_roaming_ == provider_requires_roaming)
+ return;
+
+ provider_requires_roaming_ = provider_requires_roaming;
+ adaptor()->EmitBoolChanged(kProviderRequiresRoamingProperty,
+ provider_requires_roaming_);
+}
+
+void Cellular::set_sim_present(bool sim_present) {
+ if (sim_present_ == sim_present)
+ return;
+
+ sim_present_ = sim_present;
+ adaptor()->EmitBoolChanged(kSIMPresentProperty, sim_present_);
+}
+
+void Cellular::set_apn_list(const Stringmaps &apn_list) {
+ // There is no canonical form of a Stringmaps value.
+ // So don't check for redundant updates.
+ apn_list_ = apn_list;
+ // See crbug.com/215581: Sometimes adaptor may be NULL when |set_apn_list| is
+ // called.
+ if (adaptor())
+ adaptor()->EmitStringmapsChanged(kCellularApnListProperty, apn_list_);
+ else
+ SLOG(Cellular, 2) << "Could not emit signal for property |"
+ << kCellularApnListProperty
+ << "| change. DBus adaptor is NULL!";
+}
+
} // namespace shill
diff --git a/cellular.h b/cellular.h
index ffcbd97..dc98afd 100644
--- a/cellular.h
+++ b/cellular.h
@@ -158,12 +158,6 @@
bool IsModemRegistered() const;
static bool IsEnabledModemState(ModemState state);
- const std::string &dbus_owner() const { return dbus_owner_; }
- const std::string &dbus_path() const { return dbus_path_; }
-
- const Operator &home_provider() const { return home_provider_; }
- void set_home_provider(const Operator &oper);
-
void HandleNewSignalQuality(uint32 strength);
// Processes a change in the modem registration state, possibly creating,
@@ -239,6 +233,55 @@
virtual void Notify(const std::string &reason,
const std::map<std::string, std::string> &dict) override;
+ // ///////////////////////////////////////////////////////////////////////////
+ // DBus Properties exposed by the Device interface of shill.
+ void RegisterProperties();
+
+ // getters
+ const std::string &dbus_owner() const { return dbus_owner_; }
+ const std::string &dbus_path() const { return dbus_path_; }
+ const Operator &home_provider() const { return home_provider_; }
+ const std::string &carrier() const { return carrier_; }
+ bool scanning_supported() const { return scanning_supported_; }
+ const std::string &esn() const { return esn_; }
+ const std::string &firmware_revision() const { return firmware_revision_; }
+ const std::string &hardware_revision() const { return hardware_revision_; }
+ const std::string &imei() const { return imei_; }
+ const std::string &imsi() const { return imsi_; }
+ const std::string &mdn() const { return mdn_; }
+ const std::string &meid() const { return meid_; }
+ const std::string &min() const { return min_; }
+ const std::string &manufacturer() const { return manufacturer_; }
+ const std::string &model_id() const { return model_id_; }
+
+ const std::string &selected_network() const { return selected_network_; }
+ const Stringmaps &found_networks() const { return found_networks_; }
+ bool provider_requires_roaming() const { return provider_requires_roaming_; }
+ bool sim_present() const { return sim_present_; }
+ const Stringmaps &apn_list() const { return apn_list_; }
+
+ // setters
+ void set_home_provider(const Operator &oper);
+ void set_carrier(const std::string &carrier);
+ void set_scanning_supported(bool scanning_supported);
+ void set_esn(const std::string &esn);
+ void set_firmware_revision(const std::string &firmware_revision);
+ void set_hardware_revision(const std::string &hardware_revision);
+ void set_imei(const std::string &imei);
+ void set_imsi(const std::string &imsi);
+ void set_mdn(const std::string &mdn);
+ void set_meid(const std::string &meid);
+ void set_min(const std::string &min);
+ void set_manufacturer(const std::string &manufacturer);
+ void set_model_id(const std::string &model_id);
+
+ void set_selected_network(const std::string &selected_network);
+ void set_found_networks(const Stringmaps &found_networks);
+ void set_provider_requires_roaming(bool provider_requires_roaming);
+ void set_sim_present(bool sim_present);
+ void set_apn_list(const Stringmaps &apn_list);
+
+
private:
friend class ActivePassiveOutOfCreditsDetectorTest;
friend class CellularTest;
@@ -403,9 +446,35 @@
scoped_ptr<CellularCapability> capability_;
+ // All DBus Properties exposed by the Cellular device.
+ // Properties common to GSM and CDMA modems.
const std::string dbus_owner_; // :x.y
const std::string dbus_service_; // org.*.ModemManager*
const std::string dbus_path_; // ModemManager.Modem
+ Operator home_provider_;
+
+ bool scanning_supported_;
+ std::string carrier_;
+ std::string esn_;
+ std::string firmware_revision_;
+ std::string hardware_revision_;
+ std::string imei_;
+ std::string imsi_;
+ std::string manufacturer_;
+ std::string mdn_;
+ std::string meid_;
+ std::string min_;
+ std::string model_id_;
+
+ // GSM only properties.
+ // They are always exposed but are non empty only for GSM technology modems.
+ std::string selected_network_;
+ Stringmaps found_networks_;
+ bool provider_requires_roaming_;
+ uint16 scan_interval_;
+ bool sim_present_;
+ Stringmaps apn_list_;
+
ModemInfo *modem_info_;
ProxyFactory *proxy_factory_;
@@ -413,9 +482,6 @@
CellularServiceRefPtr service_;
- // Properties
- Operator home_provider_;
-
// User preference to allow or disallow roaming
bool allow_roaming_;
diff --git a/cellular_capability_cdma.cc b/cellular_capability_cdma.cc
index 7f4adc5..113a4eb 100644
--- a/cellular_capability_cdma.cc
+++ b/cellular_capability_cdma.cc
@@ -232,10 +232,10 @@
void CellularCapabilityCDMA::GetMEID(const ResultCallback &callback) {
SLOG(Cellular, 2) << __func__;
- if (meid_.empty()) {
+ if (cellular()->meid().empty()) {
// TODO(petkov): Switch to asynchronous calls (crbug.com/200687).
- meid_ = proxy_->MEID();
- SLOG(Cellular, 2) << "MEID: " << meid_;
+ cellular()->set_meid(proxy_->MEID());
+ SLOG(Cellular, 2) << "MEID: " << cellular()->meid();
}
callback.Run(Error());
}
@@ -308,8 +308,8 @@
string CellularCapabilityCDMA::CreateFriendlyServiceName() {
SLOG(Cellular, 2) << __func__;
- if (!carrier_.empty()) {
- return carrier_;
+ if (!cellular()->carrier().empty()) {
+ return cellular()->carrier();
}
return base::StringPrintf("CDMANetwork%u", friendly_service_name_id_++);
}
@@ -356,8 +356,13 @@
uint32 activation_error,
const DBusPropertiesMap &status_changes) {
SLOG(Cellular, 2) << __func__;
- DBusProperties::GetString(status_changes, "mdn", &mdn_);
- DBusProperties::GetString(status_changes, "min", &min_);
+ string prop_value;
+
+ if (DBusProperties::GetString(status_changes, "mdn", &prop_value))
+ cellular()->set_mdn(prop_value);
+ if (DBusProperties::GetString(status_changes, "min", &prop_value))
+ cellular()->set_min(prop_value);
+
string payment;
if (DBusProperties::GetString(status_changes, "payment_url", &payment)) {
olp_.SetURL(payment);
diff --git a/cellular_capability_cdma_unittest.cc b/cellular_capability_cdma_unittest.cc
index d32dda5..e2ec268 100644
--- a/cellular_capability_cdma_unittest.cc
+++ b/cellular_capability_cdma_unittest.cc
@@ -387,7 +387,7 @@
EXPECT_EQ("CDMANetwork0", capability_->CreateFriendlyServiceName());
EXPECT_EQ("CDMANetwork1", capability_->CreateFriendlyServiceName());
static const char kTestCarrier[] = "A Carrier";
- capability_->carrier_ = kTestCarrier;
+ cellular_->set_carrier(kTestCarrier);
EXPECT_EQ(kTestCarrier, capability_->CreateFriendlyServiceName());
}
diff --git a/cellular_capability_classic.cc b/cellular_capability_classic.cc
index 7232228..3801a4e 100644
--- a/cellular_capability_classic.cc
+++ b/cellular_capability_classic.cc
@@ -65,22 +65,8 @@
ProxyFactory *proxy_factory,
ModemInfo *modem_info)
: CellularCapability(cellular, proxy_factory, modem_info),
- scanning_supported_(false),
weak_ptr_factory_(this) {
PropertyStore *store = cellular->mutable_store();
- store->RegisterConstString(kCarrierProperty, &carrier_);
- store->RegisterConstBool(kSupportNetworkScanProperty, &scanning_supported_);
- store->RegisterConstString(kEsnProperty, &esn_);
- store->RegisterConstString(kFirmwareRevisionProperty, &firmware_revision_);
- store->RegisterConstString(kHardwareRevisionProperty, &hardware_revision_);
- store->RegisterConstString(kImeiProperty, &imei_);
- store->RegisterConstString(kImsiProperty, &imsi_);
- store->RegisterConstString(kManufacturerProperty, &manufacturer_);
- store->RegisterConstString(kMdnProperty, &mdn_);
- store->RegisterConstString(kMeidProperty, &meid_);
- store->RegisterConstString(kMinProperty, &min_);
- store->RegisterConstString(kModelIDProperty, &model_id_);
-
// This class is currently instantiated only for Gobi modems so setup the
// supported carriers list appropriately and expose it over RPC.
supported_carriers_.push_back(kCarrierGenericUMTS);
@@ -348,17 +334,26 @@
const ResultCallback &callback,
const DBusPropertiesMap &props,
const Error &error) {
+ string prop_value;
SLOG(Cellular, 2) << __func__ << " " << props.size() << " props. error "
<< error;
if (error.IsSuccess()) {
- DBusProperties::GetString(props, "carrier", &carrier_);
- DBusProperties::GetString(props, "meid", &meid_);
- DBusProperties::GetString(props, "imei", &imei_);
- DBusProperties::GetString(props, kModemPropertyIMSI, &imsi_);
- DBusProperties::GetString(props, "esn", &esn_);
- DBusProperties::GetString(props, "mdn", &mdn_);
- DBusProperties::GetString(props, "min", &min_);
- DBusProperties::GetString(props, "firmware_revision", &firmware_revision_);
+ if (DBusProperties::GetString(props, "carrier", &prop_value))
+ cellular()->set_carrier(prop_value);
+ if (DBusProperties::GetString(props, "meid", &prop_value))
+ cellular()->set_meid(prop_value);
+ if (DBusProperties::GetString(props, "imei", &prop_value))
+ cellular()->set_imei(prop_value);
+ if (DBusProperties::GetString(props, kModemPropertyIMSI, &prop_value))
+ cellular()->set_imsi(prop_value);
+ if (DBusProperties::GetString(props, "esn", &prop_value))
+ cellular()->set_esn(prop_value);
+ if (DBusProperties::GetString(props, "mdn", &prop_value))
+ cellular()->set_mdn(prop_value);
+ if (DBusProperties::GetString(props, "min", &prop_value))
+ cellular()->set_min(prop_value);
+ if (DBusProperties::GetString(props, "firmware_revision", &prop_value))
+ cellular()->set_firmware_revision(prop_value);
UpdateStatus(props);
}
callback.Run(error);
@@ -370,9 +365,9 @@
const Error &error) {
SLOG(Cellular, 2) << __func__ << "(" << error << ")";
if (error.IsSuccess()) {
- manufacturer_ = info._1;
- model_id_ = info._2;
- hardware_revision_ = info._3;
+ cellular()->set_manufacturer(info._1);
+ cellular()->set_model_id(info._2);
+ cellular()->set_hardware_revision(info._3);
SLOG(Cellular, 2) << __func__ << ": " << info._1 << ", " << info._2 << ", "
<< info._3;
}
diff --git a/cellular_capability_classic.h b/cellular_capability_classic.h
index 58b3152..a40d8d6 100644
--- a/cellular_capability_classic.h
+++ b/cellular_capability_classic.h
@@ -130,20 +130,6 @@
void StepCompletedCallback(const ResultCallback &callback, bool ignore_error,
CellularTaskList *tasks, const Error &error);
- // Properties
- bool scanning_supported_;
- std::string meid_;
- std::string imsi_;
- std::string imei_;
- std::string esn_;
- std::string mdn_;
- std::string min_;
- std::string model_id_;
- std::string manufacturer_;
- std::string firmware_revision_;
- std::string hardware_revision_;
- std::string carrier_;
-
scoped_ptr<ModemSimpleProxyInterface> simple_proxy_;
private:
diff --git a/cellular_capability_classic_unittest.cc b/cellular_capability_classic_unittest.cc
index 1692726..35f76a1 100644
--- a/cellular_capability_classic_unittest.cc
+++ b/cellular_capability_classic_unittest.cc
@@ -257,7 +257,7 @@
ResultCallback callback =
Bind(&CellularCapabilityTest::TestCallback, Unretained(this));
capability_->GetModemStatus(callback);
- EXPECT_EQ(kTestCarrier, capability_->carrier_);
+ EXPECT_EQ(kTestCarrier, cellular_->carrier());
EXPECT_EQ(kTestCarrier, cellular_->home_provider_.GetName());
}
@@ -269,9 +269,9 @@
ResultCallback callback =
Bind(&CellularCapabilityTest::TestCallback, Unretained(this));
capability_->GetModemInfo(callback);
- EXPECT_EQ(kManufacturer, capability_->manufacturer_);
- EXPECT_EQ(kModelID, capability_->model_id_);
- EXPECT_EQ(kHWRev, capability_->hardware_revision_);
+ EXPECT_EQ(kManufacturer, cellular_->manufacturer());
+ EXPECT_EQ(kModelID, cellular_->model_id());
+ EXPECT_EQ(kHWRev, cellular_->hardware_revision());
}
TEST_F(CellularCapabilityTest, EnableModemSucceed) {
@@ -389,7 +389,7 @@
}
CellularCapabilityGSM *gsm_capability = GetGsmCapability();
SetService();
- gsm_capability->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
InitProviderDB();
gsm_capability->SetHomeProvider();
ProfileRefPtr profile(new NiceMock<MockProfile>(
diff --git a/cellular_capability_gsm.cc b/cellular_capability_gsm.cc
index cbfccf0..a41d4b9 100644
--- a/cellular_capability_gsm.cc
+++ b/cellular_capability_gsm.cc
@@ -58,25 +58,15 @@
registration_state_(MM_MODEM_GSM_NETWORK_REG_STATUS_UNKNOWN),
access_technology_(MM_MODEM_GSM_ACCESS_TECH_UNKNOWN),
home_provider_info_(NULL),
- provider_requires_roaming_(false),
get_imsi_retries_(0),
get_imsi_retry_delay_milliseconds_(kGetIMSIRetryDelayMilliseconds),
- scanning_(false),
- scan_interval_(0),
- sim_present_(false) {
+ scanning_(false) {
SLOG(Cellular, 2) << "Cellular capability constructed: GSM";
PropertyStore *store = cellular->mutable_store();
- store->RegisterConstString(kSelectedNetworkProperty, &selected_network_);
- store->RegisterConstStringmaps(kFoundNetworksProperty, &found_networks_);
- store->RegisterConstBool(kProviderRequiresRoamingProperty,
- &provider_requires_roaming_);
store->RegisterConstBool(kScanningProperty, &scanning_);
- store->RegisterUint16(kScanIntervalProperty, &scan_interval_);
- store->RegisterConstBool(kSIMPresentProperty, &sim_present_);
HelpRegisterConstDerivedKeyValueStore(
kSIMLockStatusProperty, &CellularCapabilityGSM::SimLockStatusToProperty);
- store->RegisterConstStringmaps(kCellularApnListProperty, &apn_list_);
- scanning_supported_ = true;
+ this->cellular()->set_scanning_supported(true);
// TODO(benchan): This is a hack to initialize the GSM card proxy for GetIMSI
// before InitProxies is called. There are side-effects of calling InitProxies
@@ -166,7 +156,8 @@
// If we're within range of the home network, the modem will try to
// register once it's enabled, or may be already registered if we
// started out enabled.
- if (!IsUnderlyingDeviceRegistered() && !selected_network_.empty())
+ if (!IsUnderlyingDeviceRegistered() &&
+ !cellular()->selected_network().empty())
tasks->push_back(Bind(&CellularCapabilityGSM::Register,
weak_ptr_factory_.GetWeakPtr(), cb));
tasks->push_back(Bind(&CellularCapabilityGSM::GetIMEI,
@@ -218,9 +209,10 @@
void CellularCapabilityGSM::OnServiceCreated() {
// If IMSI is available, base the service's storage identifier on it.
- if (!imsi_.empty()) {
+ if (!cellular()->imsi().empty()) {
cellular()->service()->SetStorageIdentifier(
- string(kTypeCellular) + "_" + cellular()->address() + "_" + imsi_);
+ string(kTypeCellular) + "_" + cellular()->address() + "_" +
+ cellular()->imsi());
}
cellular()->service()->SetActivationState(kActivationStateActivated);
UpdateServingOperator();
@@ -251,7 +243,9 @@
if (apn_info)
apn_try_list_.push_back(*apn_info);
- apn_try_list_.insert(apn_try_list_.end(), apn_list_.begin(), apn_list_.end());
+ apn_try_list_.insert(apn_try_list_.end(),
+ cellular()->apn_list().begin(),
+ cellular()->apn_list().end());
}
void CellularCapabilityGSM::SetupConnectProperties(
@@ -326,7 +320,7 @@
}
bool CellularCapabilityGSM::AllowRoaming() {
- return provider_requires_roaming_ || allow_roaming_property();
+ return cellular()->provider_requires_roaming() || allow_roaming_property();
}
// always called from an async context
@@ -334,14 +328,14 @@
SLOG(Cellular, 2) << __func__;
CHECK(!callback.is_null());
Error error;
- if (imei_.empty()) {
+ if (cellular()->imei().empty()) {
GSMIdentifierCallback cb = Bind(&CellularCapabilityGSM::OnGetIMEIReply,
weak_ptr_factory_.GetWeakPtr(), callback);
card_proxy_->GetIMEI(&error, cb, kTimeoutDefault);
if (error.IsFailure())
callback.Run(error);
} else {
- SLOG(Cellular, 2) << "Already have IMEI " << imei_;
+ SLOG(Cellular, 2) << "Already have IMEI " << cellular()->imei();
callback.Run(error);
}
}
@@ -351,7 +345,7 @@
SLOG(Cellular, 2) << __func__;
CHECK(!callback.is_null());
Error error;
- if (imsi_.empty()) {
+ if (cellular()->imsi().empty()) {
GSMIdentifierCallback cb = Bind(&CellularCapabilityGSM::OnGetIMSIReply,
weak_ptr_factory_.GetWeakPtr(),
callback);
@@ -359,7 +353,7 @@
if (error.IsFailure())
callback.Run(error);
} else {
- SLOG(Cellular, 2) << "Already have IMSI " << imsi_;
+ SLOG(Cellular, 2) << "Already have IMSI " << cellular()->imsi();
callback.Run(error);
}
}
@@ -387,7 +381,8 @@
SLOG(Cellular, 2) << __func__;
CHECK(!callback.is_null());
Error error;
- if (mdn_.empty()) {
+ string mdn = cellular()->mdn();
+ if (mdn.empty()) {
GSMIdentifierCallback cb = Bind(&CellularCapabilityGSM::OnGetMSISDNReply,
weak_ptr_factory_.GetWeakPtr(),
callback);
@@ -395,7 +390,7 @@
if (error.IsFailure())
callback.Run(error);
} else {
- SLOG(Cellular, 2) << "Already have MSISDN " << mdn_;
+ SLOG(Cellular, 2) << "Already have MSISDN " << mdn;
callback.Run(error);
}
}
@@ -449,8 +444,8 @@
!home_provider_name.empty()) {
return home_provider_name;
}
- if (!carrier_.empty()) {
- return carrier_;
+ if (!cellular()->carrier().empty()) {
+ return cellular()->carrier();
}
string serving_operator_code = serving_operator_.GetCode();
if (!serving_operator_code.empty()) {
@@ -460,22 +455,23 @@
}
void CellularCapabilityGSM::SetHomeProvider() {
- SLOG(Cellular, 2) << __func__ << "(IMSI: " << imsi_
+ string imsi = cellular()->imsi();
+ SLOG(Cellular, 2) << __func__ << "(IMSI: " << imsi
<< " SPN: " << spn_ << ")";
// TODO(petkov): The test for NULL provider_db should be done by
// mobile_provider_lookup_best_match.
- if (imsi_.empty() || !modem_info()->provider_db()) {
+ if (imsi.empty() || !modem_info()->provider_db()) {
return;
}
mobile_provider *provider_info =
mobile_provider_lookup_best_match(
- modem_info()->provider_db(), spn_.c_str(), imsi_.c_str());
+ modem_info()->provider_db(), spn_.c_str(), imsi.c_str());
if (!provider_info) {
SLOG(Cellular, 2) << "GSM provider not found.";
return;
}
home_provider_info_ = provider_info;
- provider_requires_roaming_ = provider_info->requires_roaming;
+ cellular()->set_provider_requires_roaming(provider_info->requires_roaming);
Cellular::Operator oper;
if (provider_info->networks && provider_info->networks[0]) {
oper.SetCode(provider_info->networks[0]);
@@ -492,9 +488,10 @@
oper.SetName(spn_);
}
cellular()->set_home_provider(oper);
+ bool roaming_required = cellular()->provider_requires_roaming();
SLOG(Cellular, 2) << "Home provider: " << oper.GetCode() << ", "
<< oper.GetName() << ", " << oper.GetCountry()
- << (provider_requires_roaming_ ? ", roaming required" : "");
+ << (roaming_required ? ", roaming required" : "");
InitAPNList();
}
@@ -534,10 +531,10 @@
void CellularCapabilityGSM::InitAPNList() {
SLOG(Cellular, 2) << __func__;
+ Stringmaps apn_list;
if (!home_provider_info_) {
return;
}
- apn_list_.clear();
for (int i = 0; i < home_provider_info_->num_apns; ++i) {
Stringmap props;
mobile_apn *apn = home_provider_info_->apns[i];
@@ -569,24 +566,21 @@
props[kApnLocalizedNameProperty] = lname->name;
props[kApnLanguageProperty] = lname->lang;
}
- apn_list_.push_back(props);
+ apn_list.push_back(props);
}
- if (cellular()->adaptor()) {
- cellular()->adaptor()->EmitStringmapsChanged(
- kCellularApnListProperty, apn_list_);
- } else {
- LOG(ERROR) << "Null RPC service adaptor.";
- }
+ cellular()->set_apn_list(apn_list);
}
// always called from an async context
void CellularCapabilityGSM::Register(const ResultCallback &callback) {
- SLOG(Cellular, 2) << __func__ << " \"" << selected_network_ << "\"";
+ SLOG(Cellular, 2) << __func__ << " \"" << cellular()->selected_network()
+ << "\"";
CHECK(!callback.is_null());
Error error;
ResultCallback cb = Bind(&CellularCapabilityGSM::OnRegisterReply,
weak_ptr_factory_.GetWeakPtr(), callback);
- network_proxy_->Register(selected_network_, &error, cb, kTimeoutRegister);
+ network_proxy_->Register(cellular()->selected_network(), &error, cb,
+ kTimeoutRegister);
if (error.IsFailure())
callback.Run(error);
}
@@ -608,7 +602,7 @@
SLOG(Cellular, 2) << __func__ << "(" << error << ")";
if (error.IsSuccess()) {
- selected_network_ = desired_network_;
+ cellular()->set_selected_network(desired_network_);
desired_network_.clear();
callback.Run(error);
return;
@@ -617,7 +611,7 @@
// try to register on the home network.
if (!desired_network_.empty()) {
desired_network_.clear();
- selected_network_.clear();
+ cellular()->set_selected_network("");
LOG(INFO) << "Couldn't register on selected network, trying home network";
Register(callback);
return;
@@ -691,21 +685,21 @@
SLOG(Cellular, 2) << __func__;
// Error handling is weak. The current expectation is that on any
- // error, found_networks_ should be cleared and a property change
+ // error, found_networks should be cleared and a property change
// notification sent out.
//
// TODO(jglasgow): fix error handling
+ Stringmaps found_networks;
scanning_ = false;
cellular()->adaptor()->EmitBoolChanged(kScanningProperty, scanning_);
- found_networks_.clear();
if (!error.IsFailure()) {
for (GSMScanResults::const_iterator it = results.begin();
it != results.end(); ++it) {
- found_networks_.push_back(ParseScanResult(*it));
+ found_networks.push_back(ParseScanResult(*it));
}
}
- cellular()->adaptor()->EmitStringmapsChanged(kFoundNetworksProperty,
- found_networks_);
+ cellular()->set_found_networks(found_networks);
+
if (!callback.is_null())
callback.Run(error);
}
@@ -855,12 +849,10 @@
emit = true;
}
}
+ // TODO(pprabhu) Rename |emit| to |sim_present| after |sim_lock_status|
+ // moves to cellular.
if (emit) {
- if (!sim_present_) {
- sim_present_ = true;
- cellular()->adaptor()->EmitBoolChanged(kSIMPresentProperty,
- sim_present_);
- }
+ cellular()->set_sim_present(true);
cellular()->adaptor()->EmitKeyValueStoreChanged(
kSIMLockStatusProperty, SimLockStatusToProperty(NULL));
}
@@ -906,7 +898,7 @@
const Error &error) {
if (error.IsSuccess()) {
SLOG(Cellular, 2) << "IMEI: " << imei;
- imei_ = imei;
+ cellular()->set_imei(imei);
} else {
SLOG(Cellular, 2) << "GetIMEI failed - " << error;
}
@@ -918,16 +910,16 @@
const Error &error) {
if (error.IsSuccess()) {
SLOG(Cellular, 2) << "IMSI: " << imsi;
- imsi_ = imsi;
- sim_present_ = true;
+ cellular()->set_imsi(imsi);
+ cellular()->set_sim_present(true);
SetHomeProvider();
callback.Run(error);
} else if (!sim_lock_status_.lock_type.empty()) {
SLOG(Cellular, 2) << "GetIMSI failed - SIM lock in place.";
- sim_present_ = true;
+ cellular()->set_sim_present(true);
callback.Run(error);
} else {
- sim_present_ = false;
+ cellular()->set_sim_present(false);
if (get_imsi_retries_++ < kGetIMSIRetryLimit) {
SLOG(Cellular, 2) << "GetIMSI failed - " << error << ". Retrying";
base::Callback<void(void)> retry_get_imsi_cb =
@@ -961,7 +953,7 @@
const Error &error) {
if (error.IsSuccess()) {
SLOG(Cellular, 2) << "MSISDN: " << msisdn;
- mdn_ = msisdn;
+ cellular()->set_mdn(msisdn);
} else {
SLOG(Cellular, 2) << "GetMSISDN failed - " << error;
}
diff --git a/cellular_capability_gsm.h b/cellular_capability_gsm.h
index f7c8655..b0c0750 100644
--- a/cellular_capability_gsm.h
+++ b/cellular_capability_gsm.h
@@ -166,7 +166,7 @@
// Updates the serving operator on the active service.
void UpdateServingOperator();
- // Initializes the |apn_list_| property based on the current
+ // Initializes the |apn_list| property based on the current
// |home_provider_info_|.
void InitAPNList();
@@ -224,7 +224,6 @@
Cellular::Operator serving_operator_;
std::string spn_;
mobile_provider *home_provider_info_;
- bool provider_requires_roaming_;
std::string desired_network_;
// The number of times GetIMSI() has been retried.
@@ -235,14 +234,9 @@
int64 get_imsi_retry_delay_milliseconds_;
// Properties.
- std::string selected_network_;
- Stringmaps found_networks_;
std::deque<Stringmap> apn_try_list_;
bool scanning_;
- uint16 scan_interval_;
SimLockStatus sim_lock_status_;
- bool sim_present_;
- Stringmaps apn_list_;
static unsigned int friendly_service_name_id_;
diff --git a/cellular_capability_gsm_unittest.cc b/cellular_capability_gsm_unittest.cc
index 2b1e7d4..e3103e5 100644
--- a/cellular_capability_gsm_unittest.cc
+++ b/cellular_capability_gsm_unittest.cc
@@ -340,10 +340,10 @@
&CellularCapabilityGSMTest::InvokeGetIMEI));
EXPECT_CALL(*this, TestCallback(IsSuccess()));
SetCardProxy();
- ASSERT_TRUE(capability_->imei_.empty());
+ ASSERT_TRUE(cellular_->imei().empty());
capability_->GetIMEI(Bind(&CellularCapabilityGSMTest::TestCallback,
Unretained(this)));
- EXPECT_EQ(kIMEI, capability_->imei_);
+ EXPECT_EQ(kIMEI, cellular_->imei());
}
TEST_F(CellularCapabilityGSMTest, GetIMSI) {
@@ -356,12 +356,12 @@
SetCardProxy();
ResultCallback callback = Bind(&CellularCapabilityGSMTest::TestCallback,
Unretained(this));
- EXPECT_TRUE(capability_->imsi_.empty());
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->imsi().empty());
+ EXPECT_FALSE(cellular_->sim_present());
capability_->GetIMSI(callback);
- EXPECT_EQ(kIMSI, capability_->imsi_);
- EXPECT_TRUE(capability_->sim_present_);
- capability_->imsi_.clear();
+ EXPECT_EQ(kIMSI, cellular_->imsi());
+ EXPECT_TRUE(cellular_->sim_present());
+ cellular_->set_imsi("");
InitProviderDB();
capability_->GetIMSI(callback);
EXPECT_EQ("T-Mobile", cellular_->home_provider().GetName());
@@ -383,16 +383,16 @@
SetCardProxy();
ResultCallback callback = Bind(&CellularCapabilityGSMTest::TestCallback,
Unretained(this));
- EXPECT_TRUE(capability_->imsi_.empty());
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->imsi().empty());
+ EXPECT_FALSE(cellular_->sim_present());
capability_->sim_lock_status_.lock_type = "sim-pin";
capability_->GetIMSI(callback);
- EXPECT_TRUE(capability_->imsi_.empty());
- EXPECT_TRUE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->imsi().empty());
+ EXPECT_TRUE(cellular_->sim_present());
capability_->sim_lock_status_.lock_type.clear();
- capability_->sim_present_ = false;
+ cellular_->set_sim_present(false);
capability_->get_imsi_retries_ = 0;
EXPECT_EQ(CellularCapabilityGSM::kGetIMSIRetryDelayMilliseconds,
capability_->get_imsi_retry_delay_milliseconds_);
@@ -405,8 +405,8 @@
}
EXPECT_EQ(CellularCapabilityGSM::kGetIMSIRetryLimit + 1,
capability_->get_imsi_retries_);
- EXPECT_TRUE(capability_->imsi_.empty());
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->imsi().empty());
+ EXPECT_FALSE(cellular_->sim_present());
}
TEST_F(CellularCapabilityGSMTest, GetMSISDN) {
@@ -416,10 +416,10 @@
&CellularCapabilityGSMTest::InvokeGetMSISDN));
EXPECT_CALL(*this, TestCallback(IsSuccess()));
SetCardProxy();
- ASSERT_TRUE(capability_->mdn_.empty());
+ ASSERT_TRUE(cellular_->mdn().empty());
capability_->GetMSISDN(Bind(&CellularCapabilityGSMTest::TestCallback,
Unretained(this)));
- EXPECT_EQ(kMSISDN, capability_->mdn_);
+ EXPECT_EQ(kMSISDN, cellular_->mdn());
}
TEST_F(CellularCapabilityGSMTest, GetSPN) {
@@ -456,7 +456,7 @@
capability_->RegisterOnNetwork(kTestNetwork, &error,
Bind(&CellularCapabilityGSMTest::TestCallback,
Unretained(this)));
- EXPECT_EQ(kTestNetwork, capability_->selected_network_);
+ EXPECT_EQ(kTestNetwork, cellular_->selected_network());
}
TEST_F(CellularCapabilityGSMTest, IsRegistered) {
@@ -551,10 +551,14 @@
TEST_F(CellularCapabilityGSMTest, Scan) {
Error error;
+ Stringmaps found_networks;
+
EXPECT_CALL(*network_proxy_, Scan(_, _, CellularCapability::kTimeoutScan))
.WillOnce(SaveArg<1>(&scan_callback_));
EXPECT_CALL(*this, TestCallback(IsSuccess()));
- capability_->found_networks_.resize(3, Stringmap());
+ found_networks = cellular_->found_networks();
+ found_networks.resize(3);
+ cellular_->set_found_networks(found_networks);
EXPECT_CALL(*device_adaptor_,
EmitStringmapsChanged(kFoundNetworksProperty, SizeIs2()));
EXPECT_CALL(*device_adaptor_, EmitBoolChanged(kScanningProperty, true));
@@ -570,9 +574,10 @@
EXPECT_CALL(*device_adaptor_, EmitBoolChanged(kScanningProperty, false));
InvokeScanReply();
EXPECT_FALSE(capability_->scanning_);
- EXPECT_EQ(2, capability_->found_networks_.size());
- EXPECT_EQ(kScanID0, capability_->found_networks_[0][kNetworkIdProperty]);
- EXPECT_EQ(kScanID1, capability_->found_networks_[1][kNetworkIdProperty]);
+ found_networks = cellular_->found_networks();
+ EXPECT_EQ(2, cellular_->found_networks().size());
+ EXPECT_EQ(kScanID0, found_networks[0][kNetworkIdProperty]);
+ EXPECT_EQ(kScanID1, found_networks[1][kNetworkIdProperty]);
}
TEST_F(CellularCapabilityGSMTest, ParseScanResult) {
@@ -638,7 +643,7 @@
TEST_F(CellularCapabilityGSMTest, UpdateStatus) {
InitProviderDB();
DBusPropertiesMap props;
- capability_->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
props[CellularCapability::kModemPropertyIMSI].writer().append_string("");
capability_->UpdateStatus(props);
EXPECT_EQ("T-Mobile", cellular_->home_provider().GetName());
@@ -646,11 +651,11 @@
TEST_F(CellularCapabilityGSMTest, AllowRoaming) {
EXPECT_FALSE(cellular_->allow_roaming_);
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
EXPECT_FALSE(capability_->AllowRoaming());
- capability_->provider_requires_roaming_ = true;
+ cellular_->set_provider_requires_roaming(true);
EXPECT_TRUE(capability_->AllowRoaming());
- capability_->provider_requires_roaming_ = false;
+ cellular_->set_provider_requires_roaming(false);
cellular_->allow_roaming_ = true;
EXPECT_TRUE(capability_->AllowRoaming());
}
@@ -658,25 +663,25 @@
TEST_F(CellularCapabilityGSMTest, SetHomeProvider) {
static const char kCountry[] = "us";
static const char kCode[] = "310160";
- capability_->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
EXPECT_FALSE(capability_->home_provider_info_);
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
capability_->SetHomeProvider(); // No mobile provider DB available.
EXPECT_TRUE(cellular_->home_provider().GetName().empty());
EXPECT_TRUE(cellular_->home_provider().GetCountry().empty());
EXPECT_TRUE(cellular_->home_provider().GetCode().empty());
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
InitProviderDB();
capability_->SetHomeProvider();
EXPECT_EQ("T-Mobile", cellular_->home_provider().GetName());
EXPECT_EQ(kCountry, cellular_->home_provider().GetCountry());
EXPECT_EQ(kCode, cellular_->home_provider().GetCode());
- EXPECT_EQ(4, capability_->apn_list_.size());
+ EXPECT_EQ(4, cellular_->apn_list().size());
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
Cellular::Operator oper;
cellular_->set_home_provider(oper);
@@ -685,7 +690,7 @@
EXPECT_EQ(kTestCarrier, cellular_->home_provider().GetName());
EXPECT_EQ(kCountry, cellular_->home_provider().GetCountry());
EXPECT_EQ(kCode, cellular_->home_provider().GetCode());
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
static const char kCubic[] = "Cubic";
capability_->spn_ = kCubic;
@@ -693,7 +698,7 @@
EXPECT_EQ(kCubic, cellular_->home_provider().GetName());
EXPECT_EQ("", cellular_->home_provider().GetCode());
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_TRUE(capability_->provider_requires_roaming_);
+ EXPECT_TRUE(cellular_->provider_requires_roaming());
static const char kCUBIC[] = "CUBIC";
capability_->spn_ = kCUBIC;
@@ -702,7 +707,7 @@
EXPECT_EQ(kCUBIC, cellular_->home_provider().GetName());
EXPECT_EQ("", cellular_->home_provider().GetCode());
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_TRUE(capability_->provider_requires_roaming_);
+ EXPECT_TRUE(cellular_->provider_requires_roaming());
}
namespace {
@@ -714,19 +719,19 @@
} // namespace
TEST_F(CellularCapabilityGSMTest, InitAPNList) {
+ Stringmaps apn_list;
InitProviderDB();
capability_->home_provider_info_ =
mobile_provider_lookup_by_name(modem_info_.provider_db(), "T-Mobile");
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_EQ(0, capability_->apn_list_.size());
+ EXPECT_EQ(0, cellular_->apn_list().size());
EXPECT_CALL(*device_adaptor_,
EmitStringmapsChanged(kCellularApnListProperty, SizeIs4()));
capability_->InitAPNList();
- EXPECT_EQ(4, capability_->apn_list_.size());
- EXPECT_EQ("wap.voicestream.com",
- capability_->apn_list_[1][kApnProperty]);
- EXPECT_EQ("Web2Go/t-zones",
- capability_->apn_list_[1][kApnNameProperty]);
+ apn_list = cellular_->apn_list();
+ EXPECT_EQ(4, apn_list.size());
+ EXPECT_EQ("wap.voicestream.com", apn_list[1][kApnProperty]);
+ EXPECT_EQ("Web2Go/t-zones", apn_list[1][kApnNameProperty]);
}
TEST_F(CellularCapabilityGSMTest, GetNetworkTechnologyString) {
@@ -775,7 +780,7 @@
EXPECT_EQ("cellular_1234", capability_->CreateFriendlyServiceName());
static const char kTestCarrier[] = "A GSM Carrier";
- capability_->carrier_ = kTestCarrier;
+ cellular_->set_carrier(kTestCarrier);
EXPECT_EQ(kTestCarrier, capability_->CreateFriendlyServiceName());
static const char kHomeProvider[] = "The GSM Home Provider";
@@ -799,7 +804,7 @@
EXPECT_EQ(string(kTypeCellular) + "_" + kAddress + "_" +
cellular_->service()->friendly_name(),
cellular_->service()->GetStorageIdentifier());
- capability_->imsi_ = kIMSI;
+ cellular_->set_imsi(kIMSI);
capability_->OnServiceCreated();
EXPECT_EQ(string(kTypeCellular) + "_" + kAddress + "_" + kIMSI,
cellular_->service()->GetStorageIdentifier());
@@ -902,7 +907,7 @@
static const string kSuppliedApn("my.apn");
SetService();
- capability_->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
InitProviderDB();
capability_->SetHomeProvider();
DBusPropertiesMap props;
diff --git a/cellular_capability_universal.cc b/cellular_capability_universal.cc
index c7049a3..05e8c00 100644
--- a/cellular_capability_universal.cc
+++ b/cellular_capability_universal.cc
@@ -142,14 +142,10 @@
current_capabilities_(MM_MODEM_CAPABILITY_NONE),
access_technologies_(MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN),
home_provider_info_(NULL),
- provider_requires_roaming_(false),
resetting_(false),
- scanning_supported_(false),
scanning_(false),
scanning_or_searching_(false),
- scan_interval_(0),
subscription_state_(kSubscriptionStateUnknown),
- sim_present_(false),
reset_done_(false),
scanning_or_searching_timeout_milliseconds_(
kDefaultScanningOrSearchingTimeoutMilliseconds),
@@ -160,31 +156,12 @@
SLOG(Cellular, 2) << "Cellular capability constructed: Universal";
PropertyStore *store = cellular->mutable_store();
- store->RegisterConstString(kCarrierProperty, &carrier_);
- store->RegisterConstBool(kSupportNetworkScanProperty, &scanning_supported_);
- store->RegisterConstString(kEsnProperty, &esn_);
- store->RegisterConstString(kFirmwareRevisionProperty, &firmware_revision_);
- store->RegisterConstString(kHardwareRevisionProperty, &hardware_revision_);
- store->RegisterConstString(kImeiProperty, &imei_);
- store->RegisterConstString(kImsiProperty, &imsi_);
store->RegisterConstString(kIccidProperty, &sim_identifier_);
- store->RegisterConstString(kManufacturerProperty, &manufacturer_);
- store->RegisterConstString(kMdnProperty, &mdn_);
- store->RegisterConstString(kMeidProperty, &meid_);
- store->RegisterConstString(kMinProperty, &min_);
- store->RegisterConstString(kModelIDProperty, &model_id_);
- store->RegisterConstString(kSelectedNetworkProperty, &selected_network_);
- store->RegisterConstStringmaps(kFoundNetworksProperty, &found_networks_);
- store->RegisterConstBool(kProviderRequiresRoamingProperty,
- &provider_requires_roaming_);
store->RegisterConstBool(kScanningProperty, &scanning_or_searching_);
- store->RegisterUint16(kScanIntervalProperty, &scan_interval_);
HelpRegisterConstDerivedKeyValueStore(
kSIMLockStatusProperty,
&CellularCapabilityUniversal::SimLockStatusToProperty);
store->RegisterConstString(kSIMOperatorIdProperty, &operator_id_);
- store->RegisterConstBool(kSIMPresentProperty, &sim_present_);
- store->RegisterConstStringmaps(kCellularApnListProperty, &apn_list_);
}
KeyValueStore CellularCapabilityUniversal::SimLockStatusToProperty(
@@ -628,18 +605,18 @@
const CellularOperatorInfo::CellularOperator &cellular_operator) const {
// TODO(benchan): This is ugly. Remove carrier specific code once we move
// mobile activation logic to carrier-specifc extensions (crbug.com/260073).
+ const string &mdn = cellular()->mdn();
if (cellular_operator.identifier() == kVzwIdentifier) {
// subscription_state_ is the definitive indicator of whether we need
// activation. The OLP expects an all zero MDN in that case.
- if (subscription_state_ == kSubscriptionStateUnprovisioned ||
- mdn_.empty()) {
+ if (subscription_state_ == kSubscriptionStateUnprovisioned || mdn.empty()) {
return string(kVzwMdnLength, '0');
}
- if (mdn_.length() > kVzwMdnLength) {
- return mdn_.substr(mdn_.length() - kVzwMdnLength);
+ if (mdn.length() > kVzwMdnLength) {
+ return mdn.substr(mdn.length() - kVzwMdnLength);
}
}
- return mdn_;
+ return mdn;
}
void CellularCapabilityUniversal::ReleaseProxies() {
@@ -668,8 +645,8 @@
}
}
// If the above didn't work, append IMSI, if available.
- if (storage_id.empty() && !imsi_.empty()) {
- storage_id = kPrefix + imsi_;
+ if (storage_id.empty() && !cellular()->imsi().empty()) {
+ storage_id = kPrefix + cellular()->imsi();
}
if (!storage_id.empty()) {
cellular()->service()->SetStorageIdentifier(storage_id);
@@ -750,7 +727,9 @@
if (apn_info)
apn_try_list_.push_back(*apn_info);
- apn_try_list_.insert(apn_try_list_.end(), apn_list_.begin(), apn_list_.end());
+ apn_try_list_.insert(apn_try_list_.end(),
+ cellular()->apn_list().begin(),
+ cellular()->apn_list().end());
}
void CellularCapabilityUniversal::SetupConnectProperties(
@@ -826,7 +805,7 @@
}
bool CellularCapabilityUniversal::AllowRoaming() {
- return provider_requires_roaming_ || allow_roaming_property();
+ return cellular()->provider_requires_roaming() || allow_roaming_property();
}
void CellularCapabilityUniversal::GetProperties() {
@@ -881,7 +860,8 @@
}
void CellularCapabilityUniversal::SetHomeProvider() {
- SLOG(Cellular, 2) << __func__ << "(IMSI: " << imsi_
+ const string &imsi = cellular()->imsi();
+ SLOG(Cellular, 2) << __func__ << "(IMSI: " << imsi
<< " SPN: " << spn_ << ")";
if (!modem_info()->provider_db())
@@ -889,7 +869,7 @@
// MCCMNC can be determined either from IMSI or Operator Code. Use whichever
// one is available. If both were reported by the SIM, use IMSI.
- const string &network_id = imsi_.empty() ? operator_id_ : imsi_;
+ const string &network_id = imsi.empty() ? operator_id_ : imsi;
mobile_provider *provider_info = mobile_provider_lookup_best_match(
modem_info()->provider_db(),
spn_.c_str(),
@@ -902,7 +882,8 @@
// Even if |provider_info| is the same as |home_provider_info_|, it is
// possible that the |spn_| has changed. Run all the code below.
home_provider_info_ = provider_info;
- provider_requires_roaming_ = provider_info->requires_roaming;
+ cellular()->set_provider_requires_roaming(
+ home_provider_info_->requires_roaming);
Cellular::Operator oper;
// If Operator ID is available, use that as network code, otherwise
// use what was returned from the database.
@@ -923,9 +904,10 @@
oper.SetName(spn_);
}
cellular()->set_home_provider(oper);
+ bool roaming_required = cellular()->provider_requires_roaming();
SLOG(Cellular, 2) << "Home provider: " << oper.GetCode() << ", "
<< oper.GetName() << ", " << oper.GetCountry()
- << (provider_requires_roaming_ ? ", roaming required" : "");
+ << (roaming_required ? ", roaming required" : "");
InitAPNList();
UpdateServiceName();
}
@@ -999,15 +981,15 @@
olp.CopyFrom(*result);
string post_data = olp.GetPostData();
ReplaceSubstringsAfterOffset(&post_data, 0, "${iccid}", sim_identifier_);
- ReplaceSubstringsAfterOffset(&post_data, 0, "${imei}", imei_);
- ReplaceSubstringsAfterOffset(&post_data, 0, "${imsi}", imsi_);
+ ReplaceSubstringsAfterOffset(&post_data, 0, "${imei}", cellular()->imei());
+ ReplaceSubstringsAfterOffset(&post_data, 0, "${imsi}", cellular()->imsi());
ReplaceSubstringsAfterOffset(&post_data, 0, "${mdn}",
GetMdnForOLP(*cellular_operator));
- ReplaceSubstringsAfterOffset(&post_data, 0, "${min}", min_);
+ ReplaceSubstringsAfterOffset(&post_data, 0, "${min}", cellular()->min());
// TODO(armansito): Define constants for the OEM IDs in MobileOperator
// (See crbug.com/298408).
- string oem_id = (model_id_ == kE362ModelId) ? "GOG3" : "QUA";
+ string oem_id = (cellular()->model_id() == kE362ModelId) ? "GOG3" : "QUA";
ReplaceSubstringsAfterOffset(&post_data, 0, "${oem}", oem_id);
olp.SetPostData(post_data);
cellular()->service()->SetOLP(olp);
@@ -1178,10 +1160,10 @@
void CellularCapabilityUniversal::InitAPNList() {
SLOG(Cellular, 2) << __func__;
+ Stringmaps apn_list;
if (!home_provider_info_) {
return;
}
- apn_list_.clear();
for (int i = 0; i < home_provider_info_->num_apns; ++i) {
Stringmap props;
mobile_apn *apn = home_provider_info_->apns[i];
@@ -1213,14 +1195,9 @@
props[kApnLocalizedNameProperty] = lname->name;
props[kApnLanguageProperty] = lname->lang;
}
- apn_list_.push_back(props);
+ apn_list.push_back(props);
}
- if (cellular()->adaptor()) {
- cellular()->adaptor()->EmitStringmapsChanged(
- kCellularApnListProperty, apn_list_);
- } else {
- LOG(ERROR) << "Null RPC service adaptor.";
- }
+ cellular()->set_apn_list(apn_list);
}
bool CellularCapabilityUniversal::IsServiceActivationRequired() const {
@@ -1258,9 +1235,10 @@
}
bool CellularCapabilityUniversal::IsMdnValid() const {
- // Note that |mdn_| is normalized to contain only digits in OnMdnChanged().
- for (size_t i = 0; i < mdn_.size(); ++i) {
- if (mdn_[i] != '0')
+ const string &mdn = cellular()->mdn();
+ // Note that |mdn| is normalized to contain only digits in OnMdnChanged().
+ for (size_t i = 0; i < mdn.size(); ++i) {
+ if (mdn[i] != '0')
return true;
}
return false;
@@ -1268,12 +1246,14 @@
// always called from an async context
void CellularCapabilityUniversal::Register(const ResultCallback &callback) {
- SLOG(Cellular, 2) << __func__ << " \"" << selected_network_ << "\"";
+ SLOG(Cellular, 2) << __func__ << " \"" << cellular()->selected_network()
+ << "\"";
CHECK(!callback.is_null());
Error error;
ResultCallback cb = Bind(&CellularCapabilityUniversal::OnRegisterReply,
weak_ptr_factory_.GetWeakPtr(), callback);
- modem_3gpp_proxy_->Register(selected_network_, &error, cb, kTimeoutRegister);
+ modem_3gpp_proxy_->Register(cellular()->selected_network(), &error, cb,
+ kTimeoutRegister);
if (error.IsFailure())
callback.Run(error);
}
@@ -1296,7 +1276,7 @@
SLOG(Cellular, 2) << __func__ << "(" << error << ")";
if (error.IsSuccess()) {
- selected_network_ = desired_network_;
+ cellular()->set_selected_network(desired_network_);
desired_network_.clear();
callback.Run(error);
return;
@@ -1305,7 +1285,7 @@
// try to register on the home network.
if (!desired_network_.empty()) {
desired_network_.clear();
- selected_network_.clear();
+ cellular()->set_selected_network("");
LOG(INFO) << "Couldn't register on selected network, trying home network";
Register(callback);
return;
@@ -1410,25 +1390,24 @@
SLOG(Cellular, 2) << __func__;
// Error handling is weak. The current expectation is that on any
- // error, found_networks_ should be cleared and a property change
+ // error, found_networks should be cleared and a property change
// notification sent out.
//
// TODO(jglasgow): fix error handling
+ Stringmaps found_networks;
scanning_ = false;
UpdateScanningProperty();
- found_networks_.clear();
if (!error.IsFailure()) {
for (ScanResults::const_iterator it = results.begin();
it != results.end(); ++it) {
- found_networks_.push_back(ParseScanResult(*it));
+ found_networks.push_back(ParseScanResult(*it));
}
}
- cellular()->adaptor()->EmitStringmapsChanged(kFoundNetworksProperty,
- found_networks_);
+ cellular()->set_found_networks(found_networks);
// TODO(gmorain): This check for is_null() is a work-around because
// Cellular::Scan() passes a null callback. Instead: 1. Have Cellular::Scan()
- // pass in a callback. 2. Have Cellular "own" the found_networks_ property
+ // pass in a callback. 2. Have Cellular "own" the found_networks property
// 3. Have Cellular EmitStingMapsChanged() 4. Share the code between GSM and
// Universal.
if (!callback.is_null())
@@ -1521,7 +1500,7 @@
// modem doesn't support it at a given time. This might be problematic if we
// ever want to support switching between access technologies (e.g. falling
// back to 3G when LTE is not available).
- if (model_id_ == kE362ModelId)
+ if (cellular()->model_id() == kE362ModelId)
return kNetworkTechnologyLte;
// Order is important. Return the highest speed technology
@@ -1594,11 +1573,11 @@
if (DBusProperties::GetString(properties,
MM_MODEM_PROPERTY_MANUFACTURER,
&string_value))
- OnModemManufacturerChanged(string_value);
+ cellular()->set_manufacturer(string_value);
if (DBusProperties::GetString(properties,
MM_MODEM_PROPERTY_MODEL,
&string_value))
- OnModemModelChanged(string_value);
+ cellular()->set_model_id(string_value);
if (DBusProperties::GetString(properties,
MM_MODEM_PROPERTY_REVISION,
&string_value))
@@ -1695,7 +1674,8 @@
// modemmanager does not ever return kInvalidApn for E362 modems
// with 1.41 firmware. It remains to be seem if this will change
// with 3.x firmware.
- if ((model_id_ == kE362ModelId) && (error.type() == Error::kOperationFailed))
+ if ((cellular()->model_id() == kE362ModelId) &&
+ (error.type() == Error::kOperationFailed))
return true;
return false;
@@ -1733,13 +1713,13 @@
if (!IsValidSimPath(sim_path)) {
// Clear all data about the sim
- imsi_ = "";
+ cellular()->set_imsi("");
spn_ = "";
- sim_present_ = false;
+ cellular()->set_sim_present(false);
OnSimIdentifierChanged("");
OnOperatorIdChanged("");
} else {
- sim_present_ = true;
+ cellular()->set_sim_present(true);
scoped_ptr<DBusPropertiesProxyInterface> properties_proxy(
proxy_factory()->CreateDBusPropertiesProxy(sim_path,
cellular()->dbus_owner()));
@@ -1764,33 +1744,19 @@
//
// TODO(benchan): We should consider having the modem plugins in ModemManager
// reporting whether network scan is supported.
- scanning_supported_ =
- (current_capabilities & MM_MODEM_CAPABILITY_GSM_UMTS) != 0;
- if (cellular()->adaptor()) {
- cellular()->adaptor()->EmitBoolChanged(
- kSupportNetworkScanProperty, scanning_supported_);
- }
+ cellular()->set_scanning_supported(
+ (current_capabilities & MM_MODEM_CAPABILITY_GSM_UMTS) != 0);
}
void CellularCapabilityUniversal::OnMdnChanged(
const string &mdn) {
- mdn_ = NormalizeMdn(mdn);
+ cellular()->set_mdn(NormalizeMdn(mdn));
UpdatePendingActivationState();
}
-void CellularCapabilityUniversal::OnModemManufacturerChanged(
- const string &manufacturer) {
- manufacturer_ = manufacturer;
-}
-
-void CellularCapabilityUniversal::OnModemModelChanged(
- const string &model) {
- model_id_ = model;
-}
-
void CellularCapabilityUniversal::OnModemRevisionChanged(
const string &revision) {
- firmware_revision_ = revision;
+ cellular()->set_firmware_revision(revision);
}
void CellularCapabilityUniversal::OnModemStateChanged(
@@ -1902,7 +1868,7 @@
if (DBusProperties::GetString(properties,
MM_MODEM_MODEM3GPP_PROPERTY_IMEI,
&imei))
- OnImeiChanged(imei);
+ cellular()->set_imei(imei);
// Handle registration state changes as a single change
string operator_code = serving_operator_.GetCode();
@@ -1950,10 +1916,6 @@
OnFacilityLocksChanged(locks);
}
-void CellularCapabilityUniversal::OnImeiChanged(const string &imei) {
- imei_ = imei;
-}
-
void CellularCapabilityUniversal::On3GPPRegistrationChanged(
MMModem3gppRegistrationState state,
const string &operator_code,
@@ -2094,16 +2056,10 @@
if (DBusProperties::GetString(props, MM_SIM_PROPERTY_OPERATORNAME, &value))
OnSpnChanged(value);
if (DBusProperties::GetString(props, MM_SIM_PROPERTY_IMSI, &value))
- OnImsiChanged(value);
+ cellular()->set_imsi(value);
SetHomeProvider();
}
-// TODO(armansito): The following methods should probably log their argument
-// values. Need to learn if any of them need to be scrubbed.
-void CellularCapabilityUniversal::OnImsiChanged(const std::string &imsi) {
- imsi_ = imsi;
-}
-
void CellularCapabilityUniversal::OnSpnChanged(const std::string &spn) {
spn_ = spn;
}
@@ -2121,9 +2077,10 @@
OutOfCreditsDetector::OOCType
CellularCapabilityUniversal::GetOutOfCreditsDetectionType() const {
- if (model_id_ == kALT3100ModelId) {
+ const string &model_id = cellular()->model_id();
+ if (model_id == kALT3100ModelId) {
return OutOfCreditsDetector::OOCTypeSubscriptionState;
- } else if (model_id_ == kE362ModelId) {
+ } else if (model_id == kE362ModelId) {
return OutOfCreditsDetector::OOCTypeActivePassive;
} else {
return OutOfCreditsDetector::OOCTypeNone;
diff --git a/cellular_capability_universal.h b/cellular_capability_universal.h
index f08517d..2713fc6 100644
--- a/cellular_capability_universal.h
+++ b/cellular_capability_universal.h
@@ -128,23 +128,11 @@
// Updates the storage identifier used for the current cellular service.
virtual void UpdateStorageIdentifier();
- // Returns the operator-specific form of |mdn_|, which is passed to the online
+ // Returns the operator-specific form of |mdn|, which is passed to the online
// payment portal of a cellular operator.
std::string GetMdnForOLP(
const CellularOperatorInfo::CellularOperator &cellular_operator) const;
- const std::string &mdn() const { return mdn_; }
- void set_mdn(const std::string &mdn) { mdn_ = mdn; }
-
- const std::string &min() const { return min_; }
- void set_min(const std::string &min) { min_ = min; }
-
- const std::string &meid() const { return meid_; }
- void set_meid(const std::string &meid) { meid_ = meid; }
-
- const std::string &esn() const { return esn_; }
- void set_esn(const std::string &esn) { esn_ = esn; }
-
private:
struct ModemModes {
ModemModes()
@@ -328,7 +316,7 @@
// Updates the serving operator on the active service.
void UpdateServingOperator();
- // Initializes the |apn_list_| property based on the current
+ // Initializes the |apn_list| property based on the current
// |home_provider_info_|.
void InitAPNList();
@@ -368,8 +356,6 @@
const std::vector<uint32> &supported_capabilities);
void OnModemCurrentCapabilitiesChanged(uint32 current_capabilities);
void OnMdnChanged(const std::string &mdn);
- void OnModemManufacturerChanged(const std::string &manufacturer);
- void OnModemModelChanged(const std::string &model);
void OnModemRevisionChanged(const std::string &revision);
void OnModemStateChanged(Cellular::ModemState state);
void OnAccessTechnologiesChanged(uint32 access_technologies);
@@ -386,7 +372,6 @@
virtual void OnModem3GPPPropertiesChanged(
const DBusPropertiesMap &properties,
const std::vector<std::string> &invalidated_properties);
- void OnImeiChanged(const std::string &imei);
void On3GPPRegistrationChanged(MMModem3gppRegistrationState state,
const std::string &operator_code,
const std::string &operator_name);
@@ -402,7 +387,6 @@
void OnSimPropertiesChanged(
const DBusPropertiesMap &props,
const std::vector<std::string> &invalidated_properties);
- void OnImsiChanged(const std::string &imsi);
void OnSpnChanged(const std::string &spn);
void OnSimIdentifierChanged(const std::string &id);
void OnOperatorIdChanged(const std::string &operator_id);
@@ -471,34 +455,16 @@
std::string sim_identifier_;
std::string operator_id_;
mobile_provider *home_provider_info_;
- bool provider_requires_roaming_;
std::string desired_network_;
// Properties.
- std::string carrier_;
- std::string esn_;
- std::string firmware_revision_;
- std::string hardware_revision_;
- std::string imei_;
- std::string imsi_;
- std::string manufacturer_;
- std::string mdn_;
- std::string meid_;
- std::string min_;
- std::string model_id_;
- std::string selected_network_;
- Stringmaps found_networks_;
std::deque<Stringmap> apn_try_list_;
bool resetting_;
- bool scanning_supported_;
bool scanning_;
bool scanning_or_searching_;
- uint16 scan_interval_;
SimLockStatus sim_lock_status_;
SubscriptionState subscription_state_;
- Stringmaps apn_list_;
std::string sim_path_;
- bool sim_present_;
DBus::Path bearer_path_;
bool reset_done_;
diff --git a/cellular_capability_universal_cdma.cc b/cellular_capability_universal_cdma.cc
index f51892f..c6cae61 100644
--- a/cellular_capability_universal_cdma.cc
+++ b/cellular_capability_universal_cdma.cc
@@ -107,7 +107,7 @@
}
PendingActivationStore::State state =
modem_info()->pending_activation_store()->GetActivationState(
- PendingActivationStore::kIdentifierMEID, meid());
+ PendingActivationStore::kIdentifierMEID, cellular()->meid());
if (state == PendingActivationStore::kStatePending) {
SLOG(Cellular, 2) << "There's already a pending activation. Ignoring.";
return;
@@ -122,7 +122,7 @@
// during OTA activation.
modem_info()->pending_activation_store()->SetActivationState(
PendingActivationStore::kIdentifierMEID,
- meid(),
+ cellular()->meid(),
PendingActivationStore::kStatePending);
// Initiate OTA activation.
@@ -141,12 +141,12 @@
if (IsActivated()) {
SLOG(Cellular, 3) << "CDMA service activated. Clear store.";
modem_info()->pending_activation_store()->RemoveEntry(
- PendingActivationStore::kIdentifierMEID, meid());
+ PendingActivationStore::kIdentifierMEID, cellular()->meid());
return;
}
PendingActivationStore::State state =
modem_info()->pending_activation_store()->GetActivationState(
- PendingActivationStore::kIdentifierMEID, meid());
+ PendingActivationStore::kIdentifierMEID, cellular()->meid());
if (IsActivating() && state != PendingActivationStore::kStateFailureRetry) {
SLOG(Cellular, 3) << "OTA activation in progress. Nothing to do.";
return;
@@ -252,10 +252,10 @@
CellularService::OLP olp;
olp.CopyFrom(*result);
string post_data = olp.GetPostData();
- ReplaceSubstringsAfterOffset(&post_data, 0, "${esn}", esn());
+ ReplaceSubstringsAfterOffset(&post_data, 0, "${esn}", cellular()->esn());
ReplaceSubstringsAfterOffset(&post_data, 0, "${mdn}",
GetMdnForOLP(*cellular_operator));
- ReplaceSubstringsAfterOffset(&post_data, 0, "${meid}", meid());
+ ReplaceSubstringsAfterOffset(&post_data, 0, "${meid}", cellular()->meid());
ReplaceSubstringsAfterOffset(&post_data, 0, "${oem}", "GOG2");
olp.SetPostData(post_data);
if (cellular()->service().get())
@@ -356,9 +356,9 @@
string value;
if (DBusProperties::GetString(status_changes, "mdn", &value))
- set_mdn(value);
+ cellular()->set_mdn(value);
if (DBusProperties::GetString(status_changes, "min", &value))
- set_min(value);
+ cellular()->set_min(value);
SLOG(Cellular, 2) << "Activation state: "
<< GetActivationStateString(activation_state_);
@@ -375,13 +375,13 @@
LOG(INFO) << "Activation completed successfully.";
modem_info()->pending_activation_store()->SetActivationState(
PendingActivationStore::kIdentifierMEID,
- meid(),
+ cellular()->meid(),
PendingActivationStore::kStateActivated);
} else {
LOG(ERROR) << "Activation failed with error: " << error;
modem_info()->pending_activation_store()->SetActivationState(
PendingActivationStore::kIdentifierMEID,
- meid(),
+ cellular()->meid(),
PendingActivationStore::kStateFailureRetry);
}
UpdatePendingActivationState();
@@ -457,7 +457,7 @@
bool CellularCapabilityUniversalCDMA::IsActivating() const {
PendingActivationStore::State state =
modem_info()->pending_activation_store()->GetActivationState(
- PendingActivationStore::kIdentifierMEID, meid());
+ PendingActivationStore::kIdentifierMEID, cellular()->meid());
return (state == PendingActivationStore::kStatePending) ||
(state == PendingActivationStore::kStateFailureRetry) ||
(activation_state_ == MM_MODEM_CDMA_ACTIVATION_STATE_ACTIVATING);
@@ -558,11 +558,11 @@
if (DBusProperties::GetString(properties,
MM_MODEM_MODEMCDMA_PROPERTY_MEID,
&str_value))
- set_meid(str_value);
+ cellular()->set_meid(str_value);
if (DBusProperties::GetString(properties,
MM_MODEM_MODEMCDMA_PROPERTY_ESN,
&str_value))
- set_esn(str_value);
+ cellular()->set_esn(str_value);
uint32_t sid = sid_;
uint32_t nid = nid_;
diff --git a/cellular_capability_universal_cdma_unittest.cc b/cellular_capability_universal_cdma_unittest.cc
index c495671..681fd76 100644
--- a/cellular_capability_universal_cdma_unittest.cc
+++ b/cellular_capability_universal_cdma_unittest.cc
@@ -212,23 +212,23 @@
SetUp();
- EXPECT_TRUE(capability_->meid().empty());
- EXPECT_TRUE(capability_->esn().empty());
+ EXPECT_TRUE(cellular_->meid().empty());
+ EXPECT_TRUE(cellular_->esn().empty());
// Changing properties on wrong interface will not have an effect
capability_->OnDBusPropertiesChanged(MM_DBUS_INTERFACE_MODEM,
modem_cdma_properties,
vector<string>());
- EXPECT_TRUE(capability_->meid().empty());
- EXPECT_TRUE(capability_->esn().empty());
+ EXPECT_TRUE(cellular_->meid().empty());
+ EXPECT_TRUE(cellular_->esn().empty());
// Changing properties on the right interface gets reflected in the
// capabilities object
capability_->OnDBusPropertiesChanged(MM_DBUS_INTERFACE_MODEM_MODEMCDMA,
modem_cdma_properties,
vector<string>());
- EXPECT_EQ(kMeid, capability_->meid());
- EXPECT_EQ(kEsn, capability_->esn());
+ EXPECT_EQ(kMeid, cellular_->meid());
+ EXPECT_EQ(kEsn, cellular_->esn());
}
TEST_F(CellularCapabilityUniversalCDMAMainTest, OnCDMARegistrationChanged) {
@@ -375,9 +375,9 @@
test_olp.SetMethod("POST");
test_olp.SetPostData("esn=${esn}&mdn=${mdn}&meid=${meid}");
- capability_->esn_ = "0";
- capability_->mdn_ = "10123456789";
- capability_->meid_= "4";
+ cellular_->set_esn("0");
+ cellular_->set_mdn("10123456789");
+ cellular_->set_meid("4");
capability_->sid_ = 1;
string sid_string = base::StringPrintf("%u", capability_->sid_);
diff --git a/cellular_capability_universal_unittest.cc b/cellular_capability_universal_unittest.cc
index 8524834..9c4040c 100644
--- a/cellular_capability_universal_unittest.cc
+++ b/cellular_capability_universal_unittest.cc
@@ -388,7 +388,7 @@
capability_->StartModem(&error, callback);
EXPECT_TRUE(error.IsOngoing());
- EXPECT_EQ(kImei, capability_->imei_);
+ EXPECT_EQ(kImei, cellular_->imei());
EXPECT_EQ(kAccessTechnologies, capability_->access_technologies_);
}
@@ -427,14 +427,14 @@
EXPECT_TRUE(error.IsOngoing());
// Verify that the modem has not been enabled.
- EXPECT_TRUE(capability_->imei_.empty());
+ EXPECT_TRUE(cellular_->imei().empty());
EXPECT_EQ(0, capability_->access_technologies_);
Mock::VerifyAndClearExpectations(this);
// Change the state to kModemStateEnabling and verify that it still has not
// been enabled.
capability_->OnModemStateChanged(Cellular::kModemStateEnabling);
- EXPECT_TRUE(capability_->imei_.empty());
+ EXPECT_TRUE(cellular_->imei().empty());
EXPECT_EQ(0, capability_->access_technologies_);
Mock::VerifyAndClearExpectations(this);
@@ -442,14 +442,14 @@
// been enabled.
EXPECT_CALL(*this, TestCallback(_)).Times(0);
capability_->OnModemStateChanged(Cellular::kModemStateDisabling);
- EXPECT_TRUE(capability_->imei_.empty());
+ EXPECT_TRUE(cellular_->imei().empty());
EXPECT_EQ(0, capability_->access_technologies_);
Mock::VerifyAndClearExpectations(this);
// Change the state of the modem to disabled and verify that it gets enabled.
EXPECT_CALL(*this, TestCallback(IsSuccess()));
capability_->OnModemStateChanged(Cellular::kModemStateDisabled);
- EXPECT_EQ(kImei, capability_->imei_);
+ EXPECT_EQ(kImei, cellular_->imei());
EXPECT_EQ(kAccessTechnologies, capability_->access_technologies_);
}
@@ -671,15 +671,15 @@
InitProviderDB();
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_FALSE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ == NULL);
capability_->OnSimPathChanged(kSimPath);
- EXPECT_TRUE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ != NULL);
EXPECT_EQ(kSimPath, capability_->sim_path_);
- capability_->imsi_ = "";
+ cellular_->set_imsi("");
capability_->sim_identifier_ = "";
capability_->operator_id_ = "";
capability_->spn_ = "";
@@ -689,7 +689,7 @@
capability_->OnSimLockStatusChanged();
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
- EXPECT_EQ("", capability_->imsi_);
+ EXPECT_EQ("", cellular_->imsi());
EXPECT_EQ("", capability_->sim_identifier_);
EXPECT_EQ("", capability_->operator_id_);
EXPECT_EQ("", capability_->spn_);
@@ -706,14 +706,14 @@
capability_->OnSimLockStatusChanged();
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
- EXPECT_EQ(kImsi, capability_->imsi_);
+ EXPECT_EQ(kImsi, cellular_->imsi());
EXPECT_EQ(kSimIdentifier, capability_->sim_identifier_);
EXPECT_EQ(kOperatorIdentifier, capability_->operator_id_);
EXPECT_EQ(kOperatorName, capability_->spn_);
// SIM is missing and SIM path is "/".
capability_->OnSimPathChanged(CellularCapabilityUniversal::kRootPath);
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_FALSE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ == NULL);
EXPECT_EQ(CellularCapabilityUniversal::kRootPath, capability_->sim_path_);
@@ -722,14 +722,14 @@
capability_->OnSimLockStatusChanged();
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
- EXPECT_EQ("", capability_->imsi_);
+ EXPECT_EQ("", cellular_->imsi());
EXPECT_EQ("", capability_->sim_identifier_);
EXPECT_EQ("", capability_->operator_id_);
EXPECT_EQ("", capability_->spn_);
// SIM is missing and SIM path is empty.
capability_->OnSimPathChanged("");
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_FALSE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ == NULL);
EXPECT_EQ("", capability_->sim_path_);
@@ -738,7 +738,7 @@
capability_->OnSimLockStatusChanged();
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
- EXPECT_EQ("", capability_->imsi_);
+ EXPECT_EQ("", cellular_->imsi());
EXPECT_EQ("", capability_->sim_identifier_);
EXPECT_EQ("", capability_->operator_id_);
EXPECT_EQ("", capability_->spn_);
@@ -766,12 +766,13 @@
GetAll(MM_DBUS_INTERFACE_SIM))
.WillOnce(Return(sim_properties));
- EXPECT_EQ("", capability_->imei_);
+ EXPECT_EQ("", cellular_->imei());
EXPECT_EQ(MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN,
capability_->access_technologies_);
EXPECT_FALSE(capability_->sim_proxy_.get());
EXPECT_CALL(*device_adaptor_, EmitStringChanged(
kTechnologyFamilyProperty, kTechnologyFamilyGsm));
+ EXPECT_CALL(*device_adaptor_, EmitStringChanged(kImeiProperty, kImei));
capability_->OnDBusPropertiesChanged(MM_DBUS_INTERFACE_MODEM,
modem_properties, vector<string>());
EXPECT_EQ(kAccessTechnologies, capability_->access_technologies_);
@@ -782,14 +783,14 @@
capability_->OnDBusPropertiesChanged(MM_DBUS_INTERFACE_MODEM,
modem3gpp_properties,
vector<string>());
- EXPECT_EQ("", capability_->imei_);
+ EXPECT_EQ("", cellular_->imei());
// Changing properties on the right interface gets reflected in the
// capabilities object
capability_->OnDBusPropertiesChanged(MM_DBUS_INTERFACE_MODEM_MODEM3GPP,
modem3gpp_properties,
vector<string>());
- EXPECT_EQ(kImei, capability_->imei_);
+ EXPECT_EQ(kImei, cellular_->imei());
Mock::VerifyAndClearExpectations(device_adaptor_);
// Expect to see changes when the family changes
@@ -846,7 +847,7 @@
EXPECT_EQ(CellularCapabilityUniversal::kGenericServiceNamePrefix,
cellular_->service_->friendly_name().substr(0, len));
- capability_->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
capability_->SetHomeProvider();
EXPECT_EQ("", capability_->spn_);
EXPECT_EQ("T-Mobile", cellular_->home_provider().GetName());
@@ -882,7 +883,7 @@
capability_->InitProxies();
SetService();
- capability_->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
capability_->SetHomeProvider();
cellular_->set_modem_state(Cellular::kModemStateConnected);
SetRegistrationDroppedUpdateTimeout(0);
@@ -1037,7 +1038,7 @@
capability_->InitProxies();
SetService();
- capability_->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
capability_->SetHomeProvider();
cellular_->set_modem_state(Cellular::kModemStateRegistered);
SetRegistrationDroppedUpdateTimeout(0);
@@ -1106,29 +1107,29 @@
GetActivationState(PendingActivationStore::kIdentifierICCID, _))
.Times(1);
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_FALSE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ == NULL);
EXPECT_EQ("", capability_->sim_path_);
- EXPECT_EQ("", capability_->imsi_);
+ EXPECT_EQ("", cellular_->imsi());
EXPECT_EQ("", capability_->sim_identifier_);
EXPECT_EQ("", capability_->operator_id_);
EXPECT_EQ("", capability_->spn_);
capability_->OnSimPathChanged(kSimPath);
- EXPECT_TRUE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ != NULL);
EXPECT_EQ(kSimPath, capability_->sim_path_);
- EXPECT_EQ(kImsi, capability_->imsi_);
+ EXPECT_EQ(kImsi, cellular_->imsi());
EXPECT_EQ(kSimIdentifier, capability_->sim_identifier_);
EXPECT_EQ(kOperatorIdentifier, capability_->operator_id_);
EXPECT_EQ(kOperatorName, capability_->spn_);
// Changing to the same SIM path should be a no-op.
capability_->OnSimPathChanged(kSimPath);
- EXPECT_TRUE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ != NULL);
EXPECT_EQ(kSimPath, capability_->sim_path_);
- EXPECT_EQ(kImsi, capability_->imsi_);
+ EXPECT_EQ(kImsi, cellular_->imsi());
EXPECT_EQ(kSimIdentifier, capability_->sim_identifier_);
EXPECT_EQ(kOperatorIdentifier, capability_->operator_id_);
EXPECT_EQ(kOperatorName, capability_->spn_);
@@ -1136,10 +1137,10 @@
capability_->OnSimPathChanged("");
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
Mock::VerifyAndClearExpectations(properties_proxy_.get());
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_FALSE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ == NULL);
EXPECT_EQ("", capability_->sim_path_);
- EXPECT_EQ("", capability_->imsi_);
+ EXPECT_EQ("", cellular_->imsi());
EXPECT_EQ("", capability_->sim_identifier_);
EXPECT_EQ("", capability_->operator_id_);
EXPECT_EQ("", capability_->spn_);
@@ -1151,19 +1152,19 @@
.Times(1);
capability_->OnSimPathChanged(kSimPath);
- EXPECT_TRUE(capability_->sim_present_);
+ EXPECT_TRUE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ != NULL);
EXPECT_EQ(kSimPath, capability_->sim_path_);
- EXPECT_EQ(kImsi, capability_->imsi_);
+ EXPECT_EQ(kImsi, cellular_->imsi());
EXPECT_EQ(kSimIdentifier, capability_->sim_identifier_);
EXPECT_EQ(kOperatorIdentifier, capability_->operator_id_);
EXPECT_EQ(kOperatorName, capability_->spn_);
capability_->OnSimPathChanged("/");
- EXPECT_FALSE(capability_->sim_present_);
+ EXPECT_FALSE(cellular_->sim_present());
EXPECT_TRUE(capability_->sim_proxy_ == NULL);
EXPECT_EQ("/", capability_->sim_path_);
- EXPECT_EQ("", capability_->imsi_);
+ EXPECT_EQ("", cellular_->imsi());
EXPECT_EQ("", capability_->sim_identifier_);
EXPECT_EQ("", capability_->operator_id_);
EXPECT_EQ("", capability_->spn_);
@@ -1194,7 +1195,7 @@
modem_properties, vector<string>());
EXPECT_EQ(kSimPath, capability_->sim_path_);
EXPECT_TRUE(capability_->sim_proxy_.get());
- EXPECT_EQ(kImsi, capability_->imsi_);
+ EXPECT_EQ(kImsi, cellular_->imsi());
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
// Updating the SIM
@@ -1215,14 +1216,14 @@
capability_->OnDBusPropertiesChanged(MM_DBUS_INTERFACE_SIM,
new_properties,
vector<string>());
- EXPECT_EQ(kNewImsi, capability_->imsi_);
+ EXPECT_EQ(kNewImsi, cellular_->imsi());
EXPECT_EQ(kSimIdentifier, capability_->sim_identifier_);
EXPECT_EQ(kOperatorIdentifier, capability_->operator_id_);
EXPECT_EQ("", capability_->spn_);
EXPECT_EQ("T-Mobile", cellular_->home_provider().GetName());
EXPECT_EQ(kCountry, cellular_->home_provider().GetCountry());
EXPECT_EQ(kOperatorIdentifier, cellular_->home_provider().GetCode());
- EXPECT_EQ(4, capability_->apn_list_.size());
+ EXPECT_EQ(4, cellular_->apn_list().size());
new_properties[MM_SIM_PROPERTY_OPERATORNAME].writer().
append_string(kOperatorName);
@@ -1342,8 +1343,8 @@
Mock::VerifyAndClearExpectations(device_adaptor_);
// Validate that signals are emitted even if an error is reported.
- capability_->found_networks_.clear();
- capability_->found_networks_.push_back(Stringmap());
+ Stringmaps found_networks = { Stringmap() };
+ cellular_->set_found_networks(found_networks);
EXPECT_CALL(*device_adaptor_, EmitBoolChanged(kScanningProperty, false));
EXPECT_CALL(*device_adaptor_,
EmitStringmapsChanged(kFoundNetworksProperty, SizeIs(0)));
@@ -1539,11 +1540,11 @@
TEST_F(CellularCapabilityUniversalMainTest, AllowRoaming) {
EXPECT_FALSE(cellular_->allow_roaming_);
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
EXPECT_FALSE(capability_->AllowRoaming());
- capability_->provider_requires_roaming_ = true;
+ cellular_->set_provider_requires_roaming(true);
EXPECT_TRUE(capability_->AllowRoaming());
- capability_->provider_requires_roaming_ = false;
+ cellular_->set_provider_requires_roaming(false);
cellular_->allow_roaming_ = true;
EXPECT_TRUE(capability_->AllowRoaming());
}
@@ -1554,14 +1555,14 @@
static const char kCode[] = "310160";
EXPECT_FALSE(capability_->home_provider_info_);
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
// No mobile provider DB available.
capability_->SetHomeProvider();
EXPECT_TRUE(cellular_->home_provider().GetName().empty());
EXPECT_TRUE(cellular_->home_provider().GetCountry().empty());
EXPECT_TRUE(cellular_->home_provider().GetCode().empty());
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
InitProviderDB();
@@ -1570,7 +1571,7 @@
EXPECT_TRUE(cellular_->home_provider().GetName().empty());
EXPECT_TRUE(cellular_->home_provider().GetCountry().empty());
EXPECT_TRUE(cellular_->home_provider().GetCode().empty());
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
// Operator Code available.
capability_->operator_id_ = "310240";
@@ -1578,24 +1579,24 @@
EXPECT_EQ("T-Mobile", cellular_->home_provider().GetName());
EXPECT_EQ(kCountry, cellular_->home_provider().GetCountry());
EXPECT_EQ("310240", cellular_->home_provider().GetCode());
- EXPECT_EQ(4, capability_->apn_list_.size());
+ EXPECT_EQ(4, cellular_->apn_list().size());
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
cellular_->home_provider_.SetName("");
cellular_->home_provider_.SetCountry("");
cellular_->home_provider_.SetCode("");
// IMSI available
- capability_->imsi_ = "310240123456789";
+ cellular_->set_imsi("310240123456789");
capability_->operator_id_.clear();
capability_->SetHomeProvider();
EXPECT_EQ("T-Mobile", cellular_->home_provider().GetName());
EXPECT_EQ(kCountry, cellular_->home_provider().GetCountry());
EXPECT_EQ(kCode, cellular_->home_provider().GetCode());
- EXPECT_EQ(4, capability_->apn_list_.size());
+ EXPECT_EQ(4, cellular_->apn_list().size());
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
Cellular::Operator oper;
cellular_->set_home_provider(oper);
@@ -1604,7 +1605,7 @@
EXPECT_EQ(kTestCarrier, cellular_->home_provider().GetName());
EXPECT_EQ(kCountry, cellular_->home_provider().GetCountry());
EXPECT_EQ(kCode, cellular_->home_provider().GetCode());
- EXPECT_FALSE(capability_->provider_requires_roaming_);
+ EXPECT_FALSE(cellular_->provider_requires_roaming());
static const char kCubic[] = "Cubic";
capability_->spn_ = kCubic;
@@ -1612,7 +1613,7 @@
EXPECT_EQ(kCubic, cellular_->home_provider().GetName());
EXPECT_EQ("", cellular_->home_provider().GetCode());
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_TRUE(capability_->provider_requires_roaming_);
+ EXPECT_TRUE(cellular_->provider_requires_roaming());
static const char kCUBIC[] = "CUBIC";
capability_->spn_ = kCUBIC;
@@ -1621,7 +1622,7 @@
EXPECT_EQ(kCUBIC, cellular_->home_provider().GetName());
EXPECT_EQ("", cellular_->home_provider().GetCode());
ASSERT_TRUE(capability_->home_provider_info_);
- EXPECT_TRUE(capability_->provider_requires_roaming_);
+ EXPECT_TRUE(cellular_->provider_requires_roaming());
}
TEST_F(CellularCapabilityUniversalMainTest, UpdateScanningProperty) {
@@ -1672,7 +1673,7 @@
// Modem with an unactivated service in the 'enabled' or 'searching' state
capability_->cellular()->modem_state_ = Cellular::kModemStateEnabled;
- capability_->mdn_ = "0000000000";
+ cellular_->set_mdn("0000000000");
CellularService::OLP olp;
EXPECT_CALL(*modem_info_.mock_cellular_operator_info(), GetOLPByMCCMNC(_))
.WillRepeatedly(Return(&olp));
@@ -1775,8 +1776,8 @@
default_identifier_pattern));
Mock::VerifyAndClearExpectations(modem_info_.mock_cellular_operator_info());
- // |capability_->imsi_| is not ""
- capability_->imsi_ = "TESTIMSI";
+ // |cellular_->imsi_| is not ""
+ cellular_->set_imsi("TESTIMSI");
EXPECT_CALL(*modem_info_.mock_cellular_operator_info(),
GetCellularOperatorByMCCMNC(capability_->operator_id_))
.WillOnce(Return(nullptr));
@@ -1808,23 +1809,23 @@
CellularCapabilityUniversal::kSubscriptionStateUnknown;
cellular_operator.identifier_ = "vzw";
- capability_->mdn_ = "";
+ cellular_->set_mdn("");
EXPECT_EQ("0000000000", capability_->GetMdnForOLP(cellular_operator));
- capability_->mdn_ = "0123456789";
+ cellular_->set_mdn("0123456789");
EXPECT_EQ("0123456789", capability_->GetMdnForOLP(cellular_operator));
- capability_->mdn_ = "10123456789";
+ cellular_->set_mdn("10123456789");
EXPECT_EQ("0123456789", capability_->GetMdnForOLP(cellular_operator));
- capability_->mdn_ = "1021232333";
+ cellular_->set_mdn("1021232333");
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnprovisioned;
EXPECT_EQ("0000000000", capability_->GetMdnForOLP(cellular_operator));
cellular_operator.identifier_ = "foo";
- capability_->mdn_ = "";
+ cellular_->set_mdn("");
EXPECT_EQ("", capability_->GetMdnForOLP(cellular_operator));
- capability_->mdn_ = "0123456789";
+ cellular_->set_mdn("0123456789");
EXPECT_EQ("0123456789", capability_->GetMdnForOLP(cellular_operator));
- capability_->mdn_ = "10123456789";
+ cellular_->set_mdn("10123456789");
EXPECT_EQ("10123456789", capability_->GetMdnForOLP(cellular_operator));
}
@@ -1837,10 +1838,10 @@
test_olp.SetPostData("imei=${imei}&imsi=${imsi}&mdn=${mdn}&"
"min=${min}&iccid=${iccid}");
- capability_->imei_ = "1";
- capability_->imsi_ = "2";
- capability_->mdn_ = "10123456789";
- capability_->min_ = "5";
+ cellular_->set_imei("1");
+ cellular_->set_imsi("2");
+ cellular_->set_mdn("10123456789");
+ cellular_->set_min("5");
capability_->sim_identifier_ = "6";
capability_->operator_id_ = "123456";
@@ -1870,20 +1871,20 @@
}
TEST_F(CellularCapabilityUniversalMainTest, IsMdnValid) {
- capability_->mdn_.clear();
+ cellular_->set_mdn("");
EXPECT_FALSE(capability_->IsMdnValid());
- capability_->mdn_ = "0000000";
+ cellular_->set_mdn("0000000");
EXPECT_FALSE(capability_->IsMdnValid());
- capability_->mdn_ = "0000001";
+ cellular_->set_mdn("0000001");
EXPECT_TRUE(capability_->IsMdnValid());
- capability_->mdn_ = "1231223";
+ cellular_->set_mdn("1231223");
EXPECT_TRUE(capability_->IsMdnValid());
}
TEST_F(CellularCapabilityUniversalTimerTest, CompleteActivation) {
const char kIccid[] = "1234567";
- capability_->mdn_.clear();
+ cellular_->set_mdn("");
capability_->sim_identifier_.clear();
EXPECT_CALL(*service_, SetActivationState(kActivationStateActivating))
@@ -1925,7 +1926,7 @@
EXPECT_CALL(*service_, SetActivationState(kActivationStateActivating))
.Times(0);
EXPECT_CALL(mock_dispatcher_, PostDelayedTask(_, _)).Times(0);
- capability_->mdn_ = "1231231212";
+ cellular_->set_mdn("1231231212");
capability_->CompleteActivation(&error);
}
@@ -1934,7 +1935,7 @@
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnprovisioned;
capability_->sim_identifier_.clear();
- capability_->mdn_ = "0000000000";
+ cellular_->set_mdn("0000000000");
CellularService::OLP olp;
EXPECT_CALL(*modem_info_.mock_cellular_operator_info(), GetOLPByMCCMNC(_))
.WillRepeatedly(Return(&olp));
@@ -1946,7 +1947,7 @@
Mock::VerifyAndClearExpectations(service_);
EXPECT_FALSE(service_->auto_connect());
- capability_->mdn_ = "1231231122";
+ cellular_->set_mdn("1231231122");
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnknown;
EXPECT_CALL(*service_, SetActivationState(kActivationStateActivated))
@@ -1956,7 +1957,7 @@
EXPECT_TRUE(service_->auto_connect());
service_->SetAutoConnect(false);
- capability_->mdn_ = "0000000000";
+ cellular_->set_mdn("0000000000");
capability_->sim_identifier_ = kIccid;
EXPECT_CALL(*modem_info_.mock_pending_activation_store(),
GetActivationState(PendingActivationStore::kIdentifierICCID,
@@ -1986,7 +1987,7 @@
// SubscriptionStateUnprovisioned overrides valid MDN.
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnprovisioned;
- capability_->mdn_ = "1231231122";
+ cellular_->set_mdn("1231231122");
capability_->sim_identifier_.clear();
service_->SetAutoConnect(false);
EXPECT_CALL(*service_, SetActivationState(kActivationStateNotActivated))
@@ -1998,7 +1999,7 @@
// SubscriptionStateProvisioned overrides invalid MDN.
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateProvisioned;
- capability_->mdn_ = "0000000000";
+ cellular_->set_mdn("0000000000");
capability_->sim_identifier_.clear();
service_->SetAutoConnect(false);
EXPECT_CALL(*service_, SetActivationState(kActivationStateActivated))
@@ -2020,7 +2021,7 @@
// No ICCID, no MDN
capability_->sim_identifier_.clear();
- capability_->mdn_.clear();
+ cellular_->set_mdn("");
capability_->reset_done_ = false;
capability_->OnActivationWaitForRegisterTimeout();
@@ -2033,11 +2034,11 @@
capability_->OnActivationWaitForRegisterTimeout();
// Valid MDN.
- capability_->mdn_ = "0000000001";
+ cellular_->set_mdn("0000000001");
capability_->OnActivationWaitForRegisterTimeout();
// Invalid MDN, reset done.
- capability_->mdn_ = "0000000000";
+ cellular_->set_mdn("0000000000");
capability_->reset_done_ = true;
capability_->OnActivationWaitForRegisterTimeout();
@@ -2067,7 +2068,7 @@
MM_MODEM_3GPP_REGISTRATION_STATE_SEARCHING;
// No MDN, no ICCID.
- capability_->mdn_ = "0000000";
+ cellular_->set_mdn("0000000");
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnknown;
capability_->sim_identifier_.clear();
@@ -2078,7 +2079,7 @@
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
// Valid MDN, but subsciption_state_ Unprovisioned
- capability_->mdn_ = "1234567";
+ cellular_->set_mdn("1234567");
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnprovisioned;
capability_->sim_identifier_.clear();
@@ -2162,14 +2163,14 @@
// Got valid MDN, subscription_state_ is kSubscriptionStateUnknown
cellular_->state_ = Cellular::kStateRegistered;
- capability_->mdn_ = "1020304";
+ cellular_->set_mdn("1020304");
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnknown;
capability_->UpdatePendingActivationState();
// Got invalid MDN, subscription_state_ is kSubscriptionStateProvisioned
cellular_->state_ = Cellular::kStateRegistered;
- capability_->mdn_ = "0000000";
+ cellular_->set_mdn("0000000");
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateProvisioned;
capability_->UpdatePendingActivationState();
@@ -2178,7 +2179,7 @@
Mock::VerifyAndClearExpectations(modem_info_.mock_pending_activation_store());
// Timed out, not registered.
- capability_->mdn_.clear();
+ cellular_->set_mdn("");
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnknown;
EXPECT_CALL(*modem_info_.mock_pending_activation_store(),
@@ -2293,7 +2294,7 @@
capability_->subscription_state_ =
CellularCapabilityUniversal::kSubscriptionStateUnknown;
- capability_->mdn_ = "0000000000";
+ cellular_->set_mdn("0000000000");
EXPECT_FALSE(capability_->IsServiceActivationRequired());
CellularService::OLP olp;
@@ -2302,11 +2303,11 @@
.WillRepeatedly(Return(&olp));
EXPECT_FALSE(capability_->IsServiceActivationRequired());
- capability_->mdn_ = "";
+ cellular_->set_mdn("");
EXPECT_TRUE(capability_->IsServiceActivationRequired());
- capability_->mdn_ = "1234567890";
+ cellular_->set_mdn("1234567890");
EXPECT_FALSE(capability_->IsServiceActivationRequired());
- capability_->mdn_ = "0000000000";
+ cellular_->set_mdn("0000000000");
EXPECT_TRUE(capability_->IsServiceActivationRequired());
const char kIccid[] = "1234567890";
@@ -2326,41 +2327,41 @@
}
TEST_F(CellularCapabilityUniversalMainTest, OnModemCurrentCapabilitiesChanged) {
- EXPECT_FALSE(capability_->scanning_supported_);
+ EXPECT_FALSE(cellular_->scanning_supported());
capability_->OnModemCurrentCapabilitiesChanged(MM_MODEM_CAPABILITY_LTE);
- EXPECT_FALSE(capability_->scanning_supported_);
+ EXPECT_FALSE(cellular_->scanning_supported());
capability_->OnModemCurrentCapabilitiesChanged(MM_MODEM_CAPABILITY_CDMA_EVDO);
- EXPECT_FALSE(capability_->scanning_supported_);
+ EXPECT_FALSE(cellular_->scanning_supported());
capability_->OnModemCurrentCapabilitiesChanged(MM_MODEM_CAPABILITY_GSM_UMTS);
- EXPECT_TRUE(capability_->scanning_supported_);
+ EXPECT_TRUE(cellular_->scanning_supported());
capability_->OnModemCurrentCapabilitiesChanged(
MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_CDMA_EVDO);
- EXPECT_TRUE(capability_->scanning_supported_);
+ EXPECT_TRUE(cellular_->scanning_supported());
}
TEST_F(CellularCapabilityUniversalMainTest, GetNetworkTechnologyStringOnE362) {
- capability_->model_id_.clear();
+ cellular_->set_model_id("");;
capability_->access_technologies_ = 0;
EXPECT_TRUE(capability_->GetNetworkTechnologyString().empty());
- capability_->model_id_ = CellularCapabilityUniversal::kE362ModelId;
+ cellular_->set_model_id(CellularCapabilityUniversal::kE362ModelId);
EXPECT_EQ(kNetworkTechnologyLte, capability_->GetNetworkTechnologyString());
capability_->access_technologies_ = MM_MODEM_ACCESS_TECHNOLOGY_GPRS;
EXPECT_EQ(kNetworkTechnologyLte, capability_->GetNetworkTechnologyString());
- capability_->model_id_.clear();
+ cellular_->set_model_id("");;
EXPECT_EQ(kNetworkTechnologyGprs, capability_->GetNetworkTechnologyString());
}
TEST_F(CellularCapabilityUniversalMainTest, GetOutOfCreditsDetectionType) {
- capability_->model_id_.clear();
+ cellular_->set_model_id("");;
EXPECT_EQ(OutOfCreditsDetector::OOCTypeNone,
capability_->GetOutOfCreditsDetectionType());
- capability_->model_id_ = CellularCapabilityUniversal::kALT3100ModelId;
+ cellular_->set_model_id(CellularCapabilityUniversal::kALT3100ModelId);
EXPECT_EQ(OutOfCreditsDetector::OOCTypeSubscriptionState,
capability_->GetOutOfCreditsDetectionType());
- capability_->model_id_ = CellularCapabilityUniversal::kE362ModelId;
+ cellular_->set_model_id(CellularCapabilityUniversal::kE362ModelId);
EXPECT_EQ(OutOfCreditsDetector::OOCTypeActivePassive,
capability_->GetOutOfCreditsDetectionType());
}
diff --git a/cellular_service_unittest.cc b/cellular_service_unittest.cc
index 70add10..c80ae1e 100644
--- a/cellular_service_unittest.cc
+++ b/cellular_service_unittest.cc
@@ -156,7 +156,7 @@
TEST_F(CellularServiceTest, FriendlyName) {
static const char kCarrier[] = "Cellular Carrier";
- GetCapabilityCDMA()->carrier_ = kCarrier;
+ device_->set_carrier(kCarrier);
service_ = new CellularService(&modem_info_, device_);
EXPECT_EQ(kCarrier, GetFriendlyName());
}
diff --git a/cellular_unittest.cc b/cellular_unittest.cc
index ebc767a..b288299 100644
--- a/cellular_unittest.cc
+++ b/cellular_unittest.cc
@@ -622,8 +622,8 @@
Error error;
device_->Start(&error, Bind(&CellularTest::TestCallback, Unretained(this)));
dispatcher_.DispatchPendingEvents();
- EXPECT_EQ(kMEID, GetCapabilityClassic()->meid_);
- EXPECT_EQ(kTestCarrier, GetCapabilityClassic()->carrier_);
+ EXPECT_EQ(kMEID, device_->meid());
+ EXPECT_EQ(kTestCarrier, device_->carrier());
EXPECT_EQ(Cellular::kStateRegistered, device_->state_);
ASSERT_TRUE(device_->service_.get());
EXPECT_EQ(kNetworkTechnology1Xrtt, device_->service_->network_technology());
@@ -669,10 +669,10 @@
device_->Start(&error, Bind(&CellularTest::TestCallback, Unretained(this)));
EXPECT_TRUE(error.IsSuccess());
dispatcher_.DispatchPendingEvents();
- EXPECT_EQ(kIMEI, GetCapabilityGSM()->imei_);
- EXPECT_EQ(kIMSI, GetCapabilityGSM()->imsi_);
+ EXPECT_EQ(kIMEI, device_->imei());
+ EXPECT_EQ(kIMSI, device_->imsi());
EXPECT_EQ(kTestCarrierSPN, GetCapabilityGSM()->spn_);
- EXPECT_EQ(kMSISDN, GetCapabilityGSM()->mdn_);
+ EXPECT_EQ(kMSISDN, device_->mdn());
EXPECT_EQ(Cellular::kStateRegistered, device_->state_);
ASSERT_TRUE(device_->service_.get());
EXPECT_EQ(kNetworkTechnologyEdge, device_->service_->network_technology());
@@ -689,7 +689,7 @@
.WillOnce(Return(true));
SetCellularType(Cellular::kTypeCDMA);
device_->set_modem_state(Cellular::kModemStateConnected);
- GetCapabilityClassic()->meid_ = kMEID;
+ device_->set_meid(kMEID);
ExpectCdmaStartModem(kNetworkTechnologyEvdo);
Error error;
device_->Start(&error, Bind(&CellularTest::TestCallback, Unretained(this)));
@@ -703,7 +703,7 @@
.WillOnce(DoAll(SetArgumentPointee<1>(IFF_UP), Return(true)));
SetCellularType(Cellular::kTypeCDMA);
device_->set_modem_state(Cellular::kModemStateConnected);
- GetCapabilityClassic()->meid_ = kMEID;
+ device_->set_meid(kMEID);
ExpectCdmaStartModem(kNetworkTechnologyEvdo);
EXPECT_CALL(dhcp_provider_, CreateConfig(kTestDeviceName, _, _, _, _))
.WillOnce(Return(dhcp_config_));
@@ -901,7 +901,7 @@
SetCellularType(Cellular::kTypeUniversal);
// Service activation is needed
- GetCapabilityUniversal()->mdn_ = "0000000000";
+ device_->set_mdn("0000000000");
CellularService::OLP olp;
EXPECT_CALL(*modem_info_.mock_cellular_operator_info(), GetOLPByMCCMNC(_))
.WillRepeatedly(Return(&olp));
diff --git a/device_dbus_adaptor.cc b/device_dbus_adaptor.cc
index 49f22e4..6f96827 100644
--- a/device_dbus_adaptor.cc
+++ b/device_dbus_adaptor.cc
@@ -60,6 +60,12 @@
PropertyChanged(name, DBusAdaptor::StringToVariant(value));
}
+void DeviceDBusAdaptor::EmitStringmapChanged(const std::string &name,
+ const Stringmap &value) {
+ SLOG(DBus, 2) << __func__ << ": " << name;
+ PropertyChanged(name, DBusAdaptor::StringmapToVariant(value));
+}
+
void DeviceDBusAdaptor::EmitStringmapsChanged(const std::string &name,
const Stringmaps &value) {
SLOG(DBus, 2) << __func__ << ": " << name;
diff --git a/device_dbus_adaptor.h b/device_dbus_adaptor.h
index 0663d0b..a7e4282 100644
--- a/device_dbus_adaptor.h
+++ b/device_dbus_adaptor.h
@@ -39,6 +39,8 @@
virtual void EmitIntChanged(const std::string& name, int value);
virtual void EmitStringChanged(const std::string& name,
const std::string& value);
+ virtual void EmitStringmapChanged(const std::string &name,
+ const Stringmap &value);
virtual void EmitStringmapsChanged(const std::string &name,
const Stringmaps &value);
virtual void EmitKeyValueStoreChanged(const std::string &name,
diff --git a/mock_adaptors.h b/mock_adaptors.h
index 6ea3461..e106c93 100644
--- a/mock_adaptors.h
+++ b/mock_adaptors.h
@@ -30,6 +30,8 @@
MOCK_METHOD2(EmitIntChanged, void(const std::string &name, int value));
MOCK_METHOD2(EmitStringChanged, void(const std::string &name,
const std::string &value));
+ MOCK_METHOD2(EmitStringmapChanged, void(const std::string &name,
+ const Stringmap &value));
MOCK_METHOD2(EmitStringmapsChanged, void(const std::string &name,
const Stringmaps &value));
MOCK_METHOD2(EmitKeyValueStoreChanged, void(const std::string &name,