• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)35 TEST(BaseWinUtilTest, TestIsUACEnabled) {
36   if (GetVersion() >= base::win::VERSION_VISTA) {
37     UserAccountControlIsEnabled();
38   } else {
39     EXPECT_TRUE(UserAccountControlIsEnabled());
40   }
41 }
42 
TEST(BaseWinUtilTest,TestGetUserSidString)43 TEST(BaseWinUtilTest, TestGetUserSidString) {
44   std::wstring user_sid;
45   EXPECT_TRUE(GetUserSidString(&user_sid));
46   EXPECT_TRUE(!user_sid.empty());
47 }
48 
TEST(BaseWinUtilTest,TestGetNonClientMetrics)49 TEST(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