#include "base/base_paths.h"
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/path_service.h"
#include "base/process/launch.h"
#include "base/process/process.h"
#include "base/test/test_timeouts.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "chrome/updater/updater_branding.h"
#include "chrome/updater/util/util.h"
#include "testing/gtest/include/gtest/gtest.h"
#if BUILDFLAG(IS_MAC)
#include "chrome/updater/util/mac_util.h"
#endif
#if BUILDFLAG(IS_WIN)
#include <shlobj.h>
#include "base/file_version_info_win.h"
#include "base/win/access_token.h"
#include "base/win/windows_types.h"
#endif
namespace updater {
TEST(UpdaterTest, UpdaterExitCode) { … }
#if BUILDFLAG(IS_WIN)
TEST(UpdaterTest, UpdaterTestVersionResource) {
const base::FilePath updater_test_name(FILE_PATH_LITERAL("updater_test.exe"));
base::FilePath out_dir;
ASSERT_TRUE(base::PathService::Get(base::DIR_EXE, &out_dir));
const base::FilePath updater_test_path(out_dir.Append(updater_test_name));
ASSERT_TRUE(base::PathExists(updater_test_path)) << updater_test_path;
const std::unique_ptr<FileVersionInfoWin> version_info =
FileVersionInfoWin::CreateFileVersionInfoWin(updater_test_path);
ASSERT_NE(version_info, nullptr);
EXPECT_EQ(version_info->original_filename(),
updater_test_name.AsUTF16Unsafe());
}
TEST(UpdaterTest, UpdaterTestDebugPrivilege) {
if (!::IsUserAnAdmin()) {
return;
}
LUID luid = {0};
ASSERT_TRUE(::LookupPrivilegeValue(nullptr, SE_DEBUG_NAME, &luid));
CHROME_LUID chrome_luid = {0};
chrome_luid.LowPart = luid.LowPart;
chrome_luid.HighPart = luid.HighPart;
const base::win::AccessToken::Privilege priv(chrome_luid,
SE_PRIVILEGE_ENABLED);
EXPECT_EQ(priv.GetName(), SE_DEBUG_NAME);
EXPECT_EQ(priv.GetAttributes(), DWORD{SE_PRIVILEGE_ENABLED});
EXPECT_TRUE(priv.IsEnabled());
}
#endif
}