| 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 |