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

Side by Side Diff: chrome/installer/util/copy_tree_work_item_unittest.cc

Issue 1878313003: Convert //chrome/installer from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert decompress.cc in mini_installer. Created 4 years, 8 months 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
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/installer/util/copy_tree_work_item.h"
6
5 #include <windows.h> 7 #include <windows.h>
6 8
7 #include <fstream> 9 #include <fstream>
10 #include <memory>
8 11
9 #include "base/base_paths.h" 12 #include "base/base_paths.h"
10 #include "base/files/file_util.h" 13 #include "base/files/file_util.h"
11 #include "base/files/scoped_temp_dir.h" 14 #include "base/files/scoped_temp_dir.h"
12 #include "base/logging.h" 15 #include "base/logging.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
15 #include "base/threading/platform_thread.h" 17 #include "base/threading/platform_thread.h"
16 #include "chrome/installer/util/copy_tree_work_item.h"
17 #include "chrome/installer/util/work_item.h" 18 #include "chrome/installer/util/work_item.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 20
20 namespace { 21 namespace {
21 22
22 class CopyTreeWorkItemTest : public testing::Test { 23 class CopyTreeWorkItemTest : public testing::Test {
23 protected: 24 protected:
24 void SetUp() override { 25 void SetUp() override {
25 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 26 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
26 ASSERT_TRUE(test_dir_.CreateUniqueTempDir()); 27 ASSERT_TRUE(test_dir_.CreateUniqueTempDir());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 // Create destination path 84 // Create destination path
84 base::FilePath dir_name_to(test_dir_.path()); 85 base::FilePath dir_name_to(test_dir_.path());
85 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir"); 86 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir");
86 base::CreateDirectory(dir_name_to); 87 base::CreateDirectory(dir_name_to);
87 ASSERT_TRUE(base::PathExists(dir_name_to)); 88 ASSERT_TRUE(base::PathExists(dir_name_to));
88 89
89 base::FilePath file_name_to(dir_name_to); 90 base::FilePath file_name_to(dir_name_to);
90 file_name_to = file_name_to.AppendASCII("File_To.txt"); 91 file_name_to = file_name_to.AppendASCII("File_To.txt");
91 92
92 // test Do() 93 // test Do()
93 scoped_ptr<CopyTreeWorkItem> work_item( 94 std::unique_ptr<CopyTreeWorkItem> work_item(WorkItem::CreateCopyTreeWorkItem(
94 WorkItem::CreateCopyTreeWorkItem(file_name_from, 95 file_name_from, file_name_to, temp_dir_.path(), WorkItem::ALWAYS,
95 file_name_to, 96 base::FilePath()));
96 temp_dir_.path(),
97 WorkItem::ALWAYS,
98 base::FilePath()));
99 97
100 EXPECT_TRUE(work_item->Do()); 98 EXPECT_TRUE(work_item->Do());
101 99
102 EXPECT_TRUE(base::PathExists(file_name_from)); 100 EXPECT_TRUE(base::PathExists(file_name_from));
103 EXPECT_TRUE(base::PathExists(file_name_to)); 101 EXPECT_TRUE(base::PathExists(file_name_to));
104 EXPECT_TRUE(base::ContentsEqual(file_name_from, file_name_to)); 102 EXPECT_TRUE(base::ContentsEqual(file_name_from, file_name_to));
105 103
106 // test rollback() 104 // test rollback()
107 work_item->Rollback(); 105 work_item->Rollback();
108 106
(...skipping 16 matching lines...) Expand all
125 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir"); 123 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir");
126 base::CreateDirectory(dir_name_to); 124 base::CreateDirectory(dir_name_to);
127 ASSERT_TRUE(base::PathExists(dir_name_to)); 125 ASSERT_TRUE(base::PathExists(dir_name_to));
128 126
129 base::FilePath file_name_to(dir_name_to); 127 base::FilePath file_name_to(dir_name_to);
130 file_name_to = file_name_to.AppendASCII("File_To.txt"); 128 file_name_to = file_name_to.AppendASCII("File_To.txt");
131 CreateTextFile(file_name_to.value(), text_content_2); 129 CreateTextFile(file_name_to.value(), text_content_2);
132 ASSERT_TRUE(base::PathExists(file_name_to)); 130 ASSERT_TRUE(base::PathExists(file_name_to));
133 131
134 // test Do() with always_overwrite being true. 132 // test Do() with always_overwrite being true.
135 scoped_ptr<CopyTreeWorkItem> work_item( 133 std::unique_ptr<CopyTreeWorkItem> work_item(WorkItem::CreateCopyTreeWorkItem(
136 WorkItem::CreateCopyTreeWorkItem(file_name_from, 134 file_name_from, file_name_to, temp_dir_.path(), WorkItem::ALWAYS,
137 file_name_to, 135 base::FilePath()));
138 temp_dir_.path(),
139 WorkItem::ALWAYS,
140 base::FilePath()));
141 136
142 EXPECT_TRUE(work_item->Do()); 137 EXPECT_TRUE(work_item->Do());
143 138
144 EXPECT_TRUE(base::PathExists(file_name_from)); 139 EXPECT_TRUE(base::PathExists(file_name_from));
145 EXPECT_TRUE(base::PathExists(file_name_to)); 140 EXPECT_TRUE(base::PathExists(file_name_to));
146 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); 141 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1));
147 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1)); 142 EXPECT_EQ(0, ReadTextFile(file_name_to.value()).compare(text_content_1));
148 143
149 // test rollback() 144 // test rollback()
150 work_item->Rollback(); 145 work_item->Rollback();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir"); 190 dir_name_to = dir_name_to.AppendASCII("Copy_To_Subdir");
196 base::CreateDirectory(dir_name_to); 191 base::CreateDirectory(dir_name_to);
197 ASSERT_TRUE(base::PathExists(dir_name_to)); 192 ASSERT_TRUE(base::PathExists(dir_name_to));
198 193
199 base::FilePath file_name_to(dir_name_to); 194 base::FilePath file_name_to(dir_name_to);
200 file_name_to = file_name_to.AppendASCII("File_To.txt"); 195 file_name_to = file_name_to.AppendASCII("File_To.txt");
201 CreateTextFile(file_name_to.value(), text_content_1); 196 CreateTextFile(file_name_to.value(), text_content_1);
202 ASSERT_TRUE(base::PathExists(file_name_to)); 197 ASSERT_TRUE(base::PathExists(file_name_to));
203 198
204 // test Do() with always_overwrite being true. 199 // test Do() with always_overwrite being true.
205 scoped_ptr<CopyTreeWorkItem> work_item( 200 std::unique_ptr<CopyTreeWorkItem> work_item(WorkItem::CreateCopyTreeWorkItem(
206 WorkItem::CreateCopyTreeWorkItem(file_name_from, 201 file_name_from, file_name_to, temp_dir_.path(), WorkItem::ALWAYS,
207 file_name_to, 202 base::FilePath()));
208 temp_dir_.path(),
209 WorkItem::ALWAYS,
210 base::FilePath()));
211 203
212 EXPECT_TRUE(work_item->Do()); 204 EXPECT_TRUE(work_item->Do());
213 205
214 // Get the path of backup file 206 // Get the path of backup file
215 base::FilePath backup_file(work_item->backup_path_.path()); 207 base::FilePath backup_file(work_item->backup_path_.path());
216 EXPECT_FALSE(backup_file.empty()); 208 EXPECT_FALSE(backup_file.empty());
217 backup_file = backup_file.AppendASCII("File_To.txt"); 209 backup_file = backup_file.AppendASCII("File_To.txt");
218 210
219 EXPECT_TRUE(base::PathExists(file_name_from)); 211 EXPECT_TRUE(base::PathExists(file_name_from));
220 EXPECT_TRUE(base::PathExists(file_name_to)); 212 EXPECT_TRUE(base::PathExists(file_name_to));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 271
280 base::FilePath file_name_to(dir_name_to); 272 base::FilePath file_name_to(dir_name_to);
281 file_name_to = file_name_to.AppendASCII("File_To.txt"); 273 file_name_to = file_name_to.AppendASCII("File_To.txt");
282 CreateTextFile(file_name_to.value(), text_content_2); 274 CreateTextFile(file_name_to.value(), text_content_2);
283 ASSERT_TRUE(base::PathExists(file_name_to)); 275 ASSERT_TRUE(base::PathExists(file_name_to));
284 276
285 base::FilePath backup_file; 277 base::FilePath backup_file;
286 278
287 { 279 {
288 // test Do(). 280 // test Do().
289 scoped_ptr<CopyTreeWorkItem> work_item( 281 std::unique_ptr<CopyTreeWorkItem> work_item(
290 WorkItem::CreateCopyTreeWorkItem(file_name_from, 282 WorkItem::CreateCopyTreeWorkItem(
291 file_name_to, 283 file_name_from, file_name_to, temp_dir_.path(),
292 temp_dir_.path(), 284 WorkItem::IF_DIFFERENT, base::FilePath()));
293 WorkItem::IF_DIFFERENT,
294 base::FilePath()));
295 285
296 EXPECT_TRUE(work_item->Do()); 286 EXPECT_TRUE(work_item->Do());
297 287
298 // Get the path of backup file 288 // Get the path of backup file
299 backup_file = work_item->backup_path_.path(); 289 backup_file = work_item->backup_path_.path();
300 EXPECT_FALSE(backup_file.empty()); 290 EXPECT_FALSE(backup_file.empty());
301 backup_file = backup_file.AppendASCII("File_To.txt"); 291 backup_file = backup_file.AppendASCII("File_To.txt");
302 292
303 EXPECT_TRUE(base::PathExists(file_name_from)); 293 EXPECT_TRUE(base::PathExists(file_name_from));
304 EXPECT_TRUE(base::PathExists(file_name_to)); 294 EXPECT_TRUE(base::PathExists(file_name_to));
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 333
344 // Run the executable in destination path 334 // Run the executable in destination path
345 STARTUPINFOW si = {sizeof(si)}; 335 STARTUPINFOW si = {sizeof(si)};
346 PROCESS_INFORMATION pi = {0}; 336 PROCESS_INFORMATION pi = {0};
347 ASSERT_TRUE( 337 ASSERT_TRUE(
348 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()), 338 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()),
349 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, 339 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED,
350 NULL, NULL, &si, &pi)); 340 NULL, NULL, &si, &pi));
351 341
352 // test Do(). 342 // test Do().
353 scoped_ptr<CopyTreeWorkItem> work_item( 343 std::unique_ptr<CopyTreeWorkItem> work_item(WorkItem::CreateCopyTreeWorkItem(
354 WorkItem::CreateCopyTreeWorkItem(file_name_from, 344 file_name_from, file_name_to, temp_dir_.path(), WorkItem::IF_DIFFERENT,
355 file_name_to, 345 base::FilePath()));
356 temp_dir_.path(),
357 WorkItem::IF_DIFFERENT,
358 base::FilePath()));
359 346
360 EXPECT_TRUE(work_item->Do()); 347 EXPECT_TRUE(work_item->Do());
361 348
362 // Get the path of backup file 349 // Get the path of backup file
363 base::FilePath backup_file(work_item->backup_path_.path()); 350 base::FilePath backup_file(work_item->backup_path_.path());
364 EXPECT_FALSE(backup_file.empty()); 351 EXPECT_FALSE(backup_file.empty());
365 backup_file = backup_file.AppendASCII("File_To"); 352 backup_file = backup_file.AppendASCII("File_To");
366 353
367 EXPECT_TRUE(base::PathExists(file_name_from)); 354 EXPECT_TRUE(base::PathExists(file_name_from));
368 EXPECT_TRUE(base::PathExists(file_name_to)); 355 EXPECT_TRUE(base::PathExists(file_name_to));
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 410
424 // Run the executable in destination path 411 // Run the executable in destination path
425 STARTUPINFOW si = {sizeof(si)}; 412 STARTUPINFOW si = {sizeof(si)};
426 PROCESS_INFORMATION pi = {0}; 413 PROCESS_INFORMATION pi = {0};
427 ASSERT_TRUE( 414 ASSERT_TRUE(
428 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()), 415 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()),
429 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, 416 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED,
430 NULL, NULL, &si, &pi)); 417 NULL, NULL, &si, &pi));
431 418
432 // test Do(). 419 // test Do().
433 scoped_ptr<CopyTreeWorkItem> work_item( 420 std::unique_ptr<CopyTreeWorkItem> work_item(WorkItem::CreateCopyTreeWorkItem(
434 WorkItem::CreateCopyTreeWorkItem(file_name_from, 421 file_name_from, file_name_to, temp_dir_.path(),
435 file_name_to, 422 WorkItem::NEW_NAME_IF_IN_USE, alternate_to));
436 temp_dir_.path(),
437 WorkItem::NEW_NAME_IF_IN_USE,
438 alternate_to));
439 423
440 EXPECT_TRUE(work_item->Do()); 424 EXPECT_TRUE(work_item->Do());
441 425
442 EXPECT_TRUE(base::PathExists(file_name_from)); 426 EXPECT_TRUE(base::PathExists(file_name_from));
443 EXPECT_TRUE(base::PathExists(file_name_to)); 427 EXPECT_TRUE(base::PathExists(file_name_to));
444 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); 428 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1));
445 EXPECT_TRUE(base::ContentsEqual(exe_full_path, file_name_to)); 429 EXPECT_TRUE(base::ContentsEqual(exe_full_path, file_name_to));
446 // verify that the backup path does not exist 430 // verify that the backup path does not exist
447 EXPECT_TRUE(work_item->backup_path_.path().empty()); 431 EXPECT_TRUE(work_item->backup_path_.path().empty());
448 EXPECT_TRUE(base::ContentsEqual(file_name_from, alternate_to)); 432 EXPECT_TRUE(base::ContentsEqual(file_name_from, alternate_to));
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 base::FilePath file_name_to(dir_name_to); 509 base::FilePath file_name_to(dir_name_to);
526 file_name_to = file_name_to.AppendASCII("File_To"); 510 file_name_to = file_name_to.AppendASCII("File_To");
527 base::CopyFile(exe_full_path, file_name_to); 511 base::CopyFile(exe_full_path, file_name_to);
528 ASSERT_TRUE(base::PathExists(file_name_to)); 512 ASSERT_TRUE(base::PathExists(file_name_to));
529 513
530 // Get the path of backup file 514 // Get the path of backup file
531 base::FilePath backup_file(temp_dir_.path()); 515 base::FilePath backup_file(temp_dir_.path());
532 backup_file = backup_file.AppendASCII("File_To"); 516 backup_file = backup_file.AppendASCII("File_To");
533 517
534 // test Do(). 518 // test Do().
535 scoped_ptr<CopyTreeWorkItem> work_item( 519 std::unique_ptr<CopyTreeWorkItem> work_item(WorkItem::CreateCopyTreeWorkItem(
536 WorkItem::CreateCopyTreeWorkItem( 520 file_name_from, file_name_to, temp_dir_.path(), WorkItem::IF_NOT_PRESENT,
537 file_name_from, 521 base::FilePath()));
538 file_name_to, temp_dir_.path(),
539 WorkItem::IF_NOT_PRESENT,
540 base::FilePath()));
541 EXPECT_TRUE(work_item->Do()); 522 EXPECT_TRUE(work_item->Do());
542 523
543 // verify that the source, destination have not changed and backup path 524 // verify that the source, destination have not changed and backup path
544 // does not exist 525 // does not exist
545 EXPECT_TRUE(base::PathExists(file_name_from)); 526 EXPECT_TRUE(base::PathExists(file_name_from));
546 EXPECT_TRUE(base::PathExists(file_name_to)); 527 EXPECT_TRUE(base::PathExists(file_name_to));
547 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1)); 528 EXPECT_EQ(0, ReadTextFile(file_name_from.value()).compare(text_content_1));
548 EXPECT_TRUE(base::ContentsEqual(exe_full_path, file_name_to)); 529 EXPECT_TRUE(base::ContentsEqual(exe_full_path, file_name_to));
549 EXPECT_FALSE(base::PathExists(backup_file)); 530 EXPECT_FALSE(base::PathExists(backup_file));
550 531
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 PROCESS_INFORMATION pi = {0}; 599 PROCESS_INFORMATION pi = {0};
619 ASSERT_TRUE( 600 ASSERT_TRUE(
620 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()), 601 ::CreateProcess(NULL, const_cast<wchar_t*>(file_name_to.value().c_str()),
621 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED, 602 NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED,
622 NULL, NULL, &si, &pi)); 603 NULL, NULL, &si, &pi));
623 604
624 base::FilePath backup_file; 605 base::FilePath backup_file;
625 606
626 // test Do(). 607 // test Do().
627 { 608 {
628 scoped_ptr<CopyTreeWorkItem> work_item( 609 std::unique_ptr<CopyTreeWorkItem> work_item(
629 WorkItem::CreateCopyTreeWorkItem(file_name_from, 610 WorkItem::CreateCopyTreeWorkItem(
630 file_name_to, 611 file_name_from, file_name_to, temp_dir_.path(),
631 temp_dir_.path(), 612 WorkItem::IF_DIFFERENT, base::FilePath()));
632 WorkItem::IF_DIFFERENT,
633 base::FilePath()));
634 613
635 EXPECT_TRUE(work_item->Do()); 614 EXPECT_TRUE(work_item->Do());
636 615
637 // Get the path of backup file 616 // Get the path of backup file
638 backup_file = work_item->backup_path_.path(); 617 backup_file = work_item->backup_path_.path();
639 EXPECT_FALSE(backup_file.empty()); 618 EXPECT_FALSE(backup_file.empty());
640 backup_file = backup_file.AppendASCII("File_To"); 619 backup_file = backup_file.AppendASCII("File_To");
641 620
642 EXPECT_TRUE(base::PathExists(file_name_from)); 621 EXPECT_TRUE(base::PathExists(file_name_from));
643 EXPECT_TRUE(base::PathExists(file_name_to)); 622 EXPECT_TRUE(base::PathExists(file_name_to));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 base::FilePath file_name_from_2(dir_name_from_2); 665 base::FilePath file_name_from_2(dir_name_from_2);
687 file_name_from_2 = file_name_from_2.AppendASCII("File_2.txt"); 666 file_name_from_2 = file_name_from_2.AppendASCII("File_2.txt");
688 CreateTextFile(file_name_from_2.value(), text_content_1); 667 CreateTextFile(file_name_from_2.value(), text_content_1);
689 ASSERT_TRUE(base::PathExists(file_name_from_2)); 668 ASSERT_TRUE(base::PathExists(file_name_from_2));
690 669
691 base::FilePath dir_name_to(test_dir_.path()); 670 base::FilePath dir_name_to(test_dir_.path());
692 dir_name_to = dir_name_to.AppendASCII("to"); 671 dir_name_to = dir_name_to.AppendASCII("to");
693 672
694 // test Do() 673 // test Do()
695 { 674 {
696 scoped_ptr<CopyTreeWorkItem> work_item( 675 std::unique_ptr<CopyTreeWorkItem> work_item(
697 WorkItem::CreateCopyTreeWorkItem(dir_name_from, 676 WorkItem::CreateCopyTreeWorkItem(dir_name_from, dir_name_to,
698 dir_name_to, 677 temp_dir_.path(), WorkItem::ALWAYS,
699 temp_dir_.path(),
700 WorkItem::ALWAYS,
701 base::FilePath())); 678 base::FilePath()));
702 679
703 EXPECT_TRUE(work_item->Do()); 680 EXPECT_TRUE(work_item->Do());
704 } 681 }
705 682
706 base::FilePath file_name_to_1(dir_name_to); 683 base::FilePath file_name_to_1(dir_name_to);
707 file_name_to_1 = file_name_to_1.AppendASCII("1"); 684 file_name_to_1 = file_name_to_1.AppendASCII("1");
708 file_name_to_1 = file_name_to_1.AppendASCII("File_1.txt"); 685 file_name_to_1 = file_name_to_1.AppendASCII("File_1.txt");
709 EXPECT_TRUE(base::PathExists(file_name_to_1)); 686 EXPECT_TRUE(base::PathExists(file_name_to_1));
710 VLOG(1) << "compare " << file_name_from_1.value() 687 VLOG(1) << "compare " << file_name_from_1.value()
711 << " and " << file_name_to_1.value(); 688 << " and " << file_name_to_1.value();
712 EXPECT_TRUE(base::ContentsEqual(file_name_from_1, file_name_to_1)); 689 EXPECT_TRUE(base::ContentsEqual(file_name_from_1, file_name_to_1));
713 690
714 base::FilePath file_name_to_2(dir_name_to); 691 base::FilePath file_name_to_2(dir_name_to);
715 file_name_to_2 = file_name_to_2.AppendASCII("2"); 692 file_name_to_2 = file_name_to_2.AppendASCII("2");
716 file_name_to_2 = file_name_to_2.AppendASCII("File_2.txt"); 693 file_name_to_2 = file_name_to_2.AppendASCII("File_2.txt");
717 EXPECT_TRUE(base::PathExists(file_name_to_2)); 694 EXPECT_TRUE(base::PathExists(file_name_to_2));
718 VLOG(1) << "compare " << file_name_from_2.value() 695 VLOG(1) << "compare " << file_name_from_2.value()
719 << " and " << file_name_to_2.value(); 696 << " and " << file_name_to_2.value();
720 EXPECT_TRUE(base::ContentsEqual(file_name_from_2, file_name_to_2)); 697 EXPECT_TRUE(base::ContentsEqual(file_name_from_2, file_name_to_2));
721 } 698 }
OLDNEW
« no previous file with comments | « chrome/installer/util/conditional_work_item_list.h ('k') | chrome/installer/util/create_dir_work_item_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698