- add sources.
[platform/framework/web/crosswalk.git] / src / base / win / win_util_unittest.cc
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/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"
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:
22   ThreadLocaleSaver() : original_locale_id_(GetThreadLocale()) {}
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.
35 TEST(BaseWinUtilTest, TestIsUACEnabled) {
36   if (GetVersion() >= base::win::VERSION_VISTA) {
37     UserAccountControlIsEnabled();
38   } else {
39     EXPECT_TRUE(UserAccountControlIsEnabled());
40   }
41 }
42
43 TEST(BaseWinUtilTest, TestGetUserSidString) {
44   std::wstring user_sid;
45   EXPECT_TRUE(GetUserSidString(&user_sid));
46   EXPECT_TRUE(!user_sid.empty());
47 }
48
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