| Index: chrome/browser/safe_browsing/malware_details_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/safe_browsing/malware_details_unittest.cc (revision 71096)
|
| +++ chrome/browser/safe_browsing/malware_details_unittest.cc (working copy)
|
| @@ -18,6 +18,8 @@
|
| static const char* kMalwareURL = "http://www.malware.com/";
|
| static const char* kHttpsURL = "https://www.url.com/";
|
|
|
| +using safe_browsing::ClientMalwareReportRequest;
|
| +
|
| class MalwareDetailsTest : public RenderViewHostTestHarness {
|
| public:
|
| MalwareDetailsTest()
|
| @@ -30,11 +32,17 @@
|
| }
|
|
|
| static bool ResourceLessThan(
|
| - const safe_browsing::ClientMalwareReportRequest::Resource* lhs,
|
| - const safe_browsing::ClientMalwareReportRequest::Resource* rhs) {
|
| - return lhs->url() < rhs->url();
|
| + const ClientMalwareReportRequest::Resource* lhs,
|
| + const ClientMalwareReportRequest::Resource* rhs) {
|
| + return lhs->id() < rhs->id();
|
| }
|
|
|
| + static bool NodeLessThan(
|
| + const ClientMalwareReportRequest::Node* lhs,
|
| + const ClientMalwareReportRequest::Node* rhs) {
|
| + return lhs->id() < rhs->id();
|
| + }
|
| +
|
| protected:
|
| void InitResource(SafeBrowsingService::UnsafeResource* resource,
|
| ResourceType::Type resource_type,
|
| @@ -47,39 +55,58 @@
|
| resource->render_view_id = contents_->render_view_host()->routing_id();
|
| }
|
|
|
| - void VerifyResults(
|
| - const safe_browsing::ClientMalwareReportRequest& report_pb,
|
| - const safe_browsing::ClientMalwareReportRequest& expected_pb) {
|
| + void VerifyResults(const ClientMalwareReportRequest& report_pb,
|
| + const ClientMalwareReportRequest& expected_pb) {
|
| EXPECT_EQ(expected_pb.malware_url(), report_pb.malware_url());
|
| EXPECT_EQ(expected_pb.page_url(), report_pb.page_url());
|
| EXPECT_EQ(expected_pb.referrer_url(), report_pb.referrer_url());
|
|
|
| - ASSERT_EQ(expected_pb.nodes_size(), report_pb.nodes_size());
|
| - // Sort the nodes, to make the test deterministic
|
| - std::vector<const safe_browsing::ClientMalwareReportRequest::Resource*>
|
| - nodes;
|
| - for (int i = 0; i < report_pb.nodes_size(); ++i) {
|
| - const safe_browsing::ClientMalwareReportRequest::Resource& resource =
|
| - report_pb.nodes(i);
|
| - nodes.push_back(&resource);
|
| + ASSERT_EQ(expected_pb.resources_size(), report_pb.resources_size());
|
| + // Sort the resources and nodes, to make the test deterministic
|
| + std::vector<const ClientMalwareReportRequest::Resource*> resources;
|
| + for (int i = 0; i < report_pb.resources_size(); ++i) {
|
| + const ClientMalwareReportRequest::Resource& resource =
|
| + report_pb.resources(i);
|
| + resources.push_back(&resource);
|
| }
|
| - std::sort(nodes.begin(), nodes.end(),
|
| + std::sort(resources.begin(), resources.end(),
|
| &MalwareDetailsTest::ResourceLessThan);
|
|
|
| - std::vector<const safe_browsing::ClientMalwareReportRequest::Resource*>
|
| - expected;
|
| - for (int i = 0; i < report_pb.nodes_size(); ++i) {
|
| - const safe_browsing::ClientMalwareReportRequest::Resource& resource =
|
| - expected_pb.nodes(i);
|
| + std::vector<const ClientMalwareReportRequest::Resource*> expected;
|
| + for (int i = 0; i < report_pb.resources_size(); ++i) {
|
| + const ClientMalwareReportRequest::Resource& resource =
|
| + expected_pb.resources(i);
|
| expected.push_back(&resource);
|
| }
|
| std::sort(expected.begin(), expected.end(),
|
| &MalwareDetailsTest::ResourceLessThan);
|
|
|
| for (uint32 i = 0; i < expected.size(); ++i) {
|
| - EXPECT_EQ(expected[i]->url(), nodes[i]->url());
|
| - EXPECT_EQ(expected[i]->parent(), nodes[i]->parent());
|
| + EXPECT_EQ(expected[i]->id(), resources[i]->id());
|
| + EXPECT_EQ(expected[i]->url(), resources[i]->url());
|
| }
|
| +
|
| + ASSERT_EQ(expected_pb.nodes_size(), report_pb.nodes_size());
|
| + // Sort the nodes, to make the test deterministic
|
| + std::vector<const ClientMalwareReportRequest::Node*> nodes;
|
| + for (int i = 0; i < report_pb.nodes_size(); ++i) {
|
| + const ClientMalwareReportRequest::Node& node = report_pb.nodes(i);
|
| + nodes.push_back(&node);
|
| + }
|
| + std::sort(nodes.begin(), nodes.end(), &MalwareDetailsTest::NodeLessThan);
|
| +
|
| + std::vector<const ClientMalwareReportRequest::Node*> expected_nodes;
|
| + for (int i = 0; i < report_pb.nodes_size(); ++i) {
|
| + const ClientMalwareReportRequest::Node& node = expected_pb.nodes(i);
|
| + expected_nodes.push_back(&node);
|
| + }
|
| + std::sort(expected_nodes.begin(), expected_nodes.end(),
|
| + &MalwareDetailsTest::NodeLessThan);
|
| +
|
| + for (uint32 i = 0; i < expected_nodes.size(); ++i) {
|
| + EXPECT_EQ(expected_nodes[i]->id(), nodes[i]->id());
|
| + EXPECT_EQ(expected_nodes[i]->parent_id(), nodes[i]->parent_id());
|
| + }
|
| }
|
|
|
| BrowserThread ui_thread_;
|
| @@ -98,19 +125,25 @@
|
| contents(), resource);
|
|
|
| scoped_ptr<const std::string> serialized(report->GetSerializedReport());
|
| - safe_browsing::ClientMalwareReportRequest actual;
|
| + ClientMalwareReportRequest actual;
|
| actual.ParseFromString(*serialized);
|
|
|
| - safe_browsing::ClientMalwareReportRequest expected;
|
| + ClientMalwareReportRequest expected;
|
| expected.set_malware_url(kMalwareURL);
|
| expected.set_page_url(kLandingURL);
|
| expected.set_referrer_url("");
|
|
|
| - safe_browsing::ClientMalwareReportRequest::Resource* node =
|
| - expected.add_nodes();
|
| - node->set_url(kLandingURL);
|
| + ClientMalwareReportRequest::Resource* pb_resource = expected.add_resources();
|
| + pb_resource->set_id(0);
|
| + pb_resource->set_url(kLandingURL);
|
| + pb_resource = expected.add_resources();
|
| + pb_resource->set_id(1);
|
| + pb_resource->set_url(kMalwareURL);
|
| +
|
| + ClientMalwareReportRequest::Node* node = expected.add_nodes();
|
| + node->set_id(0);
|
| node = expected.add_nodes();
|
| - node->set_url(kMalwareURL);
|
| + node->set_id(1);
|
|
|
| VerifyResults(actual, expected);
|
| }
|
| @@ -128,25 +161,35 @@
|
| contents(), resource);
|
|
|
| scoped_ptr<const std::string> serialized(report->GetSerializedReport());
|
| - safe_browsing::ClientMalwareReportRequest actual;
|
| + ClientMalwareReportRequest actual;
|
| actual.ParseFromString(*serialized);
|
|
|
| - safe_browsing::ClientMalwareReportRequest expected;
|
| + ClientMalwareReportRequest expected;
|
| expected.set_malware_url(kMalwareURL);
|
| expected.set_page_url(kLandingURL);
|
| expected.set_referrer_url("");
|
|
|
| - safe_browsing::ClientMalwareReportRequest::Resource* node =
|
| - expected.add_nodes();
|
| - node->set_url(kLandingURL);
|
| + ClientMalwareReportRequest::Resource* pb_resource = expected.add_resources();
|
| + pb_resource->set_id(0);
|
| + pb_resource->set_url(kLandingURL);
|
|
|
| - // Malware url should have originalurl as parent.
|
| - node = expected.add_nodes();
|
| - node->set_url(kMalwareURL);
|
| - node->set_parent(kOriginalLandingURL);
|
| + pb_resource = expected.add_resources();
|
| + pb_resource->set_id(1);
|
| + pb_resource->set_url(kOriginalLandingURL);
|
|
|
| + pb_resource = expected.add_resources();
|
| + pb_resource->set_id(2);
|
| + pb_resource->set_url(kMalwareURL);
|
| +
|
| + ClientMalwareReportRequest::Node* node = expected.add_nodes();
|
| + node->set_id(0);
|
| node = expected.add_nodes();
|
| - node->set_url(kOriginalLandingURL);
|
| + node->set_id(1);
|
| + // The Node for kMmalwareUrl (with id 2) should have the Node for
|
| + // kOriginalLandingURL (with id 1) as parent.
|
| + node = expected.add_nodes();
|
| + node->set_id(2);
|
| + node->set_parent_id(1);
|
|
|
| VerifyResults(actual, expected);
|
| }
|
| @@ -160,16 +203,18 @@
|
| contents(), resource);
|
|
|
| scoped_ptr<const std::string> serialized(report->GetSerializedReport());
|
| - safe_browsing::ClientMalwareReportRequest actual;
|
| + ClientMalwareReportRequest actual;
|
| actual.ParseFromString(*serialized);
|
|
|
| - safe_browsing::ClientMalwareReportRequest expected;
|
| + ClientMalwareReportRequest expected;
|
| expected.set_malware_url(kMalwareURL); // No page_url
|
| expected.set_referrer_url("");
|
|
|
| - safe_browsing::ClientMalwareReportRequest::Resource* node =
|
| - expected.add_nodes();
|
| - node->set_url(kMalwareURL); // Only one node
|
| + ClientMalwareReportRequest::Resource* pb_resource = expected.add_resources();
|
| + pb_resource->set_url(kMalwareURL); // Only one resource
|
|
|
| + ClientMalwareReportRequest::Node* node = expected.add_nodes();
|
| + node->set_id(0);
|
| +
|
| VerifyResults(actual, expected);
|
| }
|
|
|