Index: chrome/browser/ui/cocoa/dev_tools_controller_browsertest.mm |
diff --git a/chrome/browser/ui/cocoa/dev_tools_controller_browsertest.mm b/chrome/browser/ui/cocoa/dev_tools_controller_browsertest.mm |
index 33c5b9c6502c77745d0bd9c8ea1effd0a2dca96a..eb218e252e1607f181b48836c0bb0eed67e55175 100644 |
--- a/chrome/browser/ui/cocoa/dev_tools_controller_browsertest.mm |
+++ b/chrome/browser/ui/cocoa/dev_tools_controller_browsertest.mm |
@@ -13,36 +13,70 @@ |
#include "chrome/browser/ui/find_bar/find_bar_controller.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/test/base/in_process_browser_test.h" |
+#include "content/public/browser/notification_types.h" |
#include "content/public/browser/web_contents.h" |
+#include "content/public/test/test_utils.h" |
class DevToolsControllerTest : public InProcessBrowserTest { |
public: |
- DevToolsControllerTest() : InProcessBrowserTest() { |
+ DevToolsControllerTest() |
+ : InProcessBrowserTest() |
+ , devtools_window_(NULL) {} |
jochen (gone - plz use gerrit)
2014/07/14 11:15:23
please clang-format
dgozman
2014/07/15 14:38:41
Done.
|
+ |
+ protected: |
+ void OpenDevToolsWindow() { |
+ devtools_window_ = |
+ DevToolsWindow::OpenDevToolsWindowForTest(browser(), true); |
+ } |
+ |
+ void CloseDevToolsWindow() { |
+ content::WindowedNotificationObserver close_observer( |
+ content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
+ content::Source<content::WebContents>( |
+ devtools_window_->web_contents_for_test())); |
+ DevToolsWindow::ToggleDevToolsWindow( |
+ browser(), DevToolsToggleAction::Toggle()); |
+ close_observer.Wait(); |
+ } |
+ |
+ content::WebContents* web_contents() { |
+ return browser()->tab_strip_model()->GetActiveWebContents(); |
} |
- virtual void SetUpOnMainThread() OVERRIDE { |
- DevToolsWindow::OpenDevToolsWindowForTest(browser(), true); |
+ content::WebContents* devtools_web_contents() { |
+ return DevToolsWindow::GetInTabWebContents(web_contents(), NULL); |
} |
+ DevToolsWindow* devtools_window_; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(DevToolsControllerTest); |
}; |
// Verify that AllowOverlappingViews is set while the find bar is visible. |
IN_PROC_BROWSER_TEST_F(DevToolsControllerTest, AllowOverlappingViews) { |
- content::WebContents* web_contents = |
- browser()->tab_strip_model()->GetActiveWebContents(); |
- content::WebContents* dev_tools = |
- DevToolsWindow::GetInTabWebContents(web_contents, NULL); |
+ OpenDevToolsWindow(); |
// Without the find bar. |
- EXPECT_TRUE(dev_tools->GetAllowOverlappingViews()); |
+ EXPECT_TRUE(devtools_web_contents()->GetAllowOverlappingViews()); |
// With the find bar. |
browser()->GetFindBarController()->find_bar()->Show(false); |
- EXPECT_TRUE(dev_tools->GetAllowOverlappingViews()); |
+ EXPECT_TRUE(devtools_web_contents()->GetAllowOverlappingViews()); |
// Without the find bar. |
browser()->GetFindBarController()->find_bar()->Hide(false); |
- EXPECT_TRUE(dev_tools->GetAllowOverlappingViews()); |
+ EXPECT_TRUE(devtools_web_contents()->GetAllowOverlappingViews()); |
+} |
+ |
+// Verify that AllowOtherViews is set when and only when DevTools is visible. |
+IN_PROC_BROWSER_TEST_F(DevToolsControllerTest, AllowOtherViews) { |
+ EXPECT_FALSE(web_contents()->GetAllowOtherViews()); |
+ |
+ OpenDevToolsWindow(); |
+ EXPECT_TRUE(devtools_web_contents()->GetAllowOtherViews()); |
+ EXPECT_TRUE(web_contents()->GetAllowOtherViews()); |
+ |
+ CloseDevToolsWindow(); |
+ EXPECT_FALSE(web_contents()->GetAllowOtherViews()); |
} |