| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
| 8 #include "components/mus/public/interfaces/window_server_test.mojom.h" | 8 #include "components/mus/public/interfaces/window_server_test.mojom.h" |
| 9 #include "services/shell/public/cpp/shell_test.h" | 9 #include "services/shell/public/cpp/shell_test.h" |
| 10 | 10 |
| 11 namespace mash { | 11 namespace mash { |
| 12 namespace wm { | 12 namespace wm { |
| 13 | 13 |
| 14 void RunCallback(bool* success, const base::Closure& callback, bool result) { | 14 void RunCallback(bool* success, const base::Closure& callback, bool result) { |
| 15 *success = result; | 15 *success = result; |
| 16 callback.Run(); | 16 callback.Run(); |
| 17 } | 17 } |
| 18 | 18 |
| 19 class AppLaunchTest : public shell::test::ShellTest { | 19 class AppLaunchTest : public shell::test::ShellTest { |
| 20 public: | 20 public: |
| 21 AppLaunchTest() : ShellTest("exe:mash_unittests") {} | 21 AppLaunchTest() : ShellTest("exe:mash_unittests") {} |
| 22 ~AppLaunchTest() override {} | 22 ~AppLaunchTest() override {} |
| 23 | 23 |
| 24 bool LaunchApp(const std::string& app) { |
| 25 connector()->Connect("mojo:desktop_wm"); |
| 26 connector()->Connect(app); |
| 27 |
| 28 mus::mojom::WindowServerTestPtr test_interface; |
| 29 connector()->ConnectToInterface("mojo:mus", &test_interface); |
| 30 |
| 31 base::RunLoop run_loop; |
| 32 bool success = false; |
| 33 test_interface->EnsureClientHasDrawnWindow( |
| 34 app, base::Bind(&RunCallback, &success, run_loop.QuitClosure())); |
| 35 run_loop.Run(); |
| 36 return success; |
| 37 } |
| 38 |
| 24 private: | 39 private: |
| 25 void SetUp() override { | 40 void SetUp() override { |
| 26 base::CommandLine::ForCurrentProcess()->AppendSwitch("use-test-config"); | 41 base::CommandLine::ForCurrentProcess()->AppendSwitch("use-test-config"); |
| 27 ShellTest::SetUp(); | 42 ShellTest::SetUp(); |
| 28 } | 43 } |
| 29 | 44 |
| 30 DISALLOW_COPY_AND_ASSIGN(AppLaunchTest); | 45 DISALLOW_COPY_AND_ASSIGN(AppLaunchTest); |
| 31 }; | 46 }; |
| 32 | 47 |
| 33 TEST_F(AppLaunchTest, TestQuickLaunch) { | 48 TEST_F(AppLaunchTest, TestQuickLaunch) { |
| 34 connector()->Connect("mojo:desktop_wm"); | 49 EXPECT_TRUE(LaunchApp("mojo:quick_launch")); |
| 35 connector()->Connect("mojo:quick_launch"); | 50 } |
| 36 | 51 |
| 37 mus::mojom::WindowServerTestPtr test_interface; | 52 TEST_F(AppLaunchTest, TestAshSysui) { |
| 38 connector()->ConnectToInterface("mojo:mus", &test_interface); | 53 EXPECT_TRUE(LaunchApp("mojo:ash_sysui")); |
| 39 | |
| 40 base::RunLoop run_loop; | |
| 41 bool success = false; | |
| 42 test_interface->EnsureClientHasDrawnWindow( | |
| 43 "mojo:quick_launch", | |
| 44 base::Bind(&RunCallback, &success, run_loop.QuitClosure())); | |
| 45 run_loop.Run(); | |
| 46 EXPECT_TRUE(success); | |
| 47 } | 54 } |
| 48 | 55 |
| 49 } // namespace wm | 56 } // namespace wm |
| 50 } // namespace mash | 57 } // namespace mash |
| OLD | NEW |