Home | History | Annotate | Download | only in webui
      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