| Index: chrome/installer/util/helper_unittest.cc
|
| ===================================================================
|
| --- chrome/installer/util/helper_unittest.cc (revision 71802)
|
| +++ chrome/installer/util/helper_unittest.cc (working copy)
|
| @@ -1,204 +0,0 @@
|
| -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include <windows.h>
|
| -
|
| -#include <fstream>
|
| -
|
| -#include "base/base_paths.h"
|
| -#include "base/file_util.h"
|
| -#include "base/path_service.h"
|
| -#include "base/process_util.h"
|
| -#include "base/string_util.h"
|
| -#include "base/version.h"
|
| -#include "chrome/installer/util/helper.h"
|
| -#include "chrome/installer/util/package.h"
|
| -#include "chrome/installer/util/package_properties.h"
|
| -#include "chrome/installer/util/work_item.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using installer::ChromePackageProperties;
|
| -using installer::Package;
|
| -
|
| -namespace {
|
| - class SetupHelperTest : public testing::Test {
|
| - protected:
|
| - virtual void SetUp() {
|
| - // Name a subdirectory of the user temp directory.
|
| - ASSERT_TRUE(PathService::Get(base::DIR_TEMP, &test_dir_));
|
| - test_dir_ = test_dir_.AppendASCII("SetupHelperTest");
|
| -
|
| - // Create a fresh, empty copy of this test directory.
|
| - file_util::Delete(test_dir_, true);
|
| - file_util::CreateDirectoryW(test_dir_);
|
| - ASSERT_TRUE(file_util::PathExists(test_dir_));
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - logging::CloseLogFile();
|
| - // Clean up test directory
|
| - ASSERT_TRUE(file_util::Delete(test_dir_, true));
|
| - ASSERT_FALSE(file_util::PathExists(test_dir_));
|
| - }
|
| -
|
| - // the path to temporary directory used to contain the test operations
|
| - FilePath test_dir_;
|
| - };
|
| -
|
| - // Simple function to dump some text into a new file.
|
| - void CreateTextFile(const std::wstring& filename,
|
| - const std::wstring& contents) {
|
| - std::ofstream file;
|
| - file.open(filename.c_str());
|
| - ASSERT_TRUE(file.is_open());
|
| - file << contents;
|
| - file.close();
|
| - }
|
| -
|
| - wchar_t text_content_1[] = L"delete me";
|
| - wchar_t text_content_2[] = L"delete me as well";
|
| -};
|
| -
|
| -// Delete version directories. Everything lower than the given version
|
| -// should be deleted.
|
| -TEST_F(SetupHelperTest, Delete) {
|
| - // Create a Chrome dir
|
| - FilePath chrome_dir(test_dir_);
|
| - chrome_dir = chrome_dir.AppendASCII("chrome");
|
| - file_util::CreateDirectory(chrome_dir);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir));
|
| -
|
| - FilePath chrome_dir_1(chrome_dir);
|
| - chrome_dir_1 = chrome_dir_1.AppendASCII("1.0.1.0");
|
| - file_util::CreateDirectory(chrome_dir_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_1));
|
| -
|
| - FilePath chrome_dir_2(chrome_dir);
|
| - chrome_dir_2 = chrome_dir_2.AppendASCII("1.0.2.0");
|
| - file_util::CreateDirectory(chrome_dir_2);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_2));
|
| -
|
| - FilePath chrome_dir_3(chrome_dir);
|
| - chrome_dir_3 = chrome_dir_3.AppendASCII("1.0.3.0");
|
| - file_util::CreateDirectory(chrome_dir_3);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_3));
|
| -
|
| - FilePath chrome_dir_4(chrome_dir);
|
| - chrome_dir_4 = chrome_dir_4.AppendASCII("1.0.4.0");
|
| - file_util::CreateDirectory(chrome_dir_4);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_4));
|
| -
|
| - FilePath chrome_dll_1(chrome_dir_1);
|
| - chrome_dll_1 = chrome_dll_1.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_1.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_1));
|
| -
|
| - FilePath chrome_dll_2(chrome_dir_2);
|
| - chrome_dll_2 = chrome_dll_2.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_2.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_2));
|
| -
|
| - FilePath chrome_dll_3(chrome_dir_3);
|
| - chrome_dll_3 = chrome_dll_3.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_3.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_3));
|
| -
|
| - FilePath chrome_dll_4(chrome_dir_4);
|
| - chrome_dll_4 = chrome_dll_4.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_4.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_4));
|
| -
|
| - scoped_ptr<Version> latest_version(Version::GetVersionFromString("1.0.4.0"));
|
| - ChromePackageProperties properties;
|
| - scoped_refptr<Package> package(new Package(false, true, chrome_dir,
|
| - &properties));
|
| - package->RemoveOldVersionDirectories(*latest_version.get());
|
| -
|
| - // old versions should be gone
|
| - EXPECT_FALSE(file_util::PathExists(chrome_dir_1));
|
| - EXPECT_FALSE(file_util::PathExists(chrome_dir_2));
|
| - EXPECT_FALSE(file_util::PathExists(chrome_dir_3));
|
| - // the latest version should stay
|
| - EXPECT_TRUE(file_util::PathExists(chrome_dll_4));
|
| -}
|
| -
|
| -// Delete older version directories, keeping the one in used intact.
|
| -TEST_F(SetupHelperTest, DeleteInUsed) {
|
| - // Create a Chrome dir
|
| - FilePath chrome_dir(test_dir_);
|
| - chrome_dir = chrome_dir.AppendASCII("chrome");
|
| - file_util::CreateDirectory(chrome_dir);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir));
|
| -
|
| - FilePath chrome_dir_1(chrome_dir);
|
| - chrome_dir_1 = chrome_dir_1.AppendASCII("1.0.1.0");
|
| - file_util::CreateDirectory(chrome_dir_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_1));
|
| -
|
| - FilePath chrome_dir_2(chrome_dir);
|
| - chrome_dir_2 = chrome_dir_2.AppendASCII("1.0.2.0");
|
| - file_util::CreateDirectory(chrome_dir_2);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_2));
|
| -
|
| - FilePath chrome_dir_3(chrome_dir);
|
| - chrome_dir_3 = chrome_dir_3.AppendASCII("1.0.3.0");
|
| - file_util::CreateDirectory(chrome_dir_3);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_3));
|
| -
|
| - FilePath chrome_dir_4(chrome_dir);
|
| - chrome_dir_4 = chrome_dir_4.AppendASCII("1.0.4.0");
|
| - file_util::CreateDirectory(chrome_dir_4);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dir_4));
|
| -
|
| - FilePath chrome_dll_1(chrome_dir_1);
|
| - chrome_dll_1 = chrome_dll_1.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_1.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_1));
|
| -
|
| - FilePath chrome_dll_2(chrome_dir_2);
|
| - chrome_dll_2 = chrome_dll_2.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_2.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_2));
|
| -
|
| - // Open the file to make it in use.
|
| - std::ofstream file;
|
| - file.open(chrome_dll_2.value().c_str());
|
| -
|
| - FilePath chrome_othera_2(chrome_dir_2);
|
| - chrome_othera_2 = chrome_othera_2.AppendASCII("othera.dll");
|
| - CreateTextFile(chrome_othera_2.value(), text_content_2);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_othera_2));
|
| -
|
| - FilePath chrome_otherb_2(chrome_dir_2);
|
| - chrome_otherb_2 = chrome_otherb_2.AppendASCII("otherb.dll");
|
| - CreateTextFile(chrome_otherb_2.value(), text_content_2);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_otherb_2));
|
| -
|
| - FilePath chrome_dll_3(chrome_dir_3);
|
| - chrome_dll_3 = chrome_dll_3.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_3.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_3));
|
| -
|
| - FilePath chrome_dll_4(chrome_dir_4);
|
| - chrome_dll_4 = chrome_dll_4.AppendASCII("chrome.dll");
|
| - CreateTextFile(chrome_dll_4.value(), text_content_1);
|
| - ASSERT_TRUE(file_util::PathExists(chrome_dll_4));
|
| -
|
| - scoped_ptr<Version> latest_version(Version::GetVersionFromString("1.0.4.0"));
|
| - ChromePackageProperties properties;
|
| - scoped_refptr<Package> install_path(new Package(false, true, chrome_dir,
|
| - &properties));
|
| - install_path->RemoveOldVersionDirectories(*latest_version.get());
|
| -
|
| - // old versions not in used should be gone
|
| - EXPECT_FALSE(file_util::PathExists(chrome_dir_1));
|
| - EXPECT_FALSE(file_util::PathExists(chrome_dir_3));
|
| - // every thing under in used version should stay
|
| - EXPECT_TRUE(file_util::PathExists(chrome_dir_2));
|
| - EXPECT_TRUE(file_util::PathExists(chrome_dll_2));
|
| - EXPECT_TRUE(file_util::PathExists(chrome_othera_2));
|
| - EXPECT_TRUE(file_util::PathExists(chrome_otherb_2));
|
| - // the latest version should stay
|
| - EXPECT_TRUE(file_util::PathExists(chrome_dll_4));
|
| -}
|
|
|