Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm

Issue 2740783003: Revert "Revert of Reland: Switch WindowedNotificationObserver to use base::RunLoop. (patchset #3 id… (Closed)
Patch Set: Fix comment. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "extensions/browser/app_window/native_app_window.h" 5 #include "extensions/browser/app_window/native_app_window.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #import "base/mac/foundation_util.h" 9 #import "base/mac/foundation_util.h"
10 #import "base/mac/mac_util.h" 10 #import "base/mac/mac_util.h"
(...skipping 25 matching lines...) Expand all
36 36
37 using extensions::AppWindow; 37 using extensions::AppWindow;
38 using extensions::PlatformAppBrowserTest; 38 using extensions::PlatformAppBrowserTest;
39 39
40 using ::testing::_; 40 using ::testing::_;
41 using ::testing::Invoke; 41 using ::testing::Invoke;
42 using ::testing::Return; 42 using ::testing::Return;
43 43
44 namespace { 44 namespace {
45 45
46 class AppWindowObserver : public extensions::AppWindowRegistry::Observer {
47 public:
48 AppWindowObserver(Profile* profile)
49 : registry_(extensions::AppWindowRegistry::Get(profile)) {
50 registry_->AddObserver(this);
51 }
52
53 ~AppWindowObserver() override { registry_->RemoveObserver(this); }
54
55 void Wait(int window_count) {
56 if (windows_added_count_ < window_count) {
57 windows_added_count_expected_ = window_count;
58 run_loop_.Run();
59 }
60 }
61
62 private:
63 void OnAppWindowAdded(AppWindow* app_window) override {
64 ++windows_added_count_;
65 if (windows_added_count_expected_ > 0 &&
66 windows_added_count_ >= windows_added_count_expected_) {
67 run_loop_.Quit();
68 }
69 }
70
71 extensions::AppWindowRegistry* registry_;
72 int windows_added_count_ = 0;
73 int windows_added_count_expected_ = 0;
74 base::RunLoop run_loop_;
75 };
76
46 // The param selects whether to use ChromeNativeAppWindowViewsMac, otherwise it 77 // The param selects whether to use ChromeNativeAppWindowViewsMac, otherwise it
47 // will use NativeAppWindowCocoa. 78 // will use NativeAppWindowCocoa.
48 class NativeAppWindowCocoaBrowserTest 79 class NativeAppWindowCocoaBrowserTest
49 : public testing::WithParamInterface<bool>, 80 : public testing::WithParamInterface<bool>,
50 public PlatformAppBrowserTest { 81 public PlatformAppBrowserTest {
51 protected: 82 protected:
52 NativeAppWindowCocoaBrowserTest() {} 83 NativeAppWindowCocoaBrowserTest() {}
53 84
54 void SetUpCommandLine(base::CommandLine* command_line) override { 85 void SetUpCommandLine(base::CommandLine* command_line) override {
55 PlatformAppBrowserTest::SetUpCommandLine(command_line); 86 PlatformAppBrowserTest::SetUpCommandLine(command_line);
56 command_line->AppendSwitch( 87 command_line->AppendSwitch(
57 GetParam() ? switches::kEnableMacViewsNativeAppWindows 88 GetParam() ? switches::kEnableMacViewsNativeAppWindows
58 : switches::kDisableMacViewsNativeAppWindows); 89 : switches::kDisableMacViewsNativeAppWindows);
59 } 90 }
60 91
61 void SetUpAppWithWindows(int num_windows) { 92 void SetUpAppWithWindows(int num_windows) {
62 app_ = InstallExtension( 93 app_ = InstallExtension(
63 test_data_dir_.AppendASCII("platform_apps").AppendASCII("minimal"), 1); 94 test_data_dir_.AppendASCII("platform_apps").AppendASCII("minimal"), 1);
64 EXPECT_TRUE(app_); 95 EXPECT_TRUE(app_);
65 96
97 AppWindowObserver window_observer(profile());
66 for (int i = 0; i < num_windows; ++i) { 98 for (int i = 0; i < num_windows; ++i) {
67 content::WindowedNotificationObserver app_loaded_observer(
68 content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
69 content::NotificationService::AllSources());
70 OpenApplication(AppLaunchParams( 99 OpenApplication(AppLaunchParams(
71 profile(), app_, extensions::LAUNCH_CONTAINER_NONE, 100 profile(), app_, extensions::LAUNCH_CONTAINER_NONE,
72 WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_TEST)); 101 WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_TEST));
73 app_loaded_observer.Wait();
74 } 102 }
103 window_observer.Wait(num_windows);
75 } 104 }
76 105
77 const extensions::Extension* app_; 106 const extensions::Extension* app_;
78 107
79 private: 108 private:
80 DISALLOW_COPY_AND_ASSIGN(NativeAppWindowCocoaBrowserTest); 109 DISALLOW_COPY_AND_ASSIGN(NativeAppWindowCocoaBrowserTest);
81 }; 110 };
82 111
83 } // namespace 112 } // namespace
84 113
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 [expected_color getComponents:expected_components]; 723 [expected_color getComponents:expected_components];
695 [color getComponents:color_components]; 724 [color getComponents:color_components];
696 EXPECT_NEAR(expected_components[0], color_components[0], 0.01); 725 EXPECT_NEAR(expected_components[0], color_components[0], 0.01);
697 EXPECT_NEAR(expected_components[1], color_components[1], 0.01); 726 EXPECT_NEAR(expected_components[1], color_components[1], 0.01);
698 EXPECT_NEAR(expected_components[2], color_components[2], 0.01); 727 EXPECT_NEAR(expected_components[2], color_components[2], 0.01);
699 } 728 }
700 729
701 INSTANTIATE_TEST_CASE_P(NativeAppWindowCocoaBrowserTestInstance, 730 INSTANTIATE_TEST_CASE_P(NativeAppWindowCocoaBrowserTestInstance,
702 NativeAppWindowCocoaBrowserTest, 731 NativeAppWindowCocoaBrowserTest,
703 ::testing::Bool()); 732 ::testing::Bool());
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698