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 <windows.h> 6 7 #include "base/basictypes.h" 8 #include "base/string_util.h" 9 #include "base/win/win_util.h" 10 #include "base/win/windows_version.h" 11 #include "testing/gtest/include/gtest/gtest.h" 12 13 namespace base { 14 namespace win { 15 16 namespace { 17 18 // Saves the current thread's locale ID when initialized, and restores it when 19 // the instance is going out of scope. 20 class ThreadLocaleSaver { 21 public: ThreadLocaleSaver()22 ThreadLocaleSaver() : original_locale_id_(GetThreadLocale()) {} ~ThreadLocaleSaver()23 ~ThreadLocaleSaver() { SetThreadLocale(original_locale_id_); } 24 25 private: 26 LCID original_locale_id_; 27 28 DISALLOW_COPY_AND_ASSIGN(ThreadLocaleSaver); 29 }; 30 31 } // namespace 32 33 // The test is somewhat silly, because the Vista bots some have UAC enabled 34 // and some have it disabled. At least we check that it does not crash. TEST(BaseWinUtilTest,TestIsUACEnabled)35TEST(BaseWinUtilTest, TestIsUACEnabled) { 36 if (GetVersion() >= base::win::VERSION_VISTA) { 37 UserAccountControlIsEnabled(); 38 } else { 39 EXPECT_TRUE(UserAccountControlIsEnabled()); 40 } 41 } 42 TEST(BaseWinUtilTest,TestGetUserSidString)43TEST(BaseWinUtilTest, TestGetUserSidString) { 44 std::wstring user_sid; 45 EXPECT_TRUE(GetUserSidString(&user_sid)); 46 EXPECT_TRUE(!user_sid.empty()); 47 } 48 TEST(BaseWinUtilTest,TestGetNonClientMetrics)49TEST(BaseWinUtilTest, TestGetNonClientMetrics) { 50 NONCLIENTMETRICS metrics = {0}; 51 GetNonClientMetrics(&metrics); 52 EXPECT_TRUE(metrics.cbSize > 0); 53 EXPECT_TRUE(metrics.iScrollWidth > 0); 54 EXPECT_TRUE(metrics.iScrollHeight > 0); 55 } 56 57 } // namespace win 58 } // namespace base 59