shell_test_base.h revision 116680a4aac90f2aa7413d9095a592090648e557
146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef MOJO_SHELL_SHELL_TEST_BASE_H_
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define MOJO_SHELL_SHELL_TEST_BASE_H_
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include <string>
9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/macros.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/message_loop/message_loop.h"
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "mojo/public/cpp/system/core.h"
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "mojo/shell/context.h"
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class GURL;
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace mojo {
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace shell {
2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace test {
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class ShellTestBase : public testing::Test {
2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public:
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  ShellTestBase();
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual ~ShellTestBase();
2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // |application_url| should typically be a mojo: URL (the origin will be set
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // to an "appropriate" file: URL).
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // TODO(tim): Should the test base be a ServiceProvider?
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ScopedMessagePipeHandle ConnectToService(
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const GURL& application_url,
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const std::string& service_name);
33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  base::MessageLoop* message_loop() { return &message_loop_; }
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  Context* shell_context() { return &shell_context_; }
36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) private:
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  base::MessageLoop message_loop_;
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  Context shell_context_;
4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ShellTestBase);
4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)};
4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace test
4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace shell
4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace mojo
4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif  // MOJO_SHELL_SHELL_TEST_BASE_H_
49