Home | History | Annotate | Download | only in browser
      1 // Copyright (c) 2010 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/test/ui/ui_test.h"
      6 
      7 #include "base/environment.h"
      8 #include "build/build_config.h"
      9 
     10 class LocaleTestsBase : public UITest {
     11  public:
     12   LocaleTestsBase() : UITest(), old_lc_all_(NULL) {
     13   }
     14 
     15   virtual void TearDown() {
     16 #if defined(OS_LINUX)
     17     scoped_ptr<base::Environment> env(base::Environment::Create());
     18     if (old_lc_all_) {
     19       env->SetVar("LC_ALL", old_lc_all_);
     20     } else {
     21       env->UnSetVar("LC_ALL");
     22     }
     23 #endif
     24     UITest::TearDown();
     25   }
     26 
     27  protected:
     28   const char* old_lc_all_;
     29 };
     30 
     31 
     32 class LocaleTestsDa : public LocaleTestsBase {
     33  public:
     34   LocaleTestsDa() : LocaleTestsBase() {
     35     launch_arguments_.AppendSwitchASCII("lang", "da");
     36 
     37     // Linux doesn't use --lang, it only uses environment variables to set the
     38     // language.
     39 #if defined(OS_LINUX)
     40     old_lc_all_ = getenv("LC_ALL");
     41     setenv("LC_ALL", "da_DK.UTF-8", 1);
     42 #endif
     43   }
     44 };
     45 
     46 class LocaleTestsHe : public LocaleTestsBase {
     47  public:
     48   LocaleTestsHe() : LocaleTestsBase() {
     49     launch_arguments_.AppendSwitchASCII("lang", "he");
     50 #if defined(OS_LINUX)
     51     old_lc_all_ = getenv("LC_ALL");
     52     setenv("LC_ALL", "he_IL.UTF-8", 1);
     53 #endif
     54   }
     55 };
     56 
     57 class LocaleTestsZhTw : public LocaleTestsBase {
     58  public:
     59   LocaleTestsZhTw() : LocaleTestsBase() {
     60     launch_arguments_.AppendSwitchASCII("lang", "zh-TW");
     61 #if defined(OS_LINUX)
     62     old_lc_all_ = getenv("LC_ALL");
     63     setenv("LC_ALL", "zh_TW.UTF-8", 1);
     64 #endif
     65   }
     66 };
     67 
     68 TEST_F(LocaleTestsDa, TestStart) {
     69   // Just making sure we can start/shutdown cleanly.
     70 }
     71 
     72 TEST_F(LocaleTestsHe, TestStart) {
     73   // Just making sure we can start/shutdown cleanly.
     74 }
     75 
     76 TEST_F(LocaleTestsZhTw, TestStart) {
     77   // Just making sure we can start/shutdown cleanly.
     78 }
     79