1 // Copyright (c) 2011 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.
5 #ifndef NET_URL_REQUEST_URL_REQUEST_THROTTLER_TEST_SUPPORT_H_
6 #define NET_URL_REQUEST_URL_REQUEST_THROTTLER_TEST_SUPPORT_H_
10 #include "base/time.h"
11 #include "net/base/backoff_entry.h"
12 #include "net/url_request/url_request_throttler_header_interface.h"
16 class MockBackoffEntry
: public BackoffEntry
{
18 explicit MockBackoffEntry(const BackoffEntry::Policy
* const policy
);
19 virtual ~MockBackoffEntry();
21 // BackoffEntry overrides.
22 virtual base::TimeTicks
ImplGetTimeNow() const OVERRIDE
;
24 void set_fake_now(const base::TimeTicks
& now
);
27 base::TimeTicks fake_now_
;
30 // Mocks the URLRequestThrottlerHeaderInterface, allowing testing code to
31 // pass arbitrary fake headers to the throttling code.
32 class MockURLRequestThrottlerHeaderAdapter
33 : public URLRequestThrottlerHeaderInterface
{
35 // Constructs mock response headers with the given |response_code| and no
36 // custom response header fields.
37 explicit MockURLRequestThrottlerHeaderAdapter(int response_code
);
39 // Constructs mock response headers with the given |response_code| and
40 // with a custom-retry header value |retry_value| if it is non-empty, and
41 // a custom opt-out header value |opt_out_value| if it is non-empty.
42 MockURLRequestThrottlerHeaderAdapter(const std::string
& retry_value
,
43 const std::string
& opt_out_value
,
45 virtual ~MockURLRequestThrottlerHeaderAdapter();
47 // URLRequestThrottlerHeaderInterface overrides.
48 virtual std::string
GetNormalizedValue(const std::string
& key
) const OVERRIDE
;
49 virtual int GetResponseCode() const OVERRIDE
;
52 std::string fake_retry_value_
;
53 std::string fake_opt_out_value_
;
54 int fake_response_code_
;
56 DISALLOW_COPY_AND_ASSIGN(MockURLRequestThrottlerHeaderAdapter
);
61 #endif // NET_URL_REQUEST_URL_REQUEST_THROTTLER_TEST_SUPPORT_H_