OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/safe_browsing/incident_reporting/incident_report_upload
er_impl.h" | 5 #include "chrome/browser/safe_browsing/incident_reporting/incident_report_upload
er_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/test/test_simple_task_runner.h" | 10 #include "base/test/test_simple_task_runner.h" |
11 #include "chrome/common/safe_browsing/csd.pb.h" | 11 #include "chrome/common/safe_browsing/csd.pb.h" |
12 #include "net/base/load_flags.h" | 12 #include "net/base/load_flags.h" |
13 #include "net/http/http_status_code.h" | 13 #include "net/http/http_status_code.h" |
14 #include "net/url_request/test_url_fetcher_factory.h" | 14 #include "net/url_request/test_url_fetcher_factory.h" |
15 #include "net/url_request/url_request_context_getter.h" | 15 #include "net/url_request/url_request_context_getter.h" |
16 #include "net/url_request/url_request_status.h" | 16 #include "net/url_request/url_request_status.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
18 | 18 |
19 class IncidentReportUploaderImplTest : public testing::Test { | 19 class IncidentReportUploaderImplTest : public testing::Test { |
20 public: | 20 public: |
21 // safe_browsing::IncidentReportUploader::OnResultCallback implementation. | 21 // safe_browsing::IncidentReportUploader::OnResultCallback implementation. |
22 void OnReportUploadResult( | 22 void OnReportUploadResult( |
23 safe_browsing::IncidentReportUploader::Result result, | 23 safe_browsing::IncidentReportUploader::Result result, |
24 scoped_ptr<safe_browsing::ClientIncidentResponse> response) { | 24 std::unique_ptr<safe_browsing::ClientIncidentResponse> response) { |
25 result_ = result; | 25 result_ = result; |
26 response_ = std::move(response); | 26 response_ = std::move(response); |
27 } | 27 } |
28 | 28 |
29 protected: | 29 protected: |
30 IncidentReportUploaderImplTest() | 30 IncidentReportUploaderImplTest() |
31 : task_runner_(new base::TestSimpleTaskRunner), | 31 : task_runner_(new base::TestSimpleTaskRunner), |
32 result_(safe_browsing::IncidentReportUploader::UPLOAD_REQUEST_FAILED) {} | 32 result_(safe_browsing::IncidentReportUploader::UPLOAD_REQUEST_FAILED) {} |
33 | 33 |
34 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; | 34 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; |
35 net::TestURLFetcherFactory url_fetcher_factory_; | 35 net::TestURLFetcherFactory url_fetcher_factory_; |
36 safe_browsing::IncidentReportUploader::Result result_; | 36 safe_browsing::IncidentReportUploader::Result result_; |
37 scoped_ptr<safe_browsing::ClientIncidentResponse> response_; | 37 std::unique_ptr<safe_browsing::ClientIncidentResponse> response_; |
38 }; | 38 }; |
39 | 39 |
40 TEST_F(IncidentReportUploaderImplTest, Success) { | 40 TEST_F(IncidentReportUploaderImplTest, Success) { |
41 safe_browsing::ClientIncidentReport report; | 41 safe_browsing::ClientIncidentReport report; |
42 scoped_ptr<safe_browsing::IncidentReportUploader> instance( | 42 std::unique_ptr<safe_browsing::IncidentReportUploader> instance( |
43 safe_browsing::IncidentReportUploaderImpl::UploadReport( | 43 safe_browsing::IncidentReportUploaderImpl::UploadReport( |
44 base::Bind(&IncidentReportUploaderImplTest::OnReportUploadResult, | 44 base::Bind(&IncidentReportUploaderImplTest::OnReportUploadResult, |
45 base::Unretained(this)), | 45 base::Unretained(this)), |
46 NULL, | 46 NULL, report)); |
47 report)); | |
48 | 47 |
49 net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID( | 48 net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID( |
50 safe_browsing::IncidentReportUploaderImpl::kTestUrlFetcherId); | 49 safe_browsing::IncidentReportUploaderImpl::kTestUrlFetcherId); |
51 ASSERT_NE(static_cast<net::TestURLFetcher*>(NULL), fetcher); | 50 ASSERT_NE(static_cast<net::TestURLFetcher*>(NULL), fetcher); |
52 | 51 |
53 safe_browsing::ClientIncidentReport uploaded_report; | 52 safe_browsing::ClientIncidentReport uploaded_report; |
54 | 53 |
55 EXPECT_EQ(net::LOAD_DISABLE_CACHE, fetcher->GetLoadFlags()); | 54 EXPECT_EQ(net::LOAD_DISABLE_CACHE, fetcher->GetLoadFlags()); |
56 EXPECT_TRUE(uploaded_report.ParseFromString(fetcher->upload_data())); | 55 EXPECT_TRUE(uploaded_report.ParseFromString(fetcher->upload_data())); |
57 | 56 |
58 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0)); | 57 fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0)); |
59 fetcher->set_response_code(net::HTTP_OK); | 58 fetcher->set_response_code(net::HTTP_OK); |
60 std::string response; | 59 std::string response; |
61 safe_browsing::ClientIncidentResponse().SerializeToString(&response); | 60 safe_browsing::ClientIncidentResponse().SerializeToString(&response); |
62 fetcher->SetResponseString(response); | 61 fetcher->SetResponseString(response); |
63 | 62 |
64 fetcher->delegate()->OnURLFetchComplete(fetcher); | 63 fetcher->delegate()->OnURLFetchComplete(fetcher); |
65 | 64 |
66 EXPECT_EQ(safe_browsing::IncidentReportUploader::UPLOAD_SUCCESS, result_); | 65 EXPECT_EQ(safe_browsing::IncidentReportUploader::UPLOAD_SUCCESS, result_); |
67 EXPECT_TRUE(response_); | 66 EXPECT_TRUE(response_); |
68 } | 67 } |
69 | 68 |
70 // TODO(grt): | 69 // TODO(grt): |
71 // bad status/response code | 70 // bad status/response code |
72 // confirm data in request is in upload test | 71 // confirm data in request is in upload test |
73 // confirm data in response is parsed | 72 // confirm data in response is parsed |
OLD | NEW |