| Index: chrome/browser/sync/glue/http_bridge_unittest.cc | 
| =================================================================== | 
| --- chrome/browser/sync/glue/http_bridge_unittest.cc	(revision 29872) | 
| +++ chrome/browser/sync/glue/http_bridge_unittest.cc	(working copy) | 
| @@ -16,10 +16,22 @@ | 
| const wchar_t kDocRoot[] = L"chrome/test/data"; | 
| } | 
|  | 
| +// Lazy getter for TestURLRequestContext instances. | 
| +class TestURLRequestContextGetter : public URLRequestContextGetter { | 
| + public: | 
| +  virtual URLRequestContext* GetURLRequestContext() { | 
| +    if (!context_) | 
| +      context_ = new TestURLRequestContext; | 
| +    return context_; | 
| +  } | 
| + private: | 
| +  scoped_refptr<URLRequestContext> context_; | 
| +}; | 
| + | 
| class HttpBridgeTest : public testing::Test { | 
| public: | 
| HttpBridgeTest() | 
| -      : fake_default_request_context_(NULL), | 
| +      : fake_default_request_context_getter_(NULL), | 
| io_thread_("HttpBridgeTest IO thread") { | 
| } | 
|  | 
| @@ -30,19 +42,21 @@ | 
| } | 
|  | 
| virtual void TearDown() { | 
| -    io_thread_loop()->ReleaseSoon(FROM_HERE, fake_default_request_context_); | 
| +    io_thread_loop()->ReleaseSoon(FROM_HERE, | 
| +        fake_default_request_context_getter_); | 
| io_thread_.Stop(); | 
| -    fake_default_request_context_ = NULL; | 
| +    fake_default_request_context_getter_ = NULL; | 
| } | 
|  | 
| HttpBridge* BuildBridge() { | 
| -    if (!fake_default_request_context_) { | 
| -      fake_default_request_context_ = new TestURLRequestContext(); | 
| -      fake_default_request_context_->AddRef(); | 
| +    if (!fake_default_request_context_getter_) { | 
| +      fake_default_request_context_getter_ = new TestURLRequestContextGetter(); | 
| +      fake_default_request_context_getter_->AddRef(); | 
| } | 
| HttpBridge* bridge = new HttpBridge( | 
| -        new HttpBridge::RequestContext(fake_default_request_context_), | 
| -        io_thread_.message_loop()); | 
| +        new HttpBridge::RequestContextGetter( | 
| +            fake_default_request_context_getter_), | 
| +        io_thread_loop()); | 
| bridge->use_io_loop_for_testing_ = true; | 
| return bridge; | 
| } | 
| @@ -50,14 +64,14 @@ | 
| MessageLoop* io_thread_loop() { return io_thread_.message_loop(); } | 
|  | 
| // Note this is lazy created, so don't call this before your bridge. | 
| -  TestURLRequestContext* GetTestRequestContext() { | 
| -    return fake_default_request_context_; | 
| +  TestURLRequestContextGetter* GetTestRequestContextGetter() { | 
| +    return fake_default_request_context_getter_; | 
| } | 
|  | 
| private: | 
| // A make-believe "default" request context, as would be returned by | 
| // Profile::GetDefaultRequestContext().  Created lazily by BuildBridge. | 
| -  TestURLRequestContext* fake_default_request_context_; | 
| +  TestURLRequestContextGetter* fake_default_request_context_getter_; | 
|  | 
| // Separate thread for IO used by the HttpBridge. | 
| base::Thread io_thread_; | 
| @@ -67,9 +81,10 @@ | 
| // back with dummy response info. | 
| class ShuntedHttpBridge : public HttpBridge { | 
| public: | 
| -  ShuntedHttpBridge(URLRequestContext* baseline_context, | 
| +  ShuntedHttpBridge(URLRequestContextGetter* baseline_context_getter, | 
| MessageLoop* io_loop, HttpBridgeTest* test) | 
| -      : HttpBridge(new HttpBridge::RequestContext(baseline_context), | 
| +      : HttpBridge(new HttpBridge::RequestContextGetter( | 
| +                       baseline_context_getter), | 
| io_loop), test_(test) { } | 
| protected: | 
| virtual void MakeAsynchronousPost() { | 
| @@ -94,19 +109,22 @@ | 
|  | 
| TEST_F(HttpBridgeTest, TestUsesSameHttpNetworkSession) { | 
| scoped_refptr<HttpBridge> http_bridge(this->BuildBridge()); | 
| -  EXPECT_TRUE(GetTestRequestContext()); | 
| +  EXPECT_TRUE(GetTestRequestContextGetter()); | 
| net::HttpNetworkSession* test_session = | 
| -      GetTestRequestContext()->http_transaction_factory()->GetSession(); | 
| +      GetTestRequestContextGetter()->GetURLRequestContext()-> | 
| +      http_transaction_factory()->GetSession(); | 
| EXPECT_EQ(test_session, | 
| -            http_bridge->GetRequestContext()-> | 
| +            http_bridge->GetRequestContextGetter()-> | 
| +                GetURLRequestContext()-> | 
| http_transaction_factory()->GetSession()); | 
| } | 
|  | 
| // Test the HttpBridge without actually making any network requests. | 
| TEST_F(HttpBridgeTest, TestMakeSynchronousPostShunted) { | 
| -  scoped_refptr<TestURLRequestContext> ctx(new TestURLRequestContext()); | 
| +  scoped_refptr<URLRequestContextGetter> ctx_getter( | 
| +      new TestURLRequestContextGetter()); | 
| scoped_refptr<HttpBridge> http_bridge(new ShuntedHttpBridge( | 
| -      ctx, io_thread_loop(), this)); | 
| +      ctx_getter, io_thread_loop(), this)); | 
| http_bridge->SetUserAgent("bob"); | 
| http_bridge->SetURL("http://www.google.com", 9999); | 
| http_bridge->SetPostPayload("text/plain", 2, " "); | 
|  |