Index: goopdate/cred_dialog_unittest.cc |
diff --git a/goopdate/cred_dialog_unittest.cc b/goopdate/cred_dialog_unittest.cc |
deleted file mode 100644 |
index d848bf3c1d377647066f6cf1957b861275df506a..0000000000000000000000000000000000000000 |
--- a/goopdate/cred_dialog_unittest.cc |
+++ /dev/null |
@@ -1,154 +0,0 @@ |
-// Copyright 2009 Google Inc. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// ======================================================================== |
- |
-#include "omaha/base/constants.h" |
-#include "omaha/base/omaha_version.h" |
-#include "omaha/base/scoped_impersonation.h" |
-#include "omaha/goopdate/cred_dialog.h" |
-#include "omaha/testing/unit_test.h" |
- |
-namespace omaha { |
- |
-class CredentialDialogTest : public testing::Test { |
- protected: |
- explicit CredentialDialogTest(bool is_machine) |
- : is_machine_(is_machine) {} |
- |
- virtual void SetUp() { |
- } |
- |
- virtual void TearDown() { |
- } |
- |
- virtual bool ShouldRunTest() { |
- if (IsEnvironmentVariableSet(_T("OMAHA_TEST_UI"))) { |
- return true; |
- } else { |
- std::wcout << _T("\tThis test did not run because 'OMAHA_TEST_UI' is ") |
- _T("not set in the environment.") << std::endl; |
- return false; |
- } |
- } |
- |
- virtual void TestComObject(LPCTSTR server, LPCTSTR caption) { |
- REFCLSID clsid = is_machine_ ? __uuidof(CredentialDialogMachineClass) |
- : __uuidof(CredentialDialogUserClass); |
- CComPtr<ICredentialDialog> dialog; |
- EXPECT_SUCCEEDED(dialog.CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER)); |
- if (dialog) { |
- CComBSTR server_bs(server); |
- CComBSTR caption_bs(caption); |
- CComBSTR user; |
- CComBSTR pass; |
- EXPECT_SUCCEEDED(dialog->QueryUserForCredentials(0, |
- server_bs, |
- caption_bs, |
- &user, |
- &pass)); |
- } |
- } |
- |
- virtual void TestAuto(LPCTSTR server, LPCTSTR caption) { |
- CString user; |
- CString pass; |
- EXPECT_SUCCEEDED(LaunchCredentialDialog(is_machine_, |
- NULL, |
- CString(server), |
- CString(caption), |
- &user, |
- &pass)); |
- } |
- |
- // TestAutoImpersonating() assumes that omaha_unittest.exe is being executed |
- // as LocalSystem; it will fail otherwise. |
- virtual void TestAutoImpersonating(LPCTSTR server, LPCTSTR caption) { |
- EXPECT_SUCCEEDED(InitializeClientSecurity()); |
- |
- // Manually load the COM proxy into the process before we start; it will |
- // assert on DLL load if we load it while impersonating. (PSMachine should |
- // always be loaded already in a production environment; this is just an |
- // artifact of the unit test environment.) |
- CPath proxy_path(goopdate_utils::BuildInstallDirectory( |
- is_machine_, omaha::GetVersionString())); |
- EXPECT_TRUE(proxy_path.Append(kPSFileNameMachine)); |
- scoped_library psmachine_load(::LoadLibrary(proxy_path)); |
- EXPECT_TRUE(!!psmachine_load); |
- |
- scoped_handle logged_on_user_token( |
- goopdate_utils::GetImpersonationTokenForMachineProcess(is_machine_)); |
- EXPECT_TRUE(valid(logged_on_user_token)); |
- if (valid(logged_on_user_token)) { |
- scoped_impersonation impersonate_user(get(logged_on_user_token)); |
- HRESULT hr = HRESULT_FROM_WIN32(impersonate_user.result()); |
- EXPECT_SUCCEEDED(hr); |
- if (SUCCEEDED(hr)) { |
- TestAuto(server, caption); |
- } |
- } |
- } |
- |
- const bool is_machine_; |
- |
- private: |
- DISALLOW_IMPLICIT_CONSTRUCTORS(CredentialDialogTest); |
-}; |
- |
-class CredentialDialogMachineTest : public CredentialDialogTest { |
- protected: |
- CredentialDialogMachineTest() : CredentialDialogTest(true) {} |
-}; |
- |
-class CredentialDialogUserTest : public CredentialDialogTest { |
- protected: |
- CredentialDialogUserTest() : CredentialDialogTest(false) {} |
-}; |
- |
-TEST_F(CredentialDialogUserTest, COM) { |
- if (ShouldRunTest()) { |
- TestComObject(_T("test-u-com-server"), _T("test-u-com-caption")); |
- } |
-} |
- |
-TEST_F(CredentialDialogUserTest, Auto) { |
- if (ShouldRunTest()) { |
- TestAuto(_T("test-u-auto-server"), _T("test-u-auto-caption")); |
- } |
-} |
- |
-TEST_F(CredentialDialogMachineTest, COM) { |
- if (ShouldRunTest()) { |
- TestComObject(_T("test-m-com-server"), _T("test-m-com-caption")); |
- } |
-} |
- |
-TEST_F(CredentialDialogMachineTest, Auto) { |
- if (ShouldRunTest()) { |
- TestAuto(_T("test-m-auto-server"), _T("test-m-auto-caption")); |
- } |
-} |
- |
-TEST_F(CredentialDialogMachineTest, Impersonating) { |
- bool is_system = false; |
- EXPECT_SUCCEEDED(IsSystemProcess(&is_system)); |
- if (!is_system) { |
- std::wcout << _T("\tThis test is only meaningful when the unit test is ") |
- _T("run as the SYSTEM account.") << std::endl; |
- } else { |
- TestAutoImpersonating(_T("test-m-imp-server"), _T("test-m-imp-caption")); |
- } |
-} |
- |
-} // end namespace omaha |
- |