| Index: common/command_line_unittest.cc
|
| diff --git a/common/command_line_unittest.cc b/common/command_line_unittest.cc
|
| deleted file mode 100644
|
| index 758bdb8bae286110c24272c93231a3051ae2b339..0000000000000000000000000000000000000000
|
| --- a/common/command_line_unittest.cc
|
| +++ /dev/null
|
| @@ -1,1233 +0,0 @@
|
| -// Copyright 2007-2009 Google Inc.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -// ========================================================================
|
| -
|
| -#include "omaha/base/utils.h"
|
| -#include "omaha/common/command_line.h"
|
| -#include "omaha/testing/unit_test.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -// Used by extra_args_parser_unittest.cc.
|
| -void VerifyCommandLineExtraArgs(const CommandLineExtraArgs& expected_val,
|
| - const CommandLineExtraArgs& actual_val);
|
| -
|
| -namespace {
|
| -
|
| -#define YOUTUBEUPLOADEREN_TAG_WITHOUT_QUOTES \
|
| - _T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") \
|
| - _T("appname=YouTubeUploader&needsadmin=False&lang=en")
|
| -
|
| -#define YOUTUBEUPLOADEREN_APP_ARGS_WITHOUT_QUOTES \
|
| - _T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&") \
|
| - _T("installerdata=YouTube%20Uploader%20Data")
|
| -
|
| -#define YOUTUBEUPLOADEREN_TAG \
|
| - _T("\"") YOUTUBEUPLOADEREN_TAG_WITHOUT_QUOTES _T("\"")
|
| -
|
| -#define YOUTUBEUPLOADEREN_APP_ARGS \
|
| - _T("\"") YOUTUBEUPLOADEREN_APP_ARGS_WITHOUT_QUOTES _T("\"")
|
| -
|
| -void VerifyCommandLineArgs(const CommandLineArgs& expected,
|
| - const CommandLineArgs& actual) {
|
| - EXPECT_EQ(expected.mode, actual.mode);
|
| -
|
| - EXPECT_EQ(expected.is_interactive_set, actual.is_interactive_set);
|
| - EXPECT_EQ(expected.is_machine_set, actual.is_machine_set);
|
| - EXPECT_EQ(expected.is_install_elevated, actual.is_install_elevated);
|
| - EXPECT_EQ(expected.is_silent_set, actual.is_silent_set);
|
| - EXPECT_EQ(expected.is_eula_required_set, actual.is_eula_required_set);
|
| - EXPECT_EQ(expected.is_offline_set, actual.is_offline_set);
|
| - EXPECT_EQ(expected.is_oem_set, actual.is_oem_set);
|
| -
|
| - EXPECT_STREQ(expected.extra_args_str, actual.extra_args_str);
|
| - EXPECT_STREQ(expected.app_args_str, actual.app_args_str);
|
| - EXPECT_STREQ(expected.install_source, actual.install_source);
|
| - EXPECT_STREQ(expected.crash_filename, actual.crash_filename);
|
| - EXPECT_STREQ(expected.custom_info_filename, actual.custom_info_filename);
|
| - EXPECT_STREQ(expected.legacy_manifest_path, actual.legacy_manifest_path);
|
| - EXPECT_STREQ(expected.webplugin_urldomain, actual.webplugin_urldomain);
|
| - EXPECT_STREQ(expected.webplugin_args, actual.webplugin_args);
|
| - EXPECT_STREQ(expected.code_red_metainstaller_path,
|
| - actual.code_red_metainstaller_path);
|
| - EXPECT_STREQ(expected.offline_dir, actual.offline_dir);
|
| -
|
| - VerifyCommandLineExtraArgs(expected.extra, actual.extra);
|
| -}
|
| -
|
| -void VerifyArgsWithSingleYouTubeUploaderEnApp(
|
| - const CommandLineArgs& expected_without_app,
|
| - const CommandLineArgs& actual,
|
| - bool expect_app_args,
|
| - bool expect_language) {
|
| - CommandLineArgs expected(expected_without_app);
|
| -
|
| - const GUID expected_guid = {0xA4F7B07B, 0xB9BD, 0x4A33,
|
| - {0xB1, 0x36, 0x96, 0xD2, 0xAD, 0xFB, 0x60, 0xCB}};
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_guid = expected_guid;
|
| - app_args.app_name = _T("YouTubeUploader");
|
| - app_args.needs_admin = NEEDS_ADMIN_NO;
|
| - if (expected.extra_args_str.IsEmpty()) {
|
| - expected.extra_args_str = YOUTUBEUPLOADEREN_TAG_WITHOUT_QUOTES;
|
| - }
|
| - if (expect_language) {
|
| - expected.extra.language = _T("en");
|
| - }
|
| - if (expect_app_args) {
|
| - expected.app_args_str =
|
| - YOUTUBEUPLOADEREN_APP_ARGS_WITHOUT_QUOTES;
|
| - app_args.encoded_installer_data = _T("YouTube%20Uploader%20Data");
|
| - }
|
| -
|
| - expected.extra.apps.push_back(app_args);
|
| - expected.extra.bundle_name = _T("YouTubeUploader");
|
| - VerifyCommandLineArgs(expected, actual);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -void VerifyCommandLineExtraArgs(const CommandLineExtraArgs& expected_val,
|
| - const CommandLineExtraArgs& actual_val) {
|
| - EXPECT_STREQ(expected_val.bundle_name, actual_val.bundle_name);
|
| - EXPECT_STREQ(GuidToString(expected_val.installation_id),
|
| - GuidToString(actual_val.installation_id));
|
| - EXPECT_STREQ(expected_val.brand_code, actual_val.brand_code);
|
| - EXPECT_STREQ(expected_val.client_id, actual_val.client_id);
|
| - EXPECT_STREQ(expected_val.experiment_labels,
|
| - actual_val.experiment_labels);
|
| - EXPECT_STREQ(expected_val.referral_id, actual_val.referral_id);
|
| - EXPECT_STREQ(expected_val.language, actual_val.language);
|
| - EXPECT_EQ(expected_val.browser_type, actual_val.browser_type);
|
| - EXPECT_EQ(expected_val.usage_stats_enable, actual_val.usage_stats_enable);
|
| - EXPECT_EQ(expected_val.runtime_only, actual_val.runtime_only);
|
| -
|
| - EXPECT_EQ(expected_val.apps.size(), actual_val.apps.size());
|
| -
|
| - for (size_t i = 0; i < actual_val.apps.size(); ++i) {
|
| - CommandLineAppArgs expected = expected_val.apps[i];
|
| - CommandLineAppArgs actual = actual_val.apps[i];
|
| -
|
| - EXPECT_STREQ(GuidToString(expected.app_guid),
|
| - GuidToString(actual.app_guid));
|
| - EXPECT_STREQ(expected.app_name, actual.app_name);
|
| - EXPECT_EQ(expected.needs_admin, actual.needs_admin);
|
| - EXPECT_STREQ(expected.ap, actual.ap);
|
| - EXPECT_STREQ(expected.tt_token, actual.tt_token);
|
| - EXPECT_STREQ(expected.encoded_installer_data,
|
| - actual.encoded_installer_data);
|
| - EXPECT_STREQ(expected.install_data_index, actual.install_data_index);
|
| - EXPECT_STREQ(expected.experiment_labels, actual.experiment_labels);
|
| - }
|
| -}
|
| -
|
| -class CommandLineTest : public testing::Test {
|
| - protected:
|
| - CommandLineArgs args_;
|
| - CommandLineArgs expected_;
|
| -};
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail1) {
|
| - EXPECT_STREQ(_T(""), GetCmdLineTail(_T("")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail2) {
|
| - EXPECT_STREQ(_T(""), GetCmdLineTail(_T("a")));
|
| -}
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail3) {
|
| - EXPECT_STREQ(_T(""), GetCmdLineTail(_T("goopdate.exe")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail4) {
|
| - // Double quotes.
|
| - EXPECT_STREQ(_T(""), GetCmdLineTail(_T("\"Google Update.exe\"")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail5) {
|
| - // Argument.
|
| - EXPECT_STREQ(_T("foobar"), GetCmdLineTail(_T("goopdate.exe foobar")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail6) {
|
| - // Double quotes and argument.
|
| - EXPECT_STREQ(_T("foobar"),
|
| - GetCmdLineTail(_T("\"Google Update.exe\" foobar")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail7) {
|
| - // Double quotes and inner double quote and argument.
|
| - EXPECT_STREQ(_T("foobar"),
|
| - GetCmdLineTail(_T("\"Google\"\" Update.exe\" foobar")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail8) {
|
| - // Double quotes and two arguments.
|
| - EXPECT_STREQ(_T("foo bar"),
|
| - GetCmdLineTail(_T("\"Google Update.exe\" foo bar")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail9) {
|
| - // Double quotes and one argument with quotes.
|
| - EXPECT_STREQ(_T("\"foo bar\""),
|
| - GetCmdLineTail(_T("\"Google Update.exe\" \"foo bar\"")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail10) {
|
| - // \t as white space.
|
| - EXPECT_STREQ(_T("foo bar"),
|
| - GetCmdLineTail(_T("\"Google Update.exe\"\tfoo bar")));
|
| -}
|
| -
|
| -TEST(CommandLineSimpleTest, GetCmdLineTail11) {
|
| - // Trailing space.
|
| - EXPECT_STREQ(_T("foo bar "),
|
| - GetCmdLineTail(_T("\"Google Update.exe\" foo bar ")));
|
| -}
|
| -
|
| -//
|
| -// This block contains the positive test cases for each of the command lines.
|
| -// If you add a new command line parameter permutation, add a test case here.
|
| -//
|
| -
|
| -// TODO(omaha): Add some negative failure cases to the command lines (like
|
| -// /install without "extraargs").
|
| -
|
| -// TODO(omaha): This is an Omaha1 back-compat issue. Omaha2 should _never_
|
| -// call googleupdate.exe with no arguments. So when we stop supporting Omaha1
|
| -// handoffs we should remove this support.
|
| - // Parse empty command line.
|
| -TEST_F(CommandLineTest, ParseCommandLine_Empty) {
|
| - const TCHAR* kCmdLine = _T("");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_NOARGS;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path>
|
| -// Remember that by convention the OS is passing us the program executable
|
| -// name as the first token in the command line and the parsing code skips that.
|
| -TEST_F(CommandLineTest, ParseCommandLine_ProgramNameOnly) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_NOARGS;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /svc
|
| -TEST_F(CommandLineTest, ParseCommandLine_Svc) {
|
| - const TCHAR* kCmdLine = _T("\"C:\\Program Files\\Google\\Common\\Update\\")
|
| - _T("1.0.18.0\\goopdate.exe\" /svc");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_SERVICE;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /medsvc
|
| -TEST_F(CommandLineTest, ParseCommandLine_MedSvc) {
|
| - const TCHAR* kCmdLine = _T("\"C:\\Program Files\\Google\\Common\\Update\\")
|
| - _T("1.0.18.0\\goopdate.exe\" /medsvc");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_MEDIUM_SERVICE;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> -Embedding. The -Embedding text is injected via COM.
|
| -TEST_F(CommandLineTest, ParseCommandLine_Server) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe -Embedding");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_COMSERVER;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /broker. Used for the special COM broker mode.
|
| -TEST_F(CommandLineTest, ParseCommandLine_Broker) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /broker");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_COMBROKER;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /ondemand.
|
| -TEST_F(CommandLineTest, ParseCommandLine_OnDemand) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ondemand");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_ONDEMAND;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs"
|
| -// Also tests that bundle_name takes the first app's appname when no bundlename
|
| -// is specified.
|
| -TEST_F(CommandLineTest, ParseCommandLine_Install) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False&")
|
| - _T("appguid={C7A9A2F5-C4F9-42d3-8A8B-55086A205468}&")
|
| - _T("appname=TestApp&needsadmin=true&lang=en\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| -
|
| - expected_.extra_args_str = _T("appguid=")
|
| - _T("{A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False&")
|
| - _T("appguid=")
|
| - _T("{C7A9A2F5-C4F9-42d3-8A8B-55086A205468}&")
|
| - _T("appname=TestApp&needsadmin=true&lang=en");
|
| - CommandLineAppArgs app_args;
|
| - const GUID expected_guid = {0xA4F7B07B, 0xB9BD, 0x4A33,
|
| - {0xB1, 0x36, 0x96, 0xD2, 0xAD, 0xFB, 0x60, 0xCB}};
|
| - app_args.app_guid = expected_guid;
|
| - app_args.app_name = _T("YouTubeUploader");
|
| - app_args.needs_admin = NEEDS_ADMIN_NO;
|
| - expected_.extra.apps.push_back(app_args);
|
| -
|
| - CommandLineAppArgs app_args1;
|
| - app_args1.app_guid =
|
| - StringToGuid(_T("{C7A9A2F5-C4F9-42d3-8A8B-55086A205468}"));
|
| - app_args1.app_name = _T("TestApp");
|
| - app_args1.needs_admin = NEEDS_ADMIN_YES;
|
| - expected_.extra.apps.push_back(app_args1);
|
| -
|
| - expected_.extra.bundle_name = _T("YouTubeUploader");
|
| - expected_.extra.language = _T("en");
|
| -
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -
|
| - EXPECT_STREQ(_T("YouTubeUploader"), args_.extra.bundle_name);
|
| -}
|
| -
|
| -// Parse: <path> /install "bundlename=My%20Bundle&extraargs"
|
| -// Tests bundlename override of appname.
|
| -TEST_F(CommandLineTest, ParseCommandLine_Install_BundleName) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ")
|
| - _T("\"bundlename=My%20Bundle&")
|
| - _T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False&\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| -
|
| - expected_.extra_args_str = _T("bundlename=My%20Bundle&appguid=")
|
| - _T("{A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False&");
|
| - CommandLineAppArgs app_args;
|
| - const GUID expected_guid = {0xA4F7B07B, 0xB9BD, 0x4A33,
|
| - {0xB1, 0x36, 0x96, 0xD2, 0xAD, 0xFB, 0x60, 0xCB}};
|
| - app_args.app_guid = expected_guid;
|
| - app_args.app_name = _T("YouTubeUploader");
|
| - app_args.needs_admin = NEEDS_ADMIN_NO;
|
| - expected_.extra.apps.push_back(app_args);
|
| -
|
| - expected_.extra.bundle_name = _T("My Bundle");
|
| -
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -
|
| - EXPECT_STREQ(_T("My Bundle"), args_.extra.bundle_name);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /oem
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithOem) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /oem");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_oem_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" [/oem
|
| -// This tests how we handle a switch with a bracket, which represents optional
|
| -// parameters in a rule, when it appears in an actual command line.
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithOemIgnored) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" [/oem");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_oem_set = false;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /appargs <appargs>
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithAppArgs) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS;
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /oem /appargs <appargs>
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithOemAppArgs) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /oem")
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS;
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_oem_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /appargs <appargs> /silent
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithAppArgsSilent) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS
|
| - _T(" /silent");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_silent_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /oem /appargs <appargs> /silent
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithOemAppArgsSilent) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /oem")
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS
|
| - _T(" /silent");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_oem_set = true;
|
| - expected_.is_silent_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse:
|
| -// <path> /install "extraargs" /oem /appargs <appargs> /silent /eularequired
|
| -TEST_F(CommandLineTest,
|
| - ParseCommandLine_InstallWithOemAppArgsSilentEulaRequired) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /oem")
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS
|
| - _T(" /silent")
|
| - _T(" /eularequired");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_oem_set = true;
|
| - expected_.is_silent_set = true;
|
| - expected_.is_eula_required_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /eularequired
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallEulaRequired) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /eularequired");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_eula_required_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /oem /installsource oneclick
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithOemAndSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /oem")
|
| - _T(" /installsource oneclick");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_oem_set = true;
|
| - expected_.install_source = _T("oneclick");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /installsource oneclick
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installsource oneclick");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.install_source = _T("oneclick");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /silent
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallSilent) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /silent");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_silent_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /silent /oem
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallSilentWithOem) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /silent")
|
| - _T(" /oem");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_silent_set = true;
|
| - expected_.is_oem_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /installsource oneclick /silent
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallSilentWithSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installsource oneclick")
|
| - _T(" /silent");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.install_source = _T("oneclick");
|
| - expected_.is_silent_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /installelevated
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallElevated) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installelevated");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_install_elevated = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /installelevated /installsource oneclick
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallElevatedWithSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installelevated /installsource oneclick");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.is_install_elevated = true;
|
| - expected_.install_source = _T("oneclick");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /sessionid "guid"
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallSessionId) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /sessionid \"{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| - expected_.session_id = _T("{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /ig "extraargs"
|
| -TEST_F(CommandLineTest, ParseCommandLine_LegacyOmaha2Ig) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ig ") YOUTUBEUPLOADEREN_TAG;
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs"
|
| -TEST_F(CommandLineTest, ParseCommandLine_Handoff) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG;
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /offlinedir "c:\dir\ "
|
| -TEST_F(CommandLineTest, ParseCommandLine_OfflineDirTrailingBackslashSpace) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /offlinedir \"c:\\offline dir\\ \"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.is_offline_set = true;
|
| - expected_.offline_dir = _T("c:\\offline dir");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /offlinedir "c:\dir\\"
|
| -TEST_F(CommandLineTest,
|
| - ParseCommandLine_OfflineDirTrailingDoubleBackslashNoSpace) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /offlinedir \"c:\\offline dir\\\\\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.is_offline_set = true;
|
| - expected_.offline_dir = _T("c:\\offline dir");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /offlinedir "c:\dir\"
|
| -TEST_F(CommandLineTest, ParseCommandLine_OfflineDirTrailingBackslashNoSpace) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /offlinedir \"c:\\offline dir\\\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.is_offline_set = true;
|
| - expected_.offline_dir = _T("c:\\offline dir");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /installsource "asd"
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffWithSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installsource oneclick");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.install_source = _T("oneclick");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /installsource offline /offlineinstall
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffWithSourceOffline) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installsource offline")
|
| - _T(" /offlineinstall");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.install_source = _T("offline");
|
| - expected_.is_offline_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /appargs <appargs>
|
| -// /installsource offline /offlinedir "dir"
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffWithAppArgsSourceOffline) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS
|
| - _T(" /installsource offline")
|
| - _T(" /offlinedir \"c:\\offline_dir\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.install_source = _T("offline");
|
| - expected_.is_offline_set = true;
|
| - expected_.offline_dir = _T("c:\\offline_dir");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /silent
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffSilent) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /silent");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.is_silent_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /silent /offlineinstall
|
| -TEST_F(CommandLineTest,
|
| - ParseCommandLine_HandoffSilentOfflineWithoutInstallSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /silent")
|
| - _T(" /offlineinstall");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.is_silent_set = true;
|
| - expected_.is_offline_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /installsource "asd" /silent
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffSilentWithSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installsource oneclick")
|
| - _T(" /silent");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.install_source = _T("oneclick");
|
| - expected_.is_silent_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse:
|
| -// <path> /handoff "extraargs" /installsource offline /silent /offlineinstall
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffSilentWithSourceOffline) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /installsource offline")
|
| - _T(" /silent")
|
| - _T(" /offlineinstall");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.install_source = _T("offline");
|
| - expected_.is_silent_set = true;
|
| - expected_.is_offline_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /appargs <appargs>
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffWithAppArgs) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS;
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /appargs <appargs> /silent
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffSilentWithAppArgs) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS
|
| - _T(" /silent");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.is_silent_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /appargs <appargs>
|
| -// /installsource offline /silent /offlineinstall
|
| -TEST_F(CommandLineTest,
|
| - ParseCommandLine_HandoffSilentWithAppArgsSourceOffline) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS
|
| - _T(" /installsource offline")
|
| - _T(" /silent")
|
| - _T(" /offlineinstall");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.install_source = _T("offline");
|
| - expected_.is_silent_set = true;
|
| - expected_.is_offline_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /appargs <appargs>
|
| -// /installsource offline /silent /offlineinstall /eularequired
|
| -TEST_F(CommandLineTest,
|
| - ParseCommandLine_HandoffSilentWithAppArgsSourceOfflineEulaRequired) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /appargs ") YOUTUBEUPLOADEREN_APP_ARGS
|
| - _T(" /installsource offline")
|
| - _T(" /silent")
|
| - _T(" /offlineinstall")
|
| - _T(" /eularequired");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.install_source = _T("offline");
|
| - expected_.is_silent_set = true;
|
| - expected_.is_offline_set = true;
|
| - expected_.is_eula_required_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, true, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /eularequired
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffEulaRequired) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /eularequired");
|
| -
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.is_eula_required_set = true;
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /sessionid "guid"
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffSessionId) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /handoff ") YOUTUBEUPLOADEREN_TAG
|
| - _T(" /sessionid \"{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}\"");
|
| -
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_HANDOFF_INSTALL;
|
| - expected_.session_id = _T("{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, true);
|
| -}
|
| -
|
| -// Parse: <path> /ug
|
| -TEST_F(CommandLineTest, ParseCommandLine_LegacyOmaha2Ug) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ug");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /ua
|
| -TEST_F(CommandLineTest, ParseCommandLine_UaNoInstallSource) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ua");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_UA;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /ua /installsource core
|
| -TEST_F(CommandLineTest, ParseCommandLine_Ua) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ua /installsource core");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_UA;
|
| - expected_.install_source = _T("core");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /update
|
| -TEST_F(CommandLineTest, ParseCommandLine_Update) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /update");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_UPDATE;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /update /sessionid "guid"
|
| -TEST_F(CommandLineTest, ParseCommandLine_UpdateSessionId) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /update");
|
| - _T(" /sessionid \"{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_UPDATE;
|
| - expected_.session_id = _T("{756dfdc2-0ef0-44b7-bfb1-21a4be6a1213}");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /netdiags
|
| -TEST_F(CommandLineTest, ParseCommandLine_NetDiags) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /netdiags");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_NETDIAGS;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /regserver
|
| -TEST_F(CommandLineTest, ParseCommandLine_Regserver) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /regserver");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_REGSERVER;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /unregserver
|
| -TEST_F(CommandLineTest, ParseCommandLine_Unregserver) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /unregserver");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_UNREGSERVER;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /registerproduct
|
| -TEST_F(CommandLineTest, ParseCommandLine_RegisterProduct) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /registerproduct ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_REGISTER_PRODUCT;
|
| - expected_.extra_args_str = _T("appguid=")
|
| - _T("{A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, false);
|
| -}
|
| -
|
| -// Parse: <path> /registerproduct /installsource enterprisemsi
|
| -TEST_F(CommandLineTest, ParseCommandLine_RegisterProductWithInstallSource) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /registerproduct ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False\"")
|
| - _T(" /installsource enterprisemsi");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| - expected_.mode = COMMANDLINE_MODE_REGISTER_PRODUCT;
|
| - expected_.install_source = _T("enterprisemsi");
|
| - expected_.extra_args_str = _T("appguid=")
|
| - _T("{A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, false);
|
| -}
|
| -
|
| -// Parse: <path> /unregisterproduct
|
| -TEST_F(CommandLineTest, ParseCommandLine_UnregisterProduct) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /unregisterproduct ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_UNREGISTER_PRODUCT;
|
| - expected_.extra_args_str = _T("appguid=")
|
| - _T("{A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False");
|
| - VerifyArgsWithSingleYouTubeUploaderEnApp(expected_, args_, false, false);
|
| -}
|
| -
|
| -// Parse: <path> /c
|
| -TEST_F(CommandLineTest, ParseCommandLine_Core) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /c");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_CORE;
|
| - expected_.is_crash_handler_disabled = false;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /c /nocrashserver
|
| -TEST_F(CommandLineTest, ParseCommandLine_CoreNoCrashHandler) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /c /nocrashserver");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_CORE;
|
| - expected_.is_crash_handler_disabled = true;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /crash
|
| -TEST_F(CommandLineTest, ParseCommandLine_Crash) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /crash");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_CRASH;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /report crash_file
|
| -TEST_F(CommandLineTest, ParseCommandLine_Report) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /report C:\\foo\\crash.dmp");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_REPORTCRASH;
|
| - expected_.crash_filename = _T("C:\\foo\\crash.dmp");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /report crash_file /machine
|
| -TEST_F(CommandLineTest, ParseCommandLine_ReportMachine) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /report C:\\foo\\crash.dmp /machine");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_REPORTCRASH;
|
| - expected_.crash_filename = _T("C:\\foo\\crash.dmp");
|
| - expected_.is_machine_set = true;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /report crash_file
|
| -TEST_F(CommandLineTest, ParseCommandLine_ReportWithCustomInfo) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /report C:\\foo.dmp /custom_info_filename C:\\foo.txt");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_REPORTCRASH;
|
| - expected_.crash_filename = _T("C:\\foo.dmp");
|
| - expected_.custom_info_filename = _T("C:\\foo.txt");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /report /i crash_file
|
| -TEST_F(CommandLineTest, ParseCommandLine_ReportInteractive) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /report /i C:\\foo\\crash.dmp");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_REPORTCRASH;
|
| - expected_.is_interactive_set = true;
|
| - expected_.crash_filename = _T("C:\\foo\\crash.dmp");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /report /i crash_file /machine
|
| -TEST_F(CommandLineTest, ParseCommandLine_ReportMachineInteractive) {
|
| - const TCHAR*
|
| - kCmdLine = _T("goopdate.exe /report /i C:\\foo\\crash.dmp /machine");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_REPORTCRASH;
|
| - expected_.is_machine_set = true;
|
| - expected_.is_interactive_set = true;
|
| - expected_.crash_filename = _T("C:\\foo\\crash.dmp");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_CodeRedCheck) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /cr");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_CODE_RED_CHECK;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_WebPlugin) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /pi \"http://gears.google.com/\" ")
|
| - _T("\"/install foo\" /installsource oneclick ");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_WEBPLUGIN;
|
| - expected_.webplugin_urldomain = _T("http://gears.google.com/");
|
| - expected_.webplugin_args = _T("/install foo");
|
| - expected_.install_source = _T("oneclick");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_WebPluginUrlEscaped) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /pi \"http://gears.google.com/\" ")
|
| - _T("\"/install%20foo\" /installsource oneclick ");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_WEBPLUGIN;
|
| - expected_.webplugin_urldomain = _T("http://gears.google.com/");
|
| - expected_.webplugin_args = _T("/install foo");
|
| - expected_.install_source = _T("oneclick");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_WebPluginTestStringTrim) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /pi ")
|
| - _T("\" http://gears.google.com/ \" ")
|
| - _T("\"/install foo\" /installsource oneclick ");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_WEBPLUGIN;
|
| - expected_.webplugin_urldomain = _T("http://gears.google.com/");
|
| - expected_.webplugin_args = _T("/install foo");
|
| - expected_.install_source = _T("oneclick");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_LegacyOmaha1UiNoLanguage) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ui \"manifestfilename.xml\"");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_LegacyOmaha1UiWithLanguage) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /ui /lang fr \"manifestfilename.xml\"");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_LegacyOmaha1UiUser) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /uiuser file.gup");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_Recover) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /recover repairfile.exe");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_RECOVER;
|
| - expected_.code_red_metainstaller_path = _T("repairfile.exe");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_RecoverMachine) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /recover /machine repfile.exe");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_RECOVER;
|
| - expected_.is_machine_set = true;
|
| - expected_.code_red_metainstaller_path = _T("repfile.exe");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /uninstall
|
| -TEST_F(CommandLineTest, ParseCommandLine_Uninstall) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /uninstall");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_UNINSTALL;
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -// Parse: <path> /ping foo
|
| -TEST_F(CommandLineTest, ParseCommandLine_Ping) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ping foo");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_PING;
|
| - expected_.ping_string = _T("foo");
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -//
|
| -// These are additional failure cases against the command line parsing.
|
| -// Everything from here on down should fail ParseCommandLine().
|
| -//
|
| -
|
| -
|
| -// Parse: <path> manifest_file
|
| -TEST_F(CommandLineTest, ParseCommandLine_GoopdateJustArg) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe \"foo bar\"");
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /install manifest_file manifest_file
|
| -// Fails since this is an invalid command line set.
|
| -TEST_F(CommandLineTest, ParseCommandLine_Invalid) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install \"foo bar\" foobar");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /recover
|
| -TEST_F(CommandLineTest, Recover_WithoutFile) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /recover");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /machine
|
| -TEST_F(CommandLineTest, MachineWithoutRecover) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /machine");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ExtraArgsHasDoubleQuoteInTheMiddle) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /install \"some_\"file\"");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, CommandsNotSeparatedBySpaces) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /recover/machine");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, CommandsDoNotHaveForwardSlashes) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe recover machine");
|
| - ExpectAsserts expect_asserts;
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, UnknownParameter) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /someunknowncommand");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, UiWithLangNoLanguage) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /ui /lang \"manifestfilename.xml\"");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, WebPluginInstallSourceInvalid_IncorrectValue) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /installsource invalid /pi ")
|
| - _T("\" http://gears.google.com/ \" ");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, WebPluginInstallSourceInvalid_Empty) {
|
| - const TCHAR* kCmdLine = _T("goopdate.exe /installsource /pi ")
|
| - _T("\" http://gears.google.com/ \" ");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /lang "en"
|
| -TEST_F(CommandLineTest, ParseCommandLine_HandoffLegacyOmaha1ToOmaha2) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /handoff ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False\"")
|
| - _T(" /lang en");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /installsource "asd" /lang "en"
|
| -TEST_F(CommandLineTest,
|
| - ParseCommandLine_HandoffWithSourceLegacyOmaha1ToOmaha2) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /handoff ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False\"")
|
| - _T(" /installsource oneclick /lang en");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /handoff "extraargs" /installsource "oneclick" /lang "en"
|
| -TEST_F(CommandLineTest,
|
| - ParseCommandLine_HandoffWithSourceLegacyOmaha1ToOmaha2Both) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /handoff ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False&lang=en\"")
|
| - _T(" /installsource oneclick /lang en");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /lang en
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallLegacyOmaha1) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False&")
|
| - _T("appguid={C7A9A2F5-C4F9-42d3-8A8B-55086A205468}&")
|
| - _T("appname=TestApp&needsadmin=true\" /lang en");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -// Parse: <path> /install "extraargs" /installsource oneclick /lang en
|
| -TEST_F(CommandLineTest, ParseCommandLine_InstallWithSourceLegacyOmaha1) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ")
|
| - _T("\"appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=False\"")
|
| - _T(" /installsource oneclick /lang en");
|
| - EXPECT_FAILED(ParseCommandLine(kCmdLine, &args_));
|
| -}
|
| -
|
| -TEST_F(CommandLineTest, ParseCommandLine_NeedsAdmin_Prefers) {
|
| - const TCHAR* kCmdLine =
|
| - _T("goopdate.exe /install ")
|
| - _T("\"bundlename=My%20Bundle&")
|
| - _T("appguid={A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=Prefers&\"");
|
| - EXPECT_SUCCEEDED(ParseCommandLine(kCmdLine, &args_));
|
| -
|
| - expected_.mode = COMMANDLINE_MODE_INSTALL;
|
| -
|
| - expected_.extra_args_str = _T("bundlename=My%20Bundle&appguid=")
|
| - _T("{A4F7B07B-B9BD-4a33-B136-96D2ADFB60CB}&")
|
| - _T("appname=YouTubeUploader&needsadmin=Prefers&");
|
| - CommandLineAppArgs app_args;
|
| - const GUID expected_guid = {0xA4F7B07B, 0xB9BD, 0x4A33,
|
| - {0xB1, 0x36, 0x96, 0xD2, 0xAD, 0xFB, 0x60, 0xCB}};
|
| - app_args.app_guid = expected_guid;
|
| - app_args.app_name = _T("YouTubeUploader");
|
| - app_args.needs_admin = NEEDS_ADMIN_PREFERS;
|
| - expected_.extra.apps.push_back(app_args);
|
| -
|
| - expected_.extra.bundle_name = _T("My Bundle");
|
| -
|
| - VerifyCommandLineArgs(expected_, args_);
|
| -}
|
| -
|
| -} // namespace omaha
|
|
|