summaryrefslogtreecommitdiffstats
path: root/chrome_frame/test
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-31 15:05:02 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-31 15:05:02 +0000
commite67a73f47398a8d89a98abde04f3d4c7695a6d30 (patch)
treeae5652a01e709405ab8fc3c2887b0b96b38ca490 /chrome_frame/test
parent22e1168491f768ae6ff20ded07b3063ac5fe34db (diff)
downloadchromium_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.cc11
-rw-r--r--chrome_frame/test/util_unittests.cc70
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);
}
+