1*635a8641SAndroid Build Coastguard Worker // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #include "base/test/scoped_locale.h" 6*635a8641SAndroid Build Coastguard Worker 7*635a8641SAndroid Build Coastguard Worker #include <locale.h> 8*635a8641SAndroid Build Coastguard Worker 9*635a8641SAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h" 10*635a8641SAndroid Build Coastguard Worker 11*635a8641SAndroid Build Coastguard Worker namespace base { 12*635a8641SAndroid Build Coastguard Worker ScopedLocale(const std::string & locale)13*635a8641SAndroid Build Coastguard WorkerScopedLocale::ScopedLocale(const std::string& locale) { 14*635a8641SAndroid Build Coastguard Worker prev_locale_ = setlocale(LC_ALL, nullptr); 15*635a8641SAndroid Build Coastguard Worker EXPECT_TRUE(setlocale(LC_ALL, locale.c_str()) != nullptr) 16*635a8641SAndroid Build Coastguard Worker << "Failed to set locale: " << locale; 17*635a8641SAndroid Build Coastguard Worker } 18*635a8641SAndroid Build Coastguard Worker ~ScopedLocale()19*635a8641SAndroid Build Coastguard WorkerScopedLocale::~ScopedLocale() { 20*635a8641SAndroid Build Coastguard Worker EXPECT_STREQ(prev_locale_.c_str(), setlocale(LC_ALL, prev_locale_.c_str())); 21*635a8641SAndroid Build Coastguard Worker } 22*635a8641SAndroid Build Coastguard Worker 23*635a8641SAndroid Build Coastguard Worker } // namespace base 24