- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / bidi_checker_web_ui_test.cc
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://crashes
197 //==============================
198
199 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestCrashesPage) {
200   RunBidiCheckerOnPage(chrome::kChromeUICrashesURL);
201 }
202
203 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestCrashesPage) {
204   RunBidiCheckerOnPage(chrome::kChromeUICrashesURL);
205 }
206
207 //==============================
208 // chrome://downloads
209 //==============================
210
211 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
212                        TestDownloadsPageLTR) {
213   RunBidiCheckerOnPage(chrome::kChromeUIDownloadsURL);
214 }
215
216 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
217                        TestDownloadsPageRTL) {
218   RunBidiCheckerOnPage(chrome::kChromeUIDownloadsURL);
219 }
220
221 //==============================
222 // chrome://newtab
223 //==============================
224
225 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestNewTabPage) {
226   RunBidiCheckerOnPage(chrome::kChromeUINewTabURL);
227 }
228
229 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestNewTabPage) {
230   RunBidiCheckerOnPage(chrome::kChromeUINewTabURL);
231 }
232
233 //==============================
234 // chrome://plugins
235 //==============================
236
237 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestPluginsPage) {
238   RunBidiCheckerOnPage(chrome::kChromeUIPluginsURL);
239 }
240
241 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestPluginsPage) {
242   RunBidiCheckerOnPage(chrome::kChromeUIPluginsURL);
243 }
244
245 //==============================
246 // chrome://settings-frame
247 //==============================
248
249 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestSettingsPage) {
250   RunBidiCheckerOnPage(chrome::kChromeUISettingsFrameURL);
251 }
252
253 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestSettingsPage) {
254   RunBidiCheckerOnPage(chrome::kChromeUISettingsFrameURL);
255 }
256
257 static void SetupSettingsAutofillPageTest(Profile* profile,
258                                           const char* first_name,
259                                           const char* middle_name,
260                                           const char* last_name,
261                                           const char* email,
262                                           const char* company,
263                                           const char* address1,
264                                           const char* address2,
265                                           const char* city,
266                                           const char* state,
267                                           const char* zipcode,
268                                           const char* country,
269                                           const char* phone) {
270   autofill::test::DisableSystemServices(profile);
271   AutofillProfile autofill_profile;
272   autofill::test::SetProfileInfo(&autofill_profile,
273                                  first_name,
274                                  middle_name,
275                                  last_name,
276                                  email,
277                                  company,
278                                  address1,
279                                  address2,
280                                  city,
281                                  state,
282                                  zipcode,
283                                  country,
284                                  phone);
285   PersonalDataManager* personal_data_manager =
286       autofill::PersonalDataManagerFactory::GetForProfile(profile);
287   ASSERT_TRUE(personal_data_manager);
288   personal_data_manager->AddProfile(autofill_profile);
289 }
290
291 // http://crbug.com/94642
292 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
293                        DISABLED_TestSettingsAutofillPage) {
294   SetupSettingsAutofillPageTest(browser()->profile(),
295                                 "\xD7\x9E\xD7\xA9\xD7\x94",
296                                 "\xD7\x91",
297                                 "\xD7\x9B\xD7\x94\xD7\x9F",
298                                 "moshe.b.cohen@biditest.com",
299                                 "\xD7\x91\xD7\x93\xD7\x99\xD7\xA7\xD7\x94\x20"
300                                 "\xD7\x91\xD7\xA2\xD7\x9E",
301                                 "\xD7\x93\xD7\xA8\xD7\x9A\x20\xD7\x9E\xD7\xA0"
302                                 "\xD7\x97\xD7\x9D\x20\xD7\x91\xD7\x92\xD7"
303                                 "\x99\xD7\x9F\x20\x32\x33",
304                                 "\xD7\xA7\xD7\x95\xD7\x9E\xD7\x94\x20\x32\x36",
305                                 "\xD7\xAA\xD7\x9C\x20\xD7\x90\xD7\x91\xD7\x99"
306                                 "\xD7\x91",
307                                 "",
308                                 "66183",
309                                 "\xD7\x99\xD7\xA9\xD7\xA8\xD7\x90\xD7\x9C",
310                                 "0000");
311   std::string url(chrome::kChromeUISettingsFrameURL);
312   url += std::string(chrome::kAutofillSubPage);
313   RunBidiCheckerOnPage(url);
314 }
315
316 // http://crbug.com/94642
317 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
318                        DISABLED_TestSettingsAutofillPage) {
319   SetupSettingsAutofillPageTest(browser()->profile(),
320                                 "Milton",
321                                 "C.",
322                                 "Waddams",
323                                 "red.swingline@initech.com",
324                                 "Initech",
325                                 "4120 Freidrich Lane",
326                                 "Basement",
327                                 "Austin",
328                                 "Texas",
329                                 "78744",
330                                 "United States",
331                                 "5125551234");
332   std::string url(chrome::kChromeUISettingsFrameURL);
333   url += std::string(chrome::kAutofillSubPage);
334   RunBidiCheckerOnPage(url);
335 }
336
337 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
338                        TestSettingsClearBrowserDataPage) {
339   std::string url(chrome::kChromeUISettingsFrameURL);
340   url += std::string(chrome::kClearBrowserDataSubPage);
341   RunBidiCheckerOnPage(url);
342 }
343
344 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
345                        TestSettingsClearBrowserDataPage) {
346   std::string url(chrome::kChromeUISettingsFrameURL);
347   url += std::string(chrome::kClearBrowserDataSubPage);
348   RunBidiCheckerOnPage(url);
349 }
350
351 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
352                        TestSettingsContentSettingsPage) {
353   std::string url(chrome::kChromeUISettingsFrameURL);
354   url += std::string(chrome::kContentSettingsSubPage);
355   RunBidiCheckerOnPage(url);
356 }
357
358 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
359                        TestSettingsContentSettingsPage) {
360   std::string url(chrome::kChromeUISettingsFrameURL);
361   url += std::string(chrome::kContentSettingsSubPage);
362   RunBidiCheckerOnPage(url);
363 }
364
365 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
366                        TestSettingsContentSettingsExceptionsPage) {
367   std::string url(chrome::kChromeUISettingsFrameURL);
368   url += std::string(chrome::kContentSettingsExceptionsSubPage);
369   RunBidiCheckerOnPage(url);
370 }
371
372 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
373                        TestSettingsContentSettingsExceptionsPage) {
374   std::string url(chrome::kChromeUISettingsFrameURL);
375   url += std::string(chrome::kContentSettingsExceptionsSubPage);
376   RunBidiCheckerOnPage(url);
377 }
378
379 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
380                        TestSettingsLanguageOptionsPage) {
381   std::string url(chrome::kChromeUISettingsFrameURL);
382   url += std::string(chrome::kLanguageOptionsSubPage);
383   RunBidiCheckerOnPage(url);
384 }
385
386 #if defined(OS_WIN)
387 // Times out on Windows. http://crbug.com/171938
388 #define MAYBE_TestSettingsLanguageOptionsPage \
389     DISABLED_TestSettingsLanguageOptionsPage
390 #else
391 #define MAYBE_TestSettingsLanguageOptionsPage TestSettingsLanguageOptionsPage
392 #endif
393 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
394                        MAYBE_TestSettingsLanguageOptionsPage) {
395   std::string url(chrome::kChromeUISettingsFrameURL);
396   url += std::string(chrome::kLanguageOptionsSubPage);
397   RunBidiCheckerOnPage(url);
398 }
399
400 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
401                        TestSettingsSearchEnginesOptionsPage) {
402   std::string url(chrome::kChromeUISettingsFrameURL);
403   url += std::string(chrome::kSearchEnginesSubPage);
404   RunBidiCheckerOnPage(url);
405 }
406
407 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
408                        TestSettingsSearchEnginesOptionsPage) {
409   std::string url(chrome::kChromeUISettingsFrameURL);
410   url += std::string(chrome::kSearchEnginesSubPage);
411   RunBidiCheckerOnPage(url);
412 }
413
414 //===================================
415 // chrome://settings-frame/startup
416 //===================================
417
418 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
419                        TestSettingsFrameStartup) {
420   std::string url(chrome::kChromeUISettingsFrameURL);
421   url += "startup";
422   RunBidiCheckerOnPage(url);
423 }
424
425 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
426                        TestSettingsFrameStartup) {
427   std::string url(chrome::kChromeUISettingsFrameURL);
428   url += "startup";
429   RunBidiCheckerOnPage(url);
430 }
431
432 //===================================
433 // chrome://settings-frame/importData
434 //===================================
435
436 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
437                        TestSettingsFrameImportData) {
438   std::string url(chrome::kChromeUISettingsFrameURL);
439   url += chrome::kImportDataSubPage;
440   RunBidiCheckerOnPage(url);
441 }
442
443 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
444                        TestSettingsFrameImportData) {
445   std::string url(chrome::kChromeUISettingsFrameURL);
446   url += chrome::kImportDataSubPage;
447   RunBidiCheckerOnPage(url);
448 }
449
450 //========================================
451 // chrome://settings-frame/manageProfile
452 //========================================
453
454 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
455                        TestSettingsFrameMangageProfile) {
456   std::string url(chrome::kChromeUISettingsFrameURL);
457   url += chrome::kManageProfileSubPage;
458   RunBidiCheckerOnPage(url);
459 }
460
461 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
462                        TestSettingsFrameMangageProfile) {
463   std::string url(chrome::kChromeUISettingsFrameURL);
464   url += chrome::kManageProfileSubPage;
465   RunBidiCheckerOnPage(url);
466 }
467
468 //===================================================
469 // chrome://settings-frame/contentExceptions#cookies
470 //===================================================
471
472 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
473                        TestSettingsFrameContentExceptionsCookies) {
474   std::string url(chrome::kChromeUISettingsFrameURL);
475   url += chrome::kContentSettingsExceptionsSubPage;
476   url += "#cookies";
477   RunBidiCheckerOnPage(url);
478 }
479
480 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
481                        TestSettingsFrameContentExceptionsCookies) {
482   std::string url(chrome::kChromeUISettingsFrameURL);
483   url += chrome::kContentSettingsExceptionsSubPage;
484   url += "#cookies";
485   RunBidiCheckerOnPage(url);
486 }
487
488 //===================================================
489 // chrome://settings-frame/contentExceptions#images
490 //===================================================
491
492 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
493                        TestSettingsFrameContentExceptionsImages) {
494   std::string url(chrome::kChromeUISettingsFrameURL);
495   url += chrome::kContentSettingsExceptionsSubPage;
496   url += "#images";
497   RunBidiCheckerOnPage(url);
498 }
499
500 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
501                        TestSettingsFrameContentExceptionsImages) {
502   std::string url(chrome::kChromeUISettingsFrameURL);
503   url += chrome::kContentSettingsExceptionsSubPage;
504   url += "#images";
505   RunBidiCheckerOnPage(url);
506 }
507
508 //======================================================
509 // chrome://settings-frame/contentExceptions#javascript
510 //======================================================
511
512 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
513                        TestSettingsFrameContentExceptionsJavascript) {
514   std::string url(chrome::kChromeUISettingsFrameURL);
515   url += chrome::kContentSettingsExceptionsSubPage;
516   url += "#javascript";
517   RunBidiCheckerOnPage(url);
518 }
519
520 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
521                        TestSettingsFrameContentExceptionsJavascript) {
522   std::string url(chrome::kChromeUISettingsFrameURL);
523   url += chrome::kContentSettingsExceptionsSubPage;
524   url += "#javascript";
525   RunBidiCheckerOnPage(url);
526 }
527
528 //===================================================
529 // chrome://settings-frame/contentExceptions#plugins
530 //===================================================
531
532 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
533                        TestSettingsFrameContentExceptionsPlugins) {
534   std::string url(chrome::kChromeUISettingsFrameURL);
535   url += chrome::kContentSettingsExceptionsSubPage;
536   url += "#plugins";
537   RunBidiCheckerOnPage(url);
538 }
539
540 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
541                        TestSettingsFrameContentExceptionsPlugins) {
542   std::string url(chrome::kChromeUISettingsFrameURL);
543   url += chrome::kContentSettingsExceptionsSubPage;
544   url += "#plugins";
545   RunBidiCheckerOnPage(url);
546 }
547
548 //===================================================
549 // chrome://settings-frame/contentExceptions#popups
550 //===================================================
551
552 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
553                        TestSettingsFrameContentExceptionsPopups) {
554   std::string url(chrome::kChromeUISettingsFrameURL);
555   url += chrome::kContentSettingsExceptionsSubPage;
556   url += "#popups";
557   RunBidiCheckerOnPage(url);
558 }
559
560 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
561                        TestSettingsFrameContentExceptionsPopups) {
562   std::string url(chrome::kChromeUISettingsFrameURL);
563   url += chrome::kContentSettingsExceptionsSubPage;
564   url += "#popups";
565   RunBidiCheckerOnPage(url);
566 }
567
568 //===================================================
569 // chrome://settings-frame/contentExceptions#location
570 //===================================================
571
572 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
573                        TestSettingsFrameContentExceptionsLocation) {
574   std::string url(chrome::kChromeUISettingsFrameURL);
575   url += chrome::kContentSettingsExceptionsSubPage;
576   url += "#location";
577   RunBidiCheckerOnPage(url);
578 }
579
580 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
581                        TestSettingsFrameContentExceptionsLocation) {
582   std::string url(chrome::kChromeUISettingsFrameURL);
583   url += chrome::kContentSettingsExceptionsSubPage;
584   url += "#location";
585   RunBidiCheckerOnPage(url);
586 }
587
588 //===================================================
589 // chrome://settings-frame/contentExceptions#notifications
590 //===================================================
591
592 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
593                        TestSettingsFrameContentExceptionsNotifications) {
594   std::string url(chrome::kChromeUISettingsFrameURL);
595   url += chrome::kContentSettingsExceptionsSubPage;
596   url += "#notifications";
597   RunBidiCheckerOnPage(url);
598 }
599
600 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
601                        TestSettingsFrameContentExceptionsNotifications) {
602   std::string url(chrome::kChromeUISettingsFrameURL);
603   url += chrome::kContentSettingsExceptionsSubPage;
604   url += "#notifications";
605   RunBidiCheckerOnPage(url);
606 }
607
608 //===================================================
609 // chrome://settings-frame/contentExceptions#mouselock
610 //===================================================
611
612 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
613                        TestSettingsFrameContentExceptionsMouseLock) {
614   std::string url(chrome::kChromeUISettingsFrameURL);
615   url += chrome::kContentSettingsExceptionsSubPage;
616   url += "#mouselock";
617   RunBidiCheckerOnPage(url);
618 }
619
620 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
621                        TestSettingsFrameContentExceptionsMouseLock) {
622   std::string url(chrome::kChromeUISettingsFrameURL);
623   url += chrome::kContentSettingsExceptionsSubPage;
624   url += "#mouselock";
625   RunBidiCheckerOnPage(url);
626 }
627
628 //========================================
629 // chrome://settings-frame/handlers
630 //========================================
631
632 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
633                        TestSettingsFrameHandler) {
634   std::string url(chrome::kChromeUISettingsFrameURL);
635   url += chrome::kHandlerSettingsSubPage;
636   RunBidiCheckerOnPage(url);
637 }
638
639 // Fails on chromeos. http://crbug.com/125367
640 #if defined(OS_CHROMEOS)
641 #define MAYBE_TestSettingsFrameHandler DISABLED_TestSettingsFrameHandler
642 #else
643 #define MAYBE_TestSettingsFrameHandler TestSettingsFrameHandler
644 #endif
645
646 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
647                        MAYBE_TestSettingsFrameHandler) {
648   std::string url(chrome::kChromeUISettingsFrameURL);
649   url += chrome::kHandlerSettingsSubPage;
650   RunBidiCheckerOnPage(url);
651 }
652
653 //========================================
654 // chrome://settings-frame/cookies
655 //========================================
656
657 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
658                        TestSettingsFrameCookies) {
659   std::string url(chrome::kChromeUISettingsFrameURL);
660   url += "cookies";
661   RunBidiCheckerOnPage(url);
662 }
663
664 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
665                        TestSettingsFrameCookies) {
666   std::string url(chrome::kChromeUISettingsFrameURL);
667   url += "cookies";
668   RunBidiCheckerOnPage(url);
669 }
670
671 //========================================
672 // chrome://settings-frame/passwords
673 //========================================
674
675 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
676                        TestSettingsFramePasswords) {
677   std::string url(chrome::kChromeUISettingsFrameURL);
678   url += "passwords";
679   RunBidiCheckerOnPage(url);
680 }
681
682 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
683                        TestSettingsFramePasswords) {
684   std::string url(chrome::kChromeUISettingsFrameURL);
685   url += "passwords";
686   RunBidiCheckerOnPage(url);
687 }
688
689 //========================================
690 // chrome://settings-frame/fonts
691 //========================================
692
693 #if defined(OS_MACOSX)
694 #define MAYBE_TestSettingsFrameFonts DISABLED_TestSettingsFrameFonts
695 #else
696 #define MAYBE_TestSettingsFrameFonts TestSettingsFrameFonts
697 #endif
698 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR,
699                        MAYBE_TestSettingsFrameFonts) {
700   std::string url(chrome::kChromeUISettingsFrameURL);
701   url += "fonts";
702   RunBidiCheckerOnPage(url);
703 }
704
705 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
706                        TestSettingsFrameFonts) {
707   std::string url(chrome::kChromeUISettingsFrameURL);
708   url += "fonts";
709   RunBidiCheckerOnPage(url);
710 }
711
712 // Test other uber iframes.
713
714 //==============================
715 // chrome://extensions-frame
716 //==============================
717
718 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestExtensionsFrame) {
719   RunBidiCheckerOnPage(chrome::kChromeUIExtensionsFrameURL);
720 }
721
722 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL,
723                        TestExtensionsFrame) {
724   RunBidiCheckerOnPage(chrome::kChromeUIExtensionsFrameURL);
725 }
726
727 //==============================
728 // chrome://help-frame
729 //==============================
730
731 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestHelpFrame) {
732   RunBidiCheckerOnPage(chrome::kChromeUIHelpFrameURL);
733 }
734
735 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestHelpFrame) {
736   RunBidiCheckerOnPage(chrome::kChromeUIHelpFrameURL);
737 }
738
739 //==============================
740 // chrome://history-frame
741 //==============================
742
743 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestLTR, TestHistoryFrame) {
744   RunBidiCheckerOnPage(chrome::kChromeUIHistoryFrameURL);
745 }
746
747 IN_PROC_BROWSER_TEST_F(WebUIBidiCheckerBrowserTestRTL, TestHistoryFrame) {
748   RunBidiCheckerOnPage(chrome::kChromeUIHistoryFrameURL);
749 }