| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 // Tests behavior when quitting apps with app shims. | 5 // Tests behavior when quitting apps with app shims. |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "apps/switches.h" | 10 #include "apps/switches.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 | 29 |
| 30 class FakeHost : public apps::AppShimHandler::Host { | 30 class FakeHost : public apps::AppShimHandler::Host { |
| 31 public: | 31 public: |
| 32 FakeHost(const base::FilePath& profile_path, | 32 FakeHost(const base::FilePath& profile_path, |
| 33 const std::string& app_id, | 33 const std::string& app_id, |
| 34 ExtensionAppShimHandler* handler) | 34 ExtensionAppShimHandler* handler) |
| 35 : profile_path_(profile_path), | 35 : profile_path_(profile_path), |
| 36 app_id_(app_id), | 36 app_id_(app_id), |
| 37 handler_(handler) {} | 37 handler_(handler) {} |
| 38 | 38 |
| 39 virtual void OnAppLaunchComplete(AppShimLaunchResult result) override {} | 39 void OnAppLaunchComplete(AppShimLaunchResult result) override {} |
| 40 virtual void OnAppClosed() override { | 40 void OnAppClosed() override { handler_->OnShimClose(this); } |
| 41 handler_->OnShimClose(this); | 41 void OnAppHide() override {} |
| 42 } | 42 void OnAppRequestUserAttention(AppShimAttentionType type) override {} |
| 43 virtual void OnAppHide() override {} | 43 base::FilePath GetProfilePath() const override { return profile_path_; } |
| 44 virtual void OnAppRequestUserAttention(AppShimAttentionType type) override {} | 44 std::string GetAppId() const override { return app_id_; } |
| 45 virtual base::FilePath GetProfilePath() const override { | |
| 46 return profile_path_; | |
| 47 } | |
| 48 virtual std::string GetAppId() const override { return app_id_; } | |
| 49 | 45 |
| 50 private: | 46 private: |
| 51 base::FilePath profile_path_; | 47 base::FilePath profile_path_; |
| 52 std::string app_id_; | 48 std::string app_id_; |
| 53 ExtensionAppShimHandler* handler_; | 49 ExtensionAppShimHandler* handler_; |
| 54 | 50 |
| 55 DISALLOW_COPY_AND_ASSIGN(FakeHost); | 51 DISALLOW_COPY_AND_ASSIGN(FakeHost); |
| 56 }; | 52 }; |
| 57 | 53 |
| 58 // Starts an app without a browser window using --load_and_launch_app and | 54 // Starts an app without a browser window using --load_and_launch_app and |
| (...skipping 23 matching lines...) Expand all Loading... |
| 82 APP_SHIM_LAUNCH_REGISTER_ONLY, | 78 APP_SHIM_LAUNCH_REGISTER_ONLY, |
| 83 std::vector<base::FilePath>()); | 79 std::vector<base::FilePath>()); |
| 84 EXPECT_EQ(host_.get(), handler_->FindHost(profile(), extension_id_)); | 80 EXPECT_EQ(host_.get(), handler_->FindHost(profile(), extension_id_)); |
| 85 | 81 |
| 86 // Focus the app window. | 82 // Focus the app window. |
| 87 NSWindow* window = [[NSApp windows] objectAtIndex:0]; | 83 NSWindow* window = [[NSApp windows] objectAtIndex:0]; |
| 88 EXPECT_TRUE(ui_test_utils::ShowAndFocusNativeWindow(window)); | 84 EXPECT_TRUE(ui_test_utils::ShowAndFocusNativeWindow(window)); |
| 89 content::RunAllPendingInMessageLoop(); | 85 content::RunAllPendingInMessageLoop(); |
| 90 } | 86 } |
| 91 | 87 |
| 92 virtual void SetUpCommandLine(CommandLine* command_line) override { | 88 void SetUpCommandLine(CommandLine* command_line) override { |
| 93 PlatformAppBrowserTest::SetUpCommandLine(command_line); | 89 PlatformAppBrowserTest::SetUpCommandLine(command_line); |
| 94 // Simulate an app shim initiated launch, i.e. launch app but not browser. | 90 // Simulate an app shim initiated launch, i.e. launch app but not browser. |
| 95 app_path_ = test_data_dir_ | 91 app_path_ = test_data_dir_ |
| 96 .AppendASCII("platform_apps") | 92 .AppendASCII("platform_apps") |
| 97 .AppendASCII("minimal"); | 93 .AppendASCII("minimal"); |
| 98 command_line->AppendSwitchNative(apps::kLoadAndLaunchApp, | 94 command_line->AppendSwitchNative(apps::kLoadAndLaunchApp, |
| 99 app_path_.value()); | 95 app_path_.value()); |
| 100 command_line->AppendSwitch(switches::kSilentLaunch); | 96 command_line->AppendSwitch(switches::kSilentLaunch); |
| 101 } | 97 } |
| 102 | 98 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 123 atStart:NO]; | 119 atStart:NO]; |
| 124 | 120 |
| 125 // This will time out if the event above does not terminate Chrome. | 121 // This will time out if the event above does not terminate Chrome. |
| 126 content::RunMessageLoop(); | 122 content::RunMessageLoop(); |
| 127 | 123 |
| 128 EXPECT_FALSE(handler_->FindHost(profile(), extension_id_)); | 124 EXPECT_FALSE(handler_->FindHost(profile(), extension_id_)); |
| 129 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); | 125 EXPECT_TRUE(browser_shutdown::IsTryingToQuit()); |
| 130 } | 126 } |
| 131 | 127 |
| 132 } // namespace apps | 128 } // namespace apps |
| OLD | NEW |