• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 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_FILTER_MOCK_FILTER_CONTEXT_H_
6 #define NET_FILTER_MOCK_FILTER_CONTEXT_H_
7 
8 #include <string>
9 
10 #include "base/memory/scoped_ptr.h"
11 #include "net/filter/filter.h"
12 #include "url/gurl.h"
13 
14 namespace net {
15 
16 class URLRequestContext;
17 
18 class MockFilterContext : public FilterContext {
19  public:
20   MockFilterContext();
21   virtual ~MockFilterContext();
22 
SetMimeType(const std::string & mime_type)23   void SetMimeType(const std::string& mime_type) { mime_type_ = mime_type; }
SetURL(const GURL & gurl)24   void SetURL(const GURL& gurl) { gurl_ = gurl; }
SetContentDisposition(const std::string & disposition)25   void SetContentDisposition(const std::string& disposition) {
26     content_disposition_ = disposition;
27   }
SetRequestTime(const base::Time time)28   void SetRequestTime(const base::Time time) { request_time_ = time; }
SetCached(bool is_cached)29   void SetCached(bool is_cached) { is_cached_content_ = is_cached; }
SetDownload(bool is_download)30   void SetDownload(bool is_download) { is_download_ = is_download; }
SetResponseCode(int response_code)31   void SetResponseCode(int response_code) { response_code_ = response_code; }
SetSdchResponse(bool is_sdch_response)32   void SetSdchResponse(bool is_sdch_response) {
33     is_sdch_response_ = is_sdch_response;
34   }
GetModifiableURLRequestContext()35   URLRequestContext* GetModifiableURLRequestContext() const {
36     return context_.get();
37   }
38 
39   // After a URLRequest's destructor is called, some interfaces may become
40   // unstable.  This method is used to signal that state, so we can tag use
41   // of those interfaces as coding errors.
42   void NukeUnstableInterfaces();
43 
44   virtual bool GetMimeType(std::string* mime_type) const OVERRIDE;
45 
46   // What URL was used to access this data?
47   // Return false if gurl is not present.
48   virtual bool GetURL(GURL* gurl) const OVERRIDE;
49 
50   // What Content-Disposition did the server supply for this data?
51   // Return false if Content-Disposition was not present.
52   virtual bool GetContentDisposition(std::string* disposition) const OVERRIDE;
53 
54   // What was this data requested from a server?
55   virtual base::Time GetRequestTime() const OVERRIDE;
56 
57   // Is data supplied from cache, or fresh across the net?
58   virtual bool IsCachedContent() const OVERRIDE;
59 
60   // Is this a download?
61   virtual bool IsDownload() const OVERRIDE;
62 
63   // Was this data flagged as a response to a request with an SDCH dictionary?
64   virtual bool SdchResponseExpected() const OVERRIDE;
65 
66   // How many bytes were fed to filter(s) so far?
67   virtual int64 GetByteReadCount() const OVERRIDE;
68 
69   virtual int GetResponseCode() const OVERRIDE;
70 
71   // The URLRequestContext associated with the request.
72   virtual const URLRequestContext* GetURLRequestContext() const OVERRIDE;
73 
RecordPacketStats(StatisticSelector statistic)74   virtual void RecordPacketStats(StatisticSelector statistic) const OVERRIDE {}
75 
76  private:
77   int buffer_size_;
78   std::string mime_type_;
79   std::string content_disposition_;
80   GURL gurl_;
81   base::Time request_time_;
82   bool is_cached_content_;
83   bool is_download_;
84   bool is_sdch_response_;
85   bool ok_to_call_get_url_;
86   int response_code_;
87   scoped_ptr<URLRequestContext> context_;
88 
89   DISALLOW_COPY_AND_ASSIGN(MockFilterContext);
90 };
91 
92 }  // namespace net
93 
94 #endif  // NET_FILTER_MOCK_FILTER_CONTEXT_H_
95