Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(513)

Unified Diff: google_apis/gcm/engine/unregistration_request_unittest.cc

Issue 2111973002: Add support for GCM subtypes to desktop Instance ID implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@iid9push
Patch Set: Remove channel from product_category_for_subtypes, and address nits Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « google_apis/gcm/engine/unregistration_request.cc ('k') | ios/chrome/browser/application_context_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: google_apis/gcm/engine/unregistration_request_unittest.cc
diff --git a/google_apis/gcm/engine/unregistration_request_unittest.cc b/google_apis/gcm/engine/unregistration_request_unittest.cc
index af5b1c953780234331a29c733667ab46e25dbfde..f27d59dab0418bdb904ee9070bbef49a27bd5751 100644
--- a/google_apis/gcm/engine/unregistration_request_unittest.cc
+++ b/google_apis/gcm/engine/unregistration_request_unittest.cc
@@ -25,6 +25,7 @@ const char kLoginHeader[] = "AidLogin";
const char kAppId[] = "TestAppId";
const char kDeletedAppId[] = "deleted=TestAppId";
const char kDeletedToken[] = "token=SomeToken";
+const char kProductCategoryForSubtypes[] = "com.chrome.macosx";
const char kRegistrationURL[] = "http://foo.bar/register";
const uint64_t kSecurityToken = 77UL;
const int kGCMVersion = 40;
@@ -91,8 +92,9 @@ GCMUnregistrationRequestTest::~GCMUnregistrationRequestTest() {
}
void GCMUnregistrationRequestTest::CreateRequest() {
- UnregistrationRequest::RequestInfo request_info(
- kAndroidId, kSecurityToken, kAppId);
+ UnregistrationRequest::RequestInfo request_info(kAndroidId, kSecurityToken,
+ kAppId /* category */,
+ std::string() /* subtype */);
std::unique_ptr<GCMUnregistrationRequestHandler> request_handler(
new GCMUnregistrationRequestHandler(kAppId));
request_.reset(new UnregistrationRequest(
@@ -130,9 +132,6 @@ TEST_F(GCMUnregistrationRequestTest, RequestDataPassedToFetcher) {
EXPECT_EQ(base::Uint64ToString(kAndroidId), auth_tokenizer.token());
ASSERT_TRUE(auth_tokenizer.GetNext());
EXPECT_EQ(base::Uint64ToString(kSecurityToken), auth_tokenizer.token());
- std::string app_id_header;
- headers.GetHeader("app", &app_id_header);
- EXPECT_EQ(kAppId, app_id_header);
std::map<std::string, std::string> expected_pairs;
expected_pairs["app"] = kAppId;
@@ -140,20 +139,7 @@ TEST_F(GCMUnregistrationRequestTest, RequestDataPassedToFetcher) {
expected_pairs["delete"] = "true";
expected_pairs["gcm_unreg_caller"] = "false";
- // Verify data was formatted properly.
- std::string upload_data = fetcher->upload_data();
- base::StringTokenizer data_tokenizer(upload_data, "&=");
- while (data_tokenizer.GetNext()) {
- std::map<std::string, std::string>::iterator iter =
- expected_pairs.find(data_tokenizer.token());
- ASSERT_TRUE(iter != expected_pairs.end()) << data_tokenizer.token();
- ASSERT_TRUE(data_tokenizer.GetNext()) << data_tokenizer.token();
- EXPECT_EQ(iter->second, data_tokenizer.token());
- // Ensure that none of the keys appears twice.
- expected_pairs.erase(iter);
- }
-
- EXPECT_EQ(0UL, expected_pairs.size());
+ ASSERT_NO_FATAL_FAILURE(VerifyFetcherUploadData(&expected_pairs));
}
TEST_F(GCMUnregistrationRequestTest, SuccessfulUnregistration) {
@@ -324,7 +310,8 @@ class InstaceIDDeleteTokenRequestTest : public UnregistrationRequestTest {
InstaceIDDeleteTokenRequestTest();
~InstaceIDDeleteTokenRequestTest() override;
- void CreateRequest(const std::string& instance_id,
+ void CreateRequest(bool use_subtype,
+ const std::string& instance_id,
const std::string& authorized_entity,
const std::string& scope);
};
@@ -336,11 +323,14 @@ InstaceIDDeleteTokenRequestTest::~InstaceIDDeleteTokenRequestTest() {
}
void InstaceIDDeleteTokenRequestTest::CreateRequest(
+ bool use_subtype,
const std::string& instance_id,
const std::string& authorized_entity,
const std::string& scope) {
- UnregistrationRequest::RequestInfo request_info(
- kAndroidId, kSecurityToken, kAppId);
+ std::string category = use_subtype ? kProductCategoryForSubtypes : kAppId;
+ std::string subtype = use_subtype ? kAppId : std::string();
+ UnregistrationRequest::RequestInfo request_info(kAndroidId, kSecurityToken,
+ category, subtype);
std::unique_ptr<InstanceIDDeleteTokenRequestHandler> request_handler(
new InstanceIDDeleteTokenRequestHandler(instance_id, authorized_entity,
scope, kGCMVersion));
@@ -354,7 +344,7 @@ void InstaceIDDeleteTokenRequestTest::CreateRequest(
}
TEST_F(InstaceIDDeleteTokenRequestTest, RequestDataPassedToFetcher) {
- CreateRequest(kInstanceId, kDeveloperId, kScope);
+ CreateRequest(false /* use_subtype */, kInstanceId, kDeveloperId, kScope);
request_->Start();
// Get data sent by request.
@@ -375,9 +365,6 @@ TEST_F(InstaceIDDeleteTokenRequestTest, RequestDataPassedToFetcher) {
EXPECT_EQ(base::Uint64ToString(kAndroidId), auth_tokenizer.token());
ASSERT_TRUE(auth_tokenizer.GetNext());
EXPECT_EQ(base::Uint64ToString(kSecurityToken), auth_tokenizer.token());
- std::string app_id_header;
- headers.GetHeader("app", &app_id_header);
- EXPECT_EQ(kAppId, app_id_header);
std::map<std::string, std::string> expected_pairs;
expected_pairs["gmsv"] = base::IntToString(kGCMVersion);
@@ -386,28 +373,37 @@ TEST_F(InstaceIDDeleteTokenRequestTest, RequestDataPassedToFetcher) {
expected_pairs["delete"] = "true";
expected_pairs["appid"] = kInstanceId;
expected_pairs["sender"] = kDeveloperId;
- expected_pairs["X-subtype"] = kDeveloperId;
expected_pairs["scope"] = kScope;
expected_pairs["X-scope"] = kScope;
- // Verify data was formatted properly.
- std::string upload_data = fetcher->upload_data();
- base::StringTokenizer data_tokenizer(upload_data, "&=");
- while (data_tokenizer.GetNext()) {
- std::map<std::string, std::string>::iterator iter =
- expected_pairs.find(data_tokenizer.token());
- ASSERT_TRUE(iter != expected_pairs.end()) << data_tokenizer.token();
- ASSERT_TRUE(data_tokenizer.GetNext()) << data_tokenizer.token();
- EXPECT_EQ(iter->second, data_tokenizer.token());
- // Ensure that none of the keys appears twice.
- expected_pairs.erase(iter);
- }
+ ASSERT_NO_FATAL_FAILURE(VerifyFetcherUploadData(&expected_pairs));
+}
+
+TEST_F(InstaceIDDeleteTokenRequestTest, RequestDataWithSubtype) {
+ CreateRequest(true /* use_subtype */, kInstanceId, kDeveloperId, kScope);
+ request_->Start();
+
+ // Get data sent by request.
+ net::TestURLFetcher* fetcher = GetFetcher();
+ ASSERT_TRUE(fetcher);
+
+ // Same as RequestDataPassedToFetcher except "app" and "X-subtype".
+ std::map<std::string, std::string> expected_pairs;
+ expected_pairs["gmsv"] = base::IntToString(kGCMVersion);
+ expected_pairs["app"] = kProductCategoryForSubtypes;
+ expected_pairs["X-subtype"] = kAppId;
+ expected_pairs["device"] = base::Uint64ToString(kAndroidId);
+ expected_pairs["delete"] = "true";
+ expected_pairs["appid"] = kInstanceId;
+ expected_pairs["sender"] = kDeveloperId;
+ expected_pairs["scope"] = kScope;
+ expected_pairs["X-scope"] = kScope;
- EXPECT_EQ(0UL, expected_pairs.size());
+ ASSERT_NO_FATAL_FAILURE(VerifyFetcherUploadData(&expected_pairs));
}
TEST_F(InstaceIDDeleteTokenRequestTest, SuccessfulUnregistration) {
- CreateRequest(kInstanceId, kDeveloperId, kScope);
+ CreateRequest(false /* use_subtype */, kInstanceId, kDeveloperId, kScope);
request_->Start();
SetResponse(net::HTTP_OK, kDeletedToken);
@@ -418,7 +414,7 @@ TEST_F(InstaceIDDeleteTokenRequestTest, SuccessfulUnregistration) {
}
TEST_F(InstaceIDDeleteTokenRequestTest, ResponseHttpStatusNotOK) {
- CreateRequest(kInstanceId, kDeveloperId, kScope);
+ CreateRequest(false /* use_subtype */, kInstanceId, kDeveloperId, kScope);
request_->Start();
SetResponse(net::HTTP_UNAUTHORIZED, "");
@@ -434,7 +430,7 @@ TEST_F(InstaceIDDeleteTokenRequestTest, ResponseHttpStatusNotOK) {
}
TEST_F(InstaceIDDeleteTokenRequestTest, InvalidParametersError) {
- CreateRequest(kInstanceId, kDeveloperId, kScope);
+ CreateRequest(false /* use_subtype */, kInstanceId, kDeveloperId, kScope);
request_->Start();
SetResponse(net::HTTP_OK, "Error=INVALID_PARAMETERS");
@@ -445,7 +441,7 @@ TEST_F(InstaceIDDeleteTokenRequestTest, InvalidParametersError) {
}
TEST_F(InstaceIDDeleteTokenRequestTest, UnkwnownError) {
- CreateRequest(kInstanceId, kDeveloperId, kScope);
+ CreateRequest(false /* use_subtype */, kInstanceId, kDeveloperId, kScope);
request_->Start();
SetResponse(net::HTTP_OK, "Error=XXX");
« no previous file with comments | « google_apis/gcm/engine/unregistration_request.cc ('k') | ios/chrome/browser/application_context_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698