Index: tools/telemetry/third_party/webpagereplay/httpclient_test.py |
diff --git a/tools/telemetry/third_party/webpagereplay/httpclient_test.py b/tools/telemetry/third_party/webpagereplay/httpclient_test.py |
deleted file mode 100644 |
index 2049a4f7f91e70f8e2910c06fa6b6eb2c85df6c8..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/webpagereplay/httpclient_test.py |
+++ /dev/null |
@@ -1,185 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 2012 Google Inc. All Rights Reserved. |
-# |
-# 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. |
- |
-import unittest |
- |
-import httpclient |
-import platformsettings |
- |
- |
-class RealHttpFetchTest(unittest.TestCase): |
- |
- # Initialize test data |
- CONTENT_TYPE = 'content-type: image/x-icon' |
- COOKIE_1 = ('Set-Cookie: GMAIL_IMP=EXPIRED; ' |
- 'Expires=Thu, 12-Jul-2012 22:41:22 GMT; ' |
- 'Path=/mail; Secure') |
- COOKIE_2 = ('Set-Cookie: GMAIL_STAT_205a=EXPIRED; ' |
- 'Expires=Thu, 12-Jul-2012 22:42:24 GMT; ' |
- 'Path=/mail; Secure') |
- FIRST_LINE = 'fake-header: first line' |
- SECOND_LINE = ' second line' |
- THIRD_LINE = '\tthird line' |
- BAD_HEADER = 'this is a bad header' |
- |
- def test__GetHeaderNameValueBasic(self): |
- """Test _GetHeaderNameValue with normal header.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- name_value = real_http_fetch._GetHeaderNameValue(self.CONTENT_TYPE) |
- self.assertEqual(name_value, ('content-type', 'image/x-icon')) |
- |
- def test__GetHeaderNameValueLowercasesName(self): |
- """_GetHeaderNameValue lowercases header name.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- header = 'X-Google-Gfe-Backend-Request-Info: eid=1KMAUMeiK4eMiAL52YyMBg' |
- expected = ('x-google-gfe-backend-request-info', |
- 'eid=1KMAUMeiK4eMiAL52YyMBg') |
- name_value = real_http_fetch._GetHeaderNameValue(header) |
- self.assertEqual(name_value, expected) |
- |
- def test__GetHeaderNameValueBadLineGivesNone(self): |
- """_GetHeaderNameValue returns None for a header in wrong format.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- name_value = real_http_fetch._GetHeaderNameValue(self.BAD_HEADER) |
- self.assertIsNone(name_value) |
- |
- def test__ToTuplesBasic(self): |
- """Test _ToTuples with normal input.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- headers = [self.CONTENT_TYPE, self.COOKIE_1, self.FIRST_LINE] |
- result = real_http_fetch._ToTuples(headers) |
- expected = [('content-type', 'image/x-icon'), |
- ('set-cookie', self.COOKIE_1[12:]), |
- ('fake-header', 'first line')] |
- self.assertEqual(result, expected) |
- |
- def test__ToTuplesMultipleHeadersWithSameName(self): |
- """Test mulitple headers with the same name.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- headers = [self.CONTENT_TYPE, self.COOKIE_1, self.COOKIE_2, self.FIRST_LINE] |
- result = real_http_fetch._ToTuples(headers) |
- expected = [('content-type', 'image/x-icon'), |
- ('set-cookie', self.COOKIE_1[12:]), |
- ('set-cookie', self.COOKIE_2[12:]), |
- ('fake-header', 'first line')] |
- self.assertEqual(result, expected) |
- |
- def test__ToTuplesAppendsContinuationLine(self): |
- """Test continuation line is handled.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- headers = [self.CONTENT_TYPE, self.COOKIE_1, self.FIRST_LINE, |
- self.SECOND_LINE, self.THIRD_LINE] |
- result = real_http_fetch._ToTuples(headers) |
- expected = [('content-type', 'image/x-icon'), |
- ('set-cookie', self.COOKIE_1[12:]), |
- ('fake-header', 'first line\n second line\n third line')] |
- self.assertEqual(result, expected) |
- |
- def test__ToTuplesIgnoresBadHeader(self): |
- """Test bad header is ignored.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- bad_headers = [self.CONTENT_TYPE, self.BAD_HEADER, self.COOKIE_1] |
- expected = [('content-type', 'image/x-icon'), |
- ('set-cookie', self.COOKIE_1[12:])] |
- result = real_http_fetch._ToTuples(bad_headers) |
- self.assertEqual(result, expected) |
- |
- def test__ToTuplesIgnoresMisplacedContinuationLine(self): |
- """Test misplaced continuation line is ignored.""" |
- |
- real_http_fetch = httpclient.RealHttpFetch |
- misplaced_headers = [self.THIRD_LINE, self.CONTENT_TYPE, |
- self.COOKIE_1, self.FIRST_LINE, self.SECOND_LINE] |
- result = real_http_fetch._ToTuples(misplaced_headers) |
- expected = [('content-type', 'image/x-icon'), |
- ('set-cookie', self.COOKIE_1[12:]), |
- ('fake-header', 'first line\n second line')] |
- self.assertEqual(result, expected) |
- |
- |
-class RealHttpFetchGetConnectionTest(unittest.TestCase): |
- """Test that a connection is made with request IP/port or proxy IP/port.""" |
- |
- def setUp(self): |
- def real_dns_lookup(host): |
- return { |
- 'example.com': '127.127.127.127', |
- 'proxy.com': '2.2.2.2', |
- }[host] |
- self.fetch = httpclient.RealHttpFetch(real_dns_lookup) |
- self.https_proxy = None |
- self.http_proxy = None |
- def get_proxy(is_ssl): |
- return self.https_proxy if is_ssl else self.http_proxy |
- self.fetch._get_system_proxy = get_proxy |
- |
- def set_http_proxy(self, host, port): |
- self.http_proxy = platformsettings.SystemProxy(host, port) |
- |
- def set_https_proxy(self, host, port): |
- self.https_proxy = platformsettings.SystemProxy(host, port) |
- |
- def test_get_connection_without_proxy_connects_to_host_ip(self): |
- """HTTP connection with no proxy connects to host IP.""" |
- self.set_http_proxy(host=None, port=None) |
- connection = self.fetch._get_connection('example.com', None, is_ssl=False) |
- self.assertEqual('127.127.127.127', connection.host) |
- self.assertEqual(80, connection.port) # default HTTP port |
- |
- def test_get_connection_without_proxy_uses_nondefault_request_port(self): |
- """HTTP connection with no proxy connects with request port.""" |
- self.set_https_proxy(host=None, port=None) |
- connection = self.fetch._get_connection('example.com', 8888, is_ssl=False) |
- self.assertEqual('127.127.127.127', connection.host) |
- self.assertEqual(8888, connection.port) # request HTTP port |
- |
- def test_get_connection_with_proxy_uses_proxy_port(self): |
- """HTTP connection with proxy connects used proxy port.""" |
- self.set_http_proxy(host='proxy.com', port=None) |
- connection = self.fetch._get_connection('example.com', 8888, is_ssl=False) |
- self.assertEqual('2.2.2.2', connection.host) # proxy IP |
- self.assertEqual(80, connection.port) # proxy port (default HTTP) |
- |
- def test_ssl_get_connection_without_proxy_connects_to_host_ip(self): |
- """HTTPS (SSL) connection with no proxy connects to host IP.""" |
- self.set_https_proxy(host=None, port=None) |
- connection = self.fetch._get_connection('example.com', None, is_ssl=True) |
- self.assertEqual('127.127.127.127', connection.host) |
- self.assertEqual(443, connection.port) # default SSL port |
- |
- def test_ssl_get_connection_with_proxy_connects_to_proxy_ip(self): |
- """HTTPS (SSL) connection with proxy connects to proxy IP.""" |
- self.set_https_proxy(host='proxy.com', port=8443) |
- connection = self.fetch._get_connection('example.com', None, is_ssl=True) |
- self.assertEqual('2.2.2.2', connection.host) # proxy IP |
- self.assertEqual(8443, connection.port) # SSL proxy port |
- |
- def test_ssl_get_connection_with_proxy_tunnels_to_host(self): |
- """HTTPS (SSL) connection with proxy tunnels to target host.""" |
- self.set_https_proxy(host='proxy.com', port=8443) |
- connection = self.fetch._get_connection('example.com', None, is_ssl=True) |
- self.assertEqual('example.com', connection._tunnel_host) # host name |
- self.assertEqual(None, connection._tunnel_port) # host port |
- |
- |
-if __name__ == '__main__': |
- unittest.main() |