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.
4
5#ifndef CHROME_BROWSER_COMPONENT_UPDATER_TEST_COMPONENT_PATCHER_UNITTEST_H_
6#define CHROME_BROWSER_COMPONENT_UPDATER_TEST_COMPONENT_PATCHER_UNITTEST_H_
7
8#include "base/files/file_path.h"
9#include "base/files/scoped_temp_dir.h"
10#include "base/memory/scoped_ptr.h"
11#include "chrome/common/chrome_paths.h"
12#include "courgette/courgette.h"
13#include "courgette/third_party/bsdiff.h"
14#include "testing/gtest/include/gtest/gtest.h"
15
16class MockComponentPatcher;
17class ReadOnlyTestInstaller;
18
19const char binary_output_hash[] =
20    "599aba6d15a7da390621ef1bacb66601ed6aed04dadc1f9b445dcfe31296142a";
21
22// These constants are duplicated from chrome/installer/util/util_constants.h,
23// to avoid introducing a dependency from the unit tests to the installer.
24const int kCourgetteErrorOffset = 300;
25const int kBsdiffErrorOffset = 600;
26
27base::FilePath test_file(const char* file);
28
29class ComponentPatcherOperationTest : public testing::Test {
30 public:
31  explicit ComponentPatcherOperationTest();
32  virtual ~ComponentPatcherOperationTest();
33
34 protected:
35  base::ScopedTempDir input_dir_;
36  base::ScopedTempDir installed_dir_;
37  base::ScopedTempDir unpack_dir_;
38  scoped_ptr<MockComponentPatcher> patcher_;
39  scoped_ptr<ReadOnlyTestInstaller> installer_;
40};
41
42#endif  // CHROME_BROWSER_COMPONENT_UPDATER_TEST_COMPONENT_PATCHER_UNITTEST_H_
43