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

Unified Diff: webkit/user_agent/user_agent_unittest.cc

Issue 10869073: Split user agent code out of the 'glue' target (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to trunk Created 8 years, 3 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 | « webkit/user_agent/user_agent.cc ('k') | webkit/user_agent/user_agent_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/user_agent/user_agent_unittest.cc
diff --git a/webkit/user_agent/user_agent_unittest.cc b/webkit/user_agent/user_agent_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..9a6058dbc0691e25a69d471c55aba8287f5ff8b2
--- /dev/null
+++ b/webkit/user_agent/user_agent_unittest.cc
@@ -0,0 +1,60 @@
+// 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 "webkit/user_agent/user_agent.h"
+
+#include <string>
+
+#include "googleurl/src/gurl.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "webkit/tools/test_shell/test_shell_test.h"
+
+namespace {
+
+class WebkitGlueUserAgentTest : public TestShellTest {
+};
+
+bool IsSpoofedUserAgent(const std::string& user_agent) {
+ return user_agent.find("TestShell") == std::string::npos;
+}
+
+TEST_F(WebkitGlueUserAgentTest, UserAgentSpoofingHack) {
+ enum Platform {
+ NONE = 0,
+ MACOSX = 1,
+ WIN = 2,
+ OTHER = 4,
+ };
+
+ struct Expected {
+ const char* url;
+ int os_mask;
+ };
+
+ Expected expected[] = {
+ { "http://wwww.google.com", NONE },
+ { "http://www.microsoft.com/getsilverlight", MACOSX },
+ { "http://headlines.yahoo.co.jp/videonews/", MACOSX | WIN },
+ { "http://downloads.yahoo.co.jp/docs/silverlight/", MACOSX },
+ { "http://gyao.yahoo.co.jp/", MACOSX },
+ { "http://weather.yahoo.co.jp/weather/zoomradar/", WIN },
+ { "http://promotion.shopping.yahoo.co.jp/", WIN },
+ { "http://pokemon.kids.yahoo.co.jp", WIN },
+ };
+#if defined(OS_MACOSX)
+ int os_bit = MACOSX;
+#elif defined(OS_WIN)
+ int os_bit = WIN;
+#else
+ int os_bit = OTHER;
+#endif
+
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(expected); ++i) {
+ EXPECT_EQ((expected[i].os_mask & os_bit) != 0,
+ IsSpoofedUserAgent(
+ webkit_glue::GetUserAgent(GURL(expected[i].url))));
+ }
+}
+
+} // namespace
« no previous file with comments | « webkit/user_agent/user_agent.cc ('k') | webkit/user_agent/user_agent_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698