diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-26 00:39:45 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-26 00:39:45 +0000 |
commit | 6dba1dd2efa3ed67bd41312bc682fc12c3c69544 (patch) | |
tree | bfb0bca756ad3e274227d085b82dedda508424fe /rlz/test | |
parent | 4a44f6610eb14a728a22a9dea00d6707d2e616e1 (diff) | |
download | chromium_src-6dba1dd2efa3ed67bd41312bc682fc12c3c69544.zip chromium_src-6dba1dd2efa3ed67bd41312bc682fc12c3c69544.tar.gz chromium_src-6dba1dd2efa3ed67bd41312bc682fc12c3c69544.tar.bz2 |
Revert 144071 - Add a regenerate button to regenerate the password in Windows.
BUG=120480
TEST=Not tested.
Review URL: https://chromiumcodereview.appspot.com/10642009
TBR=zysxqn@google.com
Review URL: https://chromiumcodereview.appspot.com/10659022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144074 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'rlz/test')
-rw-r--r-- | rlz/test/rlz_test_helpers.cc | 86 | ||||
-rw-r--r-- | rlz/test/rlz_test_helpers.h | 33 | ||||
-rw-r--r-- | rlz/test/rlz_unittest_main.cc | 29 |
3 files changed, 148 insertions, 0 deletions
diff --git a/rlz/test/rlz_test_helpers.cc b/rlz/test/rlz_test_helpers.cc new file mode 100644 index 0000000..1a1870a --- /dev/null +++ b/rlz/test/rlz_test_helpers.cc @@ -0,0 +1,86 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Main entry point for all unit tests. + +#include "rlz_test_helpers.h" + +#include "rlz/lib/rlz_lib.h" +#include "testing/gtest/include/gtest/gtest.h" + +#if defined(OS_WIN) +#include <shlwapi.h> +#include "base/win/registry.h" +#include "rlz/win/lib/rlz_lib.h" +#elif defined(OS_MACOSX) +#include "base/file_path.h" +#include "rlz/lib/rlz_value_store.h" +#endif + +#if defined(OS_WIN) +namespace { + +const wchar_t* kHKCUReplacement = L"Software\\Google\\RlzUtilUnittest\\HKCU"; +const wchar_t* kHKLMReplacement = L"Software\\Google\\RlzUtilUnittest\\HKLM"; + +void OverrideRegistryHives() { + // Wipe the keys we redirect to. + // This gives us a stable run, even in the presence of previous + // crashes or failures. + LSTATUS err = SHDeleteKey(HKEY_CURRENT_USER, kHKCUReplacement); + EXPECT_TRUE(err == ERROR_SUCCESS || err == ERROR_FILE_NOT_FOUND); + err = SHDeleteKey(HKEY_CURRENT_USER, kHKLMReplacement); + EXPECT_TRUE(err == ERROR_SUCCESS || err == ERROR_FILE_NOT_FOUND); + + // Create the keys we're redirecting HKCU and HKLM to. + base::win::RegKey hkcu; + base::win::RegKey hklm; + ASSERT_EQ(ERROR_SUCCESS, + hkcu.Create(HKEY_CURRENT_USER, kHKCUReplacement, KEY_READ)); + ASSERT_EQ(ERROR_SUCCESS, + hklm.Create(HKEY_CURRENT_USER, kHKLMReplacement, KEY_READ)); + + rlz_lib::InitializeTempHivesForTesting(hklm, hkcu); + + // And do the switcharoo. + ASSERT_EQ(ERROR_SUCCESS, + ::RegOverridePredefKey(HKEY_CURRENT_USER, hkcu.Handle())); + ASSERT_EQ(ERROR_SUCCESS, + ::RegOverridePredefKey(HKEY_LOCAL_MACHINE, hklm.Handle())); +} + +void UndoOverrideRegistryHives() { + // Undo the redirection. + EXPECT_EQ(ERROR_SUCCESS, ::RegOverridePredefKey(HKEY_CURRENT_USER, NULL)); + EXPECT_EQ(ERROR_SUCCESS, ::RegOverridePredefKey(HKEY_LOCAL_MACHINE, NULL)); +} + +} // namespace +#endif // defined(OS_WIN) + + +void RlzLibTestNoMachineState::SetUp() { +#if defined(OS_WIN) + OverrideRegistryHives(); +#elif defined(OS_MACOSX) + base::mac::ScopedNSAutoreleasePool pool; + ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); + rlz_lib::testing::SetRlzStoreDirectory(temp_dir_.path()); +#endif // defined(OS_WIN) +} + +void RlzLibTestNoMachineState::TearDown() { +#if defined(OS_WIN) + UndoOverrideRegistryHives(); +#elif defined(OS_MACOSX) + rlz_lib::testing::SetRlzStoreDirectory(FilePath()); +#endif // defined(OS_WIN) +} + +void RlzLibTestBase::SetUp() { + RlzLibTestNoMachineState::SetUp(); +#if defined(OS_WIN) + rlz_lib::CreateMachineState(); +#endif // defined(OS_WIN) +} diff --git a/rlz/test/rlz_test_helpers.h b/rlz/test/rlz_test_helpers.h new file mode 100644 index 0000000..66bb525 --- /dev/null +++ b/rlz/test/rlz_test_helpers.h @@ -0,0 +1,33 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Helper functions used by the tests. + +#ifndef RLZ_TEST_RLZ_TEST_HELPERS_H +#define RLZ_TEST_RLZ_TEST_HELPERS_H + +#include "base/compiler_specific.h" +#include "testing/gtest/include/gtest/gtest.h" + +#if defined(OS_MACOSX) +#include "base/scoped_temp_dir.h" +#endif + +class RlzLibTestNoMachineState : public ::testing::Test { + protected: + virtual void SetUp() OVERRIDE; + virtual void TearDown() OVERRIDE; + + +#if defined(OS_MACOSX) + ScopedTempDir temp_dir_; +#endif +}; + +class RlzLibTestBase : public RlzLibTestNoMachineState { + virtual void SetUp() OVERRIDE; +}; + + +#endif // RLZ_TEST_RLZ_TEST_HELPERS_H diff --git a/rlz/test/rlz_unittest_main.cc b/rlz/test/rlz_unittest_main.cc new file mode 100644 index 0000000..8ebbaf8 --- /dev/null +++ b/rlz/test/rlz_unittest_main.cc @@ -0,0 +1,29 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Main entry point for all unit tests. + +#include "base/at_exit.h" +#include "base/command_line.h" +#include "rlz/lib/rlz_lib.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +int main(int argc, char **argv) { + base::AtExitManager at_exit; + CommandLine::Init(argc, argv); + + testing::InitGoogleMock(&argc, argv); + testing::InitGoogleTest(&argc, argv); + + int ret = RUN_ALL_TESTS(); + if (ret == 0) { + // Now re-run all the tests using a supplementary brand code. This brand + // code will remain in effect for the lifetime of the branding object. + rlz_lib::SupplementaryBranding branding("TEST"); + ret = RUN_ALL_TESTS(); + } + + return ret; +} |