// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ #define NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_ #include <string> #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "net/base/load_timing_info.h" #include "net/url_request/url_request.h" #include "net/url_request/url_request_job.h" namespace net { // This job type is designed to help with simple unit tests. To use, you // probably want to inherit from it to set up the state you want. Then install // it as the protocol handler for the "test" scheme. // // It will respond to several URLs, which you can retrieve using the test_url* // getters, which will in turn respond with the corresponding responses returned // by test_data*. Any other URLs that begin with "test:" will return an error, // which might also be useful, you can use test_url_error() to retrieve a // standard one. // // You can override the known URLs or the response data by overriding Start(). // // Optionally, you can also construct test jobs to return a headers and data // provided to the contstructor in response to any request url. // // When a job is created, it gets put on a queue of pending test jobs. To // process jobs on this queue, use ProcessOnePendingMessage, which will process // one step of the next job. If the job is incomplete, it will be added to the // end of the queue. // // Optionally, you can also construct test jobs that advance automatically // without having to call ProcessOnePendingMessage. class URLRequestTestJob : public URLRequestJob { … }; } // namespace net #endif // NET_URL_REQUEST_URL_REQUEST_TEST_JOB_H_