| Index: chrome/browser/pdf/pdf_extension_test.cc
|
| diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc
|
| index ec501abe5e8f23808ebe37717d4676359f6e8ac0..e4e93d66517faba3140110cd8a3770fdd2b8bcca 100644
|
| --- a/chrome/browser/pdf/pdf_extension_test.cc
|
| +++ b/chrome/browser/pdf/pdf_extension_test.cc
|
| @@ -14,6 +14,7 @@
|
| #include "base/macros.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/path_service.h"
|
| +#include "base/strings/pattern.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "build/build_config.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| @@ -71,12 +72,13 @@ const int kDefaultKeyModifier = blink::WebInputEvent::MetaKey;
|
| const int kDefaultKeyModifier = blink::WebInputEvent::ControlKey;
|
| #endif
|
|
|
| -// Using ASSERT_TRUE deliberately instead of ASSERT_EQ or ASSERT_STREQ
|
| -// in order to print a more readable message if the strings differ.
|
| -#define ASSERT_MULTILINE_STREQ(expected, actual) \
|
| - ASSERT_TRUE(expected == actual) \
|
| - << "Expected:\n" << expected \
|
| - << "\n\nActual:\n" << actual
|
| +// Check if the |actual| string matches the string or the string pattern in
|
| +// |pattern| and print a readable message if it does not match.
|
| +#define ASSERT_MULTILINE_STR_MATCHES(pattern, actual) \
|
| + ASSERT_TRUE(base::MatchPattern(actual, pattern)) \
|
| + << "Expected match pattern:\n" \
|
| + << pattern << "\n\nActual:\n" \
|
| + << actual
|
|
|
| bool GetGuestCallback(WebContents** guest_out, WebContents* guest) {
|
| EXPECT_FALSE(*guest_out);
|
| @@ -594,8 +596,7 @@ static std::string DumpPdfAccessibilityTree(const ui::AXTreeUpdate& ax_tree) {
|
| ax_tree_dump += ui::ToString(node.role);
|
|
|
| std::string name = node.GetStringAttribute(ui::AX_ATTR_NAME);
|
| - base::ReplaceChars(name, "\r", "\\r", &name);
|
| - base::ReplaceChars(name, "\n", "\\n", &name);
|
| + base::ReplaceChars(name, "\r\n", "", &name);
|
| if (!name.empty())
|
| ax_tree_dump += " '" + name + "'";
|
| ax_tree_dump += "\n";
|
| @@ -606,38 +607,41 @@ static std::string DumpPdfAccessibilityTree(const ui::AXTreeUpdate& ax_tree) {
|
| return ax_tree_dump;
|
| }
|
|
|
| -static const char kExpectedPDFAXTree[] =
|
| +// This is a pattern with a few wildcards due to a PDF bug where the
|
| +// fi ligature is not parsed correctly on some systems.
|
| +// http://crbug.com/701427
|
| +
|
| +static const char kExpectedPDFAXTreePattern[] =
|
| "embeddedObject\n"
|
| " group\n"
|
| " region 'Page 1'\n"
|
| " paragraph\n"
|
| - " staticText '1 First Section\\r\\n'\n"
|
| + " staticText '1 First Section'\n"
|
| " inlineTextBox '1 '\n"
|
| - " inlineTextBox 'First Section\\r\\n'\n"
|
| + " inlineTextBox 'First Section'\n"
|
| " paragraph\n"
|
| - " staticText 'This is the first section.\\r\\n1'\n"
|
| - " inlineTextBox 'This is the first section.\\r\\n'\n"
|
| + " staticText 'This is the *rst section.1'\n"
|
| + " inlineTextBox 'This is the *rst section.'\n"
|
| " inlineTextBox '1'\n"
|
| " region 'Page 2'\n"
|
| " paragraph\n"
|
| - " staticText '1.1 First Subsection\\r\\n'\n"
|
| + " staticText '1.1 First Subsection'\n"
|
| " inlineTextBox '1.1 '\n"
|
| - " inlineTextBox 'First Subsection\\r\\n'\n"
|
| + " inlineTextBox 'First Subsection'\n"
|
| " paragraph\n"
|
| - " staticText 'This is the first subsection.\\r\\n2'\n"
|
| - " inlineTextBox 'This is the first subsection.\\r\\n'\n"
|
| + " staticText 'This is the *rst subsection.2'\n"
|
| + " inlineTextBox 'This is the *rst subsection.'\n"
|
| " inlineTextBox '2'\n"
|
| " region 'Page 3'\n"
|
| " paragraph\n"
|
| - " staticText '2 Second Section\\r\\n'\n"
|
| + " staticText '2 Second Section'\n"
|
| " inlineTextBox '2 '\n"
|
| - " inlineTextBox 'Second Section\\r\\n'\n"
|
| + " inlineTextBox 'Second Section'\n"
|
| " paragraph\n"
|
| " staticText '3'\n"
|
| " inlineTextBox '3'\n";
|
|
|
| -// https://crbug.com/701427
|
| -IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibility) {
|
| +IN_PROC_BROWSER_TEST_F(PDFExtensionTest, PdfAccessibility) {
|
| content::BrowserAccessibilityState::GetInstance()->EnableAccessibility();
|
|
|
| GURL test_pdf_url(embedded_test_server()->GetURL("/pdf/test-bookmarks.pdf"));
|
| @@ -648,7 +652,8 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibility) {
|
| "1 First Section\r\n");
|
| ui::AXTreeUpdate ax_tree = GetAccessibilityTreeSnapshot(guest_contents);
|
| std::string ax_tree_dump = DumpPdfAccessibilityTree(ax_tree);
|
| - ASSERT_MULTILINE_STREQ(kExpectedPDFAXTree, ax_tree_dump);
|
| +
|
| + ASSERT_MULTILINE_STR_MATCHES(kExpectedPDFAXTreePattern, ax_tree_dump);
|
| }
|
|
|
| #if defined(GOOGLE_CHROME_BUILD)
|
| @@ -666,8 +671,7 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, PdfAccessibilityCharCountCrash) {
|
| }
|
| #endif
|
|
|
| -// https://crbug.com/701427
|
| -IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibilityEnableLater) {
|
| +IN_PROC_BROWSER_TEST_F(PDFExtensionTest, PdfAccessibilityEnableLater) {
|
| // In this test, load the PDF file first, with accessibility off.
|
| GURL test_pdf_url(embedded_test_server()->GetURL("/pdf/test-bookmarks.pdf"));
|
| WebContents* guest_contents = LoadPdfGetGuestContents(test_pdf_url);
|
| @@ -680,7 +684,7 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibilityEnableLater) {
|
| "1 First Section\r\n");
|
| ui::AXTreeUpdate ax_tree = GetAccessibilityTreeSnapshot(guest_contents);
|
| std::string ax_tree_dump = DumpPdfAccessibilityTree(ax_tree);
|
| - ASSERT_MULTILINE_STREQ(kExpectedPDFAXTree, ax_tree_dump);
|
| + ASSERT_MULTILINE_STR_MATCHES(kExpectedPDFAXTreePattern, ax_tree_dump);
|
| }
|
|
|
| bool RetrieveGuestContents(WebContents** out_guest_contents,
|
| @@ -689,8 +693,7 @@ bool RetrieveGuestContents(WebContents** out_guest_contents,
|
| return true;
|
| }
|
|
|
| -// https://crbug.com/701427
|
| -IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibilityInIframe) {
|
| +IN_PROC_BROWSER_TEST_F(PDFExtensionTest, PdfAccessibilityInIframe) {
|
| content::BrowserAccessibilityState::GetInstance()->EnableAccessibility();
|
| GURL test_iframe_url(embedded_test_server()->GetURL("/pdf/test-iframe.html"));
|
| ui_test_utils::NavigateToURL(browser(), test_iframe_url);
|
| @@ -708,11 +711,10 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibilityInIframe) {
|
|
|
| ui::AXTreeUpdate ax_tree = GetAccessibilityTreeSnapshot(guest_contents);
|
| std::string ax_tree_dump = DumpPdfAccessibilityTree(ax_tree);
|
| - ASSERT_MULTILINE_STREQ(kExpectedPDFAXTree, ax_tree_dump);
|
| + ASSERT_MULTILINE_STR_MATCHES(kExpectedPDFAXTreePattern, ax_tree_dump);
|
| }
|
|
|
| -// https://crbug.com/701427
|
| -IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibilityInOOPIF) {
|
| +IN_PROC_BROWSER_TEST_F(PDFExtensionTest, PdfAccessibilityInOOPIF) {
|
| content::BrowserAccessibilityState::GetInstance()->EnableAccessibility();
|
| GURL test_iframe_url(embedded_test_server()->GetURL(
|
| "/pdf/test-cross-site-iframe.html"));
|
| @@ -731,7 +733,7 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_PdfAccessibilityInOOPIF) {
|
|
|
| ui::AXTreeUpdate ax_tree = GetAccessibilityTreeSnapshot(guest_contents);
|
| std::string ax_tree_dump = DumpPdfAccessibilityTree(ax_tree);
|
| - ASSERT_MULTILINE_STREQ(kExpectedPDFAXTree, ax_tree_dump);
|
| + ASSERT_MULTILINE_STR_MATCHES(kExpectedPDFAXTreePattern, ax_tree_dump);
|
| }
|
|
|
| #if defined(GOOGLE_CHROME_BUILD)
|
|
|