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/macros.h"
11 #include "base/time/tick_clock.h"
12 #include "base/time/time.h"
13 #include "net/base/backoff_entry.h"
14 #include "net/url_request/url_request_throttler_header_interface.h"
18 class TestTickClock
: public base::TickClock
{
21 explicit TestTickClock(base::TimeTicks now
);
22 ~TestTickClock() override
;
24 base::TimeTicks
NowTicks() override
;
25 void set_now(base::TimeTicks now
) { now_ticks_
= now
; }
28 base::TimeTicks now_ticks_
;
29 DISALLOW_COPY_AND_ASSIGN(TestTickClock
);
32 // Mocks the URLRequestThrottlerHeaderInterface, allowing testing code to
33 // pass arbitrary fake headers to the throttling code.
34 class MockURLRequestThrottlerHeaderAdapter
35 : public URLRequestThrottlerHeaderInterface
{
37 // Constructs mock response headers with the given |response_code| and no
38 // custom response header fields.
39 explicit MockURLRequestThrottlerHeaderAdapter(int response_code
);
41 // Constructs mock response headers with the given |response_code| and
42 // with a custom-retry header value |retry_value| if it is non-empty, and
43 // a custom opt-out header value |opt_out_value| if it is non-empty.
44 MockURLRequestThrottlerHeaderAdapter(const std::string
& retry_value
,
45 const std::string
& opt_out_value
,
47 ~MockURLRequestThrottlerHeaderAdapter() override
;
49 // URLRequestThrottlerHeaderInterface overrides.
50 std::string
GetNormalizedValue(const std::string
& key
) const override
;
51 int GetResponseCode() const override
;
54 std::string fake_retry_value_
;
55 std::string fake_opt_out_value_
;
56 int fake_response_code_
;
58 DISALLOW_COPY_AND_ASSIGN(MockURLRequestThrottlerHeaderAdapter
);
63 #endif // NET_URL_REQUEST_URL_REQUEST_THROTTLER_TEST_SUPPORT_H_