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