diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-31 15:05:02 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-31 15:05:02 +0000 |
commit | e67a73f47398a8d89a98abde04f3d4c7695a6d30 (patch) | |
tree | ae5652a01e709405ab8fc3c2887b0b96b38ca490 /chrome_frame/test | |
parent | 22e1168491f768ae6ff20ded07b3063ac5fe34db (diff) | |
download | chromium_src-e67a73f47398a8d89a98abde04f3d4c7695a6d30.zip chromium_src-e67a73f47398a8d89a98abde04f3d4c7695a6d30.tar.gz chromium_src-e67a73f47398a8d89a98abde04f3d4c7695a6d30.tar.bz2 |
When GCF is the default renderer, use Chrome's User-agent header instead of IE's.
TEST=Set IsDefaultRenderer to 1 (REG_DWORD) under the ChromeFrame registry key. Check if the User agent header in requests is the Chrome user agent. Then set the value to 0 and make sure the regular user-agent header is there.
BUG=50788
Review URL: http://codereview.chromium.org/3130016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57991 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/test')
-rw-r--r-- | chrome_frame/test/html_util_unittests.cc | 11 | ||||
-rw-r--r-- | chrome_frame/test/util_unittests.cc | 70 |
2 files changed, 72 insertions, 9 deletions
diff --git a/chrome_frame/test/html_util_unittests.cc b/chrome_frame/test/html_util_unittests.cc index 055ed8b..02b54a4 100644 --- a/chrome_frame/test/html_util_unittests.cc +++ b/chrome_frame/test/html_util_unittests.cc @@ -19,11 +19,12 @@ #include "base/utf_string_conversions.h" #include "net/base/net_util.h" +#include "chrome/browser/automation/url_request_automation_job.h" #include "chrome_frame/chrome_frame_automation.h" #include "chrome_frame/chrome_frame_delegate.h" #include "chrome_frame/html_utils.h" #include "testing/gtest/include/gtest/gtest.h" -#include "chrome/browser/automation/url_request_automation_job.h" +#include "webkit/glue/user_agent.h" const char kChromeFrameUserAgent[] = "chromeframe"; @@ -297,6 +298,14 @@ TEST_F(HtmlUtilUnittest, GetDefaultUserAgentHeaderWithCFTag) { EXPECT_NE(std::string::npos, ua.find(kChromeFrameUserAgent)); } +TEST_F(HtmlUtilUnittest, GetChromeUserAgent) { + std::string chrome_ua; + webkit_glue::BuildUserAgent(false, &chrome_ua); + EXPECT_FALSE(chrome_ua.empty()); + const char* ua = http_utils::GetChromeUserAgent(); + EXPECT_EQ(0, chrome_ua.compare(ua)); +} + TEST_F(HtmlUtilUnittest, GetDefaultUserAgent) { std::string ua(http_utils::GetDefaultUserAgent()); EXPECT_NE(0u, ua.length()); diff --git a/chrome_frame/test/util_unittests.cc b/chrome_frame/test/util_unittests.cc index f8ef22e..8d91434 100644 --- a/chrome_frame/test/util_unittests.cc +++ b/chrome_frame/test/util_unittests.cc @@ -5,6 +5,7 @@ #include "base/file_path.h" #include "base/file_version_info.h" #include "base/file_version_info_win.h" +#include "base/registry.h" #include "chrome_frame/utils.h" #include "testing/gtest/include/gtest/gtest.h" @@ -276,12 +277,65 @@ TEST(UtilTests, CanNavigateTest) { SetConfigBool(kAllowUnsafeURLs, enable_gcf); } -TEST(UtilTests, ParseVersionTest) { - uint32 high = 0, low = 0; - EXPECT_FALSE(ParseVersion(L"", &high, &low)); - EXPECT_TRUE(ParseVersion(L"1", &high, &low) && high == 1 && low == 0); - EXPECT_TRUE(ParseVersion(L"1.", &high, &low) && high == 1 && low == 0); - EXPECT_TRUE(ParseVersion(L"1.2", &high, &low) && high == 1 && low == 2); - EXPECT_TRUE(ParseVersion(L"1.2.3.4", &high, &low) && high == 1 && low == 2); - EXPECT_TRUE(ParseVersion(L"10.20", &high, &low) && high == 10 && low == 20); +TEST(UtilTests, IsDefaultRendererTest) { + RegKey config_key(HKEY_CURRENT_USER, kChromeFrameConfigKey, KEY_ALL_ACCESS); + EXPECT_TRUE(config_key.Valid()); + + DWORD saved_default_renderer = 0; // NOLINT + config_key.ReadValueDW(kEnableGCFRendererByDefault, &saved_default_renderer); + + config_key.DeleteValue(kEnableGCFRendererByDefault); + EXPECT_FALSE(IsGcfDefaultRenderer()); + + config_key.WriteValue(kEnableGCFRendererByDefault, static_cast<DWORD>(0)); + EXPECT_FALSE(IsGcfDefaultRenderer()); + + config_key.WriteValue(kEnableGCFRendererByDefault, static_cast<DWORD>(1)); + EXPECT_TRUE(IsGcfDefaultRenderer()); + + config_key.WriteValue(kEnableGCFRendererByDefault, saved_default_renderer); +} + +TEST(UtilTests, IsOptInUrlTest) { + // Open all the keys we need. + RegKey config_key(HKEY_CURRENT_USER, kChromeFrameConfigKey, KEY_ALL_ACCESS); + EXPECT_TRUE(config_key.Valid()); + RegKey opt_for_gcf(config_key.Handle(), kRenderInGCFUrlList, KEY_ALL_ACCESS); + EXPECT_TRUE(opt_for_gcf.Valid()); + RegKey opt_for_host(config_key.Handle(), kRenderInHostUrlList, + KEY_ALL_ACCESS); + EXPECT_TRUE(opt_for_host.Valid()); + if (!config_key.Valid() || !opt_for_gcf.Valid() || !opt_for_host.Valid()) + return; + + const wchar_t kTestFilter[] = L"*.testing.chromium.org"; + const wchar_t kTestUrl[] = L"www.testing.chromium.org"; + + // Save the current state of the registry. + DWORD saved_default_renderer = 0; + config_key.ReadValueDW(kEnableGCFRendererByDefault, &saved_default_renderer); + + // Make sure the host is the default renderer. + config_key.WriteValue(kEnableGCFRendererByDefault, static_cast<DWORD>(0)); + EXPECT_FALSE(IsGcfDefaultRenderer()); + + opt_for_gcf.DeleteValue(kTestFilter); // Just in case this exists + EXPECT_FALSE(IsOptInUrl(kTestUrl)); + opt_for_gcf.WriteValue(kTestFilter, L""); + EXPECT_TRUE(IsOptInUrl(kTestUrl)); + + // Now set GCF as the default renderer. + config_key.WriteValue(kEnableGCFRendererByDefault, static_cast<DWORD>(1)); + EXPECT_TRUE(IsGcfDefaultRenderer()); + + opt_for_host.DeleteValue(kTestFilter); // Just in case this exists + EXPECT_TRUE(IsOptInUrl(kTestUrl)); + opt_for_host.WriteValue(kTestFilter, L""); + EXPECT_FALSE(IsOptInUrl(kTestUrl)); + + // Cleanup. + opt_for_gcf.DeleteValue(kTestFilter); + opt_for_host.DeleteValue(kTestFilter); + config_key.WriteValue(kEnableGCFRendererByDefault, saved_default_renderer); } + |