summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/find_bar_win_browsertest.cc
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-27 21:53:03 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-27 21:53:03 +0000
commitbad6ba908752e520d0613bfe912d87edb1308d2e (patch)
tree51ca22902cac2da87a88833b9c050a5f63ab537a /chrome/browser/views/find_bar_win_browsertest.cc
parent73404fdaa6f3ba6e63c56566061c5699336280a5 (diff)
downloadchromium_src-bad6ba908752e520d0613bfe912d87edb1308d2e.zip
chromium_src-bad6ba908752e520d0613bfe912d87edb1308d2e.tar.gz
chromium_src-bad6ba908752e520d0613bfe912d87edb1308d2e.tar.bz2
Reverting my change it breaks release compilation on Windows.
TBR=maruel Review URL: http://codereview.chromium.org/103001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14669 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/find_bar_win_browsertest.cc')
-rw-r--r--chrome/browser/views/find_bar_win_browsertest.cc200
1 files changed, 0 insertions, 200 deletions
diff --git a/chrome/browser/views/find_bar_win_browsertest.cc b/chrome/browser/views/find_bar_win_browsertest.cc
deleted file mode 100644
index 4cca160..0000000
--- a/chrome/browser/views/find_bar_win_browsertest.cc
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/message_loop.h"
-#include "chrome/browser/browser.h"
-#include "chrome/browser/find_notification_details.h"
-#include "chrome/browser/renderer_host/render_view_host.h"
-#include "chrome/browser/tab_contents/tab_contents.h"
-#include "chrome/browser/tab_contents/tab_contents_view.h"
-#include "chrome/browser/tab_contents/web_contents.h"
-#include "chrome/browser/views/find_bar_win.h"
-#include "chrome/common/notification_service.h"
-#include "chrome/test/in_process_browser_test.h"
-#include "chrome/test/ui_test_utils.h"
-
-const std::wstring kFramePage = L"files/find_in_page/frames.html";
-const std::wstring kFrameData = L"files/find_in_page/framedata_general.html";
-const std::wstring kUserSelectPage = L"files/find_in_page/user-select.html";
-const std::wstring kCrashPage = L"files/find_in_page/crash_1341577.html";
-const std::wstring kTooFewMatchesPage = L"files/find_in_page/bug_1155639.html";
-const std::wstring kEndState = L"files/find_in_page/end_state.html";
-
-class FindInPageNotificationObserver : public NotificationObserver {
- public:
- explicit FindInPageNotificationObserver(TabContents* parent_tab)
- : parent_tab_(parent_tab),
- active_match_ordinal_(-1),
- number_of_matches_(0) {
- registrar_.Add(this, NotificationType::FIND_RESULT_AVAILABLE,
- Source<TabContents>(parent_tab_));
- ui_test_utils::RunMessageLoop();
- }
-
- int active_match_ordinal() const { return active_match_ordinal_; }
-
- int number_of_matches() const { return number_of_matches_; }
-
- virtual void Observe(NotificationType type, const NotificationSource& source,
- const NotificationDetails& details) {
- if (type == NotificationType::FIND_RESULT_AVAILABLE) {
- Details<FindNotificationDetails> find_details(details);
- if (find_details->request_id() == kFindInPageRequestId) {
- // We get multiple responses and one of those will contain the ordinal.
- // This message comes to us before the final update is sent.
- if (find_details->active_match_ordinal() > -1)
- active_match_ordinal_ = find_details->active_match_ordinal();
- if (find_details->final_update()) {
- number_of_matches_ = find_details->number_of_matches();
- MessageLoopForUI::current()->Quit();
- } else {
- DLOG(INFO) << "Ignoring, since we only care about the final message";
- }
- }
- } else {
- NOTREACHED();
- }
- }
-
- // The Find mechanism is over asynchronous IPC, so a search is kicked off and
- // we wait for notification to find out what the results are. As the user is
- // typing, new search requests can be issued and the Request ID helps us make
- // sense of whether this is the current request or an old one. The unit tests,
- // however, which uses this constant issues only one search at a time, so we
- // don't need a rolling id to identify each search. But, we still need to
- // specify one, so we just use a fixed one - its value does not matter.
- static const int kFindInPageRequestId;
-
- private:
- NotificationRegistrar registrar_;
- TabContents* parent_tab_;
- // We will at some point (before final update) be notified of the ordinal and
- // we need to preserve it so we can send it later.
- int active_match_ordinal_;
- int number_of_matches_;
-};
-
-typedef enum FindInPageDirection { BACK = 0, FWD = 1 };
-typedef enum FindInPageCase { IGNORE_CASE = 0, CASE_SENSITIVE = 1 };
-
-class FindInPageControllerTest : public InProcessBrowserTest {
- public:
- FindInPageControllerTest() {
- EnableDOMAutomation();
- }
-
- protected:
- int FindInPage(const std::wstring& search_string,
- FindInPageDirection forward,
- FindInPageCase match_case,
- bool find_next) {
- WebContents* web_contents =
- browser()->GetSelectedTabContents()->AsWebContents();
- if (web_contents) {
- web_contents->set_current_find_request_id(
- FindInPageNotificationObserver::kFindInPageRequestId);
- web_contents->render_view_host()->StartFinding(
- FindInPageNotificationObserver::kFindInPageRequestId,
- search_string, forward == FWD, match_case == CASE_SENSITIVE,
- find_next);
- return FindInPageNotificationObserver(web_contents).number_of_matches();
- }
- return 0;
- }
-};
-
-// This test loads a page with frames and starts FindInPage requests.
-IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageFrames) {
- HTTPTestServer* server = StartHTTPServer();
-
- // First we navigate to our frames page.
- GURL url = server->TestServerPageW(kFramePage);
- ui_test_utils::NavigateToURL(browser(), url);
-
- // Try incremental search (mimicking user typing in).
- EXPECT_EQ(18, FindInPage(L"g", FWD, IGNORE_CASE, false));
- EXPECT_EQ(11, FindInPage(L"go", FWD, IGNORE_CASE, false));
- EXPECT_EQ(04, FindInPage(L"goo", FWD, IGNORE_CASE, false));
- EXPECT_EQ(03, FindInPage(L"goog", FWD, IGNORE_CASE, false));
- EXPECT_EQ(02, FindInPage(L"googl", FWD, IGNORE_CASE, false));
- EXPECT_EQ(01, FindInPage(L"google", FWD, IGNORE_CASE, false));
- EXPECT_EQ(00, FindInPage(L"google!", FWD, IGNORE_CASE, false));
-
- // Negative test (no matches should be found).
- EXPECT_EQ(0, FindInPage(L"Non-existing string", FWD, IGNORE_CASE, false));
-
- // 'horse' only exists in the three right frames.
- EXPECT_EQ(3, FindInPage(L"horse", FWD, IGNORE_CASE, false));
-
- // 'cat' only exists in the first frame.
- EXPECT_EQ(1, FindInPage(L"cat", FWD, IGNORE_CASE, false));
-
- // Try searching again, should still come up with 1 match.
- EXPECT_EQ(1, FindInPage(L"cat", FWD, IGNORE_CASE, false));
-
- // Try searching backwards, ignoring case, should still come up with 1 match.
- EXPECT_EQ(1, FindInPage(L"CAT", BACK, IGNORE_CASE, false));
-
- // Try case sensitive, should NOT find it.
- EXPECT_EQ(0, FindInPage(L"CAT", FWD, CASE_SENSITIVE, false));
-
- // Try again case sensitive, but this time with right case.
- EXPECT_EQ(1, FindInPage(L"dog", FWD, CASE_SENSITIVE, false));
-
- // Try non-Latin characters ('Hreggvidur' with 'eth' for 'd' in left frame).
- EXPECT_EQ(1, FindInPage(L"Hreggvi\u00F0ur", FWD, IGNORE_CASE, false));
- EXPECT_EQ(1, FindInPage(L"Hreggvi\u00F0ur", FWD, CASE_SENSITIVE, false));
- EXPECT_EQ(0, FindInPage(L"hreggvi\u00F0ur", FWD, CASE_SENSITIVE, false));
-}
-
-std::string FocusedOnPage(WebContents* web_contents) {
- ui_test_utils::JavaScriptRunner js_runner(
- web_contents,
- L"",
- L"window.domAutomationController.send(getFocusedElement());");
- return js_runner.Run();
-}
-
-// This tests the FindInPage end-state, in other words: what is focused when you
-// close the Find box (ie. if you find within a link the link should be
-// focused).
-IN_PROC_BROWSER_TEST_F(FindInPageControllerTest, FindInPageEndState) {
- HTTPTestServer* server = StartHTTPServer();
-
- // First we navigate to our special focus tracking page.
- GURL url = server->TestServerPageW(kEndState);
- ui_test_utils::NavigateToURL(browser(), url);
-
- WebContents* web_contents =
- browser()->GetSelectedTabContents()->AsWebContents();
- ASSERT_TRUE(NULL != web_contents);
-
- // Verify that nothing has focus.
- ASSERT_STREQ("{nothing focused}", FocusedOnPage(web_contents).c_str());
-
- // Search for a text that exists within a link on the page.
- EXPECT_EQ(1, FindInPage(L"nk", FWD, IGNORE_CASE, false));
-
- // End the find session, which should set focus to the link.
- web_contents->StopFinding(false);
-
- // Verify that the link is focused.
- EXPECT_STREQ("link1", FocusedOnPage(web_contents).c_str());
-
- // Search for a text that exists within a link on the page.
- EXPECT_EQ(1, FindInPage(L"Google", FWD, IGNORE_CASE, false));
-
- // Move the selection to link 1, after searching.
- ui_test_utils::JavaScriptRunner js_runner(
- web_contents,
- L"",
- L"window.domAutomationController.send(selectLink1());");
- js_runner.Run();
-
- // End the find session.
- web_contents->StopFinding(false);
-
- // Verify that link2 is not focused.
- EXPECT_STREQ("", FocusedOnPage(web_contents).c_str());
-}