| Index: mojo/shell/shell_test_base.cc
|
| diff --git a/mojo/shell/shell_test_base.cc b/mojo/shell/shell_test_base.cc
|
| index f258af474622e89d53bf720e298ac202fe07c7c6..ebe3405169fa5d1e2b456e8cbe2606b851a517ff 100644
|
| --- a/mojo/shell/shell_test_base.cc
|
| +++ b/mojo/shell/shell_test_base.cc
|
| @@ -4,6 +4,15 @@
|
|
|
| #include "mojo/shell/shell_test_base.h"
|
|
|
| +#include "base/command_line.h"
|
| +#include "base/file_util.h"
|
| +#include "base/files/file_path.h"
|
| +#include "base/logging.h"
|
| +#include "build/build_config.h"
|
| +#include "mojo/shell/context.h"
|
| +#include "net/base/filename_util.h"
|
| +#include "url/gurl.h"
|
| +
|
| namespace mojo {
|
| namespace shell {
|
| namespace test {
|
| @@ -14,6 +23,35 @@ ShellTestBase::ShellTestBase() {
|
| ShellTestBase::~ShellTestBase() {
|
| }
|
|
|
| +void ShellTestBase::InitMojo() {
|
| + DCHECK(!message_loop_);
|
| + DCHECK(!shell_context_);
|
| + message_loop_.reset(new base::MessageLoop());
|
| + shell_context_.reset(new Context());
|
| +}
|
| +
|
| +void ShellTestBase::LaunchServiceInProcess(
|
| + const GURL& service_url,
|
| + const std::string& service_name,
|
| + ScopedMessagePipeHandle client_handle) {
|
| + DCHECK(message_loop_);
|
| + DCHECK(shell_context_);
|
| +
|
| + base::FilePath base_dir = base::MakeAbsoluteFilePath(
|
| + base::CommandLine::ForCurrentProcess()->GetProgram().DirName());
|
| + // On Mac and Windows, libraries are dumped beside the executables.
|
| +#if defined(OS_MACOSX) || defined(OS_WIN)
|
| + base::FilePath service_dir(base_dir);
|
| +#else
|
| + // On Linux, they're under lib/.
|
| + base::FilePath service_dir(base_dir.AppendASCII("lib"));
|
| +#endif
|
| + shell_context_->set_mojo_origin(net::FilePathToFileURL(service_dir).spec());
|
| +
|
| + shell_context_->service_manager()->ConnectToService(
|
| + service_url, service_name, client_handle.Pass(), GURL());
|
| +}
|
| +
|
| } // namespace test
|
| } // namespace shell
|
| } // namespace mojo
|
|
|