Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/accessibility/dump_accessibility_browsertest_base.h" | 5 #include "content/browser/accessibility/dump_accessibility_browsertest_base.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 112 } else if (StartsWithASCII(line, deny_str, true)) { | 112 } else if (StartsWithASCII(line, deny_str, true)) { |
| 113 filters->push_back(Filter(base::UTF8ToUTF16( | 113 filters->push_back(Filter(base::UTF8ToUTF16( |
| 114 line.substr(deny_str.size())), | 114 line.substr(deny_str.size())), |
| 115 Filter::DENY)); | 115 Filter::DENY)); |
| 116 } else if (StartsWithASCII(line, wait_str, true)) { | 116 } else if (StartsWithASCII(line, wait_str, true)) { |
| 117 *wait_for = line.substr(wait_str.size()); | 117 *wait_for = line.substr(wait_str.size()); |
| 118 } | 118 } |
| 119 } | 119 } |
| 120 } | 120 } |
| 121 | 121 |
| 122 void DumpAccessibilityTestBase::RunTest( | 122 void DumpAccessibilityTestBase::RunAriaTest( |
| 123 const base::FilePath::CharType* file_path) { | 123 const base::FilePath::CharType* file_path) { |
| 124 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | |
| 125 | |
| 126 // Setup test paths. | |
| 127 base::FilePath dir_test_data; | 124 base::FilePath dir_test_data; |
| 128 ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &dir_test_data)); | 125 ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &dir_test_data)); |
| 129 base::FilePath test_path( | 126 base::FilePath test_path( |
| 130 dir_test_data.Append(FILE_PATH_LITERAL("accessibility"))); | 127 dir_test_data.AppendASCII("accessibility/aria")); |
| 128 ASSERT_TRUE(base::PathExists(test_path)) | |
| 129 << test_path.LossyDisplayName(); | |
| 130 | |
| 131 base::FilePath aria_file = test_path.Append(base::FilePath(file_path)); | |
| 132 RunTest(aria_file, "accessibility/aria"); | |
| 133 } | |
| 134 | |
| 135 void DumpAccessibilityTestBase::RunEventTest( | |
| 136 const base::FilePath::CharType* file_path) { | |
| 137 base::FilePath dir_test_data; | |
| 138 ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &dir_test_data)); | |
| 139 base::FilePath test_path( | |
| 140 dir_test_data.AppendASCII("accessibility/event")); | |
| 141 ASSERT_TRUE(base::PathExists(test_path)) | |
| 142 << test_path.LossyDisplayName(); | |
| 143 | |
| 144 base::FilePath event_file = test_path.Append(base::FilePath(file_path)); | |
| 145 RunTest(event_file, "accessibility/event"); | |
| 146 } | |
| 147 | |
| 148 void DumpAccessibilityTestBase::RunHtmlTest( | |
| 149 const base::FilePath::CharType* file_path) { | |
| 150 base::FilePath dir_test_data; | |
| 151 ASSERT_TRUE(PathService::Get(DIR_TEST_DATA, &dir_test_data)); | |
| 152 base::FilePath test_path( | |
| 153 dir_test_data.AppendASCII("accessibility/html")); | |
| 131 ASSERT_TRUE(base::PathExists(test_path)) | 154 ASSERT_TRUE(base::PathExists(test_path)) |
| 132 << test_path.LossyDisplayName(); | 155 << test_path.LossyDisplayName(); |
| 133 | 156 |
| 134 base::FilePath html_file = test_path.Append(base::FilePath(file_path)); | 157 base::FilePath html_file = test_path.Append(base::FilePath(file_path)); |
| 158 RunTest(html_file, "accessibility/html"); | |
| 159 } | |
| 160 | |
| 161 void DumpAccessibilityTestBase::RunTest( | |
| 162 const base::FilePath file_path, const char* file_dir) { | |
| 163 NavigateToURL(shell(), GURL(url::kAboutBlankURL)); | |
| 164 | |
| 135 // Output the test path to help anyone who encounters a failure and needs | 165 // Output the test path to help anyone who encounters a failure and needs |
| 136 // to know where to look. | 166 // to know where to look. |
| 137 printf("Testing: %s\n", html_file.MaybeAsASCII().c_str()); | 167 printf("Testing: %s\n", file_path.MaybeAsASCII().c_str()); |
| 138 | 168 |
| 139 std::string html_contents; | 169 std::string html_contents; |
| 140 base::ReadFileToString(html_file, &html_contents); | 170 base::ReadFileToString(file_path, &html_contents); |
| 141 | 171 |
| 142 // Read the expected file. | 172 // Read the expected file. |
| 143 std::string expected_contents_raw; | 173 std::string expected_contents_raw; |
| 144 base::FilePath expected_file = | 174 base::FilePath expected_file = |
| 145 base::FilePath(html_file.RemoveExtension().value() + | 175 base::FilePath(file_path.RemoveExtension().value() + |
| 146 AccessibilityTreeFormatter::GetExpectedFileSuffix()); | 176 AccessibilityTreeFormatter::GetExpectedFileSuffix()); |
| 147 base::ReadFileToString(expected_file, &expected_contents_raw); | 177 base::ReadFileToString(expected_file, &expected_contents_raw); |
| 148 | 178 |
| 149 // Tolerate Windows-style line endings (\r\n) in the expected file: | 179 // Tolerate Windows-style line endings (\r\n) in the expected file: |
| 150 // normalize by deleting all \r from the file (if any) to leave only \n. | 180 // normalize by deleting all \r from the file (if any) to leave only \n. |
| 151 std::string expected_contents; | 181 std::string expected_contents; |
| 152 base::RemoveChars(expected_contents_raw, "\r", &expected_contents); | 182 base::RemoveChars(expected_contents_raw, "\r", &expected_contents); |
| 153 | 183 |
| 154 if (!expected_contents.compare(0, strlen(kMarkSkipFile), kMarkSkipFile)) { | 184 if (!expected_contents.compare(0, strlen(kMarkSkipFile), kMarkSkipFile)) { |
| 155 printf("Skipping this test on this platform.\n"); | 185 printf("Skipping this test on this platform.\n"); |
| 156 return; | 186 return; |
| 157 } | 187 } |
| 158 | 188 |
| 159 // Parse filters and other directives in the test file. | 189 // Parse filters and other directives in the test file. |
| 160 std::string wait_for; | 190 std::string wait_for; |
| 161 AddDefaultFilters(&filters_); | 191 AddDefaultFilters(&filters_); |
| 162 ParseHtmlForExtraDirectives(html_contents, &filters_, &wait_for); | 192 ParseHtmlForExtraDirectives(html_contents, &filters_, &wait_for); |
| 163 | 193 |
| 164 // Load the page. | 194 // Load the page. |
| 165 base::string16 html_contents16; | 195 base::string16 html_contents16; |
| 166 html_contents16 = base::UTF8ToUTF16(html_contents); | 196 html_contents16 = base::UTF8ToUTF16(html_contents); |
| 167 GURL url = GetTestUrl("accessibility", | 197 GURL url = GetTestUrl(file_dir, file_path.BaseName().MaybeAsASCII().c_str()); |
|
shreeramk
2014/12/19 18:18:27
file_dir is needed to get the test url using GetTe
| |
| 168 html_file.BaseName().MaybeAsASCII().c_str()); | |
| 169 | 198 |
| 170 // If there's a @WAIT-FOR directive, set up an accessibility notification | 199 // If there's a @WAIT-FOR directive, set up an accessibility notification |
| 171 // waiter that returns on any event; we'll stop when we get the text we're | 200 // waiter that returns on any event; we'll stop when we get the text we're |
| 172 // waiting for, or time out. Otherwise just wait specifically for | 201 // waiting for, or time out. Otherwise just wait specifically for |
| 173 // the "load complete" event. | 202 // the "load complete" event. |
| 174 scoped_ptr<AccessibilityNotificationWaiter> waiter; | 203 scoped_ptr<AccessibilityNotificationWaiter> waiter; |
| 175 if (!wait_for.empty()) { | 204 if (!wait_for.empty()) { |
| 176 waiter.reset(new AccessibilityNotificationWaiter( | 205 waiter.reset(new AccessibilityNotificationWaiter( |
| 177 shell(), AccessibilityModeComplete, ui::AX_EVENT_NONE)); | 206 shell(), AccessibilityModeComplete, ui::AX_EVENT_NONE)); |
| 178 } else { | 207 } else { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 228 printf("%1s %4d %s\n", is_diff? kSignalDiff : "", line + 1, | 257 printf("%1s %4d %s\n", is_diff? kSignalDiff : "", line + 1, |
| 229 expected_lines[line].c_str()); | 258 expected_lines[line].c_str()); |
| 230 } | 259 } |
| 231 printf("\nActual\n"); | 260 printf("\nActual\n"); |
| 232 printf("------\n"); | 261 printf("------\n"); |
| 233 printf("%s\n", actual_contents.c_str()); | 262 printf("%s\n", actual_contents.c_str()); |
| 234 } | 263 } |
| 235 | 264 |
| 236 if (!base::PathExists(expected_file)) { | 265 if (!base::PathExists(expected_file)) { |
| 237 base::FilePath actual_file = | 266 base::FilePath actual_file = |
| 238 base::FilePath(html_file.RemoveExtension().value() + | 267 base::FilePath(file_path.RemoveExtension().value() + |
| 239 AccessibilityTreeFormatter::GetActualFileSuffix()); | 268 AccessibilityTreeFormatter::GetActualFileSuffix()); |
| 240 | 269 |
| 241 EXPECT_TRUE(base::WriteFile( | 270 EXPECT_TRUE(base::WriteFile( |
| 242 actual_file, actual_contents.c_str(), actual_contents.size())); | 271 actual_file, actual_contents.c_str(), actual_contents.size())); |
| 243 | 272 |
| 244 ADD_FAILURE() << "No expectation found. Create it by doing:\n" | 273 ADD_FAILURE() << "No expectation found. Create it by doing:\n" |
| 245 << "mv " << actual_file.LossyDisplayName() << " " | 274 << "mv " << actual_file.LossyDisplayName() << " " |
| 246 << expected_file.LossyDisplayName(); | 275 << expected_file.LossyDisplayName(); |
| 247 } | 276 } |
| 248 } | 277 } |
| 249 | 278 |
| 250 } // namespace content | 279 } // namespace content |
| OLD | NEW |