blob: 1a9ef64363ea5710e024a4a1594ef97959d2fb38 [file] [log] [blame]
// Copyright 2020 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 "chrome/updater/updater_scope.h"
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "chrome/updater/constants.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace updater {
class GetUpdaterScopeForCommandLineTest : public testing::Test {
protected:
base::CommandLine command_line_ =
base::CommandLine(base::FilePath(FILE_PATH_LITERAL("updater.exe")));
};
TEST_F(GetUpdaterScopeForCommandLineTest, NoParams) {
EXPECT_EQ(GetUpdaterScopeForCommandLine(command_line_), UpdaterScope::kUser);
}
TEST_F(GetUpdaterScopeForCommandLineTest, System) {
command_line_.AppendSwitch(kSystemSwitch);
EXPECT_EQ(GetUpdaterScopeForCommandLine(command_line_),
UpdaterScope::kSystem);
}
#if BUILDFLAG(IS_WIN)
TEST_F(GetUpdaterScopeForCommandLineTest, Prefers) {
command_line_.AppendSwitch(kCmdLinePrefersUser);
EXPECT_EQ(GetUpdaterScopeForCommandLine(command_line_), UpdaterScope::kUser);
}
TEST_F(GetUpdaterScopeForCommandLineTest, System_And_Prefers) {
command_line_.AppendSwitch(kSystemSwitch);
command_line_.AppendSwitch(kCmdLinePrefersUser);
EXPECT_EQ(GetUpdaterScopeForCommandLine(command_line_),
UpdaterScope::kSystem);
}
TEST_F(GetUpdaterScopeForCommandLineTest, TagPrefers) {
command_line_.AppendSwitchASCII(
kTagSwitch,
"appguid=5F46DE36-737D-4271-91C1-C062F9FE21D9&"
"appname=TestApp3&"
"needsadmin=prefers&");
EXPECT_EQ(GetUpdaterScopeForCommandLine(command_line_),
UpdaterScope::kSystem);
}
TEST_F(GetUpdaterScopeForCommandLineTest, Prefers_And_TagPrefers) {
command_line_.AppendSwitch(kCmdLinePrefersUser);
command_line_.AppendSwitchASCII(
kTagSwitch,
"appguid=5F46DE36-737D-4271-91C1-C062F9FE21D9&"
"appname=TestApp3&"
"needsadmin=prefers&");
EXPECT_EQ(GetUpdaterScopeForCommandLine(command_line_), UpdaterScope::kUser);
}
#endif
} // namespace updater