OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <windows.h> | 5 #include <windows.h> |
6 #include <atlsecurity.h> | 6 #include <atlsecurity.h> |
7 | 7 |
8 #include "base/win/windows_version.h" | 8 #include "base/win/windows_version.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "sandbox/win/src/sandbox.h" | 10 #include "sandbox/win/src/sandbox.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 | 38 |
39 ::LocalFree(sid_low); | 39 ::LocalFree(sid_low); |
40 | 40 |
41 if (is_low_sid) | 41 if (is_low_sid) |
42 return SBOX_TEST_SUCCEEDED; | 42 return SBOX_TEST_SUCCEEDED; |
43 | 43 |
44 return SBOX_TEST_DENIED; | 44 return SBOX_TEST_DENIED; |
45 } | 45 } |
46 | 46 |
47 TEST(IntegrityLevelTest, TestLowILReal) { | 47 TEST(IntegrityLevelTest, TestLowILReal) { |
48 if (base::win::GetVersion() != base::win::VERSION_VISTA) | |
49 return; | |
50 | 48 |
51 TestRunner runner(JOB_LOCKDOWN, USER_INTERACTIVE, USER_INTERACTIVE); | 49 TestRunner runner(JOB_LOCKDOWN, USER_INTERACTIVE, USER_INTERACTIVE); |
52 | 50 |
53 runner.SetTimeout(INFINITE); | 51 runner.SetTimeout(INFINITE); |
54 | 52 |
55 runner.GetPolicy()->SetAlternateDesktop(true); | 53 runner.GetPolicy()->SetAlternateDesktop(true); |
56 runner.GetPolicy()->SetIntegrityLevel(INTEGRITY_LEVEL_LOW); | 54 runner.GetPolicy()->SetIntegrityLevel(INTEGRITY_LEVEL_LOW); |
57 | 55 |
58 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckIntegrityLevel")); | 56 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckIntegrityLevel")); |
59 | 57 |
60 runner.SetTestState(BEFORE_REVERT); | 58 runner.SetTestState(BEFORE_REVERT); |
61 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckIntegrityLevel")); | 59 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckIntegrityLevel")); |
62 } | 60 } |
63 | 61 |
64 TEST(DelayedIntegrityLevelTest, TestLowILDelayed) { | 62 TEST(DelayedIntegrityLevelTest, TestLowILDelayed) { |
65 if (base::win::GetVersion() != base::win::VERSION_VISTA) | |
66 return; | |
67 | 63 |
68 TestRunner runner(JOB_LOCKDOWN, USER_INTERACTIVE, USER_INTERACTIVE); | 64 TestRunner runner(JOB_LOCKDOWN, USER_INTERACTIVE, USER_INTERACTIVE); |
69 | 65 |
70 runner.SetTimeout(INFINITE); | 66 runner.SetTimeout(INFINITE); |
71 | 67 |
72 runner.GetPolicy()->SetDelayedIntegrityLevel(INTEGRITY_LEVEL_LOW); | 68 runner.GetPolicy()->SetDelayedIntegrityLevel(INTEGRITY_LEVEL_LOW); |
73 | 69 |
74 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckIntegrityLevel")); | 70 EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckIntegrityLevel")); |
75 | 71 |
76 runner.SetTestState(BEFORE_REVERT); | 72 runner.SetTestState(BEFORE_REVERT); |
77 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"CheckIntegrityLevel")); | 73 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"CheckIntegrityLevel")); |
78 } | 74 } |
79 | 75 |
80 TEST(IntegrityLevelTest, TestNoILChange) { | 76 TEST(IntegrityLevelTest, TestNoILChange) { |
81 if (base::win::GetVersion() != base::win::VERSION_VISTA) | |
82 return; | |
83 | 77 |
84 TestRunner runner(JOB_LOCKDOWN, USER_INTERACTIVE, USER_INTERACTIVE); | 78 TestRunner runner(JOB_LOCKDOWN, USER_INTERACTIVE, USER_INTERACTIVE); |
85 | 79 |
86 runner.SetTimeout(INFINITE); | 80 runner.SetTimeout(INFINITE); |
87 | 81 |
88 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"CheckIntegrityLevel")); | 82 EXPECT_EQ(SBOX_TEST_DENIED, runner.RunTest(L"CheckIntegrityLevel")); |
89 } | 83 } |
90 | 84 |
91 } // namespace sandbox | 85 } // namespace sandbox |
OLD | NEW |