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

Side by Side Diff: chrome/common/net/test_url_fetcher_factory.h

Issue 3176028: Use ChromeThread::IO instead of virtual set_request_context (Closed)
Patch Set: Created 10 years, 4 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 4
5 #ifndef CHROME_COMMON_NET_TEST_URL_FETCHER_FACTORY_H_ 5 #ifndef CHROME_COMMON_NET_TEST_URL_FETCHER_FACTORY_H_
6 #define CHROME_COMMON_NET_TEST_URL_FETCHER_FACTORY_H_ 6 #define CHROME_COMMON_NET_TEST_URL_FETCHER_FACTORY_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
11 11
12 #include "chrome/common/net/url_fetcher.h" 12 #include "chrome/common/net/url_fetcher.h"
13 #include "googleurl/src/gurl.h" 13 #include "googleurl/src/gurl.h"
14 14
15 // TestURLFetcher and TestURLFetcherFactory are used for testing consumers of 15 // TestURLFetcher and TestURLFetcherFactory are used for testing consumers of
16 // URLFetcher. TestURLFetcherFactory is a URLFetcher::Factory that creates 16 // URLFetcher. TestURLFetcherFactory is a URLFetcher::Factory that creates
17 // TestURLFetchers. TestURLFetcher::Start is overriden to do nothing. It is 17 // TestURLFetchers. TestURLFetcher::Start is overriden to do nothing. It is
18 // expected that you'll grab the delegate from the TestURLFetcher and invoke 18 // expected that you'll grab the delegate from the TestURLFetcher and invoke
19 // the callback method when appropriate. In this way it's easy to mock a 19 // the callback method when appropriate. In this way it's easy to mock a
20 // URLFetcher. 20 // URLFetcher.
21 // Typical usage: 21 // Typical usage:
22 // // TestURLFetcher requires a MessageLoop: 22 // // TestURLFetcher requires a MessageLoop:
23 // MessageLoopForUI message_loop; 23 // MessageLoopForUI message_loop;
24 // // And io_thread to release URLRequestContextGetter in URLFetcher::Core.
25 // ChromeThread io_thread(ChromeThread::IO, &message_loop);
24 // // Create and register factory. 26 // // Create and register factory.
25 // TestURLFetcherFactory factory; 27 // TestURLFetcherFactory factory;
26 // URLFetcher::set_factory(&factory); 28 // URLFetcher::set_factory(&factory);
27 // // Do something that triggers creation of a URLFetcher. 29 // // Do something that triggers creation of a URLFetcher.
28 // TestURLFetcher* fetcher = factory.GetFetcherByID(expected_id); 30 // TestURLFetcher* fetcher = factory.GetFetcherByID(expected_id);
29 // DCHECK(fetcher); 31 // DCHECK(fetcher);
30 // // Notify delegate with whatever data you want. 32 // // Notify delegate with whatever data you want.
31 // fetcher->delegate()->OnURLFetchComplete(...); 33 // fetcher->delegate()->OnURLFetchComplete(...);
32 // // Make sure consumer of URLFetcher does the right thing. 34 // // Make sure consumer of URLFetcher does the right thing.
33 // ... 35 // ...
(...skipping 12 matching lines...) Expand all
46 virtual void Start() {} 48 virtual void Start() {}
47 49
48 // URL we were created with. Because of how we're using URLFetcher url() 50 // URL we were created with. Because of how we're using URLFetcher url()
49 // always returns an empty URL. Chances are you'll want to use original_url() 51 // always returns an empty URL. Chances are you'll want to use original_url()
50 // in your tests. 52 // in your tests.
51 const GURL& original_url() const { return original_url_; } 53 const GURL& original_url() const { return original_url_; }
52 54
53 // Returns the data uploaded on this URLFetcher. 55 // Returns the data uploaded on this URLFetcher.
54 const std::string& upload_data() const { return URLFetcher::upload_data(); } 56 const std::string& upload_data() const { return URLFetcher::upload_data(); }
55 57
56 // Overriden to do nothing. URLFetcher implementation add reference
57 // to request_context_getter in core_, but it might not be released
58 // because we wouldn't call Core::CancelURLRequest.
59 // Without this, we'll see leaks of URLRequestContext in test.
60 virtual void set_request_context(
61 URLRequestContextGetter* request_context_getter) {}
62
63 private: 58 private:
64 const GURL original_url_; 59 const GURL original_url_;
65 60
66 DISALLOW_COPY_AND_ASSIGN(TestURLFetcher); 61 DISALLOW_COPY_AND_ASSIGN(TestURLFetcher);
67 }; 62 };
68 63
69 // Simple URLFetcher::Factory method that creates TestURLFetchers. All fetchers 64 // Simple URLFetcher::Factory method that creates TestURLFetchers. All fetchers
70 // are registered in a map by the id passed to the create method. 65 // are registered in a map by the id passed to the create method.
71 class TestURLFetcherFactory : public URLFetcher::Factory { 66 class TestURLFetcherFactory : public URLFetcher::Factory {
72 public: 67 public:
73 TestURLFetcherFactory() {} 68 TestURLFetcherFactory() {}
74 69
75 virtual URLFetcher* CreateURLFetcher(int id, 70 virtual URLFetcher* CreateURLFetcher(int id,
76 const GURL& url, 71 const GURL& url,
77 URLFetcher::RequestType request_type, 72 URLFetcher::RequestType request_type,
78 URLFetcher::Delegate* d); 73 URLFetcher::Delegate* d);
79 74
80 TestURLFetcher* GetFetcherByID(int id) const; 75 TestURLFetcher* GetFetcherByID(int id) const;
81 76
82 private: 77 private:
83 // Maps from id passed to create to the returned URLFetcher. 78 // Maps from id passed to create to the returned URLFetcher.
84 typedef std::map<int, TestURLFetcher*> Fetchers; 79 typedef std::map<int, TestURLFetcher*> Fetchers;
85 Fetchers fetchers_; 80 Fetchers fetchers_;
86 81
87 DISALLOW_COPY_AND_ASSIGN(TestURLFetcherFactory); 82 DISALLOW_COPY_AND_ASSIGN(TestURLFetcherFactory);
88 }; 83 };
89 84
90 #endif // CHROME_COMMON_NET_TEST_URL_FETCHER_FACTORY_H_ 85 #endif // CHROME_COMMON_NET_TEST_URL_FETCHER_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698