diff options
author | ckehoe@chromium.org <ckehoe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-15 14:25:35 +0000 |
---|---|---|
committer | ckehoe@chromium.org <ckehoe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-15 14:27:26 +0000 |
commit | 755e1aa1f052f0949020e64603e5ce8c9581f810 (patch) | |
tree | cd5e9b05420849f97ec6239600f364ef25d552ee | |
parent | e444efc7a1f47e72c654f632ed9d6ea8e8daf695 (diff) | |
download | chromium_src-755e1aa1f052f0949020e64603e5ce8c9581f810.zip chromium_src-755e1aa1f052f0949020e64603e5ce8c9581f810.tar.gz chromium_src-755e1aa1f052f0949020e64603e5ce8c9581f810.tar.bz2 |
Fixing server 400 errors due to empty subrequests
Review URL: https://codereview.chromium.org/472743002
Cr-Commit-Position: refs/heads/master@{#289841}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289841 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | components/copresence/rpc/rpc_handler.cc | 28 | ||||
-rw-r--r-- | components/copresence/rpc/rpc_handler_unittest.cc | 8 |
2 files changed, 19 insertions, 17 deletions
diff --git a/components/copresence/rpc/rpc_handler.cc b/components/copresence/rpc/rpc_handler.cc index d055cb0..72c4f90 100644 --- a/components/copresence/rpc/rpc_handler.cc +++ b/components/copresence/rpc/rpc_handler.cc @@ -217,21 +217,25 @@ void AllowOptedOutMessages(ReportRequest* request) { // TODO(ckehoe): Collapse this pattern into ProcessPublish() // and ProcessSubscribe() methods. - RepeatedPtrField<PublishedMessage>* messages = - request->mutable_manage_messages_request()->mutable_message_to_publish(); - for (int i = 0; i < messages->size(); ++i) { - PublishedMessage* message = messages->Mutable(i); - if (!message->has_opt_in_state_filter()) - message->set_allocated_opt_in_state_filter(CreateOptedInOrOutFilter()); + if (request->has_manage_messages_request()) { + RepeatedPtrField<PublishedMessage>* messages = request + ->mutable_manage_messages_request()->mutable_message_to_publish(); + for (int i = 0; i < messages->size(); ++i) { + PublishedMessage* message = messages->Mutable(i); + if (!message->has_opt_in_state_filter()) + message->set_allocated_opt_in_state_filter(CreateOptedInOrOutFilter()); + } } - RepeatedPtrField<Subscription>* subscriptions = + if (request->has_manage_subscriptions_request()) { + RepeatedPtrField<Subscription>* subscriptions = request->mutable_manage_subscriptions_request()->mutable_subscription(); - for (int i = 0; i < subscriptions->size(); ++i) { - Subscription* subscription = subscriptions->Mutable(i); - if (!subscription->has_opt_in_state_filter()) { - subscription->set_allocated_opt_in_state_filter( - CreateOptedInOrOutFilter()); + for (int i = 0; i < subscriptions->size(); ++i) { + Subscription* subscription = subscriptions->Mutable(i); + if (!subscription->has_opt_in_state_filter()) { + subscription->set_allocated_opt_in_state_filter( + CreateOptedInOrOutFilter()); + } } } } diff --git a/components/copresence/rpc/rpc_handler_unittest.cc b/components/copresence/rpc/rpc_handler_unittest.cc index 7657f66..962f8d9 100644 --- a/components/copresence/rpc/rpc_handler_unittest.cc +++ b/components/copresence/rpc/rpc_handler_unittest.cc @@ -223,6 +223,7 @@ TEST_F(RpcHandlerTest, GetDeviceCapabilities) { token_technology = &GetTokenTechnologyFromReport(); EXPECT_EQ(1, token_technology->instruction_type_size()); EXPECT_EQ(TRANSMIT, token_technology->instruction_type(0)); + EXPECT_FALSE(GetReportSent()->has_manage_subscriptions_request()); // Request with scan only. report.reset(new ReportRequest); @@ -232,6 +233,7 @@ TEST_F(RpcHandlerTest, GetDeviceCapabilities) { token_technology = &GetTokenTechnologyFromReport(); EXPECT_EQ(1, token_technology->instruction_type_size()); EXPECT_EQ(RECEIVE, token_technology->instruction_type(0)); + EXPECT_FALSE(GetReportSent()->has_manage_messages_request()); // Request with both scan and broadcast only (conflict). report.reset(new ReportRequest); @@ -304,11 +306,7 @@ TEST_F(RpcHandlerTest, CreateRequestHeader) { report->header().device_fingerprint().type()); } -// TODO(ckehoe): Renable these after https://codereview.chromium.org/453203002/ -// lands. -#define MAYBE_ReportTokens DISABLED_ReportTokens - -TEST_F(RpcHandlerTest, MAYBE_ReportTokens) { +TEST_F(RpcHandlerTest, ReportTokens) { std::vector<AudioToken> test_tokens; test_tokens.push_back(AudioToken("token 1", false)); test_tokens.push_back(AudioToken("token 2", true)); |