OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/at_exit.h" | 5 #include "base/at_exit.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "mojo/public/cpp/application/application_connection.h" | 10 #include "mojo/public/cpp/application/application_connection.h" |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
515 am.SetArgsForURL(args, test_url); | 515 am.SetArgsForURL(args, test_url); |
516 TestApplicationLoader* loader = new TestApplicationLoader; | 516 TestApplicationLoader* loader = new TestApplicationLoader; |
517 loader->set_context(&context_); | 517 loader->set_context(&context_); |
518 am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url); | 518 am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url); |
519 TestServicePtr test_service; | 519 TestServicePtr test_service; |
520 am.ConnectToService(test_url, &test_service); | 520 am.ConnectToService(test_url, &test_service); |
521 TestClient test_client(test_service.Pass()); | 521 TestClient test_client(test_service.Pass()); |
522 test_client.Test("test"); | 522 test_client.Test("test"); |
523 loop_.Run(); | 523 loop_.Run(); |
524 std::vector<std::string> app_args = loader->GetArgs(); | 524 std::vector<std::string> app_args = loader->GetArgs(); |
525 ASSERT_EQ(args.size(), app_args.size()); | 525 ASSERT_EQ(args.size() + 1, app_args.size()); |
526 EXPECT_EQ(args[0], app_args[0]); | 526 EXPECT_EQ(args[0], app_args[1]); |
527 EXPECT_EQ(args[1], app_args[1]); | 527 EXPECT_EQ(args[1], app_args[2]); |
528 } | 528 } |
529 | 529 |
530 // Confirm that arguments are sent to an application in the presence of query | 530 // Confirm that arguments are sent to an application in the presence of query |
531 // parameters. | 531 // parameters. |
532 TEST_F(ApplicationManagerTest, ArgsWithQuery) { | 532 TEST_F(ApplicationManagerTest, ArgsWithQuery) { |
533 ApplicationManager am(ApplicationManager::Options(), &test_delegate_); | 533 ApplicationManager am(ApplicationManager::Options(), &test_delegate_); |
534 GURL test_url("test:test"); | 534 GURL test_url("test:test"); |
535 GURL test_url_with_query("test:test?foo=bar"); | 535 GURL test_url_with_query("test:test?foo=bar"); |
536 std::vector<std::string> args; | 536 std::vector<std::string> args; |
537 args.push_back("test_arg1"); | 537 args.push_back("test_arg1"); |
538 am.SetArgsForURL(args, test_url); | 538 am.SetArgsForURL(args, test_url); |
539 TestApplicationLoader* loader = new TestApplicationLoader; | 539 TestApplicationLoader* loader = new TestApplicationLoader; |
540 loader->set_context(&context_); | 540 loader->set_context(&context_); |
541 am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url); | 541 am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url); |
542 TestServicePtr test_service; | 542 TestServicePtr test_service; |
543 am.ConnectToService(test_url_with_query, &test_service); | 543 am.ConnectToService(test_url_with_query, &test_service); |
544 TestClient test_client(test_service.Pass()); | 544 TestClient test_client(test_service.Pass()); |
545 test_client.Test("test"); | 545 test_client.Test("test"); |
546 loop_.Run(); | 546 loop_.Run(); |
547 std::vector<std::string> app_args = loader->GetArgs(); | 547 std::vector<std::string> app_args = loader->GetArgs(); |
548 ASSERT_EQ(args.size(), app_args.size()); | 548 ASSERT_EQ(args.size() + 1, app_args.size()); |
549 EXPECT_EQ(args[0], app_args[0]); | 549 EXPECT_EQ(args[0], app_args[1]); |
550 } | |
551 | |
552 // Confirm that the URL is not duplicated when arguments are added in multiple | |
553 // phase. | |
ppi
2015/11/23 15:02:44
phases
qsr
2015/11/23 17:18:00
Done.
| |
554 TEST_F(ApplicationManagerTest, ArgsMultipleCalls) { | |
555 ApplicationManager am(ApplicationManager::Options(), &test_delegate_); | |
556 GURL test_url("test:test"); | |
557 std::vector<std::string> args1; | |
558 args1.push_back("test_arg1"); | |
559 am.SetArgsForURL(args1, test_url); | |
560 std::vector<std::string> args2; | |
561 args2.push_back("test_arg2"); | |
562 am.SetArgsForURL(args2, test_url); | |
563 TestApplicationLoader* loader = new TestApplicationLoader; | |
564 loader->set_context(&context_); | |
565 am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url); | |
566 TestServicePtr test_service; | |
567 am.ConnectToService(test_url, &test_service); | |
568 TestClient test_client(test_service.Pass()); | |
569 test_client.Test("test"); | |
570 loop_.Run(); | |
571 std::vector<std::string> app_args = loader->GetArgs(); | |
572 ASSERT_EQ(args1.size() + args2.size() + 1, app_args.size()); | |
573 EXPECT_EQ(args1[0], app_args[1]); | |
574 EXPECT_EQ(args2[0], app_args[2]); | |
550 } | 575 } |
551 | 576 |
552 // Confirm that arguments are aggregated through mappings. | 577 // Confirm that arguments are aggregated through mappings. |
553 TEST_F(ApplicationManagerTest, ArgsAndMapping) { | 578 TEST_F(ApplicationManagerTest, ArgsAndMapping) { |
554 ApplicationManager am(ApplicationManager::Options(), &test_delegate_); | 579 ApplicationManager am(ApplicationManager::Options(), &test_delegate_); |
555 GURL test_url("test:test"); | 580 GURL test_url("test:test"); |
556 GURL test_url2("test:test2"); | 581 GURL test_url2("test:test2"); |
557 test_delegate_.AddMapping(test_url, test_url2); | 582 test_delegate_.AddMapping(test_url, test_url2); |
558 std::vector<std::string> args; | 583 std::vector<std::string> args; |
559 args.push_back("test_arg1"); | 584 args.push_back("test_arg1"); |
560 args.push_back("test_arg2"); | 585 args.push_back("test_arg2"); |
561 am.SetArgsForURL(args, test_url); | 586 am.SetArgsForURL(args, test_url); |
562 std::vector<std::string> args2; | 587 std::vector<std::string> args2; |
563 args2.push_back("test_arg3"); | 588 args2.push_back("test_arg3"); |
564 args2.push_back("test_arg4"); | 589 args2.push_back("test_arg4"); |
565 am.SetArgsForURL(args2, test_url2); | 590 am.SetArgsForURL(args2, test_url2); |
566 TestApplicationLoader* loader = new TestApplicationLoader; | 591 TestApplicationLoader* loader = new TestApplicationLoader; |
567 loader->set_context(&context_); | 592 loader->set_context(&context_); |
568 am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url2); | 593 am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url2); |
569 { | 594 { |
570 // Connext to the mapped url | 595 // Connext to the mapped url |
571 TestServicePtr test_service; | 596 TestServicePtr test_service; |
572 am.ConnectToService(test_url, &test_service); | 597 am.ConnectToService(test_url, &test_service); |
573 TestClient test_client(test_service.Pass()); | 598 TestClient test_client(test_service.Pass()); |
574 test_client.Test("test"); | 599 test_client.Test("test"); |
575 loop_.Run(); | 600 loop_.Run(); |
576 std::vector<std::string> app_args = loader->GetArgs(); | 601 std::vector<std::string> app_args = loader->GetArgs(); |
577 ASSERT_EQ(args.size() + args2.size(), app_args.size()); | 602 ASSERT_EQ(args.size() + args2.size() + 1, app_args.size()); |
578 EXPECT_EQ(args[0], app_args[0]); | 603 EXPECT_EQ(args[0], app_args[1]); |
579 EXPECT_EQ(args[1], app_args[1]); | 604 EXPECT_EQ(args[1], app_args[2]); |
580 EXPECT_EQ(args2[0], app_args[2]); | 605 EXPECT_EQ(args2[0], app_args[3]); |
581 EXPECT_EQ(args2[1], app_args[3]); | 606 EXPECT_EQ(args2[1], app_args[4]); |
582 } | 607 } |
583 { | 608 { |
584 // Connext to the target url | 609 // Connext to the target url |
585 TestServicePtr test_service; | 610 TestServicePtr test_service; |
586 am.ConnectToService(test_url2, &test_service); | 611 am.ConnectToService(test_url2, &test_service); |
587 TestClient test_client(test_service.Pass()); | 612 TestClient test_client(test_service.Pass()); |
588 test_client.Test("test"); | 613 test_client.Test("test"); |
589 loop_.Run(); | 614 loop_.Run(); |
590 std::vector<std::string> app_args = loader->GetArgs(); | 615 std::vector<std::string> app_args = loader->GetArgs(); |
591 ASSERT_EQ(args.size() + args2.size(), app_args.size()); | 616 ASSERT_EQ(args.size() + args2.size() + 1, app_args.size()); |
592 EXPECT_EQ(args[0], app_args[0]); | 617 EXPECT_EQ(args[0], app_args[1]); |
593 EXPECT_EQ(args[1], app_args[1]); | 618 EXPECT_EQ(args[1], app_args[2]); |
594 EXPECT_EQ(args2[0], app_args[2]); | 619 EXPECT_EQ(args2[0], app_args[3]); |
595 EXPECT_EQ(args2[1], app_args[3]); | 620 EXPECT_EQ(args2[1], app_args[4]); |
596 } | 621 } |
597 } | 622 } |
598 | 623 |
599 TEST_F(ApplicationManagerTest, ClientError) { | 624 TEST_F(ApplicationManagerTest, ClientError) { |
600 test_client_->Test("test"); | 625 test_client_->Test("test"); |
601 EXPECT_TRUE(HasFactoryForTestURL()); | 626 EXPECT_TRUE(HasFactoryForTestURL()); |
602 loop_.Run(); | 627 loop_.Run(); |
603 EXPECT_EQ(1, context_.num_impls); | 628 EXPECT_EQ(1, context_.num_impls); |
604 test_client_.reset(); | 629 test_client_.reset(); |
605 loop_.Run(); | 630 loop_.Run(); |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
815 bool called = false; | 840 bool called = false; |
816 application_manager_->ConnectToApplication( | 841 application_manager_->ConnectToApplication( |
817 GURL("test:test"), GURL(), nullptr, nullptr, | 842 GURL("test:test"), GURL(), nullptr, nullptr, |
818 base::Bind(&QuitClosure, base::Unretained(&called))); | 843 base::Bind(&QuitClosure, base::Unretained(&called))); |
819 loop_.Run(); | 844 loop_.Run(); |
820 EXPECT_TRUE(called); | 845 EXPECT_TRUE(called); |
821 } | 846 } |
822 | 847 |
823 } // namespace | 848 } // namespace |
824 } // namespace shell | 849 } // namespace shell |
OLD | NEW |