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