1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "base/strings/utf_string_conversions.h" 6#include "chrome/browser/ui/browser.h" 7#include "chrome/browser/ui/pdf/pdf_browsertest_base.h" 8#include "chrome/browser/ui/tabs/tab_strip_model.h" 9#include "chrome/test/base/ui_test_utils.h" 10#include "content/public/browser/web_contents.h" 11#include "ui/base/clipboard/clipboard.h" 12 13// Note: All tests in here require the internal PDF plugin, so they're disabled 14// in non-official builds. We still compile them though, to prevent bitrot. 15// 16// These tests are interactive because they access the clipboard. 17 18namespace { 19 20const char kSearchKeyword[] = "adipiscing"; 21 22#if defined(GOOGLE_CHROME_BUILD) && (defined(OS_WIN) || defined(OS_LINUX)) 23#define MAYBE_FindAndCopy FindAndCopy 24#else 25// TODO(thestig): http://crbug.com/79837, http://crbug.com/329912 26#define MAYBE_FindAndCopy DISABLED_FindAndCopy 27#endif 28IN_PROC_BROWSER_TEST_F(PDFBrowserTest, MAYBE_FindAndCopy) { 29 ASSERT_NO_FATAL_FAILURE(Load()); 30 // Verifies that find in page works. 31 ASSERT_EQ(3, ui_test_utils::FindInPage( 32 browser()->tab_strip_model()->GetActiveWebContents(), 33 base::ASCIIToUTF16(kSearchKeyword), 34 true, false, NULL, NULL)); 35 36 // Verify that copying selected text works. 37 ui::Clipboard* clipboard = ui::Clipboard::GetForCurrentThread(); 38 // Reset the clipboard first. 39 clipboard->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE); 40 41 browser()->tab_strip_model()->GetActiveWebContents()->Copy(); 42 ASSERT_NO_FATAL_FAILURE(WaitForResponse()); 43 44 std::string text; 45 clipboard->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &text); 46 EXPECT_EQ(kSearchKeyword, text); 47} 48 49} // namespace 50