scoped_locale.cc 639 B

1234567891011121314151617181920212223
  1. // Copyright (c) 2011 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. #include "base/test/scoped_locale.h"
  5. #include <locale.h>
  6. #include "testing/gtest/include/gtest/gtest.h"
  7. namespace base {
  8. ScopedLocale::ScopedLocale(const std::string& locale) {
  9. prev_locale_ = setlocale(LC_ALL, nullptr);
  10. EXPECT_TRUE(setlocale(LC_ALL, locale.c_str()) != nullptr)
  11. << "Failed to set locale: " << locale;
  12. }
  13. ScopedLocale::~ScopedLocale() {
  14. EXPECT_STREQ(prev_locale_.c_str(), setlocale(LC_ALL, prev_locale_.c_str()));
  15. }
  16. } // namespace base