blob: fc280686b8f0dd574e0a1bd3939b7a7565692e0a [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// 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.
4
5#ifndef NET_URL_REQUEST_URL_REQUEST_THROTTLER_TEST_SUPPORT_H_
6#define NET_URL_REQUEST_URL_REQUEST_THROTTLER_TEST_SUPPORT_H_
7
8#include <string>
9
Ben Murdocheb525c52013-07-10 11:40:50 +010010#include "base/time/time.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000011#include "net/base/backoff_entry.h"
12#include "net/url_request/url_request_throttler_header_interface.h"
13
14namespace net {
15
16class MockBackoffEntry : public BackoffEntry {
17 public:
18 explicit MockBackoffEntry(const BackoffEntry::Policy* const policy);
19 virtual ~MockBackoffEntry();
20
21 // BackoffEntry overrides.
22 virtual base::TimeTicks ImplGetTimeNow() const OVERRIDE;
23
24 void set_fake_now(const base::TimeTicks& now);
25
26 private:
27 base::TimeTicks fake_now_;
28};
29
30// Mocks the URLRequestThrottlerHeaderInterface, allowing testing code to
31// pass arbitrary fake headers to the throttling code.
32class MockURLRequestThrottlerHeaderAdapter
33 : public URLRequestThrottlerHeaderInterface {
34 public:
35 // Constructs mock response headers with the given |response_code| and no
36 // custom response header fields.
37 explicit MockURLRequestThrottlerHeaderAdapter(int response_code);
38
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,
44 int response_code);
45 virtual ~MockURLRequestThrottlerHeaderAdapter();
46
47 // URLRequestThrottlerHeaderInterface overrides.
48 virtual std::string GetNormalizedValue(const std::string& key) const OVERRIDE;
49 virtual int GetResponseCode() const OVERRIDE;
50
51 private:
52 std::string fake_retry_value_;
53 std::string fake_opt_out_value_;
54 int fake_response_code_;
55
56 DISALLOW_COPY_AND_ASSIGN(MockURLRequestThrottlerHeaderAdapter);
57};
58
59} // namespace net
60
61#endif // NET_URL_REQUEST_URL_REQUEST_THROTTLER_TEST_SUPPORT_H_