Index: content/renderer/render_view_browsertest.cc |
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc |
index 1c0d0741a387b3b19b007cc065e87043de1c43e1..0f44b7c980a4aab3a6e63b2acd9e8200d0b33c8f 100644 |
--- a/content/renderer/render_view_browsertest.cc |
+++ b/content/renderer/render_view_browsertest.cc |
@@ -7,10 +7,16 @@ |
#include "base/shared_memory.h" |
#include "base/string_util.h" |
#include "base/utf_string_conversions.h" |
+#include "chrome/browser/ui/browser.h" |
+#include "chrome/common/chrome_notification_types.h" |
#include "chrome/test/base/render_view_test.h" |
+#include "chrome/test/base/in_process_browser_test.h" |
+#include "chrome/test/base/ui_test_utils.h" |
#include "content/common/native_web_keyboard_event.h" |
#include "content/common/view_messages.h" |
+#include "content/browser/tab_contents/tab_contents.h" |
#include "net/base/net_errors.h" |
+#include "net/test/test_server.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLError.h" |
@@ -850,3 +856,53 @@ TEST_F(RenderViewTest, UpdateTargetURLWithInvalidURL) { |
view_->setMouseOverURL(WebKit::WebURL(invalid_gurl)); |
EXPECT_EQ(invalid_gurl, view_->target_url_); |
} |
+ |
+class InProcessRenderViewBrowserTest : public InProcessBrowserTest { |
+ public: |
+ InProcessRenderViewBrowserTest() { |
+ EnableDOMAutomation(); |
+ } |
+ protected: |
+ RenderViewHost* render_view_host() { |
+ return browser()->GetSelectedTabContents()->render_view_host(); |
+ } |
+ |
+ bool GetCreatedWindowName(const GURL& url, |
+ const wchar_t* function, |
+ std::string* window_name) { |
+ ui_test_utils::NavigateToURL(browser(), url); |
+ |
+ ui_test_utils::WindowedNotificationObserver observer( |
+ chrome::NOTIFICATION_BROWSER_WINDOW_READY, |
+ NotificationService::AllSources()); |
+ |
+ if (!ui_test_utils::ExecuteJavaScriptAndExtractString( |
+ render_view_host(), L"", function, window_name)) |
+ return false; |
+ |
+ // observer.Wait(); |
+ return true; |
+ } |
+}; |
+ |
+// Regression test for http://crbug.com/88129 |
+IN_PROC_BROWSER_TEST_F(InProcessRenderViewBrowserTest, WindowOpen1) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ GURL url(test_server()->GetURL("files/window.open.blank.html")); |
+ std::string window_name; |
+ ASSERT_TRUE(GetCreatedWindowName(url, L"openWindow1();", &window_name)); |
+ |
+ EXPECT_EQ(window_name, "blank") << "Actual Window Name: " << window_name; |
+} |
+ |
+// Regression test for http://crbug.com/88129 |
+IN_PROC_BROWSER_TEST_F(InProcessRenderViewBrowserTest, WindowOpen2) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ GURL url(test_server()->GetURL("files/window.open.blank.html")); |
+ std::string window_name; |
+ ASSERT_TRUE(GetCreatedWindowName(url, L"openWindow2();", &window_name)); |
+ |
+ EXPECT_EQ(window_name, "") << "Actual Window Name: " << window_name; |
+} |