Index: net/detector_unittest.cc |
diff --git a/net/detector_unittest.cc b/net/detector_unittest.cc |
deleted file mode 100644 |
index ba148759342f262d42e7e50b59253288ceb536fc..0000000000000000000000000000000000000000 |
--- a/net/detector_unittest.cc |
+++ /dev/null |
@@ -1,326 +0,0 @@ |
-// Copyright 2007-2009 Google Inc. |
-// |
-// Licensed under the Apache License, Version 2.0 (the "License"); |
-// you may not use this file except in compliance with the License. |
-// You may obtain a copy of the License at |
-// |
-// http://www.apache.org/licenses/LICENSE-2.0 |
-// |
-// Unless required by applicable law or agreed to in writing, software |
-// distributed under the License is distributed on an "AS IS" BASIS, |
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-// See the License for the specific language governing permissions and |
-// limitations under the License. |
-// ======================================================================== |
- |
-#include <cstdio> |
-#include <vector> |
-#include "base/basictypes.h" |
-#include "base/scoped_ptr.h" |
-#include "omaha/base/app_util.h" |
-#include "omaha/base/browser_utils.h" |
-#include "omaha/net/detector.h" |
-#include "omaha/net/network_config.h" |
-#include "omaha/testing/unit_test.h" |
- |
-namespace omaha { |
- |
-class FirefoxProxyDetectorTest : public testing::Test { |
- public: |
- FirefoxProxyDetectorTest() {} |
- |
- virtual void SetUp() { |
- detector_.reset(new FirefoxProxyDetector); |
- } |
- |
- virtual void TearDown() { |
- } |
- |
- HRESULT BuildProxyString(const CString& http_host, |
- const CString& http_port, |
- const CString& ssl_host, |
- const CString& ssl_port, |
- CString* proxy) { |
- return detector_->BuildProxyString(http_host, |
- http_port, |
- ssl_host, |
- ssl_port, |
- proxy); |
- } |
- |
- void ParsePrefsLine(const char* ansi_line, |
- CString* proxy_type, |
- CString* proxy_config_url, |
- CString* proxy_http_host, |
- CString* proxy_http_port, |
- CString* proxy_ssl_host, |
- CString* proxy_ssl_port) { |
- detector_->ParsePrefsLine(ansi_line, |
- proxy_type, |
- proxy_config_url, |
- proxy_http_host, |
- proxy_http_port, |
- proxy_ssl_host, |
- proxy_ssl_port); |
- } |
- |
- |
- HRESULT ParsePrefsFile(const TCHAR* name, |
- const TCHAR* file_path, |
- ProxyConfig* config) { |
- return detector_->ParsePrefsFile(name, file_path, config); |
- } |
- |
- // Builds a mock prefs file to test the parsing code. |
- bool BuildPrefsFile(const CString& type, |
- const CString& config_url, |
- const CString& http_host, |
- const CString& http_port, |
- const CString& ssl_host, |
- const CString& ssl_port, |
- CString* file_path); |
- |
- scoped_ptr<FirefoxProxyDetector> detector_; |
- |
- private: |
- DISALLOW_EVIL_CONSTRUCTORS(FirefoxProxyDetectorTest); |
-}; |
- |
-bool FirefoxProxyDetectorTest::BuildPrefsFile(const CString& type, |
- const CString& config_url, |
- const CString& http_host, |
- const CString& http_port, |
- const CString& ssl_host, |
- const CString& ssl_port, |
- CString* file_path) { |
- CString temp_dir(app_util::GetTempDir()); |
- file_path->Format(_T("%somaha_test_%x.js"), temp_dir, ::GetTickCount()); |
- |
- FILE* prefs_file = NULL; |
- fopen_s(&prefs_file, CStringA(*file_path), "w"); |
- if (!prefs_file) { |
- return false; |
- } |
- |
- fprintf(prefs_file, |
- "user_pref(\"network.proxy.type\", %s);\n", |
- CStringA(type)); |
- fprintf(prefs_file, |
- "user_pref(\"network.proxy.autoconfig_url\", \"%s\");\n", |
- CStringA(config_url)); |
- fprintf(prefs_file, |
- "user_pref(\"network.proxy.http\", \"%s\");\n", |
- CStringA(http_host)); |
- fprintf(prefs_file, |
- "user_pref(\"network.proxy.http_port\", %s);\n", |
- CStringA(http_port)); |
- fprintf(prefs_file, |
- "user_pref(\"network.proxy.ssl\", \"%s\");\n", |
- CStringA(ssl_host)); |
- fprintf(prefs_file, |
- "user_pref(\"network.proxy.ssl_port\", %s);\n", |
- CStringA(ssl_port)); |
- |
- fclose(prefs_file); |
- |
- return true; |
-} |
- |
-TEST_F(FirefoxProxyDetectorTest, BuildProxyString) { |
- CString http_host = _T("foo"); |
- CString http_port = _T("80"); |
- CString ssl_host; |
- CString ssl_port; |
- CString proxy; |
- |
- EXPECT_SUCCEEDED(BuildProxyString(http_host, |
- http_port, |
- ssl_host, |
- ssl_port, |
- &proxy)); |
- EXPECT_STREQ(proxy, _T("http=foo:80")); |
- |
- http_host = _T("foo"); |
- http_port = _T("80"); |
- ssl_host = _T("bar"); |
- ssl_port = _T("8080"); |
- |
- EXPECT_SUCCEEDED(BuildProxyString(http_host, |
- http_port, |
- ssl_host, |
- ssl_port, |
- &proxy)); |
- EXPECT_STREQ(proxy, _T("http=foo:80;https=bar:8080")); |
- |
- http_host.Empty(); |
- http_port.Empty(); |
- ssl_host = _T("bar"); |
- ssl_port = _T("8080"); |
- |
- EXPECT_SUCCEEDED(BuildProxyString(http_host, |
- http_port, |
- ssl_host, |
- ssl_port, |
- &proxy)); |
- EXPECT_STREQ(proxy, _T("https=bar:8080")); |
-} |
- |
-TEST_F(FirefoxProxyDetectorTest, ParsePrefsLine) { |
- CString type; |
- CString config_url; |
- CString http_host; |
- CString http_port; |
- CString ssl_host; |
- CString ssl_port; |
- |
- // Parse "type". |
- const char* ansi_line = "user_pref(\"network.proxy.type\", 4);"; |
- ParsePrefsLine(ansi_line, |
- &type, |
- &config_url, |
- &http_host, |
- &http_port, |
- &ssl_host, |
- &ssl_port); |
- EXPECT_STREQ(type, _T("4")); |
- |
- // Parse "config_url". |
- ansi_line = |
- "user_pref(\"network.proxy.autoconfig_url\", \"http://wpad/wpad.dat\");"; |
- ParsePrefsLine(ansi_line, |
- &type, |
- &config_url, |
- &http_host, |
- &http_port, |
- &ssl_host, |
- &ssl_port); |
- EXPECT_STREQ(config_url, _T("\"http://wpad/wpad.dat\"")); |
- |
- // Parse "http_host". |
- ansi_line = "user_pref(\"network.proxy.http\", \"127.0.0.1\");"; |
- ParsePrefsLine(ansi_line, |
- &type, |
- &config_url, |
- &http_host, |
- &http_port, |
- &ssl_host, |
- &ssl_port); |
- EXPECT_STREQ(http_host, _T("\"127.0.0.1\"")); |
- |
- // Parse "http_port". |
- ansi_line = "user_pref(\"network.proxy.http_port\", 8888);"; |
- ParsePrefsLine(ansi_line, |
- &type, |
- &config_url, |
- &http_host, |
- &http_port, |
- &ssl_host, |
- &ssl_port); |
- EXPECT_STREQ(http_port, _T("8888")); |
- |
- // Parse "ssl_host". |
- ansi_line = "user_pref(\"network.proxy.ssl\", \"10.0.0.1\");"; |
- ParsePrefsLine(ansi_line, |
- &type, |
- &config_url, |
- &http_host, |
- &http_port, |
- &ssl_host, |
- &ssl_port); |
- EXPECT_STREQ(ssl_host, _T("\"10.0.0.1\"")); |
- |
- // Parse "ssl_port". |
- ansi_line = "user_pref(\"network.proxy.ssl_port\", 8080);"; |
- ParsePrefsLine(ansi_line, |
- &type, |
- &config_url, |
- &http_host, |
- &http_port, |
- &ssl_host, |
- &ssl_port); |
- EXPECT_STREQ(ssl_port, _T("8080")); |
-} |
- |
-TEST_F(FirefoxProxyDetectorTest, ParsePrefsFile) { |
- // Direct connection |
- CString prefs_file; |
- bool res = BuildPrefsFile(_T("0"), |
- _T("http://foobar"), |
- _T("foo"), |
- _T("80"), |
- _T("bar"), |
- _T("8080"), |
- &prefs_file); |
- ASSERT_TRUE(res); |
- ProxyConfig config; |
- EXPECT_SUCCEEDED(ParsePrefsFile(_T(""), prefs_file, &config)); |
- EXPECT_FALSE(config.auto_detect); |
- EXPECT_TRUE(config.auto_config_url.IsEmpty()); |
- EXPECT_TRUE(config.proxy.IsEmpty()); |
- EXPECT_TRUE(config.proxy_bypass.IsEmpty()); |
- EXPECT_TRUE(::DeleteFile(prefs_file)); |
- |
- // Named proxy. |
- res = BuildPrefsFile(_T("1"), |
- _T("http://foobar"), |
- _T("foo"), |
- _T("80"), |
- _T("bar"), |
- _T("8080"), |
- &prefs_file); |
- ASSERT_TRUE(res); |
- config = ProxyConfig(); |
- EXPECT_SUCCEEDED(ParsePrefsFile(_T(""), prefs_file, &config)); |
- EXPECT_FALSE(config.auto_detect); |
- EXPECT_TRUE(config.auto_config_url.IsEmpty()); |
- EXPECT_STREQ(config.proxy, _T("http=foo:80;https=bar:8080")); |
- EXPECT_TRUE(config.proxy_bypass.IsEmpty()); |
- EXPECT_TRUE(::DeleteFile(prefs_file)); |
- |
- // Auto config url. |
- res = BuildPrefsFile(_T("2"), |
- _T("http://foobar"), |
- _T("foo"), |
- _T("80"), |
- _T("bar"), |
- _T("8080"), |
- &prefs_file); |
- ASSERT_TRUE(res); |
- config = ProxyConfig(); |
- EXPECT_SUCCEEDED(ParsePrefsFile(_T(""), prefs_file, &config)); |
- EXPECT_FALSE(config.auto_detect); |
- EXPECT_STREQ(config.auto_config_url, _T("http://foobar")); |
- EXPECT_TRUE(config.proxy.IsEmpty()); |
- EXPECT_TRUE(config.proxy_bypass.IsEmpty()); |
- EXPECT_TRUE(::DeleteFile(prefs_file)); |
- |
- // Auto detect. |
- res = BuildPrefsFile(_T("4"), |
- _T("http://foobar"), |
- _T("foo"), |
- _T("80"), |
- _T("bar"), |
- _T("8080"), |
- &prefs_file); |
- ASSERT_TRUE(res); |
- config = ProxyConfig(); |
- EXPECT_SUCCEEDED(ParsePrefsFile(_T(""), prefs_file, &config)); |
- EXPECT_TRUE(config.auto_detect); |
- EXPECT_TRUE(config.auto_config_url.IsEmpty()); |
- EXPECT_TRUE(config.proxy.IsEmpty()); |
- EXPECT_TRUE(config.proxy_bypass.IsEmpty()); |
- EXPECT_TRUE(::DeleteFile(prefs_file)); |
-} |
- |
-// Tries to detect the configuration if a profile is available. |
-TEST_F(FirefoxProxyDetectorTest, Detect) { |
- CString name, path; |
- if (FAILED(GetFirefoxDefaultProfile(&name, &path))) { |
- return; |
- } |
- ProxyConfig config; |
- EXPECT_SUCCEEDED(detector_->Detect(&config)); |
-} |
- |
-} // namespace omaha |
- |