Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5766)

Unified Diff: chrome/installer/util/delete_reg_key_work_item_unittest.cc

Issue 8176008: Merge 101684 - Added CopyRegKeyWorkItem in support of IE low rights policy fixes. (Closed) Base URL: svn://svn.chromium.org/chrome/branches/835/src/
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/installer/util/delete_reg_key_work_item.cc ('k') | chrome/installer/util/registry_key_backup.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/installer/util/delete_reg_key_work_item_unittest.cc
===================================================================
--- chrome/installer/util/delete_reg_key_work_item_unittest.cc (revision 104337)
+++ chrome/installer/util/delete_reg_key_work_item_unittest.cc (working copy)
@@ -8,85 +8,59 @@
#include "base/memory/scoped_ptr.h"
#include "base/win/registry.h"
#include "chrome/installer/util/delete_reg_key_work_item.h"
+#include "chrome/installer/util/registry_test_data.h"
#include "chrome/installer/util/work_item.h"
#include "testing/gtest/include/gtest/gtest.h"
using base::win::RegKey;
-namespace {
-wchar_t test_root[] = L"SOFTWARE\\TmpTmp";
-}
-
class DeleteRegKeyWorkItemTest : public testing::Test {
protected:
- virtual void SetUp() {
- // Create a temporary key for testing
- RegKey key(HKEY_CURRENT_USER, L"", KEY_ALL_ACCESS);
- key.DeleteKey(test_root);
- ASSERT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, test_root, KEY_READ));
- ASSERT_EQ(ERROR_SUCCESS, key.Create(HKEY_CURRENT_USER, test_root,
- KEY_READ));
+ static void TearDownTestCase() {
+ logging::CloseLogFile();
}
- virtual void TearDown() {
- logging::CloseLogFile();
- // Clean up the temporary key
- RegKey key(HKEY_CURRENT_USER, L"", KEY_ALL_ACCESS);
- ASSERT_EQ(ERROR_SUCCESS, key.DeleteKey(test_root));
+ virtual void SetUp() {
+ ASSERT_TRUE(test_data_.Initialize(HKEY_CURRENT_USER, L"SOFTWARE\\TmpTmp"));
}
+
+ RegistryTestData test_data_;
};
// Test that deleting a key that doesn't exist succeeds, and that rollback does
// nothing.
TEST_F(DeleteRegKeyWorkItemTest, TestNoKey) {
+ const std::wstring key_paths[] = {
+ std::wstring(test_data_.base_path() + L"\\NoKeyHere"),
+ std::wstring(test_data_.base_path() + L"\\NoKeyHere\\OrHere")
+ };
RegKey key;
- std::wstring key_name(std::wstring(test_root) + L"\\NoKeyHere");
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_READ));
- scoped_ptr<DeleteRegKeyWorkItem> item(
- WorkItem::CreateDeleteRegKeyWorkItem(HKEY_CURRENT_USER, key_name));
- EXPECT_TRUE(item->Do());
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_READ));
- item->Rollback();
- item.reset();
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_READ));
+ for (size_t i = 0; i < arraysize(key_paths); ++i) {
+ const std::wstring& key_path = key_paths[i];
+ scoped_ptr<DeleteRegKeyWorkItem> item(
+ WorkItem::CreateDeleteRegKeyWorkItem(test_data_.root_key(), key_path));
+ EXPECT_TRUE(item->Do());
+ EXPECT_NE(ERROR_SUCCESS, key.Open(test_data_.root_key(), key_path.c_str(),
+ KEY_READ));
+ item->Rollback();
+ item.reset();
+ EXPECT_NE(ERROR_SUCCESS, key.Open(test_data_.root_key(), key_path.c_str(),
+ KEY_READ));
+ }
}
-// Test that deleting a subkey of a key that doesn't exist succeeds, and that
-// rollback does nothing.
-TEST_F(DeleteRegKeyWorkItemTest, TestNoSubkey) {
- RegKey key;
- std::wstring key_name(std::wstring(test_root) + L"\\NoKeyHere\\OrHere");
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_READ));
- scoped_ptr<DeleteRegKeyWorkItem> item(
- WorkItem::CreateDeleteRegKeyWorkItem(HKEY_CURRENT_USER, key_name));
- EXPECT_TRUE(item->Do());
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_READ));
- item->Rollback();
- item.reset();
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_READ));
-}
-
// Test that deleting an empty key succeeds, and that rollback brings it back.
TEST_F(DeleteRegKeyWorkItemTest, TestEmptyKey) {
RegKey key;
- std::wstring key_name(std::wstring(test_root) + L"\\EmptyKey");
- EXPECT_EQ(ERROR_SUCCESS, key.Create(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_WRITE));
- key.Close();
+ const std::wstring& key_path = test_data_.empty_key_path();
scoped_ptr<DeleteRegKeyWorkItem> item(
- WorkItem::CreateDeleteRegKeyWorkItem(HKEY_CURRENT_USER, key_name));
+ WorkItem::CreateDeleteRegKeyWorkItem(test_data_.root_key(), key_path));
EXPECT_TRUE(item->Do());
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
+ EXPECT_NE(ERROR_SUCCESS, key.Open(test_data_.root_key(), key_path.c_str(),
KEY_READ));
item->Rollback();
item.reset();
- EXPECT_EQ(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
+ EXPECT_EQ(ERROR_SUCCESS, key.Open(test_data_.root_key(), key_path.c_str(),
KEY_READ));
}
@@ -94,29 +68,15 @@
// brings them all back.
TEST_F(DeleteRegKeyWorkItemTest, TestNonEmptyKey) {
RegKey key;
- std::wstring key_name(std::wstring(test_root) + L"\\NonEmptyKey");
- EXPECT_EQ(ERROR_SUCCESS, key.Create(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_WRITE));
- EXPECT_EQ(ERROR_SUCCESS, key.WriteValue(NULL, key_name.c_str()));
- EXPECT_EQ(ERROR_SUCCESS, key.CreateKey(L"Subkey", KEY_WRITE));
- EXPECT_EQ(ERROR_SUCCESS, key.WriteValue(L"SomeValue", 1U));
- key.Close();
+ const std::wstring& key_path = test_data_.non_empty_key_path();
scoped_ptr<DeleteRegKeyWorkItem> item(
- WorkItem::CreateDeleteRegKeyWorkItem(HKEY_CURRENT_USER, key_name));
+ WorkItem::CreateDeleteRegKeyWorkItem(test_data_.root_key(), key_path));
EXPECT_TRUE(item->Do());
- EXPECT_NE(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
+ EXPECT_NE(ERROR_SUCCESS, key.Open(test_data_.root_key(), key_path.c_str(),
KEY_READ));
item->Rollback();
item.reset();
- EXPECT_EQ(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
- KEY_READ));
- std::wstring str_value;
- EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(NULL, &str_value));
- EXPECT_EQ(key_name, str_value);
- EXPECT_EQ(ERROR_SUCCESS, key.OpenKey(L"Subkey", KEY_READ));
- DWORD dw_value = 0;
- EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(L"SomeValue", &dw_value));
- EXPECT_EQ(1U, dw_value);
+ test_data_.ExpectMatchesNonEmptyKey(test_data_.root_key(), key_path.c_str());
}
// Test that deleting a key with subkeys we can't delete fails, and that
@@ -125,8 +85,8 @@
// http://crbug.com/74654
TEST_F(DeleteRegKeyWorkItemTest, DISABLED_TestUndeletableKey) {
RegKey key;
- std::wstring key_name(std::wstring(test_root) + L"\\UndeletableKey");
- EXPECT_EQ(ERROR_SUCCESS, key.Create(HKEY_CURRENT_USER, key_name.c_str(),
+ std::wstring key_name(test_data_.base_path() + L"\\UndeletableKey");
+ EXPECT_EQ(ERROR_SUCCESS, key.Create(test_data_.root_key(), key_name.c_str(),
KEY_WRITE));
EXPECT_EQ(ERROR_SUCCESS, key.WriteValue(NULL, key_name.c_str()));
DWORD dw_value = 1;
@@ -153,13 +113,13 @@
subkey.Close();
key.Close();
scoped_ptr<DeleteRegKeyWorkItem> item(
- WorkItem::CreateDeleteRegKeyWorkItem(HKEY_CURRENT_USER, key_name));
+ WorkItem::CreateDeleteRegKeyWorkItem(test_data_.root_key(), key_name));
EXPECT_FALSE(item->Do());
- EXPECT_EQ(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
+ EXPECT_EQ(ERROR_SUCCESS, key.Open(test_data_.root_key(), key_name.c_str(),
KEY_QUERY_VALUE));
item->Rollback();
item.reset();
- EXPECT_EQ(ERROR_SUCCESS, key.Open(HKEY_CURRENT_USER, key_name.c_str(),
+ EXPECT_EQ(ERROR_SUCCESS, key.Open(test_data_.root_key(), key_name.c_str(),
KEY_QUERY_VALUE));
std::wstring str_value;
EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(NULL, &str_value));
« no previous file with comments | « chrome/installer/util/delete_reg_key_work_item.cc ('k') | chrome/installer/util/registry_key_backup.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698