1 // Copyright (c) 2012 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 "chrome/browser/ui/webui/bidi_checker_web_ui_test.h" 6 7 #include "base/base_paths.h" 8 #include "base/i18n/rtl.h" 9 #include "base/message_loop/message_loop.h" 10 #include "base/path_service.h" 11 #include "base/prefs/pref_service.h" 12 #include "base/strings/utf_string_conversions.h" 13 #include "base/synchronization/waitable_event.h" 14 #include "base/threading/platform_thread.h" 15 #include "base/time/time.h" 16 #include "base/values.h" 17 #include "chrome/browser/autofill/personal_data_manager_factory.h" 18 #include "chrome/browser/history/history_service.h" 19 #include "chrome/browser/history/history_service_factory.h" 20 #include "chrome/browser/prefs/session_startup_pref.h" 21 #include "chrome/browser/profiles/profile.h" 22 #include "chrome/browser/ui/browser.h" 23 #include "chrome/common/url_constants.h" 24 #include "chrome/test/base/ui_test_utils.h" 25 #include "components/autofill/core/browser/autofill_common_test.h" 26 #include "components/autofill/core/browser/autofill_profile.h" 27 #include "components/autofill/core/browser/personal_data_manager.h" 28 #include "content/public/browser/browser_thread.h" 29 #include "ui/base/resource/resource_bundle.h" 30 31 #if defined(TOOLKIT_GTK) 32 #include <gtk/gtk.h> 33 #endif 34 35 using autofill::AutofillProfile; 36 using autofill::PersonalDataManager; 37 38 static const base::FilePath::CharType* kWebUIBidiCheckerLibraryJS = 39 FILE_PATH_LITERAL("third_party/bidichecker/bidichecker_packaged.js"); 40 41 namespace { 42 base::FilePath WebUIBidiCheckerLibraryJSPath() { 43 base::FilePath src_root; 44 if (!PathService::Get(base::DIR_SOURCE_ROOT, &src_root)) 45 LOG(ERROR) << "Couldn't find source root"; 46 return src_root.Append(kWebUIBidiCheckerLibraryJS); 47 } 48 49 // Since synchronization isn't complete for the ResourceBundle class, reload 50 // locale resources on the IO thread. 51 // crbug.com/95425, crbug.com/132752 52 void ReloadLocaleResourcesOnIOThread(const std::string& new_locale) { 53 if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)) { 54 LOG(ERROR) 55 << content::BrowserThread::IO 56 << " != " << base::PlatformThread::CurrentId(); 57 NOTREACHED(); 58 } 59 60 std::string locale; 61 { 62 base::ThreadRestrictions::ScopedAllowIO allow_io_scope; 63 locale.assign( 64 ResourceBundle::GetSharedInstance().ReloadLocaleResources(new_locale)); 65 } 66 ASSERT_FALSE(locale.empty()); 67 } 68 69 // Since synchronization isn't complete for the ResourceBundle class, reload 70 // locale resources on the IO thread. 71 // crbug.com/95425, crbug.com/132752 72 void ReloadLocaleResources(const std::string& new_locale) { 73 content::BrowserThread::PostTaskAndReply( 74 content::BrowserThread::IO, 75 FROM_HERE, 76 base::Bind(&ReloadLocaleResourcesOnIOThread, base::ConstRef(new_locale)), 77 base::MessageLoop::QuitClosure()); 78 content::RunMessageLoop(); 79 } 80 81 } // namespace 82 83 static const base::FilePath::CharType* kBidiCheckerTestsJS = 84 FILE_PATH_LITERAL("bidichecker_tests.js"); 85 86 void WebUIBidiCheckerBrowserTest::SetUp() { 87 argv_ = CommandLine::ForCurrentProcess()->GetArgs(); 88 } 89 90 void WebUIBidiCheckerBrowserTest::TearDown() { 91 // Reset command line to the way it was before the test was run. 92 CommandLine::ForCurrentProcess()->InitFromArgv(argv_); 93 } 94 95 WebUIBidiCheckerBrowserTest::~WebUIBidiCheckerBrowserTest() {} 96 97 WebUIBidiCheckerBrowserTest::WebUIBidiCheckerBrowserTest() {} 98 99 void WebUIBidiCheckerBrowserTest::SetUpInProcessBrowserTestFixture() { 100 WebUIBrowserTest::SetUpInProcessBrowserTestFixture(); 101 WebUIBrowserTest::AddLibrary(WebUIBidiCheckerLibraryJSPath()); 102 WebUIBrowserTest::AddLibrary(base::FilePath(kBidiCheckerTestsJS)); 103 } 104 105 void WebUIBidiCheckerBrowserTest::RunBidiCheckerOnPage( 106 const std::string& page_url, bool is_rtl) { 107 ui_test_utils::NavigateToURL(browser(), GURL(page_url)); 108 ASSERT_TRUE(RunJavascriptTest("runBidiChecker", 109 Value::CreateStringValue(page_url), 110 Value::CreateBooleanValue(is_rtl))); 111 } 112 113 void WebUIBidiCheckerBrowserTestLTR::RunBidiCheckerOnPage( 114 const std::string& page_url) { 115 WebUIBidiCheckerBrowserTest::RunBidiCheckerOnPage(page_url, false); 116 } 117 118 void WebUIBidiCheckerBrowserTestRTL::RunBidiCheckerOnPage( 119 const std::string& page_url) { 120 WebUIBidiCheckerBrowserTest::RunBidiCheckerOnPage(page_url, true); 121 } 122 123 void WebUIBidiCheckerBrowserTestRTL::SetUpOnMainThread() { 124 WebUIBidiCheckerBrowserTest::SetUpOnMainThread(); 125 base::FilePath pak_path; 126 app_locale_ = base::i18n::GetConfiguredLocale(); 127 ASSERT_TRUE(PathService::Get(base::FILE_MODULE, &pak_path)); 128 pak_path = pak_path.DirName(); 129 pak_path = pak_path.AppendASCII("pseudo_locales"); 130 pak_path = pak_path.AppendASCII("fake-bidi"); 131 pak_path = pak_path.ReplaceExtension(FILE_PATH_LITERAL("pak")); 132 ResourceBundle::GetSharedInstance().OverrideLocalePakForTest(pak_path); 133 ReloadLocaleResources("he"); 134 base::i18n::SetICUDefaultLocale("he"); 135 #if defined(OS_POSIX) && defined(TOOLKIT_GTK) 136 gtk_widget_set_default_direction(GTK_TEXT_DIR_RTL); 137 #endif 138 } 139 140 void WebUIBidiCheckerBrowserTestRTL::CleanUpOnMainThread() { 141 WebUIBidiCheckerBrowserTest::CleanUpOnMainThread(); 142 #if defined(OS_POSIX) && defined(TOOLKIT_GTK) 143 gtk_widget_set_default_direction(GTK_TEXT_DIR_LTR); 144 #endif 145 146 base::i18n::SetICUDefaultLocale(app_locale_); 147 ResourceBundle::GetSharedInstance().OverrideLocalePakForTest( 148 base::FilePath()); 149 ReloadLocaleResources(app_locale_); 150 } 151 152 // Tests 153 154 //============================== 155 // chrome://settings/history 156 //============================== 157 158 static void SetupHistoryPageTest(Browser* browser, 159 const std::string page_url, 160 const std::string page_title) { 161 HistoryService* history_service = HistoryServiceFactory::GetForProfile( 162 browser->profile(), Profile::IMPLICIT_ACCESS); 163 const GURL history_url = GURL(page_url); 164 history_service->AddPage( 165 history_url, base::Time::Now(), history::SOURCE_BROWSED); 166 history_service->SetPageTitle(history_url, UTF8ToUTF16(page_title)); 167 } 168 169 // TODO(estade): fix this test: http://crbug.com/119595 170 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 171 TestHistoryPage) { 172 // Test an Israeli news site with a Hebrew title. 173 SetupHistoryPageTest(browser(), 174 "http://www.ynet.co.il", 175 "\xD7\x91\xD7\x93\xD7\x99\xD7\xA7\xD7\x94\x21"); 176 RunBidiCheckerOnPage(chrome::kChromeUIHistoryFrameURL); 177 } 178 179 // TODO(estade): fix this test: http://crbug.com/119595 180 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 181 TestHistoryPage) { 182 SetupHistoryPageTest(browser(), "http://www.google.com", "Google"); 183 RunBidiCheckerOnPage(chrome::kChromeUIHistoryFrameURL); 184 } 185 186 //============================== 187 // chrome://about 188 //============================== 189 190 // This page isn't localized to an RTL language so we test it only in English. 191 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestAboutPage) { 192 RunBidiCheckerOnPage(chrome::kChromeUIAboutURL); 193 } 194 195 //============================== 196 // chrome://bugreport 197 //============================== 198 199 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestFeedbackPage) { 200 // The bugreport page receives its contents as GET arguments. Here we provide 201 // a custom, Hebrew typed, description message. 202 RunBidiCheckerOnPage( 203 "chrome://feedback?session_id=1&tab_index=0&description=%D7%91%D7%93%D7%99%D7%A7%D7%94"); 204 } 205 206 // Test disabled because it is flaky (http://crbug.com/134434) 207 #if defined(OS_CHROMEOS) 208 #define MAYBE_TestFeedbackPage DISABLED_TestFeedbackPage 209 #else 210 #define MAYBE_TestFeedbackPage TestFeedbackPage 211 #endif 212 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, MAYBE_TestFeedbackPage) { 213 RunBidiCheckerOnPage("chrome://feedback?session_id=1&tab_index=0&description=test"); 214 } 215 216 //============================== 217 // chrome://crashes 218 //============================== 219 220 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestCrashesPage) { 221 RunBidiCheckerOnPage(chrome::kChromeUICrashesURL); 222 } 223 224 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestCrashesPage) { 225 RunBidiCheckerOnPage(chrome::kChromeUICrashesURL); 226 } 227 228 //============================== 229 // chrome://downloads 230 //============================== 231 232 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 233 TestDownloadsPageLTR) { 234 RunBidiCheckerOnPage(chrome::kChromeUIDownloadsURL); 235 } 236 237 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 238 TestDownloadsPageRTL) { 239 RunBidiCheckerOnPage(chrome::kChromeUIDownloadsURL); 240 } 241 242 //============================== 243 // chrome://newtab 244 //============================== 245 246 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestNewTabPage) { 247 RunBidiCheckerOnPage(chrome::kChromeUINewTabURL); 248 } 249 250 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestNewTabPage) { 251 RunBidiCheckerOnPage(chrome::kChromeUINewTabURL); 252 } 253 254 //============================== 255 // chrome://plugins 256 //============================== 257 258 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestPluginsPage) { 259 RunBidiCheckerOnPage(chrome::kChromeUIPluginsURL); 260 } 261 262 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestPluginsPage) { 263 RunBidiCheckerOnPage(chrome::kChromeUIPluginsURL); 264 } 265 266 //============================== 267 // chrome://settings-frame 268 //============================== 269 270 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestSettingsPage) { 271 RunBidiCheckerOnPage(chrome::kChromeUISettingsFrameURL); 272 } 273 274 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestSettingsPage) { 275 RunBidiCheckerOnPage(chrome::kChromeUISettingsFrameURL); 276 } 277 278 static void SetupSettingsAutofillPageTest(Profile* profile, 279 const char* first_name, 280 const char* middle_name, 281 const char* last_name, 282 const char* email, 283 const char* company, 284 const char* address1, 285 const char* address2, 286 const char* city, 287 const char* state, 288 const char* zipcode, 289 const char* country, 290 const char* phone) { 291 autofill::test::DisableSystemServices(profile); 292 AutofillProfile autofill_profile; 293 autofill::test::SetProfileInfo(&autofill_profile, 294 first_name, 295 middle_name, 296 last_name, 297 email, 298 company, 299 address1, 300 address2, 301 city, 302 state, 303 zipcode, 304 country, 305 phone); 306 PersonalDataManager* personal_data_manager = 307 autofill::PersonalDataManagerFactory::GetForProfile(profile); 308 ASSERT_TRUE(personal_data_manager); 309 personal_data_manager->AddProfile(autofill_profile); 310 } 311 312 // http://crbug.com/94642 313 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 314 DISABLED_TestSettingsAutofillPage) { 315 SetupSettingsAutofillPageTest(browser()->profile(), 316 "\xD7\x9E\xD7\xA9\xD7\x94", 317 "\xD7\x91", 318 "\xD7\x9B\xD7\x94\xD7\x9F", 319 "moshe.b.cohen (at) biditest.com", 320 "\xD7\x91\xD7\x93\xD7\x99\xD7\xA7\xD7\x94\x20" 321 "\xD7\x91\xD7\xA2\xD7\x9E", 322 "\xD7\x93\xD7\xA8\xD7\x9A\x20\xD7\x9E\xD7\xA0" 323 "\xD7\x97\xD7\x9D\x20\xD7\x91\xD7\x92\xD7" 324 "\x99\xD7\x9F\x20\x32\x33", 325 "\xD7\xA7\xD7\x95\xD7\x9E\xD7\x94\x20\x32\x36", 326 "\xD7\xAA\xD7\x9C\x20\xD7\x90\xD7\x91\xD7\x99" 327 "\xD7\x91", 328 "", 329 "66183", 330 "\xD7\x99\xD7\xA9\xD7\xA8\xD7\x90\xD7\x9C", 331 "0000"); 332 std::string url(chrome::kChromeUISettingsFrameURL); 333 url += std::string(chrome::kAutofillSubPage); 334 RunBidiCheckerOnPage(url); 335 } 336 337 // http://crbug.com/94642 338 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 339 DISABLED_TestSettingsAutofillPage) { 340 SetupSettingsAutofillPageTest(browser()->profile(), 341 "Milton", 342 "C.", 343 "Waddams", 344 "red.swingline (at) initech.com", 345 "Initech", 346 "4120 Freidrich Lane", 347 "Basement", 348 "Austin", 349 "Texas", 350 "78744", 351 "United States", 352 "5125551234"); 353 std::string url(chrome::kChromeUISettingsFrameURL); 354 url += std::string(chrome::kAutofillSubPage); 355 RunBidiCheckerOnPage(url); 356 } 357 358 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 359 TestSettingsClearBrowserDataPage) { 360 std::string url(chrome::kChromeUISettingsFrameURL); 361 url += std::string(chrome::kClearBrowserDataSubPage); 362 RunBidiCheckerOnPage(url); 363 } 364 365 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 366 TestSettingsClearBrowserDataPage) { 367 std::string url(chrome::kChromeUISettingsFrameURL); 368 url += std::string(chrome::kClearBrowserDataSubPage); 369 RunBidiCheckerOnPage(url); 370 } 371 372 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 373 TestSettingsContentSettingsPage) { 374 std::string url(chrome::kChromeUISettingsFrameURL); 375 url += std::string(chrome::kContentSettingsSubPage); 376 RunBidiCheckerOnPage(url); 377 } 378 379 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 380 TestSettingsContentSettingsPage) { 381 std::string url(chrome::kChromeUISettingsFrameURL); 382 url += std::string(chrome::kContentSettingsSubPage); 383 RunBidiCheckerOnPage(url); 384 } 385 386 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 387 TestSettingsContentSettingsExceptionsPage) { 388 std::string url(chrome::kChromeUISettingsFrameURL); 389 url += std::string(chrome::kContentSettingsExceptionsSubPage); 390 RunBidiCheckerOnPage(url); 391 } 392 393 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 394 TestSettingsContentSettingsExceptionsPage) { 395 std::string url(chrome::kChromeUISettingsFrameURL); 396 url += std::string(chrome::kContentSettingsExceptionsSubPage); 397 RunBidiCheckerOnPage(url); 398 } 399 400 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 401 TestSettingsLanguageOptionsPage) { 402 std::string url(chrome::kChromeUISettingsFrameURL); 403 url += std::string(chrome::kLanguageOptionsSubPage); 404 RunBidiCheckerOnPage(url); 405 } 406 407 #if defined(OS_WIN) 408 // Times out on Windows. http://crbug.com/171938 409 #define MAYBE_TestSettingsLanguageOptionsPage \ 410 DISABLED_TestSettingsLanguageOptionsPage 411 #else 412 #define MAYBE_TestSettingsLanguageOptionsPage TestSettingsLanguageOptionsPage 413 #endif 414 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 415 MAYBE_TestSettingsLanguageOptionsPage) { 416 std::string url(chrome::kChromeUISettingsFrameURL); 417 url += std::string(chrome::kLanguageOptionsSubPage); 418 RunBidiCheckerOnPage(url); 419 } 420 421 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 422 TestSettingsSearchEnginesOptionsPage) { 423 std::string url(chrome::kChromeUISettingsFrameURL); 424 url += std::string(chrome::kSearchEnginesSubPage); 425 RunBidiCheckerOnPage(url); 426 } 427 428 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 429 TestSettingsSearchEnginesOptionsPage) { 430 std::string url(chrome::kChromeUISettingsFrameURL); 431 url += std::string(chrome::kSearchEnginesSubPage); 432 RunBidiCheckerOnPage(url); 433 } 434 435 //=================================== 436 // chrome://settings-frame/startup 437 //=================================== 438 439 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 440 TestSettingsFrameStartup) { 441 std::string url(chrome::kChromeUISettingsFrameURL); 442 url += "startup"; 443 RunBidiCheckerOnPage(url); 444 } 445 446 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 447 TestSettingsFrameStartup) { 448 std::string url(chrome::kChromeUISettingsFrameURL); 449 url += "startup"; 450 RunBidiCheckerOnPage(url); 451 } 452 453 //=================================== 454 // chrome://settings-frame/importData 455 //=================================== 456 457 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 458 TestSettingsFrameImportData) { 459 std::string url(chrome::kChromeUISettingsFrameURL); 460 url += chrome::kImportDataSubPage; 461 RunBidiCheckerOnPage(url); 462 } 463 464 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 465 TestSettingsFrameImportData) { 466 std::string url(chrome::kChromeUISettingsFrameURL); 467 url += chrome::kImportDataSubPage; 468 RunBidiCheckerOnPage(url); 469 } 470 471 //======================================== 472 // chrome://settings-frame/manageProfile 473 //======================================== 474 475 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 476 TestSettingsFrameMangageProfile) { 477 std::string url(chrome::kChromeUISettingsFrameURL); 478 url += chrome::kManageProfileSubPage; 479 RunBidiCheckerOnPage(url); 480 } 481 482 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 483 TestSettingsFrameMangageProfile) { 484 std::string url(chrome::kChromeUISettingsFrameURL); 485 url += chrome::kManageProfileSubPage; 486 RunBidiCheckerOnPage(url); 487 } 488 489 //=================================================== 490 // chrome://settings-frame/contentExceptions#cookies 491 //=================================================== 492 493 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 494 TestSettingsFrameContentExceptionsCookies) { 495 std::string url(chrome::kChromeUISettingsFrameURL); 496 url += chrome::kContentSettingsExceptionsSubPage; 497 url += "#cookies"; 498 RunBidiCheckerOnPage(url); 499 } 500 501 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 502 TestSettingsFrameContentExceptionsCookies) { 503 std::string url(chrome::kChromeUISettingsFrameURL); 504 url += chrome::kContentSettingsExceptionsSubPage; 505 url += "#cookies"; 506 RunBidiCheckerOnPage(url); 507 } 508 509 //=================================================== 510 // chrome://settings-frame/contentExceptions#images 511 //=================================================== 512 513 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 514 TestSettingsFrameContentExceptionsImages) { 515 std::string url(chrome::kChromeUISettingsFrameURL); 516 url += chrome::kContentSettingsExceptionsSubPage; 517 url += "#images"; 518 RunBidiCheckerOnPage(url); 519 } 520 521 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 522 TestSettingsFrameContentExceptionsImages) { 523 std::string url(chrome::kChromeUISettingsFrameURL); 524 url += chrome::kContentSettingsExceptionsSubPage; 525 url += "#images"; 526 RunBidiCheckerOnPage(url); 527 } 528 529 //====================================================== 530 // chrome://settings-frame/contentExceptions#javascript 531 //====================================================== 532 533 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 534 TestSettingsFrameContentExceptionsJavascript) { 535 std::string url(chrome::kChromeUISettingsFrameURL); 536 url += chrome::kContentSettingsExceptionsSubPage; 537 url += "#javascript"; 538 RunBidiCheckerOnPage(url); 539 } 540 541 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 542 TestSettingsFrameContentExceptionsJavascript) { 543 std::string url(chrome::kChromeUISettingsFrameURL); 544 url += chrome::kContentSettingsExceptionsSubPage; 545 url += "#javascript"; 546 RunBidiCheckerOnPage(url); 547 } 548 549 //=================================================== 550 // chrome://settings-frame/contentExceptions#plugins 551 //=================================================== 552 553 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 554 TestSettingsFrameContentExceptionsPlugins) { 555 std::string url(chrome::kChromeUISettingsFrameURL); 556 url += chrome::kContentSettingsExceptionsSubPage; 557 url += "#plugins"; 558 RunBidiCheckerOnPage(url); 559 } 560 561 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 562 TestSettingsFrameContentExceptionsPlugins) { 563 std::string url(chrome::kChromeUISettingsFrameURL); 564 url += chrome::kContentSettingsExceptionsSubPage; 565 url += "#plugins"; 566 RunBidiCheckerOnPage(url); 567 } 568 569 //=================================================== 570 // chrome://settings-frame/contentExceptions#popups 571 //=================================================== 572 573 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 574 TestSettingsFrameContentExceptionsPopups) { 575 std::string url(chrome::kChromeUISettingsFrameURL); 576 url += chrome::kContentSettingsExceptionsSubPage; 577 url += "#popups"; 578 RunBidiCheckerOnPage(url); 579 } 580 581 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 582 TestSettingsFrameContentExceptionsPopups) { 583 std::string url(chrome::kChromeUISettingsFrameURL); 584 url += chrome::kContentSettingsExceptionsSubPage; 585 url += "#popups"; 586 RunBidiCheckerOnPage(url); 587 } 588 589 //=================================================== 590 // chrome://settings-frame/contentExceptions#location 591 //=================================================== 592 593 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 594 TestSettingsFrameContentExceptionsLocation) { 595 std::string url(chrome::kChromeUISettingsFrameURL); 596 url += chrome::kContentSettingsExceptionsSubPage; 597 url += "#location"; 598 RunBidiCheckerOnPage(url); 599 } 600 601 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 602 TestSettingsFrameContentExceptionsLocation) { 603 std::string url(chrome::kChromeUISettingsFrameURL); 604 url += chrome::kContentSettingsExceptionsSubPage; 605 url += "#location"; 606 RunBidiCheckerOnPage(url); 607 } 608 609 //=================================================== 610 // chrome://settings-frame/contentExceptions#notifications 611 //=================================================== 612 613 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 614 TestSettingsFrameContentExceptionsNotifications) { 615 std::string url(chrome::kChromeUISettingsFrameURL); 616 url += chrome::kContentSettingsExceptionsSubPage; 617 url += "#notifications"; 618 RunBidiCheckerOnPage(url); 619 } 620 621 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 622 TestSettingsFrameContentExceptionsNotifications) { 623 std::string url(chrome::kChromeUISettingsFrameURL); 624 url += chrome::kContentSettingsExceptionsSubPage; 625 url += "#notifications"; 626 RunBidiCheckerOnPage(url); 627 } 628 629 //=================================================== 630 // chrome://settings-frame/contentExceptions#mouselock 631 //=================================================== 632 633 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 634 TestSettingsFrameContentExceptionsMouseLock) { 635 std::string url(chrome::kChromeUISettingsFrameURL); 636 url += chrome::kContentSettingsExceptionsSubPage; 637 url += "#mouselock"; 638 RunBidiCheckerOnPage(url); 639 } 640 641 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 642 TestSettingsFrameContentExceptionsMouseLock) { 643 std::string url(chrome::kChromeUISettingsFrameURL); 644 url += chrome::kContentSettingsExceptionsSubPage; 645 url += "#mouselock"; 646 RunBidiCheckerOnPage(url); 647 } 648 649 //======================================== 650 // chrome://settings-frame/handlers 651 //======================================== 652 653 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 654 TestSettingsFrameHandler) { 655 std::string url(chrome::kChromeUISettingsFrameURL); 656 url += chrome::kHandlerSettingsSubPage; 657 RunBidiCheckerOnPage(url); 658 } 659 660 // Fails on chromeos. http://crbug.com/125367 661 #if defined(OS_CHROMEOS) 662 #define MAYBE_TestSettingsFrameHandler DISABLED_TestSettingsFrameHandler 663 #else 664 #define MAYBE_TestSettingsFrameHandler TestSettingsFrameHandler 665 #endif 666 667 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 668 MAYBE_TestSettingsFrameHandler) { 669 std::string url(chrome::kChromeUISettingsFrameURL); 670 url += chrome::kHandlerSettingsSubPage; 671 RunBidiCheckerOnPage(url); 672 } 673 674 //======================================== 675 // chrome://settings-frame/cookies 676 //======================================== 677 678 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 679 TestSettingsFrameCookies) { 680 std::string url(chrome::kChromeUISettingsFrameURL); 681 url += "cookies"; 682 RunBidiCheckerOnPage(url); 683 } 684 685 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 686 TestSettingsFrameCookies) { 687 std::string url(chrome::kChromeUISettingsFrameURL); 688 url += "cookies"; 689 RunBidiCheckerOnPage(url); 690 } 691 692 //======================================== 693 // chrome://settings-frame/passwords 694 //======================================== 695 696 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 697 TestSettingsFramePasswords) { 698 std::string url(chrome::kChromeUISettingsFrameURL); 699 url += "passwords"; 700 RunBidiCheckerOnPage(url); 701 } 702 703 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 704 TestSettingsFramePasswords) { 705 std::string url(chrome::kChromeUISettingsFrameURL); 706 url += "passwords"; 707 RunBidiCheckerOnPage(url); 708 } 709 710 //======================================== 711 // chrome://settings-frame/fonts 712 //======================================== 713 714 #if defined(OS_MACOSX) 715 #define MAYBE_TestSettingsFrameFonts DISABLED_TestSettingsFrameFonts 716 #else 717 #define MAYBE_TestSettingsFrameFonts TestSettingsFrameFonts 718 #endif 719 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, 720 MAYBE_TestSettingsFrameFonts) { 721 std::string url(chrome::kChromeUISettingsFrameURL); 722 url += "fonts"; 723 RunBidiCheckerOnPage(url); 724 } 725 726 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 727 TestSettingsFrameFonts) { 728 std::string url(chrome::kChromeUISettingsFrameURL); 729 url += "fonts"; 730 RunBidiCheckerOnPage(url); 731 } 732 733 // Test other uber iframes. 734 735 //============================== 736 // chrome://extensions-frame 737 //============================== 738 739 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestExtensionsFrame) { 740 RunBidiCheckerOnPage(chrome::kChromeUIExtensionsFrameURL); 741 } 742 743 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, 744 TestExtensionsFrame) { 745 RunBidiCheckerOnPage(chrome::kChromeUIExtensionsFrameURL); 746 } 747 748 //============================== 749 // chrome://help-frame 750 //============================== 751 752 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestHelpFrame) { 753 RunBidiCheckerOnPage(chrome::kChromeUIHelpFrameURL); 754 } 755 756 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestHelpFrame) { 757 RunBidiCheckerOnPage(chrome::kChromeUIHelpFrameURL); 758 } 759 760 //============================== 761 // chrome://history-frame 762 //============================== 763 764 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestHistoryFrame) { 765 RunBidiCheckerOnPage(chrome::kChromeUIHistoryFrameURL); 766 } 767 768 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestHistoryFrame) { 769 RunBidiCheckerOnPage(chrome::kChromeUIHistoryFrameURL); 770 } 771