Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: content/test/net/url_request_slow_download_job.h

Issue 11363222: Persist download interrupt reason, both target and current paths, and url_chain. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merged to r180302 Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // This class simulates a slow download. This used in a UI test to test the 4 // This class simulates a slow download. This used in a UI test to test the
5 // download manager. Requests to |kUnknownSizeUrl| and |kKnownSizeUrl| start 5 // download manager. Requests to |kUnknownSizeUrl| and |kKnownSizeUrl| start
6 // downloads that pause after the first N bytes, to be completed by sending a 6 // downloads that pause after the first N bytes, to be completed by sending a
7 // request to |kFinishDownloadUrl|. 7 // request to |kFinishDownloadUrl|.
8 8
9 #ifndef CONTENT_TEST_NET_URL_REQUEST_SLOW_DOWNLOAD_JOB_H_ 9 #ifndef CONTENT_TEST_NET_URL_REQUEST_SLOW_DOWNLOAD_JOB_H_
10 #define CONTENT_TEST_NET_URL_REQUEST_SLOW_DOWNLOAD_JOB_H_ 10 #define CONTENT_TEST_NET_URL_REQUEST_SLOW_DOWNLOAD_JOB_H_
11 11
12 #include <set> 12 #include <set>
13 #include <string> 13 #include <string>
14 14
15 #include "base/lazy_instance.h" 15 #include "base/lazy_instance.h"
16 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
17 #include "net/url_request/url_request_job.h" 17 #include "net/url_request/url_request_job.h"
18 18
19 namespace content { 19 namespace content {
20 20
21 class URLRequestSlowDownloadJob : public net::URLRequestJob { 21 class URLRequestSlowDownloadJob : public net::URLRequestJob {
22 public: 22 public:
23 // Test URLs. 23 // Test URLs.
24 static const char kUnknownSizeUrl[]; 24 static const char kUnknownSizeUrl[];
25 static const char kKnownSizeUrl[]; 25 static const char kKnownSizeUrl[];
26 static const char kFinishDownloadUrl[]; 26 static const char kFinishDownloadUrl[];
27 static const char kErrorDownloadUrl[];
27 28
28 // Download sizes. 29 // Download sizes.
29 static const int kFirstDownloadSize; 30 static const int kFirstDownloadSize;
30 static const int kSecondDownloadSize; 31 static const int kSecondDownloadSize;
31 32
32 // Timer callback, used to check to see if we should finish our download and 33 // Timer callback, used to check to see if we should finish our download and
33 // send the second chunk. 34 // send the second chunk.
34 void CheckDoneStatus(); 35 void CheckDoneStatus();
35 36
36 // net::URLRequestJob methods 37 // net::URLRequestJob methods
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 ReadStatus FillBufferHelper( 75 ReadStatus FillBufferHelper(
75 net::IOBuffer* buf, 76 net::IOBuffer* buf,
76 int buf_size, 77 int buf_size,
77 int* bytes_written); 78 int* bytes_written);
78 79
79 void GetResponseInfoConst(net::HttpResponseInfo* info) const; 80 void GetResponseInfoConst(net::HttpResponseInfo* info) const;
80 81
81 // Mark all pending requests to be finished. We keep track of pending 82 // Mark all pending requests to be finished. We keep track of pending
82 // requests in |pending_requests_|. 83 // requests in |pending_requests_|.
83 static void FinishPendingRequests(); 84 static void FinishPendingRequests();
85 static void ErrorPendingRequests();
84 typedef std::set<URLRequestSlowDownloadJob*> SlowJobsSet; 86 typedef std::set<URLRequestSlowDownloadJob*> SlowJobsSet;
85 static base::LazyInstance<SlowJobsSet>::Leaky pending_requests_; 87 static base::LazyInstance<SlowJobsSet>::Leaky pending_requests_;
86 88
87 void StartAsync(); 89 void StartAsync();
88 90
89 void set_should_finish_download() { should_finish_download_ = true; } 91 void set_should_finish_download() { should_finish_download_ = true; }
92 void set_should_error_download() { should_error_download_ = true; }
90 93
91 int bytes_already_sent_; 94 int bytes_already_sent_;
95 bool should_error_download_;
92 bool should_finish_download_; 96 bool should_finish_download_;
93 scoped_refptr<net::IOBuffer> buffer_; 97 scoped_refptr<net::IOBuffer> buffer_;
94 int buffer_size_; 98 int buffer_size_;
95 99
96 base::WeakPtrFactory<URLRequestSlowDownloadJob> weak_factory_; 100 base::WeakPtrFactory<URLRequestSlowDownloadJob> weak_factory_;
97 }; 101 };
98 102
99 } // namespace content 103 } // namespace content
100 104
101 #endif // CONTENT_TEST_NET_URL_REQUEST_SLOW_DOWNLOAD_JOB_H_ 105 #endif // CONTENT_TEST_NET_URL_REQUEST_SLOW_DOWNLOAD_JOB_H_
OLDNEW
« no previous file with comments | « content/public/test/mock_download_manager.cc ('k') | content/test/net/url_request_slow_download_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698