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_ |