// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/captive_portal/captive_portal_testing_utils.h" #include "base/logging.h" #include "base/memory/ref_counted.h" #include "net/base/net_errors.h" #include "net/http/http_response_headers.h" #include "net/http/http_util.h" namespace { scoped_refptr CreateResponseHeaders( const std::string& response_headers) { std::string raw_headers = net::HttpUtil::AssembleRawHeaders( response_headers.c_str(), static_cast(response_headers.length())); return new net::HttpResponseHeaders(raw_headers); } } // namespace namespace captive_portal { CaptivePortalDetectorTestBase::CaptivePortalDetectorTestBase() : detector_(NULL) { } CaptivePortalDetectorTestBase::~CaptivePortalDetectorTestBase() { } void CaptivePortalDetectorTestBase::SetTime(const base::Time& time) { detector()->set_time_for_testing(time); } void CaptivePortalDetectorTestBase::AdvanceTime(const base::TimeDelta& delta) { detector()->advance_time_for_testing(delta); } bool CaptivePortalDetectorTestBase::FetchingURL() { return detector()->FetchingURL(); } void CaptivePortalDetectorTestBase::CompleteURLFetch( int net_error, int status_code, const char* response_headers) { if (net_error != net::OK) { DCHECK(!response_headers); fetcher()->set_status(net::URLRequestStatus(net::URLRequestStatus::FAILED, net_error)); } else { fetcher()->set_response_code(status_code); if (response_headers) { scoped_refptr headers( CreateResponseHeaders(response_headers)); DCHECK_EQ(status_code, headers->response_code()); fetcher()->set_response_headers(headers); } } detector()->OnURLFetchComplete(fetcher()); } } // namespace captive_portal