Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / cocoa / dev_tools_controller_browsertest.mm
index 33c5b9c..e0755ed 100644 (file)
@@ -5,6 +5,7 @@
 #import "chrome/browser/ui/cocoa/dev_tools_controller.h"
 
 #include "chrome/browser/devtools/devtools_window.h"
+#include "chrome/browser/devtools/devtools_window_testing.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_window.h"
 #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) {}
+
+ protected:
+  void OpenDevToolsWindow() {
+    devtools_window_ =
+        DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), true);
+  }
+
+  void CloseDevToolsWindow() {
+    DevToolsWindowTesting::CloseDevToolsWindowSync(devtools_window_);
   }
 
-  virtual void SetUpOnMainThread() OVERRIDE {
-    DevToolsWindow::OpenDevToolsWindowForTest(browser(), true);
+  content::WebContents* web_contents() {
+    return browser()->tab_strip_model()->GetActiveWebContents();
   }
 
+  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());
+
+  CloseDevToolsWindow();
+}
+
+// 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());
 }