OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/files/scoped_temp_dir.h" | 5 #include "base/files/scoped_temp_dir.h" |
6 #include "shell/application_manager/application_manager.h" | 6 #include "shell/application_manager/application_manager.h" |
7 #include "shell/context.h" | 7 #include "shell/context.h" |
8 #include "shell/filename_util.h" | 8 #include "shell/filename_util.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
11 namespace mojo { | 11 namespace mojo { |
12 | |
13 namespace { | 12 namespace { |
14 | 13 |
15 struct TestState { | 14 struct TestState { |
16 TestState() | 15 TestState() |
17 : runner_was_created(false), | 16 : runner_was_created(false), |
18 runner_was_started(false), | 17 runner_was_started(false), |
19 runner_was_destroyed(false) {} | 18 runner_was_destroyed(false) {} |
20 | 19 |
21 bool runner_was_created; | 20 bool runner_was_created; |
22 bool runner_was_started; | 21 bool runner_was_started; |
(...skipping 25 matching lines...) Expand all Loading... |
48 explicit TestNativeRunnerFactory(TestState* state) : state_(state) {} | 47 explicit TestNativeRunnerFactory(TestState* state) : state_(state) {} |
49 ~TestNativeRunnerFactory() override {} | 48 ~TestNativeRunnerFactory() override {} |
50 scoped_ptr<NativeRunner> Create(const Options& options) override { | 49 scoped_ptr<NativeRunner> Create(const Options& options) override { |
51 return scoped_ptr<NativeRunner>(new TestNativeRunner(state_)); | 50 return scoped_ptr<NativeRunner>(new TestNativeRunner(state_)); |
52 } | 51 } |
53 | 52 |
54 private: | 53 private: |
55 TestState* state_; | 54 TestState* state_; |
56 }; | 55 }; |
57 | 56 |
58 } // namespace | |
59 | |
60 class NativeApplicationLoaderTest : public testing::Test, | 57 class NativeApplicationLoaderTest : public testing::Test, |
61 public ApplicationManager::Delegate { | 58 public ApplicationManager::Delegate { |
62 public: | 59 public: |
63 NativeApplicationLoaderTest() : application_manager_(this) {} | 60 NativeApplicationLoaderTest() : application_manager_(this) {} |
64 ~NativeApplicationLoaderTest() override {} | 61 ~NativeApplicationLoaderTest() override {} |
65 void SetUp() override { | 62 void SetUp() override { |
66 context_.Init(); | 63 context_.Init(); |
67 scoped_ptr<NativeRunnerFactory> factory( | 64 scoped_ptr<NativeRunnerFactory> factory( |
68 new TestNativeRunnerFactory(&state_)); | 65 new TestNativeRunnerFactory(&state_)); |
69 application_manager_.set_native_runner_factory(factory.Pass()); | 66 application_manager_.set_native_runner_factory(factory.Pass()); |
70 application_manager_.set_blocking_pool( | 67 application_manager_.set_blocking_pool( |
71 context_.task_runners()->blocking_pool()); | 68 context_.task_runners()->blocking_pool()); |
72 } | 69 } |
73 void TearDown() override { context_.Shutdown(); } | 70 void TearDown() override { context_.Shutdown(); } |
74 | 71 |
75 protected: | 72 protected: |
76 shell::Context context_; | 73 shell::Context context_; |
77 base::MessageLoop loop_; | 74 base::MessageLoop loop_; |
78 ApplicationManager application_manager_; | 75 ApplicationManager application_manager_; |
79 TestState state_; | 76 TestState state_; |
80 | 77 |
81 private: | 78 private: |
82 // ApplicationManager::Delegate | 79 // ApplicationManager::Delegate |
83 void OnApplicationError(const GURL& url) override { NOTREACHED(); } | 80 void OnApplicationError(const GURL& url) override {} |
84 | 81 |
85 GURL ResolveURL(const GURL& url) override { return url; } | 82 GURL ResolveURL(const GURL& url) override { return url; } |
86 | 83 |
87 GURL ResolveMappings(const GURL& url) override { return url; } | 84 GURL ResolveMappings(const GURL& url) override { return url; } |
88 }; | 85 }; |
89 | 86 |
90 TEST_F(NativeApplicationLoaderTest, DoesNotExist) { | 87 TEST_F(NativeApplicationLoaderTest, DoesNotExist) { |
91 base::ScopedTempDir temp_dir; | 88 base::ScopedTempDir temp_dir; |
92 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 89 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
93 base::FilePath nonexistent_file(FILE_PATH_LITERAL("nonexistent.txt")); | 90 base::FilePath nonexistent_file(FILE_PATH_LITERAL("nonexistent.txt")); |
94 GURL url(FilePathToFileURL(temp_dir.path().Append(nonexistent_file))); | 91 GURL url(FilePathToFileURL(temp_dir.path().Append(nonexistent_file))); |
95 InterfaceRequest<ServiceProvider> services; | 92 InterfaceRequest<ServiceProvider> services; |
96 ServiceProviderPtr service_provider; | 93 ServiceProviderPtr service_provider; |
97 application_manager_.ConnectToApplication(url, GURL(), services.Pass(), | 94 application_manager_.ConnectToApplication(url, GURL(), services.Pass(), |
98 service_provider.Pass()); | 95 service_provider.Pass()); |
99 EXPECT_FALSE(state_.runner_was_created); | 96 EXPECT_FALSE(state_.runner_was_created); |
100 EXPECT_FALSE(state_.runner_was_started); | 97 EXPECT_FALSE(state_.runner_was_started); |
101 EXPECT_FALSE(state_.runner_was_destroyed); | 98 EXPECT_FALSE(state_.runner_was_destroyed); |
102 } | 99 } |
103 | 100 |
| 101 } // namespace |
104 } // namespace mojo | 102 } // namespace mojo |
OLD | NEW |