OLD | NEW |
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 | 4 |
5 #include "net/url_request/url_request_job_factory_impl.h" | 5 #include "net/url_request/url_request_job_factory_impl.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
11 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
13 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
14 #include "base/single_thread_task_runner.h" | 14 #include "base/single_thread_task_runner.h" |
15 #include "base/threading/thread_task_runner_handle.h" | 15 #include "base/threading/thread_task_runner_handle.h" |
16 #include "net/base/request_priority.h" | 16 #include "net/base/request_priority.h" |
| 17 #include "net/test/gtest_util.h" |
17 #include "net/url_request/url_request.h" | 18 #include "net/url_request/url_request.h" |
18 #include "net/url_request/url_request_job.h" | 19 #include "net/url_request/url_request_job.h" |
19 #include "net/url_request/url_request_test_util.h" | 20 #include "net/url_request/url_request_test_util.h" |
| 21 #include "testing/gmock/include/gmock/gmock.h" |
20 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
21 | 23 |
| 24 using net::test::IsError; |
| 25 using net::test::IsOk; |
| 26 |
22 namespace net { | 27 namespace net { |
23 | 28 |
24 namespace { | 29 namespace { |
25 | 30 |
26 class MockURLRequestJob : public URLRequestJob { | 31 class MockURLRequestJob : public URLRequestJob { |
27 public: | 32 public: |
28 MockURLRequestJob(URLRequest* request, NetworkDelegate* network_delegate) | 33 MockURLRequestJob(URLRequest* request, NetworkDelegate* network_delegate) |
29 : URLRequestJob(request, network_delegate), weak_factory_(this) {} | 34 : URLRequestJob(request, network_delegate), weak_factory_(this) {} |
30 | 35 |
31 void Start() override { | 36 void Start() override { |
(...skipping 26 matching lines...) Expand all Loading... |
58 | 63 |
59 TEST(URLRequestJobFactoryTest, NoProtocolHandler) { | 64 TEST(URLRequestJobFactoryTest, NoProtocolHandler) { |
60 TestDelegate delegate; | 65 TestDelegate delegate; |
61 TestURLRequestContext request_context; | 66 TestURLRequestContext request_context; |
62 std::unique_ptr<URLRequest> request(request_context.CreateRequest( | 67 std::unique_ptr<URLRequest> request(request_context.CreateRequest( |
63 GURL("foo://bar"), DEFAULT_PRIORITY, &delegate)); | 68 GURL("foo://bar"), DEFAULT_PRIORITY, &delegate)); |
64 request->Start(); | 69 request->Start(); |
65 | 70 |
66 base::RunLoop().Run(); | 71 base::RunLoop().Run(); |
67 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); | 72 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); |
68 EXPECT_EQ(ERR_UNKNOWN_URL_SCHEME, request->status().error()); | 73 EXPECT_THAT(request->status().error(), IsError(ERR_UNKNOWN_URL_SCHEME)); |
69 } | 74 } |
70 | 75 |
71 TEST(URLRequestJobFactoryTest, BasicProtocolHandler) { | 76 TEST(URLRequestJobFactoryTest, BasicProtocolHandler) { |
72 TestDelegate delegate; | 77 TestDelegate delegate; |
73 URLRequestJobFactoryImpl job_factory; | 78 URLRequestJobFactoryImpl job_factory; |
74 TestURLRequestContext request_context; | 79 TestURLRequestContext request_context; |
75 request_context.set_job_factory(&job_factory); | 80 request_context.set_job_factory(&job_factory); |
76 job_factory.SetProtocolHandler("foo", | 81 job_factory.SetProtocolHandler("foo", |
77 base::WrapUnique(new DummyProtocolHandler)); | 82 base::WrapUnique(new DummyProtocolHandler)); |
78 std::unique_ptr<URLRequest> request(request_context.CreateRequest( | 83 std::unique_ptr<URLRequest> request(request_context.CreateRequest( |
79 GURL("foo://bar"), DEFAULT_PRIORITY, &delegate)); | 84 GURL("foo://bar"), DEFAULT_PRIORITY, &delegate)); |
80 request->Start(); | 85 request->Start(); |
81 | 86 |
82 base::RunLoop().Run(); | 87 base::RunLoop().Run(); |
83 EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); | 88 EXPECT_EQ(URLRequestStatus::SUCCESS, request->status().status()); |
84 EXPECT_EQ(OK, request->status().error()); | 89 EXPECT_THAT(request->status().error(), IsOk()); |
85 } | 90 } |
86 | 91 |
87 TEST(URLRequestJobFactoryTest, DeleteProtocolHandler) { | 92 TEST(URLRequestJobFactoryTest, DeleteProtocolHandler) { |
88 URLRequestJobFactoryImpl job_factory; | 93 URLRequestJobFactoryImpl job_factory; |
89 TestURLRequestContext request_context; | 94 TestURLRequestContext request_context; |
90 request_context.set_job_factory(&job_factory); | 95 request_context.set_job_factory(&job_factory); |
91 job_factory.SetProtocolHandler("foo", | 96 job_factory.SetProtocolHandler("foo", |
92 base::WrapUnique(new DummyProtocolHandler)); | 97 base::WrapUnique(new DummyProtocolHandler)); |
93 job_factory.SetProtocolHandler("foo", nullptr); | 98 job_factory.SetProtocolHandler("foo", nullptr); |
94 } | 99 } |
95 | 100 |
96 } // namespace | 101 } // namespace |
97 | 102 |
98 } // namespace net | 103 } // namespace net |
OLD | NEW |