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

Side by Side Diff: mojo/public/cpp/bindings/tests/associated_interface_unittest.cc

Issue 1552983003: Fix a bunch of mojo_public_*_unittests with the new EDK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 ptr0.Bind(std::move(ptr_info)); 166 ptr0.Bind(std::move(ptr_info));
167 167
168 router0->CreateAssociatedGroup()->CreateAssociatedInterface( 168 router0->CreateAssociatedGroup()->CreateAssociatedInterface(
169 AssociatedGroup::WILL_PASS_REQUEST, &ptr_info, &request); 169 AssociatedGroup::WILL_PASS_REQUEST, &ptr_info, &request);
170 request = EmulatePassingAssociatedRequest(std::move(request), router1); 170 request = EmulatePassingAssociatedRequest(std::move(request), router1);
171 171
172 IntegerSenderImpl impl1(std::move(request)); 172 IntegerSenderImpl impl1(std::move(request));
173 AssociatedInterfacePtr<IntegerSender> ptr1; 173 AssociatedInterfacePtr<IntegerSender> ptr1;
174 ptr1.Bind(std::move(ptr_info)); 174 ptr1.Bind(std::move(ptr_info));
175 175
176 base::RunLoop run_loop, run_loop2;
176 bool ptr0_callback_run = false; 177 bool ptr0_callback_run = false;
177 ptr0->Echo(123, [&ptr0_callback_run](int32_t value) { 178 ptr0->Echo(123, [&ptr0_callback_run, &run_loop](int32_t value) {
178 EXPECT_EQ(123, value); 179 EXPECT_EQ(123, value);
179 ptr0_callback_run = true; 180 ptr0_callback_run = true;
181 run_loop.Quit();
180 }); 182 });
181 183
182 bool ptr1_callback_run = false; 184 bool ptr1_callback_run = false;
183 ptr1->Echo(456, [&ptr1_callback_run](int32_t value) { 185 ptr1->Echo(456, [&ptr1_callback_run, &run_loop2](int32_t value) {
184 EXPECT_EQ(456, value); 186 EXPECT_EQ(456, value);
185 ptr1_callback_run = true; 187 ptr1_callback_run = true;
188 run_loop2.Quit();
186 }); 189 });
187 190
188 PumpMessages(); 191 run_loop.Run();
192 run_loop2.Run();
189 EXPECT_TRUE(ptr0_callback_run); 193 EXPECT_TRUE(ptr0_callback_run);
190 EXPECT_TRUE(ptr1_callback_run); 194 EXPECT_TRUE(ptr1_callback_run);
191 195
192 bool ptr0_error_callback_run = false; 196 bool ptr0_error_callback_run = false;
193 ptr0.set_connection_error_handler( 197 base::RunLoop run_loop3;
194 [&ptr0_error_callback_run]() { ptr0_error_callback_run = true; }); 198 ptr0.set_connection_error_handler([&ptr0_error_callback_run, &run_loop3]() {
199 ptr0_error_callback_run = true;
200 run_loop3.Quit();
201 });
195 202
196 impl0.binding()->Close(); 203 impl0.binding()->Close();
197 PumpMessages(); 204 run_loop3.Run();
198 EXPECT_TRUE(ptr0_error_callback_run); 205 EXPECT_TRUE(ptr0_error_callback_run);
199 206
200 bool impl1_error_callback_run = false; 207 bool impl1_error_callback_run = false;
208 base::RunLoop run_loop4;
201 impl1.binding()->set_connection_error_handler( 209 impl1.binding()->set_connection_error_handler(
202 [&impl1_error_callback_run]() { impl1_error_callback_run = true; }); 210 [&impl1_error_callback_run, &run_loop4]() {
211 impl1_error_callback_run = true;
212 run_loop4.Quit();
213 });
203 214
204 ptr1.reset(); 215 ptr1.reset();
205 PumpMessages(); 216 run_loop4.Run();
206 EXPECT_TRUE(impl1_error_callback_run); 217 EXPECT_TRUE(impl1_error_callback_run);
207 } 218 }
208 219
209 class TestSender { 220 class TestSender {
210 public: 221 public:
211 TestSender() 222 TestSender()
212 : sender_thread_("TestSender"), 223 : sender_thread_("TestSender"),
213 next_sender_(nullptr), 224 next_sender_(nullptr),
214 max_value_to_send_(-1) { 225 max_value_to_send_(-1) {
215 base::Thread::Options thread_options; 226 base::Thread::Options thread_options;
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 524
514 TEST_F(AssociatedInterfaceTest, PassAssociatedInterfaces) { 525 TEST_F(AssociatedInterfaceTest, PassAssociatedInterfaces) {
515 IntegerSenderConnectionPtr connection_ptr; 526 IntegerSenderConnectionPtr connection_ptr;
516 IntegerSenderConnectionImpl connection(GetProxy(&connection_ptr)); 527 IntegerSenderConnectionImpl connection(GetProxy(&connection_ptr));
517 528
518 IntegerSenderAssociatedPtr sender0; 529 IntegerSenderAssociatedPtr sender0;
519 connection_ptr->GetSender( 530 connection_ptr->GetSender(
520 GetProxy(&sender0, connection_ptr.associated_group())); 531 GetProxy(&sender0, connection_ptr.associated_group()));
521 532
522 int32_t echoed_value = 0; 533 int32_t echoed_value = 0;
523 sender0->Echo(123, [&echoed_value](int32_t value) { echoed_value = value; }); 534 base::RunLoop run_loop;
524 PumpMessages(); 535 sender0->Echo(123, [&echoed_value, &run_loop](int32_t value) {
536 echoed_value = value;
537 run_loop.Quit();
538 });
539 run_loop.Run();
525 EXPECT_EQ(123, echoed_value); 540 EXPECT_EQ(123, echoed_value);
526 541
527 IntegerSenderAssociatedPtr sender1; 542 IntegerSenderAssociatedPtr sender1;
543 base::RunLoop run_loop2;
528 connection_ptr->AsyncGetSender( 544 connection_ptr->AsyncGetSender(
529 [&sender1](AssociatedInterfacePtrInfo<IntegerSender> ptr_info) { 545 [&sender1, &run_loop2](
546 AssociatedInterfacePtrInfo<IntegerSender> ptr_info) {
530 sender1.Bind(std::move(ptr_info)); 547 sender1.Bind(std::move(ptr_info));
548 run_loop2.Quit();
531 }); 549 });
532 PumpMessages(); 550 run_loop2.Run();
533 EXPECT_TRUE(sender1); 551 EXPECT_TRUE(sender1);
534 552
535 sender1->Echo(456, [&echoed_value](int32_t value) { echoed_value = value; }); 553 base::RunLoop run_loop3;
536 PumpMessages(); 554 sender1->Echo(456, [&echoed_value, &run_loop3](int32_t value) {
555 echoed_value = value;
556 run_loop3.Quit();
557 });
558 run_loop3.Run();
537 EXPECT_EQ(456, echoed_value); 559 EXPECT_EQ(456, echoed_value);
538 } 560 }
539 561
540 TEST_F(AssociatedInterfaceTest, BindingWaitAndPauseWhenNoAssociatedInterfaces) { 562 TEST_F(AssociatedInterfaceTest, BindingWaitAndPauseWhenNoAssociatedInterfaces) {
541 IntegerSenderConnectionPtr connection_ptr; 563 IntegerSenderConnectionPtr connection_ptr;
542 IntegerSenderConnectionImpl connection(GetProxy(&connection_ptr)); 564 IntegerSenderConnectionImpl connection(GetProxy(&connection_ptr));
543 565
544 IntegerSenderAssociatedPtr sender0; 566 IntegerSenderAssociatedPtr sender0;
545 connection_ptr->GetSender( 567 connection_ptr->GetSender(
546 GetProxy(&sender0, connection_ptr.associated_group())); 568 GetProxy(&sender0, connection_ptr.associated_group()));
(...skipping 10 matching lines...) Expand all
557 579
558 // The previous wait has dispatched the GetSender request message, therefore 580 // The previous wait has dispatched the GetSender request message, therefore
559 // an associated interface has been set up on the pipe. It is not allowed to 581 // an associated interface has been set up on the pipe. It is not allowed to
560 // wait or pause. 582 // wait or pause.
561 EXPECT_TRUE(connection.binding()->HasAssociatedInterfaces()); 583 EXPECT_TRUE(connection.binding()->HasAssociatedInterfaces());
562 } 584 }
563 585
564 } // namespace 586 } // namespace
565 } // namespace test 587 } // namespace test
566 } // namespace mojo 588 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/lib/validation_errors.cc ('k') | mojo/public/cpp/bindings/tests/binding_callback_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698