Index: chrome_frame/test/policy_settings_unittest.cc |
diff --git a/chrome_frame/test/policy_settings_unittest.cc b/chrome_frame/test/policy_settings_unittest.cc |
deleted file mode 100644 |
index 408f6241ca3885b1284d94fc15faada165f15769..0000000000000000000000000000000000000000 |
--- a/chrome_frame/test/policy_settings_unittest.cc |
+++ /dev/null |
@@ -1,276 +0,0 @@ |
-// 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. |
- |
-#include "base/at_exit.h" |
-#include "base/basictypes.h" |
-#include "base/logging.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/strings/stringprintf.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "base/win/registry.h" |
-#include "chrome_frame/policy_settings.h" |
-#include "chrome_frame/test/chrome_frame_test_utils.h" |
-#include "content/public/common/content_switches.h" |
-#include "policy/policy_constants.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using base::ASCIIToWide; |
-using base::win::RegKey; |
-using chrome_frame_test::ScopedVirtualizeHklmAndHkcu; |
- |
-namespace { |
- |
-// A best effort way to zap CF policy entries that may be in the registry. |
-void DeleteChromeFramePolicyEntries(HKEY root) { |
- RegKey key; |
- if (key.Open(root, policy::kRegistryChromePolicyKey, |
- KEY_ALL_ACCESS) == ERROR_SUCCESS) { |
- key.DeleteValue( |
- ASCIIToWide(policy::key::kChromeFrameRendererSettings).c_str()); |
- key.DeleteKey(ASCIIToWide(policy::key::kRenderInChromeFrameList).c_str()); |
- key.DeleteKey(ASCIIToWide(policy::key::kRenderInHostList).c_str()); |
- key.DeleteKey(ASCIIToWide(policy::key::kChromeFrameContentTypes).c_str()); |
- key.DeleteValue(ASCIIToWide(policy::key::kApplicationLocaleValue).c_str()); |
- key.DeleteValue( |
- ASCIIToWide(policy::key::kSuppressChromeFrameTurndownPrompt).c_str()); |
- } |
-} |
- |
-bool InitializePolicyKey(HKEY policy_root, RegKey* policy_key) { |
- EXPECT_EQ(ERROR_SUCCESS, policy_key->Create(policy_root, |
- policy::kRegistryChromePolicyKey, KEY_ALL_ACCESS)); |
- return policy_key->Valid(); |
-} |
- |
-void WritePolicyList(RegKey* policy_key, |
- const wchar_t* list_name, |
- const wchar_t* values[], int count) { |
- DCHECK(policy_key); |
- // Remove any previous settings |
- policy_key->DeleteKey(list_name); |
- |
- RegKey list_key; |
- EXPECT_EQ(ERROR_SUCCESS, list_key.Create(policy_key->Handle(), list_name, |
- KEY_ALL_ACCESS)); |
- for (int i = 0; i < count; ++i) { |
- EXPECT_EQ(ERROR_SUCCESS, |
- list_key.WriteValue(base::StringPrintf(L"%i", i).c_str(), values[i])); |
- } |
-} |
- |
-bool SetRendererSettings(HKEY policy_root, |
- PolicySettings::RendererForUrl renderer, |
- const wchar_t* exclusions[], |
- int exclusion_count) { |
- RegKey policy_key; |
- if (!InitializePolicyKey(policy_root, &policy_key)) |
- return false; |
- |
- policy_key.WriteValue( |
- ASCIIToWide(policy::key::kChromeFrameRendererSettings).c_str(), |
- static_cast<DWORD>(renderer)); |
- |
- std::wstring in_cf(ASCIIToWide(policy::key::kRenderInChromeFrameList)); |
- std::wstring in_host(ASCIIToWide(policy::key::kRenderInHostList)); |
- std::wstring exclusion_list( |
- renderer == PolicySettings::RENDER_IN_CHROME_FRAME ? in_host : in_cf); |
- WritePolicyList(&policy_key, exclusion_list.c_str(), exclusions, |
- exclusion_count); |
- |
- return true; |
-} |
- |
-bool SetCFContentTypes(HKEY policy_root, |
- const wchar_t* content_types[], |
- int count) { |
- RegKey policy_key; |
- if (!InitializePolicyKey(policy_root, &policy_key)) |
- return false; |
- |
- std::wstring type_list(ASCIIToWide(policy::key::kChromeFrameContentTypes)); |
- WritePolicyList(&policy_key, type_list.c_str(), content_types, count); |
- |
- return true; |
-} |
- |
-bool SetCFPolicyString(HKEY policy_root, |
- const char* policy_name, |
- const wchar_t* value) { |
- RegKey policy_key; |
- if (!InitializePolicyKey(policy_root, &policy_key)) |
- return false; |
- |
- std::wstring policy_name_str(ASCIIToWide(policy_name)); |
- EXPECT_EQ(ERROR_SUCCESS, |
- policy_key.WriteValue(policy_name_str.c_str(), value)); |
- return true; |
-} |
- |
-void SetCFPolicyBool(HKEY policy_root, |
- const char* policy_name, |
- bool value) { |
- RegKey policy_key; |
- if (InitializePolicyKey(policy_root, &policy_key)) { |
- std::wstring policy_name_str(ASCIIToWide(policy_name)); |
- EXPECT_EQ(ERROR_SUCCESS, |
- policy_key.WriteValue(policy_name_str.c_str(), value ? 1U : 0U)); |
- } |
-} |
- |
-} // end namespace |
- |
-class PolicySettingsTest : public testing::Test { |
- protected: |
- void SetUp() { |
- ResetPolicySettings(); |
- } |
- |
- void TearDown() { |
- } |
- |
- void ResetPolicySettings() { |
- //at_exit_manager_.ProcessCallbacksNow(); |
- DeleteAllSingletons(); |
- } |
- |
- // This is used to manage life cycle of PolicySettings singleton. |
- // base::ShadowingAtExitManager at_exit_manager_; |
- |
- ScopedVirtualizeHklmAndHkcu registry_virtualization_; |
-}; |
- |
-TEST_F(PolicySettingsTest, RendererForUrl) { |
- const wchar_t* kTestUrls[] = { |
- L"http://www.example.com", |
- L"http://www.pattern.com", |
- L"http://www.test.com" |
- }; |
- const wchar_t* kTestFilters[] = { |
- L"*.example.com", |
- L"*.pattern.com", |
- L"*.test.com" |
- }; |
- const wchar_t kNoMatchUrl[] = L"http://www.chromium.org"; |
- |
- EXPECT_EQ(PolicySettings::RENDERER_NOT_SPECIFIED, |
- PolicySettings::GetInstance()->default_renderer()); |
- EXPECT_EQ(PolicySettings::RENDERER_NOT_SPECIFIED, |
- PolicySettings::GetInstance()->GetRendererForUrl(kNoMatchUrl)); |
- |
- HKEY root[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER }; |
- for (int i = 0; i < arraysize(root); ++i) { |
- EXPECT_TRUE(SetRendererSettings(root[i], |
- PolicySettings::RENDER_IN_CHROME_FRAME, kTestFilters, |
- arraysize(kTestFilters))); |
- |
- ResetPolicySettings(); |
- EXPECT_EQ(PolicySettings::RENDER_IN_CHROME_FRAME, |
- PolicySettings::GetInstance()->GetRendererForUrl(kNoMatchUrl)); |
- for (int j = 0; j < arraysize(kTestUrls); ++j) { |
- EXPECT_EQ(PolicySettings::RENDER_IN_HOST, |
- PolicySettings::GetInstance()->GetRendererForUrl(kTestUrls[j])); |
- } |
- |
- EXPECT_TRUE(SetRendererSettings(root[i], |
- PolicySettings::RENDER_IN_HOST, NULL, 0)); |
- |
- ResetPolicySettings(); |
- EXPECT_EQ(PolicySettings::RENDER_IN_HOST, |
- PolicySettings::GetInstance()->GetRendererForUrl(kNoMatchUrl)); |
- for (int j = 0; j < arraysize(kTestUrls); ++j) { |
- EXPECT_EQ(PolicySettings::RENDER_IN_HOST, |
- PolicySettings::GetInstance()->GetRendererForUrl(kTestUrls[j])); |
- } |
- |
- DeleteChromeFramePolicyEntries(root[i]); |
- } |
-} |
- |
-TEST_F(PolicySettingsTest, RendererForContentType) { |
- EXPECT_EQ(PolicySettings::RENDERER_NOT_SPECIFIED, |
- PolicySettings::GetInstance()->GetRendererForContentType( |
- L"text/xml")); |
- |
- const wchar_t* kTestPolicyContentTypes[] = { |
- L"application/xml", |
- L"text/xml", |
- L"application/pdf", |
- }; |
- |
- HKEY root[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER }; |
- for (int i = 0; i < arraysize(root); ++i) { |
- SetCFContentTypes(root[i], kTestPolicyContentTypes, |
- arraysize(kTestPolicyContentTypes)); |
- ResetPolicySettings(); |
- for (int type = 0; type < arraysize(kTestPolicyContentTypes); ++type) { |
- EXPECT_EQ(PolicySettings::RENDER_IN_CHROME_FRAME, |
- PolicySettings::GetInstance()->GetRendererForContentType( |
- kTestPolicyContentTypes[type])); |
- } |
- |
- EXPECT_EQ(PolicySettings::RENDERER_NOT_SPECIFIED, |
- PolicySettings::GetInstance()->GetRendererForContentType( |
- L"text/html")); |
- |
- DeleteChromeFramePolicyEntries(root[i]); |
- } |
-} |
- |
-TEST_F(PolicySettingsTest, ApplicationLocale) { |
- EXPECT_TRUE(PolicySettings::GetInstance()->ApplicationLocale().empty()); |
- |
- static const wchar_t kTestApplicationLocale[] = L"fr-CA"; |
- |
- HKEY root[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER }; |
- for (int i = 0; i < arraysize(root); ++i) { |
- SetCFPolicyString(root[i], policy::key::kApplicationLocaleValue, |
- kTestApplicationLocale); |
- ResetPolicySettings(); |
- EXPECT_EQ(std::wstring(kTestApplicationLocale), |
- PolicySettings::GetInstance()->ApplicationLocale()); |
- |
- DeleteChromeFramePolicyEntries(root[i]); |
- } |
-} |
- |
-TEST_F(PolicySettingsTest, AdditionalLaunchParameters) { |
- EXPECT_TRUE(PolicySettings::GetInstance()-> |
- AdditionalLaunchParameters().GetProgram().empty()); |
- |
- std::string test_switches("--"); |
- test_switches += switches::kDisableWebKitMediaSource; |
- |
- HKEY root[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER }; |
- for (int i = 0; i < arraysize(root); ++i) { |
- SetCFPolicyString(root[i], policy::key::kAdditionalLaunchParameters, |
- ASCIIToWide(test_switches).c_str()); |
- ResetPolicySettings(); |
- const CommandLine& additional_params = |
- PolicySettings::GetInstance()->AdditionalLaunchParameters(); |
- EXPECT_TRUE(additional_params.HasSwitch( |
- switches::kDisableWebKitMediaSource)); |
- |
- base::FilePath program_path(FILE_PATH_LITERAL("my_chrome.exe")); |
- CommandLine new_cmd_line(program_path); |
- new_cmd_line.AppendArguments(additional_params, false); |
- EXPECT_NE(new_cmd_line.GetProgram(), additional_params.GetProgram()); |
- EXPECT_TRUE(new_cmd_line.HasSwitch(switches::kDisableWebKitMediaSource)); |
- |
- DeleteChromeFramePolicyEntries(root[i]); |
- } |
-} |
- |
-TEST_F(PolicySettingsTest, SuppressTurndownPrompt) { |
- EXPECT_FALSE(PolicySettings::GetInstance()->suppress_turndown_prompt()); |
- |
- HKEY root[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER }; |
- for (int i = 0; i < arraysize(root); ++i) { |
- SetCFPolicyBool(root[i], policy::key::kSuppressChromeFrameTurndownPrompt, |
- true); |
- ResetPolicySettings(); |
- EXPECT_TRUE(PolicySettings::GetInstance()->suppress_turndown_prompt()); |
- |
- DeleteChromeFramePolicyEntries(root[i]); |
- } |
-} |