Update V8 to version 3.28.2 (based on bleeding_edge revision r21987).
[chromium-blink-merge.git] / chrome / installer / setup / archive_patch_helper_unittest.cc
blob17ff00329b1200850ac792f4ab27ea7ea24cbedd
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/file_util.h"
6 #include "base/files/file_path.h"
7 #include "base/files/scoped_temp_dir.h"
8 #include "base/path_service.h"
9 #include "chrome/common/chrome_paths.h"
10 #include "chrome/installer/setup/archive_patch_helper.h"
11 #include "testing/gtest/include/gtest/gtest.h"
13 namespace {
15 class ArchivePatchHelperTest : public testing::Test {
16 protected:
17 static void SetUpTestCase() {
18 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_dir_));
19 data_dir_ = data_dir_.AppendASCII("installer");
20 ASSERT_TRUE(base::PathExists(data_dir_));
23 static void TearDownTestCase() {
24 data_dir_.clear();
27 virtual void SetUp() OVERRIDE {
28 // Create a temp directory for testing.
29 ASSERT_TRUE(test_dir_.CreateUniqueTempDir());
32 virtual void TearDown() OVERRIDE {
33 // Clean up test directory manually so we can fail if it leaks.
34 ASSERT_TRUE(test_dir_.Delete());
37 // The path to input data used in tests.
38 static base::FilePath data_dir_;
40 // The temporary directory used to contain the test operations.
41 base::ScopedTempDir test_dir_;
44 base::FilePath ArchivePatchHelperTest::data_dir_;
46 } // namespace
48 // Test that patching works.
49 TEST_F(ArchivePatchHelperTest, Patching) {
50 base::FilePath src = data_dir_.AppendASCII("archive1.7z");
51 base::FilePath patch = data_dir_.AppendASCII("archive.diff");
52 base::FilePath dest = test_dir_.path().AppendASCII("archive2.7z");
53 installer::ArchivePatchHelper archive_helper(test_dir_.path(),
54 base::FilePath(),
55 src,
56 dest);
57 archive_helper.set_last_uncompressed_file(patch);
58 EXPECT_TRUE(archive_helper.EnsemblePatch() || archive_helper.BinaryPatch());
59 base::FilePath base = data_dir_.AppendASCII("archive2.7z");
60 EXPECT_TRUE(base::ContentsEqual(dest, base));