Port Android relocation packer to chromium build
[chromium-blink-merge.git] / base / win / win_util_unittest.cc
blob24141cd68a03022af0af7dc1abf9c81d2e68802f
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.
5 #include <windows.h>
7 #include "base/basictypes.h"
8 #include "base/strings/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"
13 namespace base {
14 namespace win {
16 namespace {
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:
22 ThreadLocaleSaver() : original_locale_id_(GetThreadLocale()) {}
23 ~ThreadLocaleSaver() { SetThreadLocale(original_locale_id_); }
25 private:
26 LCID original_locale_id_;
28 DISALLOW_COPY_AND_ASSIGN(ThreadLocaleSaver);
31 } // namespace
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.
35 TEST(BaseWinUtilTest, TestIsUACEnabled) {
36 if (GetVersion() >= base::win::VERSION_VISTA) {
37 UserAccountControlIsEnabled();
38 } else {
39 EXPECT_TRUE(UserAccountControlIsEnabled());
43 TEST(BaseWinUtilTest, TestGetUserSidString) {
44 std::wstring user_sid;
45 EXPECT_TRUE(GetUserSidString(&user_sid));
46 EXPECT_TRUE(!user_sid.empty());
49 TEST(BaseWinUtilTest, TestGetNonClientMetrics) {
50 NONCLIENTMETRICS_XP metrics = {0};
51 GetNonClientMetrics(&metrics);
52 EXPECT_GT(metrics.cbSize, 0u);
53 EXPECT_GT(metrics.iScrollWidth, 0);
54 EXPECT_GT(metrics.iScrollHeight, 0);
57 } // namespace win
58 } // namespace base