Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1911)

Unified Diff: content/browser/find_request_manager_browsertest.cc

Issue 1910073002: Revert of Implement the basic testing infrastructure for FindRequestManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/find_request_manager_browsertest.cc
diff --git a/content/browser/find_request_manager_browsertest.cc b/content/browser/find_request_manager_browsertest.cc
deleted file mode 100644
index 0e8c74359d3add681dd2938c0234e77de87710f8..0000000000000000000000000000000000000000
--- a/content/browser/find_request_manager_browsertest.cc
+++ /dev/null
@@ -1,237 +0,0 @@
-// Copyright 2016 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/command_line.h"
-#include "base/strings/utf_string_conversions.h"
-#include "content/browser/web_contents/web_contents_impl.h"
-#include "content/public/browser/notification_types.h"
-#include "content/public/common/content_switches.h"
-#include "content/public/test/content_browser_test.h"
-#include "content/public/test/content_browser_test_utils.h"
-#include "content/public/test/test_navigation_observer.h"
-#include "content/public/test/test_utils.h"
-#include "content/shell/browser/shell.h"
-#include "net/dns/mock_host_resolver.h"
-#include "third_party/WebKit/public/web/WebFindOptions.h"
-
-namespace content {
-
-namespace {
-
-const int kInvalidId = -1;
-
-// The results of a find request.
-struct FindResults {
- int request_id = kInvalidId;
- int number_of_matches = 0;
- int active_match_ordinal = 0;
-};
-
-} // namespace
-
-class TestWebContentsDelegate : public WebContentsDelegate {
- public:
- TestWebContentsDelegate()
- : last_finished_request_id_(kInvalidId),
- waiting_request_id_(kInvalidId) {}
- ~TestWebContentsDelegate() override {}
-
- // Waits for the final reply to the find request with ID |request_id|.
- void WaitForFinalReply(int request_id) {
- if (last_finished_request_id_ == request_id)
- return;
-
- waiting_request_id_ = request_id;
- find_message_loop_runner_ = new content::MessageLoopRunner;
- find_message_loop_runner_->Run();
- }
-
- // Returns the current find results.
- FindResults GetFindResults() {
- return current_results_;
- }
-
- private:
- // WebContentsDelegate override.
- void FindReply(WebContents* web_contents,
- int request_id,
- int number_of_matches,
- const gfx::Rect& selection_rect,
- int active_match_ordinal,
- bool final_update) override {
- // Update the current results.
- if (request_id > current_results_.request_id)
- current_results_.request_id = request_id;
- if (number_of_matches != -1)
- current_results_.number_of_matches = number_of_matches;
- if (active_match_ordinal != -1)
- current_results_.active_match_ordinal = active_match_ordinal;
-
- if (final_update)
- last_finished_request_id_ = request_id;
-
- // If we are waiting for a final reply and this is it, stop waiting.
- if (find_message_loop_runner_.get() &&
- last_finished_request_id_ >= waiting_request_id_) {
- find_message_loop_runner_->Quit();
- }
- }
-
- // The latest known results from the current find request.
- FindResults current_results_;
-
- // The ID of the last find request to finish (all replies received).
- int last_finished_request_id_;
-
- // If waiting using |find_message_loop_runner_|, this is the ID of the find
- // request being waited for.
- int waiting_request_id_;
-
- scoped_refptr<content::MessageLoopRunner> find_message_loop_runner_;
-
- DISALLOW_COPY_AND_ASSIGN(TestWebContentsDelegate);
-};
-
-class FindRequestManagerTest : public ContentBrowserTest {
- public:
- FindRequestManagerTest()
- : normal_delegate_(nullptr),
- last_request_id_(0) {}
- ~FindRequestManagerTest() override {}
-
- void SetUpOnMainThread() override {
- host_resolver()->AddRule("*", "127.0.0.1");
- ASSERT_TRUE(embedded_test_server()->Start());
-
- // Swap the WebContents's delegate for our test delegate.
- normal_delegate_ = contents()->GetDelegate();
- contents()->SetDelegate(&test_delegate_);
- }
-
- void TearDownOnMainThread() override {
- // Swap the WebContents's delegate back to its usual delegate.
- contents()->SetDelegate(normal_delegate_);
- }
-
- void SetUpCommandLine(base::CommandLine* command_line) override {
- IsolateAllSitesForTesting(command_line);
- }
-
- protected:
- // Navigate to |url| and wait for it to finish loading.
- void LoadAndWait(const std::string& url) {
- TestNavigationObserver navigation_observer(contents());
- NavigateToURL(shell(), embedded_test_server()->GetURL("a.com", url));
- }
-
- void Find(const std::string& search_text,
- const blink::WebFindOptions& options) {
- contents()->Find(++last_request_id_,
- base::UTF8ToUTF16(search_text),
- options);
- }
-
- void WaitForFinalReply() const {
- delegate()->WaitForFinalReply(last_request_id_);
- }
-
- WebContents* contents() const {
- return shell()->web_contents();
- }
-
- TestWebContentsDelegate* delegate() const {
- return static_cast<TestWebContentsDelegate*>(contents()->GetDelegate());
- }
-
- int last_request_id() const {
- return last_request_id_;
- }
-
- private:
- TestWebContentsDelegate test_delegate_;
- WebContentsDelegate* normal_delegate_;
-
- // The ID of the last find request requested.
- int last_request_id_;
-
- DISALLOW_COPY_AND_ASSIGN(FindRequestManagerTest);
-};
-
-// Test basic find-in-page functionality (such as searching forward and
-// backward) and check for correct results at each step.
-IN_PROC_BROWSER_TEST_F(FindRequestManagerTest, Basic) {
- LoadAndWait("/find_in_page.html");
-
- blink::WebFindOptions options;
- Find("result", options);
- WaitForFinalReply();
-
- FindResults results = delegate()->GetFindResults();
- EXPECT_EQ(last_request_id(), results.request_id);
- EXPECT_EQ(19, results.number_of_matches);
- EXPECT_EQ(1, results.active_match_ordinal);
-
- options.findNext = true;
- for (int i = 2; i <= 10; ++i) {
- Find("result", options);
- WaitForFinalReply();
-
- results = delegate()->GetFindResults();
- EXPECT_EQ(last_request_id(), results.request_id);
- EXPECT_EQ(19, results.number_of_matches);
- EXPECT_EQ(i, results.active_match_ordinal);
- }
-
- options.forward = false;
- for (int i = 9; i >= 5; --i) {
- Find("result", options);
- WaitForFinalReply();
-
- results = delegate()->GetFindResults();
- EXPECT_EQ(last_request_id(), results.request_id);
- EXPECT_EQ(19, results.number_of_matches);
- EXPECT_EQ(i, results.active_match_ordinal);
- }
-}
-
-// Tests searching for a word character-by-character, as would typically be done
-// by a user typing into the find bar.
-IN_PROC_BROWSER_TEST_F(FindRequestManagerTest, CharacterByCharacter) {
- LoadAndWait("/find_in_page.html");
-
- blink::WebFindOptions default_options;
- Find("r", default_options);
- Find("re", default_options);
- Find("res", default_options);
- Find("resu", default_options);
- Find("resul", default_options);
- Find("result", default_options);
- WaitForFinalReply();
-
- FindResults results = delegate()->GetFindResults();
- EXPECT_EQ(last_request_id(), results.request_id);
- EXPECT_EQ(19, results.number_of_matches);
- EXPECT_EQ(1, results.active_match_ordinal);
-}
-
-// Test sending a large number of find requests subsequently.
-IN_PROC_BROWSER_TEST_F(FindRequestManagerTest, RapidFire) {
- LoadAndWait("/find_in_page.html");
-
- blink::WebFindOptions options;
- Find("result", options);
-
- options.findNext = true;
- for (int i = 2; i <= 1000; ++i)
- Find("result", options);
- WaitForFinalReply();
-
- FindResults results = delegate()->GetFindResults();
- EXPECT_EQ(last_request_id(), results.request_id);
- EXPECT_EQ(19, results.number_of_matches);
- EXPECT_EQ(last_request_id() % results.number_of_matches,
- results.active_match_ordinal);
-}
-
-} // namespace content
« no previous file with comments | « no previous file | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698