Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Unified Diff: base/commands_unittest.cc

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/commands.cc ('k') | base/commontypes.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/commands_unittest.cc
diff --git a/base/commands_unittest.cc b/base/commands_unittest.cc
deleted file mode 100644
index 8ecf2ef23c89b01b2e7b61f83c9a60339b3ce182..0000000000000000000000000000000000000000
--- a/base/commands_unittest.cc
+++ /dev/null
@@ -1,430 +0,0 @@
-// Copyright 2006-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.
-// ========================================================================
-//
-// Unit tests of command line options parsing
-
-#include <cstdio>
-#include "omaha/base/commands.h"
-#include "omaha/base/file.h"
-#include "omaha/testing/unit_test.h"
-
-namespace omaha {
-
-#define kDash _T("-")
-#define kBoolOption _T("bool")
-#define kThreeOption _T("three")
-#define kIntOption _T("int")
-#define kUintOption _T("uint")
-#define kStrOption _T("str")
-
-#define kIEBrowserExe \
- _T("C:\\PROGRAM FILES\\Internet Explorer\\iexplore.exe")
-
-#define kIEBrowserQuotedExe \
- _T("\"") kIEBrowserExe _T("\"")
-
-#define kIEBrowserQuotedArgs _T("-h \"%1\"")
-#define kIEBrowserQuotedCommandLine \
- kIEBrowserQuotedExe _T(" ") kIEBrowserQuotedArgs
-
-#define kIEBrowserQuotedExeResult \
- _T("C:\\PROGRAM FILES\\Internet Explorer\\iexplore.exe")
-#define kIEBrowserQuotedArgsResult _T("-h %1")
-
-#define kIEBrowserUnquotedCommandLine \
- _T("C:\\Program Files\\Internet Explorer\\iexplore.exe -nohome")
-#define kIEBrowserUnquotedExe \
- _T("C:\\Program Files\\Internet Explorer\\iexplore.exe")
-#define kIEBrowserUnquotedArgs _T("-nohome")
-
-#define kGEUninstallCommandLine _T("RunDll32 C:\\PROGRA~1\\COMMON~1\\INSTAL~1\\PROFES~1\\RunTime\\10\\01\\Intel32\\Ctor.dll,LaunchSetup \"C:\\Program Files\\InstallShield Installation Information\\{3DE5E7D4-7B88-403C-A3FD-2017A8240C5B}\\setup.exe\" -l0x9 -removeonly") // NOLINT
-#define kGEUninstallExe _T("RunDll32")
-#define kGEUninstallArgs _T("C:\\PROGRA~1\\COMMON~1\\INSTAL~1\\PROFES~1\\RunTime\\10\\01\\Intel32\\Ctor.dll,LaunchSetup \"C:\\Program Files\\InstallShield Installation Information\\{3DE5E7D4-7B88-403C-A3FD-2017A8240C5B}\\setup.exe\" -l0x9 -removeonly") // NOLINT
-
-
-struct TestData {
- TestData() {
- Clear();
- }
-
- void Clear() {
- bool_value = false;
- three_value = VALUE_NOT_SET;
- int_value = 0;
- uint_value = 0;
- str_value.Empty();
- }
-
- bool bool_value;
- ThreeValue three_value;
- int int_value;
- uint32 uint_value;
- CString str_value;
-};
-
-void FillTestData(TestData* data) {
- data->bool_value = true;
- data->three_value = FALSE_VALUE;
- data->int_value = -128;
- data->uint_value = 256;
- data->str_value = _T("Foo");
-}
-
-void CheckTestData(const TestData& d1, const TestData& d2) {
- EXPECT_EQ(d1.bool_value, d2.bool_value);
- EXPECT_EQ(d1.three_value, d2.three_value);
- EXPECT_EQ(d1.int_value, d2.int_value);
- EXPECT_EQ(d1.uint_value, d2.uint_value);
- EXPECT_STREQ(d1.str_value, d2.str_value);
-}
-
-TEST(CommandsTest, TraditionalCommandLineOptionsParsingTest) {
- TestData data;
- FillTestData(&data);
- CString cmd_line;
- cmd_line.Format(_T("%s%s %s ")
- _T("%s%s %d ")
- _T("%s%s %u ")
- _T("%s%s %s "),
- kDash, kThreeOption, (data.three_value == TRUE_VALUE) ? _T("on") : _T("off"), // NOLINT
- kDash, kIntOption, data.int_value,
- kDash, kUintOption, data.uint_value,
- kDash, kStrOption, data.str_value);
- if (data.bool_value) {
- cmd_line.AppendFormat(_T("%s%s"), kDash, kBoolOption);
- }
-
- TestData option_data;
- CommandOption cmd_options[] = {
- { kDash kBoolOption, COMMAND_OPTION_BOOL, &option_data.bool_value, -1 },
- { kDash kThreeOption, COMMAND_OPTION_THREE, &option_data.three_value, -1 },
- { kDash kIntOption, COMMAND_OPTION_INT, &option_data.int_value, -1 },
- { kDash kUintOption, COMMAND_OPTION_UINT, &option_data.uint_value, -1 },
- { kDash kStrOption, COMMAND_OPTION_STRING, &option_data.str_value, -1 }
- };
-
- option_data.Clear();
- CommandParsing cmd_parsing(cmd_options, arraysize(cmd_options));
- ASSERT_SUCCEEDED(cmd_parsing.Parse(cmd_line, false));
-
- CheckTestData(option_data, data);
-}
-
-TEST(CommandsTest, TraditionalIgnoreUnknownArgsParsingTest) {
- TestData data;
- FillTestData(&data);
- CString cmd_line;
- cmd_line.Format(_T("%s%s %s ")
- _T("%s%s %d ")
- _T("%s%s %u ")
- _T("%s%s %s "),
- kDash, kThreeOption, (data.three_value == TRUE_VALUE) ? _T("on") : _T("off"), // NOLINT
- kDash, kIntOption, data.int_value,
- kDash, kUintOption, data.uint_value,
- kDash, kStrOption, data.str_value);
- if (data.bool_value) {
- cmd_line.AppendFormat(_T("%s%s"), kDash, kBoolOption);
- }
-
- TestData option_data;
- CommandOption cmd_options[] = {
- { kDash kThreeOption, COMMAND_OPTION_THREE, &option_data.three_value, -1 },
- { kDash kIntOption, COMMAND_OPTION_INT, &option_data.int_value, -1 },
- { kDash kUintOption, COMMAND_OPTION_UINT, &option_data.uint_value, -1 },
- { kDash kStrOption, COMMAND_OPTION_STRING, &option_data.str_value, -1 }
- };
-
- option_data.Clear();
- CommandParsing cmd_parsing(cmd_options, arraysize(cmd_options));
- ASSERT_FAILED(cmd_parsing.Parse(cmd_line, false));
- ASSERT_SUCCEEDED(cmd_parsing.Parse(cmd_line, true));
-
- option_data.bool_value = data.bool_value;
- CheckTestData(option_data, data);
-}
-
-TEST(CommandsTest, NameValuePairCommandLineOptionsParsingTest) {
- TestData data;
- FillTestData(&data);
- CString cmd_line;
- cmd_line.Format(
- _T("%s=%s&")
- _T("%s=%d&")
- _T("%s=%u&")
- _T("%s=%s"),
- kThreeOption, (data.three_value == TRUE_VALUE) ? _T("on") : _T("off"),
- kIntOption, data.int_value,
- kUintOption, data.uint_value,
- kStrOption, data.str_value);
- if (data.bool_value) {
- cmd_line.AppendFormat(_T("&%s="), kBoolOption);
- }
-
- TestData option_data;
- CommandOption cmd_options[] = {
- { kBoolOption, COMMAND_OPTION_BOOL, &option_data.bool_value, -1 },
- { kThreeOption, COMMAND_OPTION_THREE, &option_data.three_value, -1 },
- { kIntOption, COMMAND_OPTION_INT, &option_data.int_value, -1 },
- { kUintOption, COMMAND_OPTION_UINT, &option_data.uint_value, -1 },
- { kStrOption, COMMAND_OPTION_STRING, &option_data.str_value, -1 }
- };
-
- option_data.Clear();
- CommandParsing cmd_parsing(cmd_options,
- arraysize(cmd_options),
- _T('&'),
- true);
- ASSERT_SUCCEEDED(cmd_parsing.Parse(cmd_line, false));
-
- CheckTestData(option_data, data);
-}
-
-TEST(CommandsTest, NameValuePairIgnoreUnknownArgsParsingTest) {
- TestData data;
- FillTestData(&data);
- CString cmd_line;
- cmd_line.Format(
- _T("%s=%s&")
- _T("%s=%d&")
- _T("%s=%u&")
- _T("%s=%s"),
- kThreeOption, (data.three_value == TRUE_VALUE) ? _T("on") : _T("off"),
- kIntOption, data.int_value,
- kUintOption, data.uint_value,
- kStrOption, data.str_value);
- if (data.bool_value) {
- cmd_line.AppendFormat(_T("&%s="), kBoolOption);
- }
-
- TestData option_data;
- CommandOption cmd_options[] = {
- { kBoolOption, COMMAND_OPTION_BOOL, &option_data.bool_value, -1 },
- { kThreeOption, COMMAND_OPTION_THREE, &option_data.three_value, -1 },
- { kUintOption, COMMAND_OPTION_UINT, &option_data.uint_value, -1 },
- { kStrOption, COMMAND_OPTION_STRING, &option_data.str_value, -1 }
- };
-
- option_data.Clear();
- CommandParsing cmd_parsing(cmd_options,
- arraysize(cmd_options),
- _T('&'),
- true);
- ASSERT_FAILED(cmd_parsing.Parse(cmd_line, false));
- ASSERT_SUCCEEDED(cmd_parsing.Parse(cmd_line, true));
-
- option_data.int_value = data.int_value;
- CheckTestData(option_data, data);
-}
-
-TEST(CommandsTest, CommandParsingSimpleSplitTest) {
- CString exe;
- CString args;
-
- // Test to make sure SplitExeAndArgs correctly splits
- // a properly constructed command line
- ASSERT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgs(kIEBrowserQuotedCommandLine,
- &exe,
- &args));
-
- EXPECT_STREQ(kIEBrowserQuotedExeResult, exe);
- EXPECT_STREQ(kIEBrowserQuotedArgsResult, args);
-}
-
-TEST(CommandsTest, CommandParsingGuessSplitTest) {
- CString exe;
- CString args;
-
- // Test to make sure SplitExeAndArgsGuess correctly splits
- // a properly constructed command line
- ASSERT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserQuotedCommandLine,
- &exe,
- &args));
-
- EXPECT_STREQ(kIEBrowserQuotedExeResult, exe);
- EXPECT_STREQ(kIEBrowserQuotedArgsResult, args);
-
- // Test to make sure SplitExeAndArgsGuess correctly splits
- // an improperly constructed "Uninstall" command line
- ASSERT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserUnquotedCommandLine,
- &exe,
- &args));
-
- EXPECT_STREQ(kIEBrowserUnquotedExe, exe);
- EXPECT_STREQ(kIEBrowserUnquotedArgs, args);
-
- // Test to make sure SplitExeAndArgsGuess correctly splits
- // a properly constructed "Uninstall" command line, where
- // the executable does not have a ".EXE" extension, and
- // where there happens to be an argument which happens to
- // be an executable
- ASSERT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kGEUninstallCommandLine,
- &exe,
- &args));
-
- EXPECT_STREQ(kGEUninstallExe, exe);
- EXPECT_STREQ(kGEUninstallArgs, args);
-}
-
-TEST(CommandsTest, CommandParsingGuessSplit_ExtraWhiteSpace) {
- CString exe;
- CString args;
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- kIEBrowserUnquotedCommandLine _T(" "),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserUnquotedExe, exe);
- EXPECT_STREQ(kIEBrowserUnquotedArgs, args);
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- kIEBrowserUnquotedCommandLine _T("\t"),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserUnquotedExe, exe);
- EXPECT_STREQ(kIEBrowserUnquotedArgs, args);
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- _T(" ") kIEBrowserUnquotedCommandLine,
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserUnquotedExe, exe);
- EXPECT_STREQ(kIEBrowserUnquotedArgs, args);
-
- // The following cases have unexpected results.
- // Quoting a command line with args is not handled correctly.
- // The entire thing is interpreted as an EXE.
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- _T("\" ") kIEBrowserUnquotedCommandLine _T("\""),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserUnquotedCommandLine, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- _T("\"") kIEBrowserUnquotedCommandLine _T(" \""),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserUnquotedCommandLine, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- _T("\"") kIEBrowserUnquotedCommandLine _T("\t\""),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserUnquotedCommandLine, exe);
- EXPECT_TRUE(args.IsEmpty());
-}
-
-TEST(CommandsTest, CommandParsingGuessSplit_CommandLineIsExistingFile) {
- CString exe;
- CString args;
-
- EXPECT_TRUE(File::Exists(kIEBrowserExe));
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserExe, &exe, &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- // File::Exists does not handle enclosed paths.
- EXPECT_FALSE(File::Exists(kIEBrowserQuotedExe));
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserQuotedExe,
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-}
-
-TEST(CommandsTest,
- CommandParsingGuessSplit_CommandLineIsExistingFileWithExtraWhiteSpace) {
- CString exe;
- CString args;
-
- EXPECT_TRUE(File::Exists(kIEBrowserExe));
- // File::Exists does not handle enclosed paths.
- EXPECT_FALSE(File::Exists(kIEBrowserQuotedExe));
-
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserExe _T(" "),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserQuotedExe _T(" "),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserExe _T("\t"),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(kIEBrowserQuotedExe _T("\t"),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- // SplitExeAndArgs does not treat tab like whitespace and args aren't trimmed.
- EXPECT_STREQ(_T("\t"), args);
-
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(_T(" ") kIEBrowserExe,
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(
- CommandParsingSimple::SplitExeAndArgsGuess(_T(" ") kIEBrowserQuotedExe,
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- _T("\" ") kIEBrowserExe _T("\""),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- _T("\"") kIEBrowserExe _T(" \""),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-
- EXPECT_SUCCEEDED(CommandParsingSimple::SplitExeAndArgsGuess(
- _T("\"") kIEBrowserExe _T("\t\""),
- &exe,
- &args));
- EXPECT_STREQ(kIEBrowserExe, exe);
- EXPECT_TRUE(args.IsEmpty());
-}
-
-} // namespace omaha
-
« no previous file with comments | « base/commands.cc ('k') | base/commontypes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698