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