summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ui')
-rw-r--r--chrome/browser/ui/BUILD.gn2
-rw-r--r--chrome/browser/ui/pdf/pdf_browsertest.cc219
-rw-r--r--chrome/browser/ui/pdf/pdf_browsertest_base.cc204
-rw-r--r--chrome/browser/ui/pdf/pdf_browsertest_base.h73
-rw-r--r--chrome/browser/ui/pdf/pdf_interactive_browsertest.cc49
5 files changed, 0 insertions, 547 deletions
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 2f6574b..0db45d8 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -486,8 +486,6 @@ source_set("test_support") {
"login/login_prompt_test_utils.h",
"passwords/manage_passwords_ui_controller_mock.cc",
"passwords/manage_passwords_ui_controller_mock.h",
- "pdf/pdf_browsertest_base.cc",
- "pdf/pdf_browsertest_base.h",
"test/test_confirm_bubble_model.cc",
"test/test_confirm_bubble_model.h",
"toolbar/test_toolbar_action_view_controller.cc",
diff --git a/chrome/browser/ui/pdf/pdf_browsertest.cc b/chrome/browser/ui/pdf/pdf_browsertest.cc
deleted file mode 100644
index 8d39960..0000000
--- a/chrome/browser/ui/pdf/pdf_browsertest.cc
+++ /dev/null
@@ -1,219 +0,0 @@
-// Copyright (c) 2012 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/files/file_enumerator.h"
-#include "base/hash.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/pdf/pdf_browsertest_base.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/test/base/ui_test_utils.h"
-#include "content/public/browser/navigation_controller.h"
-#include "content/public/browser/notification_source.h"
-#include "content/public/browser/render_view_host.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/test/browser_test_utils.h"
-#include "third_party/WebKit/public/web/WebInputEvent.h"
-
-using content::NavigationController;
-using content::WebContents;
-
-// Note: All tests in here require the internal PDF plugin, so they're disabled
-// in non-official builds. We still compile them though, to prevent bitrot.
-
-namespace {
-
-// Tests basic PDF rendering. This can be broken depending on bad merges with
-// the vendor, so it's important that we have basic sanity checking.
-#if defined(GOOGLE_CHROME_BUILD) && defined(OS_LINUX)
-#define MAYBE_Basic DISABLED_Basic
-#else
-#define MAYBE_Basic DISABLED_Basic
-#endif
-IN_PROC_BROWSER_TEST_F(PDFBrowserTest, MAYBE_Basic) {
- ASSERT_NO_FATAL_FAILURE(Load());
- ASSERT_NO_FATAL_FAILURE(WaitForResponse());
- // OS X uses CoreText, and FreeType renders slightly different on Linux and
- // Win.
-#if defined(OS_MACOSX)
- // The bots render differently than locally, see http://crbug.com/142531.
- ASSERT_TRUE(VerifySnapshot("pdf_browsertest_mac.png") ||
- VerifySnapshot("pdf_browsertest_mac2.png"));
-#elif defined(OS_LINUX)
- ASSERT_TRUE(VerifySnapshot("pdf_browsertest_linux.png"));
-#else
- ASSERT_TRUE(VerifySnapshot("pdf_browsertest.png"));
-#endif
-}
-
-#if defined(GOOGLE_CHROME_BUILD) && \
- (defined(OS_WIN) || (defined(OS_LINUX) && !defined(OS_CHROMEOS)))
-#define MAYBE_Scroll DISABLED_Scroll
-#else
-// TODO(thestig): http://crbug.com/79837, http://crbug.com/332778,
-// http://crbug.com/446221 Possibly a race between mouse event processing and
-// JavaScript execution in the renderer. The failure goes away if you Sleep()
-// after SwapBuffers.
-#define MAYBE_Scroll DISABLED_Scroll
-#endif
-// Tests that scrolling works.
-IN_PROC_BROWSER_TEST_F(PDFBrowserTest, MAYBE_Scroll) {
- ASSERT_NO_FATAL_FAILURE(Load());
-
- // We use wheel mouse event since that's the only one we can easily push to
- // the renderer. There's no way to push a cross-platform keyboard event at
- // the moment.
- blink::WebMouseWheelEvent wheel_event;
- wheel_event.type = blink::WebInputEvent::MouseWheel;
- wheel_event.deltaY = -200;
- wheel_event.wheelTicksY = -2;
- WebContents* web_contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- web_contents->GetRenderViewHost()->ForwardWheelEvent(wheel_event);
- ASSERT_NO_FATAL_FAILURE(WaitForResponse());
-
- int y_offset = 0;
- ASSERT_TRUE(content::ExecuteScriptAndExtractInt(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "window.domAutomationController.send(plugin.pageYOffset())",
- &y_offset));
- ASSERT_GT(y_offset, 0);
-}
-
-const int kLoadingNumberOfParts = 10;
-
-// Tests that loading async pdfs works correctly (i.e. document fully loads).
-// This also loads all documents that used to crash, to ensure we don't have
-// regressions.
-// If it flakes, reopen http://crbug.com/74548.
-#if defined(GOOGLE_CHROME_BUILD)
-#define MAYBE_Loading DISABLED_Loading
-#else
-#define MAYBE_Loading DISABLED_Loading
-#endif
-IN_PROC_BROWSER_TEST_P(PDFBrowserTest, MAYBE_Loading) {
- ASSERT_TRUE(pdf_test_server()->InitializeAndWaitUntilReady());
-
- NavigationController* controller =
- &(browser()->tab_strip_model()->GetActiveWebContents()->GetController());
- content::NotificationRegistrar registrar;
- registrar.Add(this,
- content::NOTIFICATION_LOAD_STOP,
- content::Source<NavigationController>(controller));
- std::string base_url = std::string("/");
-
- base::FileEnumerator file_enumerator(
- ui_test_utils::GetTestFilePath(
- base::FilePath(FILE_PATH_LITERAL("pdf_private")), base::FilePath()),
- false,
- base::FileEnumerator::FILES,
- FILE_PATH_LITERAL("*.pdf"));
- for (base::FilePath file_path = file_enumerator.Next();
- !file_path.empty();
- file_path = file_enumerator.Next()) {
- std::string filename = file_path.BaseName().MaybeAsASCII();
- ASSERT_FALSE(filename.empty());
-
-#if defined(OS_POSIX)
- if (filename == "sample.pdf")
- continue; // Crashes on Mac and Linux. http://crbug.com/63549
-#endif
-
- // Split the test into smaller sub-tests. Each one only loads
- // every k-th file.
- if (static_cast<int>(base::Hash(filename) % kLoadingNumberOfParts) !=
- GetParam()) {
- continue;
- }
-
- LOG(WARNING) << "PDFBrowserTest.Loading: " << filename;
-
- GURL url = pdf_test_server()->GetURL(base_url + filename);
- ui_test_utils::NavigateToURL(browser(), url);
-
- while (true) {
- int last_count = load_stop_notification_count();
- // We might get extraneous chrome::LOAD_STOP notifications when
- // doing async loading. This happens when the first loader is cancelled
- // and before creating a byte-range request loader.
- bool complete = false;
- ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "window.domAutomationController.send(plugin.documentLoadComplete())",
- &complete));
- if (complete)
- break;
-
- // Check if the LOAD_STOP notification could have come while we run a
- // nested message loop for the JS call.
- if (last_count != load_stop_notification_count())
- continue;
- content::WaitForLoadStop(
- browser()->tab_strip_model()->GetActiveWebContents());
- }
- }
-}
-
-INSTANTIATE_TEST_CASE_P(PDFTestFiles,
- PDFBrowserTest,
- testing::Range(0, kLoadingNumberOfParts));
-
-#if defined(GOOGLE_CHROME_BUILD) && (defined(OS_WIN) || defined(OS_LINUX))
-#define MAYBE_Action DISABLED_Action
-#else
-// http://crbug.com/315160
-#define MAYBE_Action DISABLED_Action
-#endif
-IN_PROC_BROWSER_TEST_F(PDFBrowserTest, MAYBE_Action) {
- ASSERT_NO_FATAL_FAILURE(Load());
-
- ASSERT_TRUE(content::ExecuteScript(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "document.getElementsByName('plugin')[0].fitToHeight();"));
-
- std::string zoom1, zoom2;
- ASSERT_TRUE(content::ExecuteScriptAndExtractString(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "window.domAutomationController.send("
- " document.getElementsByName('plugin')[0].getZoomLevel().toString())",
- &zoom1));
-
- ASSERT_TRUE(content::ExecuteScript(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "document.getElementsByName('plugin')[0].fitToWidth();"));
-
- ASSERT_TRUE(content::ExecuteScriptAndExtractString(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "window.domAutomationController.send("
- " document.getElementsByName('plugin')[0].getZoomLevel().toString())",
- &zoom2));
- ASSERT_NE(zoom1, zoom2);
-}
-
-#if defined(GOOGLE_CHROME_BUILD) && defined(OS_LINUX)
-#define MAYBE_OnLoadAndReload DISABLED_OnLoadAndReload
-#else
-// Flaky as per http://crbug.com/74549.
-#define MAYBE_OnLoadAndReload DISABLED_OnLoadAndReload
-#endif
-IN_PROC_BROWSER_TEST_F(PDFBrowserTest, MAYBE_OnLoadAndReload) {
- ASSERT_TRUE(pdf_test_server()->InitializeAndWaitUntilReady());
-
- GURL url = pdf_test_server()->GetURL("/onload_reload.html");
- ui_test_utils::NavigateToURL(browser(), url);
- WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
-
- content::WindowedNotificationObserver observer(
- content::NOTIFICATION_LOAD_STOP,
- content::Source<NavigationController>(
- &contents->GetController()));
- ASSERT_TRUE(content::ExecuteScript(
- browser()->tab_strip_model()->GetActiveWebContents(),
- "reloadPDF();"));
- observer.Wait();
-
- ASSERT_EQ("success", contents->GetURL().query());
-}
-
-} // namespace
diff --git a/chrome/browser/ui/pdf/pdf_browsertest_base.cc b/chrome/browser/ui/pdf/pdf_browsertest_base.cc
deleted file mode 100644
index a230021..0000000
--- a/chrome/browser/ui/pdf/pdf_browsertest_base.cc
+++ /dev/null
@@ -1,204 +0,0 @@
-// Copyright 2014 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 "chrome/browser/ui/pdf/pdf_browsertest_base.h"
-
-#include <algorithm>
-#include <vector>
-
-#include "base/command_line.h"
-#include "base/path_service.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/common/chrome_paths.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/test/base/ui_test_utils.h"
-#include "content/public/browser/render_view_host.h"
-#include "content/public/browser/web_contents.h"
-#include "third_party/skia/include/core/SkBitmap.h"
-#include "ui/gfx/codec/png_codec.h"
-#include "ui/gfx/screen.h"
-
-#if defined(OS_LINUX)
-#include "content/public/common/content_switches.h"
-#endif
-
-#if defined(OS_CHROMEOS)
-#include "ui/compositor/compositor_switches.h"
-#endif
-
-namespace {
-
-// Include things like browser frame and scrollbar and make sure we're bigger
-// than the test pdf document.
-const int kBrowserWidth = 1000;
-const int kBrowserHeight = 600;
-
-} // namespace
-
-PDFBrowserTest::PDFBrowserTest()
- : snapshot_different_(true),
- next_dummy_search_value_(0),
- load_stop_notification_count_(0) {
- base::FilePath src_dir;
- EXPECT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &src_dir));
- pdf_test_server_.ServeFilesFromDirectory(src_dir.AppendASCII(
- "chrome/test/data/pdf_private"));
-}
-
-PDFBrowserTest::~PDFBrowserTest() {
-}
-
-void PDFBrowserTest::Load() {
- // Make sure to set the window size before rendering, as otherwise rendering
- // to a smaller window and then expanding leads to slight anti-aliasing
- // differences of the text and the pixel comparison fails.
- gfx::Rect bounds(gfx::Rect(0, 0, kBrowserWidth, kBrowserHeight));
- gfx::Rect screen_bounds =
- gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().bounds();
- ASSERT_GT(screen_bounds.width(), kBrowserWidth);
- ASSERT_GT(screen_bounds.height(), kBrowserHeight);
- browser()->window()->SetBounds(bounds);
-
- GURL url(ui_test_utils::GetTestUrl(
- base::FilePath(FILE_PATH_LITERAL("pdf_private")),
- base::FilePath(FILE_PATH_LITERAL("pdf_browsertest.pdf"))));
- ui_test_utils::NavigateToURL(browser(), url);
-}
-
-void PDFBrowserTest::WaitForResponse() {
- // Even if the plugin has loaded the data or scrolled, because of how
- // pepper painting works, we might not have the data. One way to force this
- // to be flushed is to do a find operation, since on this two-page test
- // document, it'll wait for us to flush the renderer message loop twice and
- // also the browser's once, at which point we're guaranteed to have updated
- // the backingstore. Hacky, but it works.
- // Note that we need to change the text each time, because if we don't the
- // renderer code will think the second message is to go to next result, but
- // there are none so the plugin will assert.
-
- base::string16 query = base::UTF8ToUTF16(
- std::string("xyzxyz" + base::IntToString(next_dummy_search_value_++)));
- ASSERT_EQ(0, ui_test_utils::FindInPage(
- browser()->tab_strip_model()->GetActiveWebContents(),
- query, true, false, NULL, NULL));
-}
-
-bool PDFBrowserTest::VerifySnapshot(const std::string& expected_filename) {
- snapshot_different_ = true;
- expected_filename_ = expected_filename;
- content::WebContents* web_contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- DCHECK(web_contents);
-
- content::RenderWidgetHost* rwh = web_contents->GetRenderViewHost();
- rwh->CopyFromBackingStore(
- gfx::Rect(),
- gfx::Size(),
- base::Bind(&PDFBrowserTest::CopyFromBackingStoreCallback, this),
- kN32_SkColorType);
-
- content::RunMessageLoop();
-
- if (snapshot_different_) {
- LOG(INFO) << "Rendering didn't match, see result "
- << snapshot_filename_.value();
- }
- return !snapshot_different_;
-}
-
-void PDFBrowserTest::CopyFromBackingStoreCallback(
- const SkBitmap& bitmap,
- content::ReadbackResponse response) {
- base::MessageLoopForUI::current()->Quit();
- ASSERT_EQ(response, content::READBACK_SUCCESS);
- base::FilePath reference = ui_test_utils::GetTestFilePath(
- base::FilePath(FILE_PATH_LITERAL("pdf_private")),
- base::FilePath().AppendASCII(expected_filename_));
- base::File::Info info;
- ASSERT_TRUE(base::GetFileInfo(reference, &info));
- int size = static_cast<size_t>(info.size);
- scoped_ptr<char[]> data(new char[size]);
- ASSERT_EQ(size, base::ReadFile(reference, data.get(), size));
-
- int w, h;
- std::vector<unsigned char> decoded;
- ASSERT_TRUE(gfx::PNGCodec::Decode(
- reinterpret_cast<unsigned char*>(data.get()), size,
- gfx::PNGCodec::FORMAT_BGRA, &decoded, &w, &h));
- int32* ref_pixels = reinterpret_cast<int32*>(&decoded[0]);
-
- SkAutoLockPixels lock_image(bitmap);
- int32* pixels = static_cast<int32*>(bitmap.getPixels());
-
- // Get the background color, and use it to figure out the x-offsets in
- // each image. The reason is that depending on the theme in the OS, the
- // same browser width can lead to slightly different plugin sizes, so the
- // pdf content will start at different x offsets.
- // Also note that the images we saved are cut off before the scrollbar, as
- // that'll change depending on the theme, and also cut off vertically so
- // that the ui controls don't show up, as those fade-in and so the timing
- // will affect their transparency.
- int32 bg_color = ref_pixels[0];
- int ref_x_offset, snapshot_x_offset;
- for (ref_x_offset = 0; ref_x_offset < w; ++ref_x_offset) {
- if (ref_pixels[ref_x_offset] != bg_color)
- break;
- }
-
- for (snapshot_x_offset = 0; snapshot_x_offset < bitmap.width();
- ++snapshot_x_offset) {
- if (pixels[snapshot_x_offset] != bg_color)
- break;
- }
-
- int x_max = std::min(w - ref_x_offset, bitmap.width() - snapshot_x_offset);
- int y_max = std::min(h, bitmap.height());
- int stride = bitmap.rowBytes();
- snapshot_different_ = false;
- for (int y = 0; y < y_max && !snapshot_different_; ++y) {
- for (int x = 0; x < x_max && !snapshot_different_; ++x) {
- if (pixels[y * stride / sizeof(int32) + x + snapshot_x_offset] !=
- ref_pixels[y * w + x + ref_x_offset])
- snapshot_different_ = true;
- }
- }
-
- if (snapshot_different_) {
- std::vector<unsigned char> png_data;
- gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false, &png_data);
- if (base::CreateTemporaryFile(&snapshot_filename_)) {
- base::WriteFile(snapshot_filename_,
- reinterpret_cast<char*>(&png_data[0]), png_data.size());
- }
- }
-}
-
-void PDFBrowserTest::Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- DCHECK_EQ(content::NOTIFICATION_LOAD_STOP, type);
- load_stop_notification_count_++;
-}
-
-void PDFBrowserTest::SetUpCommandLine(base::CommandLine* command_line) {
- // Due to the changed architecture of the OOP PDF plugin, these tests don't
- // pass and need to be reworked. crbug.com/436444.
- command_line->AppendSwitch(switches::kDisableOutOfProcessPdf);
-
-#if defined(OS_LINUX)
- // Calling RenderWidgetHost::CopyFromBackingStore() with the GPU enabled
- // fails on Linux.
- command_line->AppendSwitch(switches::kDisableGpu);
-#endif
-
-#if defined(OS_CHROMEOS)
- // Also need on CrOS in addition to disabling the GPU above.
- command_line->AppendSwitch(switches::kUIDisableThreadedCompositing);
-#endif
-}
diff --git a/chrome/browser/ui/pdf/pdf_browsertest_base.h b/chrome/browser/ui/pdf/pdf_browsertest_base.h
deleted file mode 100644
index ee14467..0000000
--- a/chrome/browser/ui/pdf/pdf_browsertest_base.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2014 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.
-
-#ifndef CHROME_BROWSER_UI_PDF_PDF_BROWSERTEST_BASE_H_
-#define CHROME_BROWSER_UI_PDF_PDF_BROWSERTEST_BASE_H_
-
-#include <string>
-
-#include "base/files/file_path.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/readback_types.h"
-#include "net/test/embedded_test_server/embedded_test_server.h"
-
-namespace base {
-class CommandLine;
-}
-
-class SkBitmap;
-
-// This class is in its own separate file because it is used in both
-// browser_tests and interactive_ui_tests.
-class PDFBrowserTest : public InProcessBrowserTest,
- public testing::WithParamInterface<int>,
- public content::NotificationObserver {
- public:
- PDFBrowserTest();
- ~PDFBrowserTest() override;
-
- protected:
- // Use our own TestServer so that we can serve files from the pdf directory.
- net::test_server::EmbeddedTestServer* pdf_test_server() {
- return &pdf_test_server_;
- }
-
- int load_stop_notification_count() const {
- return load_stop_notification_count_;
- }
-
- void Load();
- void WaitForResponse();
- bool VerifySnapshot(const std::string& expected_filename);
-
- private:
- void CopyFromBackingStoreCallback(const SkBitmap& bitmap,
- content::ReadbackResponse response);
-
- // content::NotificationObserver
- void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) override;
-
- // InProcessBrowserTest
- void SetUpCommandLine(base::CommandLine* command_line) override;
-
- // True if the snapshot differed from the expected value.
- bool snapshot_different_;
- // Internal variable used to synchronize to the renderer.
- int next_dummy_search_value_;
- // The filename of the bitmap to compare the snapshot to.
- std::string expected_filename_;
- // If the snapshot is different, holds the location where it's saved.
- base::FilePath snapshot_filename_;
- // How many times we've seen chrome::LOAD_STOP.
- int load_stop_notification_count_;
-
- net::test_server::EmbeddedTestServer pdf_test_server_;
-
- DISALLOW_COPY_AND_ASSIGN(PDFBrowserTest);
-};
-
-#endif // CHROME_BROWSER_UI_PDF_PDF_BROWSERTEST_BASE_H_
diff --git a/chrome/browser/ui/pdf/pdf_interactive_browsertest.cc b/chrome/browser/ui/pdf/pdf_interactive_browsertest.cc
deleted file mode 100644
index 2022320..0000000
--- a/chrome/browser/ui/pdf/pdf_interactive_browsertest.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2014 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/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/pdf/pdf_browsertest_base.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/test/base/ui_test_utils.h"
-#include "content/public/browser/web_contents.h"
-#include "ui/base/clipboard/clipboard.h"
-
-// Note: All tests in here require the internal PDF plugin, so they're disabled
-// in non-official builds. We still compile them though, to prevent bitrot.
-//
-// These tests are interactive because they access the clipboard.
-
-namespace {
-
-const char kSearchKeyword[] = "adipiscing";
-
-#if defined(GOOGLE_CHROME_BUILD) && (defined(OS_WIN) || defined(OS_LINUX))
-#define MAYBE_FindAndCopy DISABLED_FindAndCopy
-#else
-// TODO(thestig): http://crbug.com/79837, http://crbug.com/329912
-#define MAYBE_FindAndCopy DISABLED_FindAndCopy
-#endif
-IN_PROC_BROWSER_TEST_F(PDFBrowserTest, MAYBE_FindAndCopy) {
- ASSERT_NO_FATAL_FAILURE(Load());
- // Verifies that find in page works.
- ASSERT_EQ(3, ui_test_utils::FindInPage(
- browser()->tab_strip_model()->GetActiveWebContents(),
- base::ASCIIToUTF16(kSearchKeyword),
- true, false, NULL, NULL));
-
- // Verify that copying selected text works.
- ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread();
- // Reset the clipboard first.
- clipboard->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
-
- browser()->tab_strip_model()->GetActiveWebContents()->Copy();
- ASSERT_NO_FATAL_FAILURE(WaitForResponse());
-
- std::string text;
- clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text);
- EXPECT_EQ(kSearchKeyword, text);
-}
-
-} // namespace