1 // Copyright (c) 2012 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 "chrome/browser/captive_portal/testing_utils.h" 6 7 #include "base/logging.h" 8 #include "base/memory/ref_counted.h" 9 #include "net/base/net_errors.h" 10 #include "net/http/http_response_headers.h" 11 #include "net/http/http_util.h" 12 13 namespace { 14 15 scoped_refptr<net::HttpResponseHeaders> CreateResponseHeaders( 16 const std::string& response_headers) { 17 std::string raw_headers = 18 net::HttpUtil::AssembleRawHeaders(response_headers.c_str(), 19 response_headers.length()); 20 return new net::HttpResponseHeaders(raw_headers); 21 } 22 23 } // namespace 24 25 namespace captive_portal { 26 27 CaptivePortalDetectorTestBase::CaptivePortalDetectorTestBase() 28 : detector_(NULL) { 29 } 30 31 CaptivePortalDetectorTestBase::~CaptivePortalDetectorTestBase() { 32 } 33 34 void CaptivePortalDetectorTestBase::SetTime(const base::Time& time) { 35 detector()->set_time_for_testing(time); 36 } 37 38 void CaptivePortalDetectorTestBase::AdvanceTime(const base::TimeDelta& delta) { 39 detector()->advance_time_for_testing(delta); 40 } 41 42 bool CaptivePortalDetectorTestBase::FetchingURL() { 43 return detector()->FetchingURL(); 44 } 45 46 void CaptivePortalDetectorTestBase::CompleteURLFetch( 47 int net_error, 48 int status_code, 49 const char* response_headers) { 50 if (net_error != net::OK) { 51 DCHECK(!response_headers); 52 fetcher()->set_status(net::URLRequestStatus(net::URLRequestStatus::FAILED, 53 net_error)); 54 } else { 55 fetcher()->set_response_code(status_code); 56 if (response_headers) { 57 scoped_refptr<net::HttpResponseHeaders> headers( 58 CreateResponseHeaders(response_headers)); 59 DCHECK_EQ(status_code, headers->response_code()); 60 fetcher()->set_response_headers(headers); 61 } 62 } 63 detector()->OnURLFetchComplete(fetcher()); 64 } 65 66 } // namespace captive_portal 67