| OLD | NEW | 
 | (Empty) | 
|   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 |  | 
|   3 // found in the LICENSE file. |  | 
|   4  |  | 
|   5 #include "base/command_line.h" |  | 
|   6 #include "base/file_util.h" |  | 
|   7 #include "base/process/process_iterator.h" |  | 
|   8 #include "base/test/test_suite.h" |  | 
|   9 #include "base/win/windows_version.h" |  | 
|  10 #include "chrome/common/chrome_switches.h" |  | 
|  11 #include "chrome/installer/util/util_constants.h" |  | 
|  12 #include "chrome/test/mini_installer_test/mini_installer_test_constants.h" |  | 
|  13 #include "chrome/test/mini_installer_test/installer_test_util.h" |  | 
|  14  |  | 
|  15  |  | 
|  16 void BackUpProfile(bool chrome_frame) { |  | 
|  17   if (base::GetProcessCount(L"chrome.exe", NULL) > 0) { |  | 
|  18     printf("Chrome is currently running and cannot backup the profile." |  | 
|  19            "Please close Chrome and run the tests again.\n"); |  | 
|  20     exit(1); |  | 
|  21   } |  | 
|  22   base::FilePath path; |  | 
|  23   installer_test::GetChromeInstallDirectory(false /* system_level */, &path); |  | 
|  24   path = path.Append(mini_installer_constants::kChromeAppDir).DirName(); |  | 
|  25   base::FilePath backup_path = path; |  | 
|  26   // Will hold User Data path that needs to be backed-up. |  | 
|  27   path = path.Append(mini_installer_constants::kChromeUserDataDir); |  | 
|  28   // Will hold new backup path to save the profile. |  | 
|  29   backup_path = backup_path.Append( |  | 
|  30       mini_installer_constants::kChromeUserDataBackupDir); |  | 
|  31   // Will check if User Data profile is available. |  | 
|  32   if (base::PathExists(path)) { |  | 
|  33     // Will check if User Data is already backed up. |  | 
|  34     // If yes, will delete and create new one. |  | 
|  35     if (base::PathExists(backup_path)) |  | 
|  36       base::DeleteFile(backup_path, true); |  | 
|  37     base::CopyDirectory(path, backup_path, true); |  | 
|  38   } else { |  | 
|  39     printf("Chrome is not installed. Will not take any backup\n"); |  | 
|  40   } |  | 
|  41 } |  | 
|  42  |  | 
|  43 int main(int argc, char** argv) { |  | 
|  44   // Check command line to decide if the tests should continue |  | 
|  45   // with cleaning the system or make a backup before continuing. |  | 
|  46   CommandLine::Init(argc, argv); |  | 
|  47   const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |  | 
|  48   base::TestSuite test_suite(argc, argv); |  | 
|  49  |  | 
|  50   if (command_line.HasSwitch(switches::kInstallerHelp)) { |  | 
|  51     printf("This test needs command line arguments.\n"); |  | 
|  52     printf("Usage: %ls [-backup] [-build <version>] [-force] \n", |  | 
|  53            command_line.GetProgram().value().c_str()); |  | 
|  54     printf("-backup arg will make a copy of User Data before uninstalling" |  | 
|  55            " your chrome at all levels. The copy will be named as" |  | 
|  56            " User Data Copy.\n" |  | 
|  57            "-build specifies the build to be tested, e.g., 3.0.195.24." |  | 
|  58            " Specifying 'dev' or 'stable' will use the latest build from that" |  | 
|  59            " channel. 'latest', the default, will use the latest build.\n" |  | 
|  60            "-force allows these tests to be run on the current platform," |  | 
|  61            " regardless of whether it is supported.\n"); |  | 
|  62     return 1; |  | 
|  63   } |  | 
|  64  |  | 
|  65   if (command_line.HasSwitch(switches::kInstallerTestBackup)) { |  | 
|  66     BackUpProfile(command_line.HasSwitch( |  | 
|  67         installer::switches::kChromeFrame)); |  | 
|  68   } |  | 
|  69  |  | 
|  70   if (base::win::GetVersion() < base::win::VERSION_VISTA || |  | 
|  71       command_line.HasSwitch(switches::kInstallerTestForce)) { |  | 
|  72     return test_suite.Run(); |  | 
|  73   } |  | 
|  74   printf("These tests don't run on this platform.\n"); |  | 
|  75   return 0; |  | 
|  76 } |  | 
| OLD | NEW |