13345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/test/ui/ui_test.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/environment.h" 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "build/build_config.h" 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass LocaleTestsBase : public UITest { 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch LocaleTestsBase() : UITest(), old_lc_all_(NULL) { 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch virtual void TearDown() { 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_LINUX) 173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick scoped_ptr<base::Environment> env(base::Environment::Create()); 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch if (old_lc_all_) { 193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick env->SetVar("LC_ALL", old_lc_all_); 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } else { 213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick env->UnSetVar("LC_ALL"); 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 24513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch UITest::TearDown(); 25513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch } 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 27513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch protected: 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const char* old_lc_all_; 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass LocaleTestsDa : public LocaleTestsBase { 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch LocaleTestsDa() : LocaleTestsBase() { 353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick launch_arguments_.AppendSwitchASCII("lang", "da"); 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Linux doesn't use --lang, it only uses environment variables to set the 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // language. 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_LINUX) 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch old_lc_all_ = getenv("LC_ALL"); 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch setenv("LC_ALL", "da_DK.UTF-8", 1); 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass LocaleTestsHe : public LocaleTestsBase { 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch LocaleTestsHe() : LocaleTestsBase() { 493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick launch_arguments_.AppendSwitchASCII("lang", "he"); 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_LINUX) 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch old_lc_all_ = getenv("LC_ALL"); 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch setenv("LC_ALL", "he_IL.UTF-8", 1); 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass LocaleTestsZhTw : public LocaleTestsBase { 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch LocaleTestsZhTw() : LocaleTestsBase() { 603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick launch_arguments_.AppendSwitchASCII("lang", "zh-TW"); 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#if defined(OS_LINUX) 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch old_lc_all_ = getenv("LC_ALL"); 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch setenv("LC_ALL", "zh_TW.UTF-8", 1); 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch } 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 68c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(LocaleTestsDa, TestStart) { 69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Just making sure we can start/shutdown cleanly. 70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(LocaleTestsHe, TestStart) { 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Just making sure we can start/shutdown cleanly. 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 76c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(LocaleTestsZhTw, TestStart) { 77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Just making sure we can start/shutdown cleanly. 78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 79