Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Side by Side Diff: trunk/src/chrome/browser/safe_browsing/prefix_set_unittest.cc

Issue 105823009: Revert 239280 "Move more file_util functions to base namespace." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "chrome/browser/safe_browsing/prefix_set.h" 5 #include "chrome/browser/safe_browsing/prefix_set.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 9
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 ASSERT_EQ(file_size, ftell(fp)); 144 ASSERT_EQ(file_size, ftell(fp));
145 } 145 }
146 146
147 // Open |filename| and increment the int32 at |offset| by |inc|. 147 // Open |filename| and increment the int32 at |offset| by |inc|.
148 // Then re-generate the checksum to account for the new contents. 148 // Then re-generate the checksum to account for the new contents.
149 void ModifyAndCleanChecksum(const base::FilePath& filename, long offset, 149 void ModifyAndCleanChecksum(const base::FilePath& filename, long offset,
150 int inc) { 150 int inc) {
151 int64 size_64; 151 int64 size_64;
152 ASSERT_TRUE(base::GetFileSize(filename, &size_64)); 152 ASSERT_TRUE(base::GetFileSize(filename, &size_64));
153 153
154 file_util::ScopedFILE file(base::OpenFile(filename, "r+b")); 154 file_util::ScopedFILE file(file_util::OpenFile(filename, "r+b"));
155 IncrementIntAt(file.get(), offset, inc); 155 IncrementIntAt(file.get(), offset, inc);
156 CleanChecksum(file.get()); 156 CleanChecksum(file.get());
157 file.reset(); 157 file.reset();
158 158
159 int64 new_size_64; 159 int64 new_size_64;
160 ASSERT_TRUE(base::GetFileSize(filename, &new_size_64)); 160 ASSERT_TRUE(base::GetFileSize(filename, &new_size_64));
161 ASSERT_EQ(new_size_64, size_64); 161 ASSERT_EQ(new_size_64, size_64);
162 } 162 }
163 163
164 // Tests should not modify this shared resource. 164 // Tests should not modify this shared resource.
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 CheckPrefixes(*prefix_set, prefixes); 366 CheckPrefixes(*prefix_set, prefixes);
367 } 367 }
368 } 368 }
369 369
370 // Check that |CleanChecksum()| makes an acceptable checksum. 370 // Check that |CleanChecksum()| makes an acceptable checksum.
371 TEST_F(PrefixSetTest, CorruptionHelpers) { 371 TEST_F(PrefixSetTest, CorruptionHelpers) {
372 base::FilePath filename; 372 base::FilePath filename;
373 ASSERT_TRUE(GetPrefixSetFile(&filename)); 373 ASSERT_TRUE(GetPrefixSetFile(&filename));
374 374
375 // This will modify data in |index_|, which will fail the digest check. 375 // This will modify data in |index_|, which will fail the digest check.
376 file_util::ScopedFILE file(base::OpenFile(filename, "r+b")); 376 file_util::ScopedFILE file(file_util::OpenFile(filename, "r+b"));
377 IncrementIntAt(file.get(), kPayloadOffset, 1); 377 IncrementIntAt(file.get(), kPayloadOffset, 1);
378 file.reset(); 378 file.reset();
379 scoped_ptr<safe_browsing::PrefixSet> 379 scoped_ptr<safe_browsing::PrefixSet>
380 prefix_set(safe_browsing::PrefixSet::LoadFile(filename)); 380 prefix_set(safe_browsing::PrefixSet::LoadFile(filename));
381 ASSERT_FALSE(prefix_set.get()); 381 ASSERT_FALSE(prefix_set.get());
382 382
383 // Fix up the checksum and it will read successfully (though the 383 // Fix up the checksum and it will read successfully (though the
384 // data will be wrong). 384 // data will be wrong).
385 file.reset(base::OpenFile(filename, "r+b")); 385 file.reset(file_util::OpenFile(filename, "r+b"));
386 CleanChecksum(file.get()); 386 CleanChecksum(file.get());
387 file.reset(); 387 file.reset();
388 prefix_set.reset(safe_browsing::PrefixSet::LoadFile(filename)); 388 prefix_set.reset(safe_browsing::PrefixSet::LoadFile(filename));
389 ASSERT_TRUE(prefix_set.get()); 389 ASSERT_TRUE(prefix_set.get());
390 } 390 }
391 391
392 // Bad |index_| size is caught by the sanity check. 392 // Bad |index_| size is caught by the sanity check.
393 TEST_F(PrefixSetTest, CorruptionMagic) { 393 TEST_F(PrefixSetTest, CorruptionMagic) {
394 base::FilePath filename; 394 base::FilePath filename;
395 ASSERT_TRUE(GetPrefixSetFile(&filename)); 395 ASSERT_TRUE(GetPrefixSetFile(&filename));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 prefix_set(safe_browsing::PrefixSet::LoadFile(filename)); 436 prefix_set(safe_browsing::PrefixSet::LoadFile(filename));
437 ASSERT_FALSE(prefix_set.get()); 437 ASSERT_FALSE(prefix_set.get());
438 } 438 }
439 439
440 // Test that the digest catches corruption in the middle of the file 440 // Test that the digest catches corruption in the middle of the file
441 // (in the payload between the header and the digest). 441 // (in the payload between the header and the digest).
442 TEST_F(PrefixSetTest, CorruptionPayload) { 442 TEST_F(PrefixSetTest, CorruptionPayload) {
443 base::FilePath filename; 443 base::FilePath filename;
444 ASSERT_TRUE(GetPrefixSetFile(&filename)); 444 ASSERT_TRUE(GetPrefixSetFile(&filename));
445 445
446 file_util::ScopedFILE file(base::OpenFile(filename, "r+b")); 446 file_util::ScopedFILE file(file_util::OpenFile(filename, "r+b"));
447 ASSERT_NO_FATAL_FAILURE(IncrementIntAt(file.get(), 666, 1)); 447 ASSERT_NO_FATAL_FAILURE(IncrementIntAt(file.get(), 666, 1));
448 file.reset(); 448 file.reset();
449 scoped_ptr<safe_browsing::PrefixSet> 449 scoped_ptr<safe_browsing::PrefixSet>
450 prefix_set(safe_browsing::PrefixSet::LoadFile(filename)); 450 prefix_set(safe_browsing::PrefixSet::LoadFile(filename));
451 ASSERT_FALSE(prefix_set.get()); 451 ASSERT_FALSE(prefix_set.get());
452 } 452 }
453 453
454 // Test corruption in the digest itself. 454 // Test corruption in the digest itself.
455 TEST_F(PrefixSetTest, CorruptionDigest) { 455 TEST_F(PrefixSetTest, CorruptionDigest) {
456 base::FilePath filename; 456 base::FilePath filename;
457 ASSERT_TRUE(GetPrefixSetFile(&filename)); 457 ASSERT_TRUE(GetPrefixSetFile(&filename));
458 458
459 int64 size_64; 459 int64 size_64;
460 ASSERT_TRUE(base::GetFileSize(filename, &size_64)); 460 ASSERT_TRUE(base::GetFileSize(filename, &size_64));
461 file_util::ScopedFILE file(base::OpenFile(filename, "r+b")); 461 file_util::ScopedFILE file(file_util::OpenFile(filename, "r+b"));
462 long digest_offset = static_cast<long>(size_64 - sizeof(base::MD5Digest)); 462 long digest_offset = static_cast<long>(size_64 - sizeof(base::MD5Digest));
463 ASSERT_NO_FATAL_FAILURE(IncrementIntAt(file.get(), digest_offset, 1)); 463 ASSERT_NO_FATAL_FAILURE(IncrementIntAt(file.get(), digest_offset, 1));
464 file.reset(); 464 file.reset();
465 scoped_ptr<safe_browsing::PrefixSet> 465 scoped_ptr<safe_browsing::PrefixSet>
466 prefix_set(safe_browsing::PrefixSet::LoadFile(filename)); 466 prefix_set(safe_browsing::PrefixSet::LoadFile(filename));
467 ASSERT_FALSE(prefix_set.get()); 467 ASSERT_FALSE(prefix_set.get());
468 } 468 }
469 469
470 // Test excess data after the digest (fails the size test). 470 // Test excess data after the digest (fails the size test).
471 TEST_F(PrefixSetTest, CorruptionExcess) { 471 TEST_F(PrefixSetTest, CorruptionExcess) {
472 base::FilePath filename; 472 base::FilePath filename;
473 ASSERT_TRUE(GetPrefixSetFile(&filename)); 473 ASSERT_TRUE(GetPrefixSetFile(&filename));
474 474
475 // Add some junk to the trunk. 475 // Add some junk to the trunk.
476 file_util::ScopedFILE file(base::OpenFile(filename, "ab")); 476 file_util::ScopedFILE file(file_util::OpenFile(filename, "ab"));
477 const char buf[] = "im in ur base, killing ur d00dz."; 477 const char buf[] = "im in ur base, killing ur d00dz.";
478 ASSERT_EQ(strlen(buf), fwrite(buf, 1, strlen(buf), file.get())); 478 ASSERT_EQ(strlen(buf), fwrite(buf, 1, strlen(buf), file.get()));
479 file.reset(); 479 file.reset();
480 scoped_ptr<safe_browsing::PrefixSet> 480 scoped_ptr<safe_browsing::PrefixSet>
481 prefix_set(safe_browsing::PrefixSet::LoadFile(filename)); 481 prefix_set(safe_browsing::PrefixSet::LoadFile(filename));
482 ASSERT_FALSE(prefix_set.get()); 482 ASSERT_FALSE(prefix_set.get());
483 } 483 }
484 484
485 } // namespace 485 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698