shill: cellular: Update online payment portal when available.
BUG=chrome-os-partner:11985
TEST=Build and run unit tests.
Change-Id: I50085707907cfa14251f76eba1b57d3cf0604938
Reviewed-on: https://gerrit.chromium.org/gerrit/37507
Commit-Ready: Ben Chan <benchan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
diff --git a/cellular_capability_universal_unittest.cc b/cellular_capability_universal_unittest.cc
index 3bcdd0c..20ca0a3 100644
--- a/cellular_capability_universal_unittest.cc
+++ b/cellular_capability_universal_unittest.cc
@@ -42,6 +42,7 @@
using std::string;
using std::vector;
using testing::InSequence;
+using testing::Invoke;
using testing::Mock;
using testing::NiceMock;
using testing::Return;
@@ -64,6 +65,23 @@
apn == expected_apn);
}
+class MockCellularOperatorInfoGetOLPHelper {
+ public:
+ MockCellularOperatorInfoGetOLPHelper(const CellularService::OLP &olp) {
+ olp_.CopyFrom(olp);
+ }
+
+ ~MockCellularOperatorInfoGetOLPHelper() {}
+
+ bool GetOLP(const std::string &operator_id, CellularService::OLP *olp) {
+ olp->CopyFrom(olp_);
+ return true;
+ }
+
+ private:
+ CellularService::OLP olp_;
+};
+
class CellularCapabilityUniversalTest : public testing::Test {
public:
CellularCapabilityUniversalTest()
@@ -894,6 +912,38 @@
EXPECT_TRUE(capability_->provider_requires_roaming_);
}
+TEST_F(CellularCapabilityUniversalTest, UpdateOLP) {
+ CellularService::OLP test_olp;
+ test_olp.SetURL("http://testurl");
+ test_olp.SetMethod("POST");
+ test_olp.SetPostData("esn=${esn}&imei=${imei}&imsi=${imsi}&mdn=${mdn}&"
+ "meid=${meid}&min=${min}&iccid=${iccid}");
+
+ MockCellularOperatorInfoGetOLPHelper get_olp_helper(test_olp);
+
+ capability_->esn_ = "0";
+ capability_->imei_ = "1";
+ capability_->imsi_ = "2";
+ capability_->mdn_ = "3";
+ capability_->meid_= "4";
+ capability_->min_ = "5";
+ capability_->sim_identifier_ = "6";
+ capability_->operator_id_ = "123456";
+ cellular_->cellular_operator_info_ = &cellular_operator_info_;
+
+ EXPECT_CALL(cellular_operator_info_, GetOLP(capability_->operator_id_, _))
+ .WillOnce(Invoke(&get_olp_helper,
+ &MockCellularOperatorInfoGetOLPHelper::GetOLP));
+
+ SetService();
+ capability_->UpdateOLP();
+ const CellularService::OLP &olp = cellular_->service()->olp();
+ EXPECT_EQ("http://testurl", olp.GetURL());
+ EXPECT_EQ("POST", olp.GetMethod());
+ EXPECT_EQ("esn=0&imei=1&imsi=2&mdn=3&meid=4&min=5&iccid=6",
+ olp.GetPostData());
+}
+
TEST_F(CellularCapabilityUniversalTest, UpdateOperatorInfo) {
static const char kOperatorName[] = "Swisscom";
InitProviderDB();