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

Unified Diff: net/http_client_unittest.cc

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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 | « net/http_client.cc ('k') | net/http_request.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http_client_unittest.cc
diff --git a/net/http_client_unittest.cc b/net/http_client_unittest.cc
deleted file mode 100644
index 038a4649d28afdf03d5cc37799c172c93302e4c1..0000000000000000000000000000000000000000
--- a/net/http_client_unittest.cc
+++ /dev/null
@@ -1,245 +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.
-// ========================================================================
-
-// Since the net code is linked in as a lib, force the registration code to
-// be a dependency, otherwise the linker is optimizing in out.
-#pragma comment(linker, "/INCLUDE:_kRegisterWinHttp")
-
-#include <vector>
-#include "base/basictypes.h"
-#include "base/scoped_ptr.h"
-#include "omaha/base/omaha_version.h"
-#include "omaha/net/http_client.h"
-#include "omaha/testing/unit_test.h"
-
-namespace omaha {
-
-// Test fixture, perhaps we need it later.
-class HttpClientTest : public testing::Test {
- protected:
- HttpClientTest() {}
-
- static void SetUpTestCase() {}
-
- virtual void SetUp() {
- http_client_.reset(
- HttpClient::GetFactory().CreateObject(HttpClient::WINHTTP));
- ASSERT_TRUE(http_client_.get());
- ASSERT_SUCCEEDED(http_client_->Initialize());
- }
-
- virtual void TearDown() {
- http_client_.reset();
- }
-
- void GetUrl(const TCHAR* url, bool use_proxy);
-
- scoped_ptr<HttpClient> http_client_;
-};
-
-CString BuildUserAgent() {
- CString user_agent;
- user_agent.Format(_T("HttpClientTest version %s"), omaha::GetVersionString());
- return user_agent;
-}
-
-const TCHAR kTestUrlGet[] = _T("http://www.google.com/robots.txt");
-const TCHAR kTestSecureUrlGet[] = _T("https://www.google.com/robots.txt");
-
-// If using a proxy is specified, the function does WPAD detection to get the
-// name of the proxy to be used. The request goes direct if the WPAD fails.
-void HttpClientTest::GetUrl(const TCHAR* url, bool use_proxy) {
- ASSERT_TRUE(url);
-
- CString server, path;
- int port = 0;
- ASSERT_SUCCEEDED(http_client_->CrackUrl(url,
- ICU_DECODE,
- NULL,
- &server,
- &port,
- &path,
- NULL));
- ASSERT_STREQ(server, _T("www.google.com"));
- ASSERT_STREQ(path, _T("/robots.txt"));
-
- HINTERNET session_handle = NULL;
- ASSERT_SUCCEEDED(http_client_->Open(BuildUserAgent(),
- HttpClient::kAccessTypeNoProxy,
- NULL,
- NULL,
- 0, // Synchronous mode.
- &session_handle));
- if (use_proxy) {
- HttpClient::AutoProxyOptions autoproxy_options = {0};
- autoproxy_options.flags = WINHTTP_AUTOPROXY_AUTO_DETECT;
- autoproxy_options.auto_detect_flags = WINHTTP_AUTO_DETECT_TYPE_DHCP |
- WINHTTP_AUTO_DETECT_TYPE_DNS_A;
- autoproxy_options.auto_logon_if_challenged = true;
- HttpClient::ProxyInfo proxy_info = {0};
- http_client_->GetProxyForUrl(session_handle,
- url,
- &autoproxy_options,
- &proxy_info);
- if (proxy_info.proxy && wcslen(proxy_info.proxy)) {
- proxy_info.access_type = WINHTTP_ACCESS_TYPE_NAMED_PROXY;
- EXPECT_SUCCEEDED(http_client_->SetOption(session_handle,
- WINHTTP_OPTION_PROXY,
- &proxy_info,
- sizeof(proxy_info)));
- }
- ::GlobalFree(const_cast<wchar_t*>(proxy_info.proxy));
- ::GlobalFree(const_cast<wchar_t*>(proxy_info.proxy_bypass));
- }
-
- HINTERNET connection_handle = NULL;
- ASSERT_SUCCEEDED(http_client_->Connect(session_handle,
- server,
- port,
- &connection_handle));
- uint32 flags = port == 443 ? WINHTTP_FLAG_SECURE : 0;
- HINTERNET request_handle = NULL;
- ASSERT_SUCCEEDED(http_client_->OpenRequest(connection_handle,
- _T("GET"),
- path,
- NULL, // HTTP 1.1
- NULL, // Referrer.
- NULL, // Default accept types.
- flags,
- &request_handle));
- ASSERT_SUCCEEDED(http_client_->SendRequest(request_handle,
- NULL, 0, NULL, 0, 0, 0));
- ASSERT_SUCCEEDED(http_client_->ReceiveResponse(request_handle));
- CString content_type;
- EXPECT_SUCCEEDED(http_client_->QueryHeadersString(request_handle,
- WINHTTP_QUERY_CONTENT_TYPE,
- NULL,
- &content_type,
- NULL));
- EXPECT_STREQ(content_type, _T("text/plain"));
- CString server_header;
- EXPECT_SUCCEEDED(http_client_->QueryHeadersString(request_handle,
- WINHTTP_QUERY_SERVER,
- NULL,
- &server_header,
- NULL));
- CString response;
- DWORD size = 0;
- do {
- // Use ReadData to determine when a response has been completely read.
- // Always allocate a buffer for ReadData even though QueryDataAvailable
- // might return 0 bytes available.
- ASSERT_SUCCEEDED(http_client_->QueryDataAvailable(request_handle, &size));
- std::vector<uint8> buf(size + 1);
- ASSERT_SUCCEEDED(http_client_->ReadData(request_handle,
- &buf.front(),
- buf.size(),
- &size));
- buf.resize(size);
- if (size) {
- response += CString(reinterpret_cast<char*>(&buf.front()), buf.size());
- }
- } while (size > 0);
-
- // Compare a little bit of the body.
- response.Truncate(10);
- ASSERT_STREQ(response, _T("User-agent"));
-
- ASSERT_SUCCEEDED(http_client_->Close(request_handle));
- ASSERT_SUCCEEDED(http_client_->Close(connection_handle));
- ASSERT_SUCCEEDED(http_client_->Close(session_handle));
-}
-
-TEST_F(HttpClientTest, Get) {
- if (IsTestRunByLocalSystem()) {
- return;
- }
-
- GetUrl(kTestUrlGet, false);
-}
-
-TEST_F(HttpClientTest, SecureGet) {
- if (IsTestRunByLocalSystem()) {
- return;
- }
-
- GetUrl(kTestSecureUrlGet, false);
-}
-
-TEST_F(HttpClientTest, ProxyGet) {
- GetUrl(kTestUrlGet, true);
-}
-
-TEST_F(HttpClientTest, ProxySecureGet) {
- GetUrl(kTestSecureUrlGet, true);
-}
-
-TEST_F(HttpClientTest, BuildRequestHeader) {
- ASSERT_STREQ(HttpClient::BuildRequestHeader(_T("foo"), _T("bar")),
- _T("foo: bar\r\n"));
-}
-
-TEST_F(HttpClientTest, GetStatusCodeClass) {
- EXPECT_EQ(HttpClient::GetStatusCodeClass(HTTP_STATUS_CONTINUE),
- HttpClient::STATUS_CODE_INFORMATIONAL);
-
- EXPECT_EQ(HttpClient::GetStatusCodeClass(HTTP_STATUS_OK),
- HttpClient::STATUS_CODE_SUCCESSFUL);
-
- EXPECT_EQ(HttpClient::GetStatusCodeClass(HTTP_STATUS_PARTIAL_CONTENT),
- HttpClient::STATUS_CODE_SUCCESSFUL);
-
- EXPECT_EQ(HttpClient::GetStatusCodeClass(HTTP_STATUS_AMBIGUOUS),
- HttpClient::STATUS_CODE_REDIRECTION);
-
- EXPECT_EQ(HttpClient::GetStatusCodeClass(HTTP_STATUS_REDIRECT),
- HttpClient::STATUS_CODE_REDIRECTION);
-
- EXPECT_EQ(HttpClient::GetStatusCodeClass(HTTP_STATUS_BAD_REQUEST),
- HttpClient::STATUS_CODE_CLIENT_ERROR);
-
- EXPECT_EQ(HttpClient::GetStatusCodeClass(HTTP_STATUS_SERVICE_UNAVAIL),
- HttpClient::STATUS_CODE_SERVER_ERROR);
-}
-
-TEST_F(HttpClientTest, CrackUrl) {
- CString scheme, server, path, query;
- int port = 0;
- ASSERT_SUCCEEDED(http_client_->CrackUrl(_T("http://host/path?query"),
- 0,
- &scheme,
- &server,
- &port,
- &path,
- &query));
- ASSERT_STREQ(scheme, _T("http"));
- ASSERT_STREQ(server, _T("host"));
- ASSERT_EQ(port, INTERNET_DEFAULT_HTTP_PORT);
- ASSERT_STREQ(path, _T("/path"));
- ASSERT_STREQ(query, _T("?query"));
-
- ASSERT_SUCCEEDED(http_client_->CrackUrl(_T("http://host"),
- 0,
- NULL,
- NULL,
- NULL,
- &path,
- &query));
- ASSERT_STREQ(path, _T(""));
- ASSERT_STREQ(query, _T(""));
-}
-
-} // namespace omaha
-
« no previous file with comments | « net/http_client.cc ('k') | net/http_request.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698