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 10class 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 32class 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 46class 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 57class 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 68TEST_F(LocaleTestsDa, TestStart) { 69 // Just making sure we can start/shutdown cleanly. 70} 71 72TEST_F(LocaleTestsHe, TestStart) { 73 // Just making sure we can start/shutdown cleanly. 74} 75 76TEST_F(LocaleTestsZhTw, TestStart) { 77 // Just making sure we can start/shutdown cleanly. 78} 79