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

Side by Side Diff: base/command_line_validator_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 unified diff | Download patch
« no previous file with comments | « base/command_line_validator.cc ('k') | base/commands.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2008-2009 Google Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 // ========================================================================
15
16 #include "omaha/base/command_line_validator.h"
17 #include "omaha/base/command_line_parser.h"
18 #include "omaha/testing/unit_test.h"
19
20 namespace omaha {
21
22 const TCHAR* kScenario1Name = _T("core");
23 const TCHAR* kScenario2Name = _T("SomeScenario");
24 const TCHAR* kScenario3Name = _T("OtherMechanism");
25
26 const TCHAR* kScenario1CmdLine = _T("program.exe /lang foo");
27 const TCHAR* kScenario2CmdLine = _T("program.exe /install x y /service");
28 const TCHAR* kScenario3CmdLine = _T("prog.exe /install x y /service /lang en");
29
30 const TCHAR* kLangSwitch = _T("lang");
31 const int kLangSwitchArgCount = 1;
32 const TCHAR* kInstallSwitch = _T("install");
33 const int kInstallSwitchArgCount = 2;
34 const TCHAR* kServiceSwitch = _T("service");
35 const int kServiceSwitchArgCount = 0;
36
37 class CommandLineValidatorTest : public testing::Test {
38 public:
39
40 protected:
41 CommandLineValidatorTest() {
42 }
43
44 virtual void SetUp() {
45 scenario_match_name_.Empty();
46
47 // This validator only has one scenario.
48 validator1_.Clear();
49 // "program.exe /lang foo"
50 validator1_.CreateScenario(kScenario1Name);
51 validator1_.AddScenarioParameter(kScenario1Name,
52 kLangSwitch,
53 kLangSwitchArgCount);
54
55 // This validator has three scenarios.
56 validator2_.Clear();
57 // "program.exe /lang foo"
58 validator2_.CreateScenario(kScenario1Name);
59 validator2_.AddScenarioParameter(kScenario1Name,
60 kLangSwitch,
61 kLangSwitchArgCount);
62
63 // "program.exe /install x y /service"
64 validator2_.CreateScenario(kScenario2Name);
65 validator2_.AddScenarioParameter(kScenario2Name,
66 kInstallSwitch,
67 kInstallSwitchArgCount);
68 validator2_.AddScenarioParameter(kScenario2Name,
69 kServiceSwitch,
70 kServiceSwitchArgCount);
71
72 // "program.exe /install x y /service /lang en"
73 validator2_.CreateScenario(kScenario3Name);
74 validator2_.AddScenarioParameter(kScenario3Name,
75 kInstallSwitch,
76 kInstallSwitchArgCount);
77 validator2_.AddScenarioParameter(kScenario3Name,
78 kServiceSwitch,
79 kServiceSwitchArgCount);
80 validator2_.AddScenarioParameter(kScenario3Name,
81 kLangSwitch,
82 kLangSwitchArgCount);
83 }
84
85 virtual void TearDown() {
86 }
87
88 CommandLineValidator validator1_;
89 CommandLineValidator validator2_;
90 CommandLineParser parser_;
91 CString scenario_match_name_;
92 };
93
94 TEST_F(CommandLineValidatorTest, BasicScenarioPass) {
95 EXPECT_SUCCEEDED(parser_.ParseFromString(kScenario1CmdLine));
96 EXPECT_SUCCEEDED(validator1_.Validate(parser_, &scenario_match_name_));
97 EXPECT_STREQ(kScenario1Name, scenario_match_name_);
98 }
99
100 TEST_F(CommandLineValidatorTest, BasicScenarioFail) {
101 EXPECT_SUCCEEDED(parser_.ParseFromString(_T("goopdate.exe /something bad")));
102 EXPECT_FAILED(validator1_.Validate(parser_, &scenario_match_name_));
103 }
104
105 TEST_F(CommandLineValidatorTest, Scenario1PassMulti) {
106 EXPECT_SUCCEEDED(parser_.ParseFromString(kScenario1CmdLine));
107 EXPECT_SUCCEEDED(validator2_.Validate(parser_, &scenario_match_name_));
108 EXPECT_STREQ(kScenario1Name, scenario_match_name_);
109 }
110
111 TEST_F(CommandLineValidatorTest, Scenario2PassMulti) {
112 EXPECT_SUCCEEDED(parser_.ParseFromString(kScenario2CmdLine));
113 EXPECT_SUCCEEDED(validator2_.Validate(parser_, &scenario_match_name_));
114 EXPECT_STREQ(kScenario2Name, scenario_match_name_);
115 }
116
117 TEST_F(CommandLineValidatorTest, Scenario3PassMulti) {
118 EXPECT_SUCCEEDED(parser_.ParseFromString(kScenario3CmdLine));
119 EXPECT_SUCCEEDED(validator2_.Validate(parser_, &scenario_match_name_));
120 EXPECT_STREQ(kScenario3Name, scenario_match_name_);
121 }
122
123 TEST_F(CommandLineValidatorTest, ScenarioFailMulti) {
124 EXPECT_SUCCEEDED(parser_.ParseFromString(_T("Goopdate.exe /fail me /here")));
125 EXPECT_FAILED(validator2_.Validate(parser_, &scenario_match_name_));
126 }
127
128 } // namespace omaha
129
OLDNEW
« no previous file with comments | « base/command_line_validator.cc ('k') | base/commands.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698