summaryrefslogtreecommitdiffstats
path: root/rlz/test
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-26 00:39:45 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-26 00:39:45 +0000
commit6dba1dd2efa3ed67bd41312bc682fc12c3c69544 (patch)
treebfb0bca756ad3e274227d085b82dedda508424fe /rlz/test
parent4a44f6610eb14a728a22a9dea00d6707d2e616e1 (diff)
downloadchromium_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.cc86
-rw-r--r--rlz/test/rlz_test_helpers.h33
-rw-r--r--rlz/test/rlz_unittest_main.cc29
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;
+}