// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "mojo/shell/shell_test_base.h" #include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/logging.h" #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 { namespace shell { namespace test { ShellTestBase::ShellTestBase() { } ShellTestBase::~ShellTestBase() { } void ShellTestBase::SetUp() { shell_context_.Init(); 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::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()->SetBaseURL( net::FilePathToFileURL(service_dir)); return shell_context_.ConnectToServiceByName( application_url, service_name).Pass(); } 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_.ConnectToServiceByName( application_url, service_name).Pass(); } } // namespace test } // namespace shell } // namespace mojo