| Index: mojo/shell/application_manager_unittest.cc
|
| diff --git a/mojo/shell/application_manager_unittest.cc b/mojo/shell/application_manager_unittest.cc
|
| index 56d2fb5bbff54da65d2e2d214966c76324cdc89e..b0b55e4457ce1948279b23a10b86f5fc606d2dc7 100644
|
| --- a/mojo/shell/application_manager_unittest.cc
|
| +++ b/mojo/shell/application_manager_unittest.cc
|
| @@ -15,6 +15,7 @@
|
| #include "mojo/application/public/interfaces/content_handler.mojom.h"
|
| #include "mojo/application/public/interfaces/service_provider.mojom.h"
|
| #include "mojo/public/cpp/bindings/strong_binding.h"
|
| +#include "mojo/shell/application_fetcher.h"
|
| #include "mojo/shell/application_loader.h"
|
| #include "mojo/shell/application_manager.h"
|
| #include "mojo/shell/fetcher.h"
|
| @@ -455,15 +456,13 @@ class Tester : public ApplicationDelegate,
|
| ScopedVector<TestAImpl> a_bindings_;
|
| };
|
|
|
| -class TestDelegate : public ApplicationManager::Delegate {
|
| +class TestApplicationFetcher : public ApplicationFetcher {
|
| public:
|
| - TestDelegate()
|
| + TestApplicationFetcher()
|
| : create_test_fetcher_(false),
|
| fetcher_url_("xxx"),
|
| mime_type_(kTestMimeType) {}
|
| - ~TestDelegate() override {}
|
| -
|
| - void AddMapping(const GURL& from, const GURL& to) { mappings_[from] = to; }
|
| + ~TestApplicationFetcher() override {}
|
|
|
| void set_create_test_fetcher(bool create_test_fetcher) {
|
| create_test_fetcher_ = create_test_fetcher;
|
| @@ -474,37 +473,29 @@ class TestDelegate : public ApplicationManager::Delegate {
|
| void set_mime_type(const std::string& mime_type) { mime_type_ = mime_type; }
|
|
|
| // ApplicationManager::Delegate
|
| - GURL ResolveMappings(const GURL& url) override {
|
| - auto it = mappings_.find(url);
|
| - if (it != mappings_.end())
|
| - return it->second;
|
| - return url;
|
| - }
|
| - GURL ResolveMojoURL(const GURL& url) override {
|
| - GURL mapped_url = ResolveMappings(url);
|
| + void SetApplicationManager(ApplicationManager* manager) override {}
|
| + GURL ResolveURL(const GURL& url) override {
|
| + GURL resolved_url = url;
|
| // The shell automatically map mojo URLs.
|
| - if (mapped_url.scheme() == "mojo") {
|
| + if (resolved_url.scheme() == "mojo") {
|
| url::Replacements<char> replacements;
|
| replacements.SetScheme("file", url::Component(0, 4));
|
| - mapped_url = mapped_url.ReplaceComponents(replacements);
|
| + resolved_url = resolved_url.ReplaceComponents(replacements);
|
| }
|
| - return mapped_url;
|
| + return resolved_url;
|
| }
|
| - bool CreateFetcher(const GURL& url,
|
| - const Fetcher::FetchCallback& loader_callback) override {
|
| - if (!create_test_fetcher_)
|
| - return false;
|
| - new TestMimeTypeFetcher(loader_callback, fetcher_url_, mime_type_);
|
| - return true;
|
| + void FetchRequest(URLRequestPtr request,
|
| + const Fetcher::FetchCallback& loader_callback) override {
|
| + if (create_test_fetcher_)
|
| + new TestMimeTypeFetcher(loader_callback, fetcher_url_, mime_type_);
|
| }
|
|
|
| private:
|
| - std::map<GURL, GURL> mappings_;
|
| bool create_test_fetcher_;
|
| GURL fetcher_url_;
|
| std::string mime_type_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(TestDelegate);
|
| + DISALLOW_COPY_AND_ASSIGN(TestApplicationFetcher);
|
| };
|
|
|
| class ApplicationManagerTest : public testing::Test {
|
| @@ -514,7 +505,8 @@ class ApplicationManagerTest : public testing::Test {
|
| ~ApplicationManagerTest() override {}
|
|
|
| void SetUp() override {
|
| - application_manager_.reset(new ApplicationManager(&test_delegate_));
|
| + application_manager_.reset(new ApplicationManager(
|
| + make_scoped_ptr(new TestApplicationFetcher)));
|
| test_loader_ = new TestApplicationLoader;
|
| test_loader_->set_context(&context_);
|
| application_manager_->set_default_loader(
|
| @@ -543,7 +535,6 @@ class ApplicationManagerTest : public testing::Test {
|
|
|
| protected:
|
| base::ShadowingAtExitManager at_exit_;
|
| - TestDelegate test_delegate_;
|
| TestApplicationLoader* test_loader_;
|
| TesterContext tester_context_;
|
| TestContext context_;
|
| @@ -559,33 +550,6 @@ TEST_F(ApplicationManagerTest, Basic) {
|
| EXPECT_EQ(std::string("test"), context_.last_test_string);
|
| }
|
|
|
| -// Confirm that url mappings are respected.
|
| -TEST_F(ApplicationManagerTest, URLMapping) {
|
| - ApplicationManager am(&test_delegate_);
|
| - GURL test_url("test:test");
|
| - GURL test_url2("test:test2");
|
| - test_delegate_.AddMapping(test_url, test_url2);
|
| - TestApplicationLoader* loader = new TestApplicationLoader;
|
| - loader->set_context(&context_);
|
| - am.SetLoaderForURL(scoped_ptr<ApplicationLoader>(loader), test_url2);
|
| - {
|
| - // Connect 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();
|
| - }
|
| - {
|
| - // Connect 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();
|
| - }
|
| -}
|
| -
|
| TEST_F(ApplicationManagerTest, ClientError) {
|
| test_client_->Test("test");
|
| EXPECT_TRUE(HasRunningInstanceForURL(GURL(kTestURLString)));
|
| @@ -599,7 +563,7 @@ TEST_F(ApplicationManagerTest, ClientError) {
|
|
|
| TEST_F(ApplicationManagerTest, Deletes) {
|
| {
|
| - ApplicationManager am(&test_delegate_);
|
| + ApplicationManager am(make_scoped_ptr(new TestApplicationFetcher));
|
| TestApplicationLoader* default_loader = new TestApplicationLoader;
|
| default_loader->set_context(&context_);
|
| TestApplicationLoader* url_loader1 = new TestApplicationLoader;
|
| @@ -743,41 +707,6 @@ TEST_F(ApplicationManagerTest, NoServiceNoLoad) {
|
| EXPECT_TRUE(c.encountered_error());
|
| }
|
|
|
| -TEST_F(ApplicationManagerTest, MappedURLsShouldNotCauseDuplicateLoad) {
|
| - test_delegate_.AddMapping(GURL("foo:foo2"), GURL("foo:foo"));
|
| - // 1 because ApplicationManagerTest connects once at startup.
|
| - EXPECT_EQ(1, test_loader_->num_loads());
|
| -
|
| - TestServicePtr test_service;
|
| - application_manager_->ConnectToService(GURL("foo:foo"), &test_service);
|
| - EXPECT_EQ(2, test_loader_->num_loads());
|
| -
|
| - TestServicePtr test_service2;
|
| - application_manager_->ConnectToService(GURL("foo:foo2"), &test_service2);
|
| - EXPECT_EQ(2, test_loader_->num_loads());
|
| -
|
| - TestServicePtr test_service3;
|
| - application_manager_->ConnectToService(GURL("bar:bar"), &test_service2);
|
| - EXPECT_EQ(3, test_loader_->num_loads());
|
| -}
|
| -
|
| -TEST_F(ApplicationManagerTest, MappedURLsShouldWorkWithLoaders) {
|
| - TestApplicationLoader* custom_loader = new TestApplicationLoader;
|
| - TestContext context;
|
| - custom_loader->set_context(&context);
|
| - application_manager_->SetLoaderForURL(make_scoped_ptr(custom_loader),
|
| - GURL("mojo:foo"));
|
| - test_delegate_.AddMapping(GURL("mojo:foo2"), GURL("mojo:foo"));
|
| -
|
| - TestServicePtr test_service;
|
| - application_manager_->ConnectToService(GURL("mojo:foo2"), &test_service);
|
| - EXPECT_EQ(1, custom_loader->num_loads());
|
| - custom_loader->set_context(nullptr);
|
| -
|
| - EXPECT_TRUE(HasRunningInstanceForURL(GURL("mojo:foo2")));
|
| - EXPECT_FALSE(HasRunningInstanceForURL(GURL("mojo:foo")));
|
| -}
|
| -
|
| TEST_F(ApplicationManagerTest, TestQueryWithLoaders) {
|
| TestApplicationLoader* url_loader = new TestApplicationLoader;
|
| TestApplicationLoader* scheme_loader = new TestApplicationLoader;
|
| @@ -821,9 +750,10 @@ TEST(ApplicationManagerTest2, ContentHandlerConnectionGetsRequestorURL) {
|
| const GURL requestor_url("http://requestor.url");
|
| TestContext test_context;
|
| base::MessageLoop loop;
|
| - TestDelegate test_delegate;
|
| - test_delegate.set_create_test_fetcher(true);
|
| - ApplicationManager application_manager(&test_delegate);
|
| + scoped_ptr<TestApplicationFetcher> test_application_fetcher(
|
| + new TestApplicationFetcher);
|
| + test_application_fetcher->set_create_test_fetcher(true);
|
| + ApplicationManager application_manager(test_application_fetcher.Pass());
|
| application_manager.set_default_loader(nullptr);
|
| application_manager.RegisterContentHandler(kTestMimeType,
|
| content_handler_url);
|
| @@ -886,10 +816,11 @@ TEST(ApplicationManagerTest2,
|
| const GURL content_handler_url("http://test.content.handler");
|
| const GURL requestor_url("http://requestor.url");
|
| TestContext test_context;
|
| - TestDelegate test_delegate;
|
| - test_delegate.set_fetcher_url(GURL("test:test"));
|
| - test_delegate.set_create_test_fetcher(true);
|
| - ApplicationManager application_manager(&test_delegate);
|
| + scoped_ptr<TestApplicationFetcher> test_application_fetcher(
|
| + new TestApplicationFetcher);
|
| + test_application_fetcher->set_fetcher_url(GURL("test:test"));
|
| + test_application_fetcher->set_create_test_fetcher(true);
|
| + ApplicationManager application_manager(test_application_fetcher.Pass());
|
| application_manager.set_default_loader(nullptr);
|
| application_manager.RegisterContentHandler(kTestMimeType,
|
| content_handler_url);
|
| @@ -944,10 +875,11 @@ TEST(ApplicationManagerTest2, DifferedContentHandlersGetDifferentIDs) {
|
| const GURL content_handler_url("http://test.content.handler");
|
| const GURL requestor_url("http://requestor.url");
|
| TestContext test_context;
|
| - TestDelegate test_delegate;
|
| - test_delegate.set_fetcher_url(GURL("test:test"));
|
| - test_delegate.set_create_test_fetcher(true);
|
| - ApplicationManager application_manager(&test_delegate);
|
| + TestApplicationFetcher* test_application_fetcher = new TestApplicationFetcher;
|
| + test_application_fetcher->set_fetcher_url(GURL("test:test"));
|
| + test_application_fetcher->set_create_test_fetcher(true);
|
| + ApplicationManager application_manager(
|
| + make_scoped_ptr(test_application_fetcher));
|
| application_manager.set_default_loader(nullptr);
|
| application_manager.RegisterContentHandler(kTestMimeType,
|
| content_handler_url);
|
| @@ -979,8 +911,8 @@ TEST(ApplicationManagerTest2, DifferedContentHandlersGetDifferentIDs) {
|
|
|
| const std::string mime_type2("test/mime-type2");
|
| const GURL content_handler_url2("http://test.content2.handler");
|
| - test_delegate.set_fetcher_url(GURL("test2:test2"));
|
| - test_delegate.set_mime_type(mime_type2);
|
| + test_application_fetcher->set_fetcher_url(GURL("test2:test2"));
|
| + test_application_fetcher->set_mime_type(mime_type2);
|
| application_manager.RegisterContentHandler(mime_type2, content_handler_url2);
|
|
|
| TestApplicationLoader* content_handler_loader2 = new TestApplicationLoader;
|
|
|