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

Side by Side Diff: tools/telemetry/telemetry/core/memory_cache_http_server_unittest.py

Issue 167683004: Fixes for MemoryCacheHTTPServerTest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@navigate
Patch Set: rebase Created 6 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | tools/telemetry/telemetry/unittest/navigate_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import os 5 import os
6 import unittest
7 6
8 from telemetry.core import browser_finder
9 from telemetry.core import util 7 from telemetry.core import util
10 from telemetry.unittest import options_for_unittests 8 from telemetry.unittest import tab_test_case
11 9
12 10
13 class MemoryCacheHTTPServerTest(unittest.TestCase): 11 class MemoryCacheHTTPServerTest(tab_test_case.TabTestCase):
14
15 def setUp(self): 12 def setUp(self):
16 self.test_file = 'bear.webm' 13 super(MemoryCacheHTTPServerTest, self).setUp()
17 test_file_path = os.path.join(util.GetUnittestDataDir(), self.test_file) 14 self.test_file = os.path.join(util.GetUnittestDataDir(), 'bear.webm')
18 self.test_file_size = os.stat(test_file_path).st_size 15 self.test_file_size = os.stat(self.test_file).st_size
19 16
20 def testBasicHostingAndRangeRequests(self): 17 def testBasicHostingAndRangeRequests(self):
21 options = options_for_unittests.GetCopy() 18 self.Navigate('blank.html')
22 browser_to_create = browser_finder.FindBrowser(options) 19 x = self._tab.EvaluateJavaScript('document.body.innerHTML')
23 with browser_to_create.Create() as b: 20 x = x.strip()
24 b.SetHTTPServerDirectories(util.GetUnittestDataDir())
25 t = b.tabs[0]
26 t.Navigate(b.http_server.UrlOf('/blank.html'))
27 t.WaitForDocumentReadyStateToBeComplete()
28 x = t.EvaluateJavaScript('document.body.innerHTML')
29 x = x.strip()
30 21
31 # Test basic html hosting. 22 # Test basic html hosting.
32 self.assertEquals(x, 'Hello world') 23 self.assertEquals(x, 'Hello world')
33 24
34 file_size = self.test_file_size 25 file_size = self.test_file_size
35 last_byte = file_size - 1 26 last_byte = file_size - 1
36 # Test byte range request: no end byte. 27 # Test byte range request: no end byte.
37 self.CheckContentHeaders(b, t, '0-', '0-%d' % last_byte, file_size) 28 self.CheckContentHeaders('0-', '0-%d' % last_byte, file_size)
38 29
39 # Test byte range request: greater than zero start byte. 30 # Test byte range request: greater than zero start byte.
40 self.CheckContentHeaders(b, t, '100-', '100-%d' % last_byte, 31 self.CheckContentHeaders('100-', '100-%d' % last_byte,
41 file_size - 100) 32 file_size - 100)
42 33
43 # Test byte range request: explicit byte range. 34 # Test byte range request: explicit byte range.
44 self.CheckContentHeaders(b, t, '2-500', '2-500', '499') 35 self.CheckContentHeaders('2-500', '2-500', '499')
45 36
46 # Test byte range request: no start byte. 37 # Test byte range request: no start byte.
47 self.CheckContentHeaders(b, t, '-228', 38 self.CheckContentHeaders('-228',
48 '%d-%d' % (file_size - 228, last_byte), 39 '%d-%d' % (file_size - 228, last_byte),
49 '228') 40 '228')
50 41
51 # Test byte range request: end byte less than start byte. 42 # Test byte range request: end byte less than start byte.
52 self.CheckContentHeaders(b, t, '100-5', '100-%d' % last_byte, 43 self.CheckContentHeaders('100-5', '100-%d' % last_byte,
53 file_size - 100) 44 file_size - 100)
54 45
55 def CheckContentHeaders(self, browser, tab, content_range_request, 46 def CheckContentHeaders(self, content_range_request, content_range_response,
56 content_range_response, content_lenght_response): 47 content_length_response):
57 tab.ExecuteJavaScript(""" 48 self._tab.ExecuteJavaScript("""
58 var loaded = false; 49 var loaded = false;
59 var xmlhttp = new XMLHttpRequest(); 50 var xmlhttp = new XMLHttpRequest();
60 xmlhttp.onload = function(e) { 51 xmlhttp.onload = function(e) {
61 loaded = true; 52 loaded = true;
62 }; 53 };
63 // Avoid cached content by appending unique URL param. 54 // Avoid cached content by appending unique URL param.
64 xmlhttp.open('GET', "%s?t=" + Date.now(), true); 55 xmlhttp.open('GET', "%s?t=" + Date.now(), true);
65 xmlhttp.setRequestHeader('Range', 'bytes=%s'); 56 xmlhttp.setRequestHeader('Range', 'bytes=%s');
66 xmlhttp.send(); 57 xmlhttp.send();
67 """ % (browser.http_server.UrlOf('/%s' % self.test_file), 58 """ % (self._browser.http_server.UrlOf(self.test_file),
68 content_range_request)) 59 content_range_request))
69 tab.WaitForJavaScriptExpression('loaded', 5) 60 self._tab.WaitForJavaScriptExpression('loaded', 5)
70 content_range = tab.EvaluateJavaScript( 61 content_range = self._tab.EvaluateJavaScript(
71 'xmlhttp.getResponseHeader("Content-Range");') 62 'xmlhttp.getResponseHeader("Content-Range");')
72 content_range_response = 'bytes %s/%d' % ( 63 content_range_response = 'bytes %s/%d' % (
73 content_range_response, self.test_file_size) 64 content_range_response, self.test_file_size)
74 self.assertEquals(content_range, content_range_response) 65 self.assertEquals(content_range, content_range_response)
75 content_length = tab.EvaluateJavaScript( 66 content_length = self._tab.EvaluateJavaScript(
76 'xmlhttp.getResponseHeader("Content-Length");') 67 'xmlhttp.getResponseHeader("Content-Length");')
77 self.assertEquals(content_length, str(content_lenght_response)) 68 self.assertEquals(content_length, str(content_length_response))
OLDNEW
« no previous file with comments | « no previous file | tools/telemetry/telemetry/unittest/navigate_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698