1 // Copyright 2017 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/public/test/slow_download_http_response.h" 6 7 #include "base/strings/stringprintf.h" 8 9 namespace content { 10 11 // static 12 const char SlowDownloadHttpResponse::kUnknownSizeUrl[] = 13 "/download-unknown-size"; 14 const char SlowDownloadHttpResponse::kKnownSizeUrl[] = "/download-known-size"; 15 16 // static 17 std::unique_ptr<net::test_server::HttpResponse> HandleSlowDownloadRequest(const net::test_server::HttpRequest & request)18SlowDownloadHttpResponse::HandleSlowDownloadRequest( 19 const net::test_server::HttpRequest& request) { 20 auto response = 21 std::make_unique<SlowDownloadHttpResponse>(request.relative_url); 22 if (!response->IsHandledUrl()) { 23 return nullptr; 24 } 25 return std::move(response); 26 } 27 SlowDownloadHttpResponse(const std::string & url)28SlowDownloadHttpResponse::SlowDownloadHttpResponse(const std::string& url) 29 : SlowHttpResponse(url) {} 30 31 SlowDownloadHttpResponse::~SlowDownloadHttpResponse() = default; 32 IsHandledUrl()33bool SlowDownloadHttpResponse::IsHandledUrl() { 34 return (url() == SlowDownloadHttpResponse::kUnknownSizeUrl || 35 url() == SlowDownloadHttpResponse::kKnownSizeUrl || 36 SlowHttpResponse::IsHandledUrl()); 37 } 38 AddResponseHeaders(std::string * response)39void SlowDownloadHttpResponse::AddResponseHeaders(std::string* response) { 40 response->append("Content-type: application/octet-stream\r\n"); 41 response->append("Cache-Control: max-age=0\r\n"); 42 43 if (base::LowerCaseEqualsASCII(kKnownSizeUrl, url())) { 44 response->append( 45 base::StringPrintf("Content-Length: %d\r\n", 46 kFirstResponsePartSize + kSecondResponsePartSize)); 47 } 48 } 49 50 } // namespace content 51