Index: shell/application_manager/application_manager_unittest.cc |
diff --git a/shell/application_manager/application_manager_unittest.cc b/shell/application_manager/application_manager_unittest.cc |
index 1683ab8252d9f7b301193d2eb2732ae2e8498665..19edcff0bde63ac72381dc0d0c957a8289e7f62c 100644 |
--- a/shell/application_manager/application_manager_unittest.cc |
+++ b/shell/application_manager/application_manager_unittest.cc |
@@ -527,6 +527,53 @@ TEST_F(ApplicationManagerTest, Args) { |
EXPECT_EQ(args[1], app_args[1]); |
} |
+// Confirm that arguments are aggregated through mappings. |
+TEST_F(ApplicationManagerTest, ArgsAndMapping) { |
+ ApplicationManager am(&test_delegate_); |
+ GURL test_url("test:test"); |
+ GURL test_url2("test:test2"); |
+ test_delegate_.AddMapping(test_url, test_url2); |
+ std::vector<std::string> args; |
+ args.push_back("test_arg1"); |
+ args.push_back("test_arg2"); |
+ am.SetArgsForURL(args, test_url); |
+ std::vector<std::string> args2; |
+ args2.push_back("test_arg3"); |
+ args2.push_back("test_arg4"); |
+ am.SetArgsForURL(args2, test_url2); |
+ TestApplicationLoader* loader = new TestApplicationLoader; |
+ loader->set_context(&context_); |
+ am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url2); |
+ { |
+ // Connext to the mapped url |
+ TestServicePtr test_service; |
+ am.ConnectToService(test_url, &test_service); |
+ TestClient test_client(test_service.Pass()); |
+ test_client.Test("test"); |
+ loop_.Run(); |
+ std::vector<std::string> app_args = loader->GetArgs(); |
+ ASSERT_EQ(args.size() + args2.size(), app_args.size()); |
+ EXPECT_EQ(args[0], app_args[0]); |
+ EXPECT_EQ(args[1], app_args[1]); |
+ EXPECT_EQ(args2[0], app_args[2]); |
+ EXPECT_EQ(args2[1], app_args[3]); |
+ } |
+ { |
+ // Connext to the target url |
+ TestServicePtr test_service; |
+ am.ConnectToService(test_url2, &test_service); |
+ TestClient test_client(test_service.Pass()); |
+ test_client.Test("test"); |
+ loop_.Run(); |
+ std::vector<std::string> app_args = loader->GetArgs(); |
+ ASSERT_EQ(args.size() + args2.size(), app_args.size()); |
+ EXPECT_EQ(args[0], app_args[0]); |
+ EXPECT_EQ(args[1], app_args[1]); |
+ EXPECT_EQ(args2[0], app_args[2]); |
+ EXPECT_EQ(args2[1], app_args[3]); |
+ } |
+} |
+ |
TEST_F(ApplicationManagerTest, ClientError) { |
test_client_->Test("test"); |
EXPECT_TRUE(HasFactoryForTestURL()); |