1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
23345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Use of this source code is governed by a BSD-style license that can be
33345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// found in the LICENSE file.
43345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
53345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/command_line.h"
63345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/file_path.h"
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/file_util.h"
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/message_loop.h"
9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/path_service.h"
1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/profiles/profile.h"
114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "chrome/browser/ui/browser.h"
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/browser_list.h"
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/ui/browser_window.h"
143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/common/chrome_paths.h"
153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/test/in_process_browser_test.h"
163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/test/ui_test_utils.h"
17dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/tab_contents/tab_contents.h"
183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "testing/gtest/include/gtest/gtest.h"
193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merricknamespace {
213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickstatic const FilePath::CharType* kTestDir = FILE_PATH_LITERAL("popup_blocker");
233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merricktypedef InProcessBrowserTest PopupBlockerBrowserTest;
253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickIN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, PopupBlockedPostBlank) {
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  FilePath file_name(FILE_PATH_LITERAL("popup-blocked-to-post-blank.html"));
283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  FilePath test_dir(kTestDir);
293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  GURL url(ui_test_utils::GetTestUrl(test_dir, file_name));
303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  ui_test_utils::NavigateToURL(browser(), url);
313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // If the popup blocker blocked the blank post, there should be only one
333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // tab in only one browser window and the URL of current tab must be equal
343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  // to the original URL.
353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_EQ(1u, BrowserList::GetBrowserCount(browser()->profile()));
363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_EQ(1, browser()->tab_count());
373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  TabContents* cur_tab = browser()->GetSelectedTabContents();
383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  ASSERT_TRUE(cur_tab);
393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  EXPECT_EQ(url, cur_tab->GetURL());
403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}  // namespace
43