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

Unified Diff: chrome/browser/ui/panels/test_panel_notification_observer.h

Issue 10914242: Improve panel tests by properly waiting for expected conditions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Synced Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/panels/test_panel_notification_observer.h
diff --git a/chrome/browser/ui/panels/test_panel_active_state_observer.h b/chrome/browser/ui/panels/test_panel_notification_observer.h
similarity index 50%
copy from chrome/browser/ui/panels/test_panel_active_state_observer.h
copy to chrome/browser/ui/panels/test_panel_notification_observer.h
index 066d87f84d2daaebfb16c278c033262df447847b..564b52a65f47781fa2cbec270af02c7d9b0e7654 100644
--- a/chrome/browser/ui/panels/test_panel_active_state_observer.h
+++ b/chrome/browser/ui/panels/test_panel_notification_observer.h
@@ -2,30 +2,29 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_UI_PANELS_TEST_PANEL_ACTIVE_STATE_OBSERVER_H_
-#define CHROME_BROWSER_UI_PANELS_TEST_PANEL_ACTIVE_STATE_OBSERVER_H_
+#ifndef CHROME_BROWSER_UI_PANELS_TEST_PANEL_NOTIFICATION_OBSERVER_H_
+#define CHROME_BROWSER_UI_PANELS_TEST_PANEL_NOTIFICATION_OBSERVER_H_
#include "base/memory/ref_counted.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
-class Panel;
-
namespace content {
class MessageLoopRunner;
+class NotificaitonSource;
}
-// Custom notification observer for waiting on panel active state.
-// Modeled after ui_test_utils notification observers.
-class PanelActiveStateObserver : public content::NotificationObserver {
+// Common base class for a custom notification observer that waits
+// on a notification until an expected state is achieved.
+// Modeled after ui_test_utils notification observers, but can handle
+// more than one occurrence of the notification.
+class TestPanelNotificationObserver : public content::NotificationObserver {
public:
- // Register to listen for panel active state change notifications
- // for the specified panel to detect a change to the expected active
- // state.
- PanelActiveStateObserver(Panel* panel, bool expect_active);
- virtual ~PanelActiveStateObserver();
+ TestPanelNotificationObserver(int notification,
+ const content::NotificationSource& source);
+ virtual ~TestPanelNotificationObserver();
- // Wait until the active state has changed to the expected state.
+ // Wait until the expected state is achieved.
void Wait();
// content::NotificationObserver:
@@ -33,16 +32,15 @@ class PanelActiveStateObserver : public content::NotificationObserver {
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
- private:
- bool AtExpectedState();
- Panel* panel_;
- bool expect_active_;
+ protected:
+ virtual bool AtExpectedState() = 0;
+
bool seen_; // true after transition to expected state has been seen
bool running_; // indicates whether message loop is running
content::NotificationRegistrar registrar_;
scoped_refptr<content::MessageLoopRunner> message_loop_runner_;
- DISALLOW_COPY_AND_ASSIGN(PanelActiveStateObserver);
+ DISALLOW_COPY_AND_ASSIGN(TestPanelNotificationObserver);
};
-#endif // CHROME_BROWSER_UI_PANELS_TEST_PANEL_ACTIVE_STATE_OBSERVER_H_
+#endif // CHROME_BROWSER_UI_PANELS_TEST_PANEL_NOTIFICATION_OBSERVER_H_

Powered by Google App Engine
This is Rietveld 408576698