Index: mojo/shell/shell_test_base.cc |
diff --git a/mojo/shell/shell_test_base.cc b/mojo/shell/shell_test_base.cc |
index 24cf859777b80617822bc999363553706b14b1c5..2f4f44dc0f259c71b6088e083e588800f48428d5 100644 |
--- a/mojo/shell/shell_test_base.cc |
+++ b/mojo/shell/shell_test_base.cc |
@@ -11,6 +11,7 @@ |
#include "base/path_service.h" |
#include "build/build_config.h" |
#include "net/base/filename_util.h" |
+#include "net/test/embedded_test_server/embedded_test_server.h" |
#include "url/gurl.h" |
namespace mojo { |
@@ -23,13 +24,35 @@ ShellTestBase::ShellTestBase() { |
ShellTestBase::~ShellTestBase() { |
} |
+void ShellTestBase::SetUp() { |
+ test_server_.reset(new net::test_server::EmbeddedTestServer()); |
+ ASSERT_TRUE(test_server_->InitializeAndWaitUntilReady()); |
+ base::FilePath service_dir; |
+ CHECK(PathService::Get(base::DIR_MODULE, &service_dir)); |
+ test_server_->ServeFilesFromDirectory(service_dir); |
+} |
+ |
+ScopedMessagePipeHandle ShellTestBase::ConnectToServiceViaNetwork( |
+ const GURL& application_url, |
+ const std::string& service_name) { |
+ shell_context_.mojo_url_resolver()->SetBaseURL( |
+ test_server_->base_url()); |
+ |
+ return shell_context_.service_manager()->ConnectToServiceByName( |
+ application_url, service_name).Pass(); |
+} |
+ |
ScopedMessagePipeHandle ShellTestBase::ConnectToService( |
const GURL& application_url, |
const std::string& service_name) { |
+ // Set the MojoURLResolver origin to be the same as the base file path for |
+ // local files. This is primarily for test convenience, so that references |
+ // to unknown mojo: urls that do not have specific local file or custom |
+ // mappings registered on the URL resolver are treated as shared libraries. |
base::FilePath service_dir; |
CHECK(PathService::Get(base::DIR_MODULE, &service_dir)); |
- shell_context_.mojo_url_resolver()->set_origin( |
- net::FilePathToFileURL(service_dir).spec()); |
+ shell_context_.mojo_url_resolver()->SetBaseURL( |
+ net::FilePathToFileURL(service_dir)); |
return shell_context_.service_manager()->ConnectToServiceByName( |
application_url, service_name).Pass(); |