| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <map> | 5 #include <map> |
| 6 #include <queue> | 6 #include <queue> |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 ClientSideModel model; | 214 ClientSideModel model; |
| 215 model.set_max_words_per_term(4); | 215 model.set_max_words_per_term(4); |
| 216 SetModelFetchResponse(model.SerializePartialAsString(), true /* success */); | 216 SetModelFetchResponse(model.SerializePartialAsString(), true /* success */); |
| 217 EXPECT_CALL(service, EndFetchModel( | 217 EXPECT_CALL(service, EndFetchModel( |
| 218 ClientSideDetectionService::MODEL_MISSING_FIELDS)) | 218 ClientSideDetectionService::MODEL_MISSING_FIELDS)) |
| 219 .WillOnce(QuitCurrentMessageLoop()); | 219 .WillOnce(QuitCurrentMessageLoop()); |
| 220 service.StartFetchModel(); | 220 service.StartFetchModel(); |
| 221 msg_loop_.Run(); // EndFetchModel will quit the message loop. | 221 msg_loop_.Run(); // EndFetchModel will quit the message loop. |
| 222 Mock::VerifyAndClearExpectations(&service); | 222 Mock::VerifyAndClearExpectations(&service); |
| 223 | 223 |
| 224 // Model that points to hashes that don't exist. |
| 225 model.set_version(10); |
| 226 model.add_hashes("bla"); |
| 227 model.add_page_term(1); // Should be 0 instead of 1. |
| 228 SetModelFetchResponse(model.SerializePartialAsString(), true /* success */); |
| 229 EXPECT_CALL(service, EndFetchModel( |
| 230 ClientSideDetectionService::MODEL_BAD_HASH_IDS)) |
| 231 .WillOnce(QuitCurrentMessageLoop()); |
| 232 service.StartFetchModel(); |
| 233 msg_loop_.Run(); // EndFetchModel will quit the message loop. |
| 234 Mock::VerifyAndClearExpectations(&service); |
| 235 model.set_page_term(0, 0); |
| 236 |
| 224 // Model version number is wrong. | 237 // Model version number is wrong. |
| 225 model.set_version(-1); | 238 model.set_version(-1); |
| 226 SetModelFetchResponse(model.SerializeAsString(), true /* success */); | 239 SetModelFetchResponse(model.SerializeAsString(), true /* success */); |
| 227 EXPECT_CALL(service, EndFetchModel( | 240 EXPECT_CALL(service, EndFetchModel( |
| 228 ClientSideDetectionService::MODEL_INVALID_VERSION_NUMBER)) | 241 ClientSideDetectionService::MODEL_INVALID_VERSION_NUMBER)) |
| 229 .WillOnce(QuitCurrentMessageLoop()); | 242 .WillOnce(QuitCurrentMessageLoop()); |
| 230 service.StartFetchModel(); | 243 service.StartFetchModel(); |
| 231 msg_loop_.Run(); // EndFetchModel will quit the message loop. | 244 msg_loop_.Run(); // EndFetchModel will quit the message loop. |
| 232 Mock::VerifyAndClearExpectations(&service); | 245 Mock::VerifyAndClearExpectations(&service); |
| 233 | 246 |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 EXPECT_FALSE(csd_service_->IsBadIpAddress("192.1.124.0")); | 506 EXPECT_FALSE(csd_service_->IsBadIpAddress("192.1.124.0")); |
| 494 | 507 |
| 495 EXPECT_FALSE(csd_service_->IsBadIpAddress("192.1.127.255")); | 508 EXPECT_FALSE(csd_service_->IsBadIpAddress("192.1.127.255")); |
| 496 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.128.0")); | 509 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.128.0")); |
| 497 EXPECT_TRUE(csd_service_->IsBadIpAddress("::ffff:192.1.128.1")); | 510 EXPECT_TRUE(csd_service_->IsBadIpAddress("::ffff:192.1.128.1")); |
| 498 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.128.255")); | 511 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.128.255")); |
| 499 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.255.0")); | 512 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.255.0")); |
| 500 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.255.255")); | 513 EXPECT_TRUE(csd_service_->IsBadIpAddress("192.1.255.255")); |
| 501 EXPECT_FALSE(csd_service_->IsBadIpAddress("192.2.0.0")); | 514 EXPECT_FALSE(csd_service_->IsBadIpAddress("192.2.0.0")); |
| 502 } | 515 } |
| 516 |
| 517 TEST_F(ClientSideDetectionServiceTest, ModelHasValidHashIds) { |
| 518 ClientSideModel model; |
| 519 EXPECT_TRUE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 520 model.add_hashes("bla"); |
| 521 EXPECT_TRUE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 522 model.add_page_term(0); |
| 523 model.add_page_word(0); |
| 524 EXPECT_TRUE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 525 |
| 526 model.add_page_term(-1); |
| 527 EXPECT_FALSE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 528 model.set_page_term(1, 1); |
| 529 EXPECT_FALSE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 530 model.set_page_term(1, 0); |
| 531 EXPECT_TRUE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 532 |
| 533 model.add_page_word(-2); |
| 534 EXPECT_FALSE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 535 model.set_page_word(1, 2); |
| 536 EXPECT_FALSE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 537 model.set_page_word(1, 0); |
| 538 EXPECT_TRUE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 539 |
| 540 // Test bad rules. |
| 541 model.add_hashes("blu"); |
| 542 ClientSideModel::Rule* rule = model.add_rule(); |
| 543 rule->add_feature(0); |
| 544 rule->add_feature(1); |
| 545 rule->set_weight(0.1f); |
| 546 EXPECT_TRUE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 547 |
| 548 rule = model.add_rule(); |
| 549 rule->add_feature(0); |
| 550 rule->add_feature(1); |
| 551 rule->add_feature(-1); |
| 552 rule->set_weight(0.2f); |
| 553 EXPECT_FALSE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 554 |
| 555 rule->set_feature(2, 2); |
| 556 EXPECT_FALSE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 557 |
| 558 rule->set_feature(2, 1); |
| 559 EXPECT_TRUE(ClientSideDetectionService::ModelHasValidHashIds(model)); |
| 560 } |
| 503 } // namespace safe_browsing | 561 } // namespace safe_browsing |
| OLD | NEW |