Index: mojo/application_manager/application_manager_unittest.cc |
diff --git a/mojo/application_manager/application_manager_unittest.cc b/mojo/application_manager/application_manager_unittest.cc |
index 7dd35e87ff29aea4aa7efb8ccef63de2d22937a7..658b6700e2c4804c8da719070aefd4b3a2fef024 100644 |
--- a/mojo/application_manager/application_manager_unittest.cc |
+++ b/mojo/application_manager/application_manager_unittest.cc |
@@ -107,6 +107,9 @@ class TestApplicationLoader : public ApplicationLoader, |
void set_context(TestContext* context) { context_ = context; } |
int num_loads() const { return num_loads_; } |
+ std::vector<std::string> GetArgs() { |
+ return test_app_->args().To<std::vector<std::string> >(); |
+ } |
private: |
// ApplicationLoader implementation. |
@@ -466,6 +469,46 @@ TEST_F(ApplicationManagerTest, Basic) { |
EXPECT_EQ(std::string("test"), context_.last_test_string); |
} |
+// Confirm that no arguments are sent to an application by default. |
+TEST_F(ApplicationManagerTest, NoArgs) { |
+ ApplicationManager am; |
+ GURL test_url("test:test"); |
+ TestContext context; |
+ TestApplicationLoader* loader = new TestApplicationLoader; |
+ loader->set_context(&context); |
+ am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url); |
+ TestServicePtr test_service; |
+ am.ConnectToService(test_url, &test_service); |
+ TestClientImpl test_client(test_service.Pass()); |
+ test_client.Test("test"); |
+ loop_.Run(); |
+ std::vector<std::string> app_args = loader->GetArgs(); |
+ EXPECT_EQ(0U, app_args.size()); |
+} |
+ |
+// Confirm that arguments are sent to an application. |
+TEST_F(ApplicationManagerTest, Args) { |
+ ApplicationManager am; |
+ GURL test_url("test:test"); |
+ std::vector<std::string> args; |
+ args.push_back("test_arg1"); |
+ args.push_back("test_arg2"); |
+ am.SetArgsForURL(args, test_url); |
+ TestContext context; |
+ TestApplicationLoader* loader = new TestApplicationLoader; |
+ loader->set_context(&context); |
+ am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url); |
+ TestServicePtr test_service; |
+ am.ConnectToService(test_url, &test_service); |
+ TestClientImpl test_client(test_service.Pass()); |
+ test_client.Test("test"); |
+ loop_.Run(); |
+ std::vector<std::string> app_args = loader->GetArgs(); |
+ ASSERT_EQ(args.size(), app_args.size()); |
+ EXPECT_EQ(args[0], app_args[0]); |
+ EXPECT_EQ(args[1], app_args[1]); |
+} |
+ |
TEST_F(ApplicationManagerTest, ClientError) { |
test_client_->Test("test"); |
EXPECT_TRUE(HasFactoryForTestURL()); |
@@ -479,7 +522,7 @@ TEST_F(ApplicationManagerTest, ClientError) { |
TEST_F(ApplicationManagerTest, Deletes) { |
{ |
- ApplicationManager sm; |
+ ApplicationManager am; |
TestApplicationLoader* default_loader = new TestApplicationLoader; |
default_loader->set_context(&context_); |
TestApplicationLoader* url_loader1 = new TestApplicationLoader; |
@@ -490,14 +533,14 @@ TEST_F(ApplicationManagerTest, Deletes) { |
TestApplicationLoader* scheme_loader2 = new TestApplicationLoader; |
scheme_loader1->set_context(&context_); |
scheme_loader2->set_context(&context_); |
- sm.set_default_loader(scoped_ptr<ApplicationLoader>(default_loader)); |
- sm.SetLoaderForURL(scoped_ptr<ApplicationLoader>(url_loader1), |
+ am.set_default_loader(scoped_ptr<ApplicationLoader>(default_loader)); |
+ am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(url_loader1), |
GURL("test:test1")); |
- sm.SetLoaderForURL(scoped_ptr<ApplicationLoader>(url_loader2), |
+ am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(url_loader2), |
GURL("test:test1")); |
- sm.SetLoaderForScheme(scoped_ptr<ApplicationLoader>(scheme_loader1), |
+ am.SetLoaderForScheme(scoped_ptr<ApplicationLoader>(scheme_loader1), |
"test"); |
- sm.SetLoaderForScheme(scoped_ptr<ApplicationLoader>(scheme_loader2), |
+ am.SetLoaderForScheme(scoped_ptr<ApplicationLoader>(scheme_loader2), |
"test"); |
} |
EXPECT_EQ(5, context_.num_loader_deletes); |
@@ -505,7 +548,6 @@ TEST_F(ApplicationManagerTest, Deletes) { |
// Confirm that both urls and schemes can have their loaders explicitly set. |
TEST_F(ApplicationManagerTest, SetLoaders) { |
- ApplicationManager sm; |
TestApplicationLoader* default_loader = new TestApplicationLoader; |
TestApplicationLoader* url_loader = new TestApplicationLoader; |
TestApplicationLoader* scheme_loader = new TestApplicationLoader; |