| Index: common/extra_args_parser_unittest.cc
|
| diff --git a/common/extra_args_parser_unittest.cc b/common/extra_args_parser_unittest.cc
|
| deleted file mode 100644
|
| index 00f96a23959ece1836daffd2a17c0ebb49547a83..0000000000000000000000000000000000000000
|
| --- a/common/extra_args_parser_unittest.cc
|
| +++ /dev/null
|
| @@ -1,1663 +0,0 @@
|
| -// Copyright 2008-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/string.h"
|
| -#include "omaha/base/utils.h"
|
| -#include "omaha/common/command_line.h"
|
| -#include "omaha/common/extra_args_parser.h"
|
| -#include "omaha/testing/resource.h"
|
| -#include "omaha/testing/unit_test.h"
|
| -
|
| -namespace omaha {
|
| -
|
| -extern void VerifyCommandLineArgs(const CommandLineArgs& expected,
|
| - const CommandLineArgs& actual);
|
| -
|
| -extern void VerifyCommandLineExtraArgs(const CommandLineExtraArgs& expected,
|
| - const CommandLineExtraArgs& actual);
|
| -
|
| -void VerifyBrowserType(const CommandLineExtraArgs& args,
|
| - const CString& app_guid,
|
| - BrowserType type) {
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_guid = StringToGuid(app_guid);
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.browser_type = type;
|
| - expected.apps.push_back(app_args);
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -// TODO(omaha): Consider eliminating most uses of this method. The tests will
|
| -// actually be less lines now that the parameters have grown so much.
|
| -void VerifyExtraArgsHaveSpecificValues(
|
| - const CommandLineExtraArgs& args,
|
| - const CString& expected_app_guid,
|
| - const CString& expected_app_name,
|
| - const CString& expected_app_experiment_labels,
|
| - NeedsAdmin expected_needs_admin,
|
| - Tristate expected_usage_stats_enable,
|
| - bool expected_runtime_only,
|
| - const CString& expected_bundle_name,
|
| - const GUID& expected_installation_id,
|
| - const CString& expected_brand_code,
|
| - const CString& expected_client_id,
|
| - const CString& expected_omaha_experiment_labels,
|
| - const CString& expected_referral_id,
|
| - const CString& expected_ap,
|
| - const CString& expected_tt,
|
| - const CString& expected_encoded_installer_data,
|
| - const CString& expected_install_data_index) {
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_guid = StringToGuid(expected_app_guid);
|
| - app_args.app_name = expected_app_name;
|
| - app_args.needs_admin = expected_needs_admin;
|
| - app_args.ap = expected_ap;
|
| - app_args.tt_token = expected_tt;
|
| - app_args.encoded_installer_data = expected_encoded_installer_data;
|
| - app_args.install_data_index = expected_install_data_index;
|
| - app_args.experiment_labels = expected_app_experiment_labels;
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| - expected.bundle_name = expected_bundle_name;
|
| - expected.installation_id = expected_installation_id;
|
| - expected.brand_code = expected_brand_code;
|
| - expected.client_id = expected_client_id;
|
| - expected.experiment_labels = expected_omaha_experiment_labels;
|
| - expected.referral_id = expected_referral_id;
|
| - expected.usage_stats_enable = expected_usage_stats_enable;
|
| - expected.runtime_only = expected_runtime_only;
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsInvalidValueNameIsSupersetOfValidName) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname1=Hello");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameSpaceForValue) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname= ");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| -
|
| - CString app_guid = _T("{D0324988-DA8A-49e5-BCE5-925FCD04EAB7}");
|
| - CString extra_args = _T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname=Test");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| -
|
| - app_args.app_name = _T("Test");
|
| - app_args.app_guid = StringToGuid(app_guid);
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| - expected.bundle_name = _T("Test");
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -// This must work because the enterprise MSI code assumes spaces are allowed.
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameWithSpace) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname=Test App");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{D0324988-DA8A-49e5-BCE5-925FCD04EAB7}"));
|
| - app_args.app_name = _T("Test App");
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| - expected.bundle_name = _T("Test App");
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameWithSpaceAtEnd) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname= T Ap p ");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{D0324988-DA8A-49e5-BCE5-925FCD04EAB7}"));
|
| - app_args.app_name = _T("T Ap p");
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| - expected.bundle_name = _T("T Ap p");
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameWithMultipleSpaces) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname= T Ap p");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{D0324988-DA8A-49e5-BCE5-925FCD04EAB7}"));
|
| - app_args.app_name = _T("T Ap p");
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| - expected.bundle_name = _T("T Ap p");
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -// The size of the application name is limited to 512 wide chars.
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameTooLong) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString str(_T('a'), 513);
|
| - CString extra_args;
|
| - extra_args.Format(_T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname=%s"), str);
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameUnicode) {
|
| - // Read the non-ascii string from the resources, and convert
|
| - // it into a utf8 encoded, url escaped string.
|
| - CString non_ascii_name;
|
| - ASSERT_TRUE(non_ascii_name.LoadString(IDS_ESCAPE_TEST));
|
| -
|
| - CString wide_tag;
|
| - ASSERT_HRESULT_SUCCEEDED(WideStringToUtf8UrlEncodedString(non_ascii_name,
|
| - &wide_tag));
|
| -
|
| - ExtraArgsParser parser;
|
| - CommandLineExtraArgs args;
|
| - CString extra_args;
|
| - extra_args.Format(_T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname=%s"), wide_tag);
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_name = non_ascii_name;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{D0324988-DA8A-49e5-BCE5-925FCD04EAB7}"));
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| - expected.bundle_name = non_ascii_name;
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppNameUnicode2) {
|
| - // Read the non-ascii string from the resources, and convert
|
| - // it into a utf8 encoded, url escaped string.
|
| - CString non_ascii_name;
|
| - ASSERT_TRUE(non_ascii_name.LoadString(IDS_ESCAPE_TEST1));
|
| -
|
| - CString escaped(_T("%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%AA%E0%A4%BF")
|
| - _T("%E0%A4%A4%20%E0%A4%95%E0%A4%B0%20%E0%A4%B0%E0%A4%B9%E0")
|
| - _T("%A4%BE%20%E0%A4%B9%E0%A5%88%E0%A5%A4"));
|
| -
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| -
|
| - CString extra_args;
|
| - extra_args.Format(_T("appguid={D0324988-DA8A-49e5-BCE5-925FCD04EAB7}&")
|
| - _T("appname=%s"), escaped);
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.app_name = non_ascii_name;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{D0324988-DA8A-49e5-BCE5-925FCD04EAB7}"));
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| - expected.bundle_name = non_ascii_name;
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppGuidValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - const GUID guid = {0x8617EE50, 0xF91C, 0x4DC1,
|
| - {0xB9, 0x37, 0x09, 0x69, 0xEE, 0xF5, 0x9B, 0x0B}};
|
| - app_args.app_guid = guid;
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppGuidNotAValidGuid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0}");
|
| - EXPECT_EQ(E_INVALIDARG, parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAppGuidNotAGuid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid=myguid");
|
| - EXPECT_EQ(E_INVALIDARG, parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNeedsAdminInvalid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("needsadmin=Hello");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNeedsAdminSpaceForValue) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("needsadmin= ");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNeedsAdminTrueUpperCaseT) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("needsadmin=True");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.needs_admin = NEEDS_ADMIN_YES;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"));
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNeedsAdminTrueLowerCaseT) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("needsadmin=true");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.needs_admin = NEEDS_ADMIN_YES;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"));
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNeedsFalseUpperCaseF) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("needsadmin=False");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.needs_admin = NEEDS_ADMIN_NO;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"));
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNeedsAdminFalseLowerCaseF) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("needsadmin=false");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -
|
| - CommandLineAppArgs app_args;
|
| - app_args.needs_admin = NEEDS_ADMIN_NO;
|
| - app_args.app_guid =
|
| - StringToGuid(_T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"));
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(app_args);
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -//
|
| -// Test the handling of the contents of the extra arguments.
|
| -//
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAssignmentOnly) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("=");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsExtraAssignment1) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1=");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsExtraAssignment2) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("=usagestats=1");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsExtraAssignment3) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1&=");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsExtraAssignment4) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("=&usagestats=1");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsValueWithoutName) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("=hello");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -
|
| -// Also tests ending extra arguments with '='.
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNameWithoutValue) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsNameWithoutValueBeforeNextArgument) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=&client=hello");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest,
|
| - ExtraArgumentsNameWithoutArgumentSeparatorAfterIntValue) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1client=hello");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest,
|
| - ExtraArgumentsNameWithoutArgumentSeparatorAfterStringValue) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=yesclient=hello");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsHaveDoubleAmpersand) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1&&client=hello");
|
| -
|
| - CString app_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("installerdata=foobar");
|
| -
|
| - // Ideally, this would flag an error.
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, app_args, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_TRUE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T("hello"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T("foobar"),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsAmpersandOnly) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("&");
|
| -
|
| - // Ideally, this would flag an error.
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{00000000-0000-0000-0000-000000000000}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsBeginInAmpersand) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("&appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1");
|
| -
|
| - // Ideally, this would flag an error.
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_TRUE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsEndInAmpersand) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("&appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1&");
|
| -
|
| - // Ideally, this would flag an error.
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_TRUE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsEmptyString) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceOnly1) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T(" ");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceOnly2) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\t");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceOnly3) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\r");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceOnly4) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\n");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceOnly5) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\r\n");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -
|
| -//
|
| -// Test the parsing of the extra command and its arguments into a string.
|
| -//
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsOneValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("&appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_TRUE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsTwoValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("&appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1&client=hello");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_TRUE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T("hello"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsHaveSwitchInTheMiddle) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1/other_value=9");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsHaveDoubleQuoteInTheMiddle) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1\"/other_value=9");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest,
|
| - ExtraArgumentsHaveDoubleQuoteInTheMiddleAndNoForwardSlash) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1\"other_value=9");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsHaveSpaceAndForwardSlashBeforeQuote) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1 /other_value=9");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsHaveForwardSlashBeforeQuote) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1/other_value=9");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsSpecifiedTwice) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1\" \"client=10");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceBeforeArgs1) {
|
| - CommandLineExtraArgs args;
|
| - // TODO(omaha): This one passes now due to different whitespace
|
| - // handling. Remove it? Is this really a problem to have?
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T(" usagestats=1");
|
| - ExtraArgsParser parser;
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceBeforeArgs2) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\tappguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceBeforeArgs3) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\rappguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceBeforeArgs4) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\nappguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}")
|
| - _T("&usagestats=1");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsWhiteSpaceBeforeArgs5) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\r\nusagestats=1");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsForwardSlash1) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("/");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsForwardSlash2) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("/ appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsBackwardSlash1) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\\");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsBackwardSlash2) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\\appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ExtraArgumentsBackwardSlash3) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("\\ appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -//
|
| -// Test specific extra commands.
|
| -//
|
| -
|
| -TEST(ExtraArgsParserTest, UsageStatsOutsideExtraCommand) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("/usagestats");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, UsageStatsOn) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=1");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_TRUE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, UsageStatsOff) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=0");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_FALSE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -// This commandline has no effect, but it's permitted.
|
| -TEST(ExtraArgsParserTest, UsageStatsNone) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=2");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, UsageStatsInvalidPositiveValue) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=3");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, UsageStatsInvalidNegativeValue) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=-1");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, UsageStatsValueIsString) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("usagestats=true");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BundleNameValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("bundlename=Google%20Bundle");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T("Google Bundle"),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BundleNameNotPresentButAppNameIs) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("appname=Google%20Chrome");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T("Google Chrome"),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T("Google Chrome"),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -TEST(ExtraArgsParserTest, BundleNameNorAppNamePresent) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BundleNameNotPresentAndNoApp) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("browser=0");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{00000000-0000-0000-0000-000000000000}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, InstallationGuidValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("iid={98CEC468-9429-4984-AEDE-4F53C6A14869}");
|
| - const GUID expected_guid = {0x98CEC468, 0x9429, 0x4984,
|
| - {0xAE, 0xDE, 0x4F, 0x53, 0xC6, 0xA1, 0x48, 0x69}};
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - expected_guid,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, InstallationGuidMissingBraces) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("iid=98CEC468-9429-4984-AEDE-4F53C6A14869");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, InstallationGuidMissingDashes) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("iid=98CEC46894294984AEDE4F53C6A14869");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, InstallationGuidMissingCharacter) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("iid=98CEC468-9429-4984-AEDE-4F53C6A1486");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, InstallationGuidIsString) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("iid=hello");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrandCodeValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("brand=GOOG");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T("GOOG"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrandCodeTooLong) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("brand=CHMI\xe3\x83\xbb");
|
| -
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ClientIdValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("client=some_partner");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T("some_partner"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, OmahaExperimentIdValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("omahaexperiments=experiment%3DgroupA%7Cexpir");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T("experiment=groupA|expir"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, AppExperimentIdValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("experiments=experiment%3DgroupA%7Cexpir");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T("experiment=groupA|expir"),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ReferralIdValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("referral=ABCD123");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T("ABCD123"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ApValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("ap=developer");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T("developer"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, TTValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("tttoken=7839g93");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T("7839g93"),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, AppArgsValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("tttoken=7839g93");
|
| -
|
| - CString app_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("installerdata=%E0%A4foobar");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, app_args, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T("7839g93"),
|
| - _T("%E0%A4foobar"),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, AppArgsInvalidAppGuid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("tttoken=7839g93");
|
| -
|
| - CString app_args = _T("appguid={E135384F-85A2-4328-B07D-2CF70313D505}&")
|
| - _T("installerdata=%E0%A4foobar");
|
| -
|
| - EXPECT_EQ(E_INVALIDARG, parser.Parse(extra_args, app_args, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, AppArgsInvalidAttribute) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("tttoken=7839g93");
|
| -
|
| - CString app_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("tttoken=foobar");
|
| -
|
| - EXPECT_EQ(E_INVALIDARG, parser.Parse(extra_args, app_args, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, InstallerDataNotAllowedInExtraArgs) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("appname=TestApp2&")
|
| - _T("needsadmin=true&")
|
| - _T("installerdata=Hello%20World");
|
| -
|
| - EXPECT_EQ(E_INVALIDARG, parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, InstallDataIndexValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("installdataindex=foobar");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - false,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T("foobar"));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrowserTypeValid_0) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("browser=0");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyBrowserType(args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - BROWSER_UNKNOWN);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrowserTypeValid_1) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("browser=1");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyBrowserType(args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - BROWSER_DEFAULT);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrowserTypeValid_2) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("browser=2");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyBrowserType(args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - BROWSER_IE);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrowserTypeValid_3) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("browser=3");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyBrowserType(args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - BROWSER_FIREFOX);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrowserTypeValid_4) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("browser=4");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyBrowserType(args,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - BROWSER_CHROME);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, BrowserTypeInvalid) {
|
| - EXPECT_EQ(5, BROWSER_MAX) <<
|
| - _T("Browser type may have been added. Add new Valid_n test and change ")
|
| - _T("browser values in extra args strings below.");
|
| -
|
| - CommandLineExtraArgs args1;
|
| - ExtraArgsParser parser1;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("browser=5");
|
| -
|
| - EXPECT_SUCCEEDED(parser1.Parse(extra_args, NULL, &args1));
|
| - VerifyBrowserType(args1,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - BROWSER_UNKNOWN);
|
| -
|
| - CommandLineExtraArgs args2;
|
| - ExtraArgsParser parser2;
|
| - extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("browser=9");
|
| -
|
| - EXPECT_SUCCEEDED(parser2.Parse(extra_args, NULL, &args2));
|
| - VerifyBrowserType(args2,
|
| - _T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"),
|
| - BROWSER_UNKNOWN);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, ValidLang) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("lang=en");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - EXPECT_STREQ(_T("en"), args.language);
|
| -}
|
| -
|
| -// Language must be passed even if not supported. See http://b/1336966.
|
| -TEST(ExtraArgsParserTest, UnsupportedLang) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("lang=foobar");
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - EXPECT_STREQ(_T("foobar"), args.language);
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, LangTooLong) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("lang=morethan10chars");
|
| - EXPECT_FAILED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, RuntimeValid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("runtime=true");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{00000000-0000-0000-0000-000000000000}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_NONE,
|
| - true,
|
| - _T(""),
|
| - GUID_NULL,
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, RuntimeWithExtraArgs) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("runtime=true&")
|
| - _T("bundlename=Google%20Bundle&")
|
| - _T("brand=GOOG&")
|
| - _T("usagestats=1");
|
| -
|
| - EXPECT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| - VerifyExtraArgsHaveSpecificValues(
|
| - args,
|
| - _T("{00000000-0000-0000-0000-000000000000}"),
|
| - _T(""),
|
| - _T(""),
|
| - NEEDS_ADMIN_NO,
|
| - TRISTATE_TRUE,
|
| - true,
|
| - _T("Google Bundle"),
|
| - GUID_NULL,
|
| - _T("GOOG"),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""),
|
| - _T(""));
|
| -}
|
| -
|
| -
|
| -TEST(ExtraArgsParserTest, RuntimeBeforeAppGuid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("runtime=true&")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}");
|
| -
|
| - EXPECT_EQ(E_INVALIDARG, parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -TEST(ExtraArgsParserTest, RuntimeAfterAppGuid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("runtime=true");
|
| -
|
| - EXPECT_EQ(E_INVALIDARG, parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -//
|
| -// Test multiple applications in the extra arguments
|
| -//
|
| -TEST(ExtraArgsParserTestMultipleEntries, TestNotStartingWithAppGuid) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appname=TestApp&")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("appname=TestApp&")
|
| - _T("appname=false&")
|
| - _T("iid={98CEC468-9429-4984-AEDE-4F53C6A14869}&")
|
| - _T("ap=test_ap&")
|
| - _T("tttoken=foobar&")
|
| - _T("usagestats=1&")
|
| - _T("browser=2&");
|
| - EXPECT_HRESULT_SUCCEEDED(parser.Parse(extra_args, NULL, &args));
|
| -}
|
| -
|
| -// This also tests that the last occurrence of a global extra arg is the one
|
| -// that is saved.
|
| -TEST(ExtraArgsParserTestMultipleEntries, ThreeApplications) {
|
| - CommandLineExtraArgs args;
|
| - ExtraArgsParser parser;
|
| - CString extra_args = _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("appname=TestApp&")
|
| - _T("needsadmin=false&")
|
| - _T("iid={98CEC468-9429-4984-AEDE-4F53C6A14869}&")
|
| - _T("ap=test_ap&")
|
| - _T("tttoken=foobar&")
|
| - _T("usagestats=1&")
|
| - _T("browser=2&")
|
| - _T("brand=GOOG&")
|
| - _T("client=_some_client&")
|
| - _T("experiments=_experiment_a&")
|
| - _T("referral=A123456789&")
|
| - _T("appguid={5E46DE36-737D-4271-91C1-C062F9FE21D9}&")
|
| - _T("appname=TestApp2&")
|
| - _T("needsadmin=true&")
|
| - _T("experiments=_experiment_b&")
|
| - _T("iid={98CEC468-9429-4984-AEDE-4F53C6A14869}&")
|
| - _T("ap=test_ap2&")
|
| - _T("tttoken=foobar2&")
|
| - _T("usagestats=0&")
|
| - _T("browser=3&")
|
| - _T("brand=g00g&")
|
| - _T("client=_different_client&")
|
| - _T("appguid={5F46DE36-737D-4271-91C1-C062F9FE21D9}&")
|
| - _T("appname=TestApp3&")
|
| - _T("needsadmin=prefers&");
|
| -
|
| - CString app_args = _T("appguid={5F46DE36-737D-4271-91C1-C062F9FE21D9}&")
|
| - _T("installerdata=installerdata_app3&")
|
| - _T("appguid={8617EE50-F91C-4DC1-B937-0969EEF59B0B}&")
|
| - _T("installerdata=installerdata_app1");
|
| -
|
| - EXPECT_HRESULT_SUCCEEDED(parser.Parse(extra_args, app_args, &args));
|
| -
|
| - CommandLineAppArgs input1;
|
| - input1.app_guid = StringToGuid(_T("{8617EE50-F91C-4DC1-B937-0969EEF59B0B}"));
|
| - input1.app_name = _T("TestApp");
|
| - input1.needs_admin = NEEDS_ADMIN_NO;
|
| - input1.ap = _T("test_ap");
|
| - input1.tt_token = _T("foobar");
|
| - input1.encoded_installer_data = _T("installerdata_app1");
|
| - input1.experiment_labels = _T("_experiment_a");
|
| -
|
| - CommandLineAppArgs input2;
|
| - input2.app_guid = StringToGuid(_T("{5E46DE36-737D-4271-91C1-C062F9FE21D9}"));
|
| - input2.app_name = _T("TestApp2");
|
| - input2.needs_admin = NEEDS_ADMIN_YES;
|
| - input2.ap = _T("test_ap2");
|
| - input2.tt_token = _T("foobar2");
|
| - input2.experiment_labels = _T("_experiment_b");
|
| -
|
| - CommandLineAppArgs input3;
|
| - input3.app_guid = StringToGuid(_T("{5F46DE36-737D-4271-91C1-C062F9FE21D9}"));
|
| - input3.app_name = _T("TestApp3");
|
| - input3.encoded_installer_data = _T("installerdata_app3");
|
| - input3.needs_admin = NEEDS_ADMIN_PREFERS;
|
| -
|
| - CommandLineExtraArgs expected;
|
| - expected.apps.push_back(input1);
|
| - expected.apps.push_back(input2);
|
| - expected.apps.push_back(input3);
|
| - expected.bundle_name = _T("TestApp");
|
| - expected.installation_id = StringToGuid(
|
| - _T("{98CEC468-9429-4984-AEDE-4F53C6A14869}"));
|
| - expected.brand_code = _T("g00g");
|
| - expected.client_id = _T("_different_client");
|
| - expected.referral_id = _T("A123456789");
|
| - expected.browser_type = BROWSER_FIREFOX;
|
| - expected.usage_stats_enable = TRISTATE_FALSE;
|
| -
|
| - VerifyCommandLineExtraArgs(expected, args);
|
| -}
|
| -
|
| -} // namespace omaha
|
|
|