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