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

Side by Side Diff: client/bundle_installer_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 | « client/bundle_installer.cc ('k') | client/client_metrics.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 2010 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/error.h"
17 #include "omaha/client/bundle_installer.h"
18 #include "omaha/client/resource.h"
19 #include "omaha/testing/unit_test.h"
20
21 namespace omaha {
22
23 using internal::BuildAppNameList;
24
25 class BuildAppNameListTest : public testing::Test {
26 public:
27 protected:
28 std::vector<CString> app_names_;
29 };
30
31 TEST_F(BuildAppNameListTest, OneApp) {
32 app_names_.push_back(_T("Test App1"));
33 EXPECT_STREQ(_T("Test App1"), BuildAppNameList(app_names_));
34 }
35
36 TEST_F(BuildAppNameListTest, TwoApps) {
37 app_names_.push_back(_T("Test App1"));
38 app_names_.push_back(_T("Next App2"));
39 EXPECT_STREQ(_T("Test App1, Next App2"), BuildAppNameList(app_names_));
40 }
41
42 TEST_F(BuildAppNameListTest, ManyApps) {
43 app_names_.push_back(_T("Test App1"));
44 app_names_.push_back(_T("Next App2"));
45 app_names_.push_back(_T("My App3"));
46 app_names_.push_back(_T("Your App4"));
47 app_names_.push_back(_T("Other App5"));
48 EXPECT_STREQ(_T("Test App1, Next App2, My App3, Your App4, Other App5"),
49 BuildAppNameList(app_names_));
50 }
51
52 // TODO(omaha): Load "ar" resources and enable after we get translations.
53 TEST_F(BuildAppNameListTest, DISABLED_ManyApps_Bidi) {
54 app_names_.push_back(_T("Test App1"));
55 app_names_.push_back(_T("Next App2"));
56 app_names_.push_back(_T("My App3"));
57 app_names_.push_back(_T("Your App4"));
58 app_names_.push_back(_T("Other App5"));
59 EXPECT_STREQ(_T("Other App5, Your App4, My App3, Next App2, Test App1"),
60 BuildAppNameList(app_names_));
61 }
62
63 class GetBundleCompletionMessageTest : public testing::Test {
64 public:
65 protected:
66 void AddSucceededAppInfo(int id) {
67 AppCompletionInfo app_info;
68 app_info.display_name.Format(_T("AppSucceeded%d"), id);
69 app_info.app_id.Format(_T("app_id_s_%d"), id);
70 app_info.error_code = 0;
71 app_info.extra_code1 = 0;
72 app_info.completion_message = kSuccessAppCompletionMessage;
73 app_info.installer_result_code = 0;
74 app_info.is_canceled = false;
75 apps_info_.push_back(app_info);
76 }
77
78 void AddFailedAppInfo(int id, bool make_error_info_unique) {
79 AppCompletionInfo app_info;
80 app_info.display_name.Format(_T("AppFailed%d"), id);
81 app_info.app_id.Format(_T("app_id_f_%d"), id);
82 app_info.error_code = 0x80070001;
83 app_info.extra_code1 = 123;
84 app_info.completion_message = kFailedAppCompletionMessage;
85 app_info.installer_result_code = 111;
86 app_info.is_canceled = false;
87 if (make_error_info_unique) {
88 app_info.error_code += id;
89 app_info.completion_message.AppendFormat(_T(" AppName:%s."),
90 app_info.display_name);
91 app_info.extra_code1 += id;
92 app_info.installer_result_code += id;
93 }
94
95 apps_info_.push_back(app_info);
96 }
97
98 void AddCanceledAppInfo(int id) {
99 AppCompletionInfo app_info;
100 app_info.display_name.Format(_T("AppCanceled%d"), id);
101 app_info.app_id.Format(_T("app_id_f_%d"), id);
102 app_info.error_code = GOOPDATE_E_CANCELLED;
103 app_info.extra_code1 = 0;
104 app_info.completion_message = kCanceledAppCompletionMessage;
105 app_info.installer_result_code = 0;
106 app_info.is_canceled = true;
107
108 apps_info_.push_back(app_info);
109 }
110
111 static const TCHAR* kBundleDisplayName;
112 static const TCHAR* kSuccessAppCompletionMessage;
113 static const TCHAR* kFailedAppCompletionMessage;
114 static const TCHAR* kCanceledAppCompletionMessage;
115 std::vector<AppCompletionInfo> apps_info_;
116 };
117
118 const TCHAR* GetBundleCompletionMessageTest::kBundleDisplayName =
119 _T("TestBundle");
120 const TCHAR* GetBundleCompletionMessageTest::kSuccessAppCompletionMessage =
121 _T("App is installed successfully and is ready to use.");
122 const TCHAR* GetBundleCompletionMessageTest::kFailedAppCompletionMessage =
123 _T("Failed to install the app.");
124 const TCHAR* GetBundleCompletionMessageTest::kCanceledAppCompletionMessage =
125 _T("Installation is canceled by user.");
126
127 TEST_F(GetBundleCompletionMessageTest, SingleAppSucceeded) {
128 AddSucceededAppInfo(1);
129
130 CString bundle_message = internal::GetBundleCompletionMessage(
131 kBundleDisplayName,
132 apps_info_,
133 false, // is_only_no_update
134 false); // is_canceled
135 // Bundle install succeeded, the completion message should be based on
136 // IDS_BUNDLE_INSTALLED_SUCCESSFULLY.
137 CString expected_message;
138 expected_message.Format(_T("Thanks for installing %s."), kBundleDisplayName);
139
140 EXPECT_STREQ(expected_message, bundle_message);
141 }
142
143 TEST_F(GetBundleCompletionMessageTest, MultipleAppsSucceeded) {
144 AddSucceededAppInfo(1);
145 AddSucceededAppInfo(2);
146 AddSucceededAppInfo(3);
147
148 CString bundle_message = internal::GetBundleCompletionMessage(
149 kBundleDisplayName,
150 apps_info_,
151 false, // is_only_no_update
152 false); // is_canceled
153 // Bundle install succeeded, the completion message should be based on
154 // IDS_BUNDLE_INSTALLED_SUCCESSFULLY.
155 CString expected_message;
156 expected_message.Format(_T("Thanks for installing %s."), kBundleDisplayName);
157
158 EXPECT_STREQ(expected_message, bundle_message);
159 }
160
161 TEST_F(GetBundleCompletionMessageTest, OneFailedAppWithSuccessApps) {
162 AddSucceededAppInfo(1);
163 AddFailedAppInfo(2, false);
164 AddSucceededAppInfo(3);
165
166 CString bundle_message = internal::GetBundleCompletionMessage(
167 kBundleDisplayName,
168 apps_info_,
169 false, // is_only_no_update
170 false); // is_canceled
171
172 CString expected_message =
173 _T("An application failed to install.\n\n")
174 _T("<b>Succeeded:</b> AppSucceeded1, AppSucceeded3\n")
175 _T("<b>Failed:</b> AppFailed2");
176 EXPECT_STREQ(expected_message, bundle_message);
177 }
178
179 TEST_F(GetBundleCompletionMessageTest, MulitpleFailedAppsWithSuccessApps) {
180 AddSucceededAppInfo(1);
181 AddFailedAppInfo(2, false);
182 AddSucceededAppInfo(3);
183 AddFailedAppInfo(4, false);
184 AddFailedAppInfo(5, false);
185
186 CString bundle_message = internal::GetBundleCompletionMessage(
187 kBundleDisplayName,
188 apps_info_,
189 false, // is_only_no_update
190 false); // is_canceled
191
192 CString expected_message =
193 _T("Some applications failed to install.\n\n")
194 _T("<b>Succeeded:</b> AppSucceeded1, AppSucceeded3\n")
195 _T("<b>Failed:</b> AppFailed2, AppFailed4, AppFailed5");
196 EXPECT_STREQ(expected_message, bundle_message);
197 }
198
199 TEST_F(GetBundleCompletionMessageTest, OneFailedAppOnly) {
200 AddFailedAppInfo(1, false);
201
202 CString bundle_message = internal::GetBundleCompletionMessage(
203 kBundleDisplayName,
204 apps_info_,
205 false, // is_only_no_update
206 false); // is_canceled
207
208 EXPECT_STREQ(kFailedAppCompletionMessage, bundle_message);
209 }
210
211 TEST_F(GetBundleCompletionMessageTest, AllAppsFailWithSameError) {
212 AddFailedAppInfo(1, false);
213 AddFailedAppInfo(2, false);
214 AddFailedAppInfo(3, false);
215
216 CString bundle_message = internal::GetBundleCompletionMessage(
217 kBundleDisplayName,
218 apps_info_,
219 false, // is_only_no_update
220 false); // is_canceled
221
222 EXPECT_STREQ(kFailedAppCompletionMessage, bundle_message);
223 }
224
225
226 TEST_F(GetBundleCompletionMessageTest, AllAppsFailWithUniqueError) {
227 AddFailedAppInfo(1, true);
228 AddFailedAppInfo(2, true);
229 AddFailedAppInfo(3, true);
230
231 CString bundle_message = internal::GetBundleCompletionMessage(
232 kBundleDisplayName,
233 apps_info_,
234 false, // is_only_no_update
235 false); // is_canceled
236
237 CString expected_message = kFailedAppCompletionMessage;
238 expected_message.AppendFormat(_T(" AppName:%s."), apps_info_[0].display_name);
239 EXPECT_STREQ(expected_message, bundle_message);
240 }
241
242 TEST_F(GetBundleCompletionMessageTest, BundleCanceled) {
243 AddCanceledAppInfo(1);
244 AddCanceledAppInfo(4);
245 AddCanceledAppInfo(7);
246
247 CString bundle_message = internal::GetBundleCompletionMessage(
248 kBundleDisplayName,
249 apps_info_,
250 false, // is_only_no_update
251 true); // is_canceled
252
253 CString expected_message;
254 EXPECT_TRUE(expected_message.LoadString(IDS_CANCELED));
255 EXPECT_STREQ(expected_message, bundle_message);
256 }
257
258 TEST_F(GetBundleCompletionMessageTest, AppSucceededAfterCancel) {
259 AddSucceededAppInfo(1);
260
261 CString bundle_message = internal::GetBundleCompletionMessage(
262 kBundleDisplayName,
263 apps_info_,
264 false, // is_only_no_update
265 true); // is_canceled
266
267 EXPECT_STREQ(_T("Installation completed before it could be canceled."),
268 bundle_message);
269 }
270
271 TEST_F(GetBundleCompletionMessageTest, AppCanceledWithSuccesses) {
272 AddSucceededAppInfo(1);
273 AddSucceededAppInfo(2);
274 AddSucceededAppInfo(3);
275 AddCanceledAppInfo(4);
276 AddCanceledAppInfo(5);
277
278 CString bundle_message = internal::GetBundleCompletionMessage(
279 kBundleDisplayName,
280 apps_info_,
281 false, // is_only_no_update
282 true); // is_canceled
283
284 CString expected_message =
285 _T("Installation completed before it could be canceled.\n\n")
286 _T("<b>Succeeded:</b> AppSucceeded1, AppSucceeded2, AppSucceeded3\n")
287 _T("<b>Canceled:</b> AppCanceled4, AppCanceled5");
288 EXPECT_STREQ(expected_message, bundle_message);
289 }
290
291 TEST_F(GetBundleCompletionMessageTest, AppsCanceledWithSuccessesAndOneFailure) {
292 AddSucceededAppInfo(1);
293 AddSucceededAppInfo(2);
294 AddFailedAppInfo(3, false);
295 AddCanceledAppInfo(4);
296 AddCanceledAppInfo(5);
297 AddCanceledAppInfo(6);
298
299 CString bundle_message = internal::GetBundleCompletionMessage(
300 kBundleDisplayName,
301 apps_info_,
302 false, // is_only_no_update
303 true); // is_canceled
304 CString expected_message =
305 _T("An application failed to install.\n\n")
306 _T("<b>Succeeded:</b> AppSucceeded1, AppSucceeded2\n")
307 _T("<b>Failed:</b> AppFailed3\n")
308 _T("<b>Canceled:</b> AppCanceled4, AppCanceled5, AppCanceled6");
309 EXPECT_STREQ(expected_message, bundle_message);
310 }
311
312 TEST_F(GetBundleCompletionMessageTest,
313 AppsCanceledWithSuccessesAndMultipleFailures) {
314 AddSucceededAppInfo(1);
315 AddSucceededAppInfo(2);
316 AddFailedAppInfo(3, false);
317 AddFailedAppInfo(4, false);
318 AddCanceledAppInfo(5);
319 AddCanceledAppInfo(6);
320
321 CString bundle_message = internal::GetBundleCompletionMessage(
322 kBundleDisplayName,
323 apps_info_,
324 false, // is_only_no_update
325 true); // is_canceled
326
327 CString expected_message =
328 _T("Some applications failed to install.\n\n")
329 _T("<b>Succeeded:</b> AppSucceeded1, AppSucceeded2\n")
330 _T("<b>Failed:</b> AppFailed3, AppFailed4\n")
331 _T("<b>Canceled:</b> AppCanceled5, AppCanceled6");
332 EXPECT_STREQ(expected_message, bundle_message);
333 }
334
335 TEST_F(GetBundleCompletionMessageTest, AppsCanceledWithOneFailure) {
336 AddFailedAppInfo(1, false);
337 AddCanceledAppInfo(2);
338 AddCanceledAppInfo(3);
339
340 CString bundle_message = internal::GetBundleCompletionMessage(
341 kBundleDisplayName,
342 apps_info_,
343 false, // is_only_no_update
344 true); // is_canceled
345
346 CString expected_message =
347 _T("An application failed to install.\n\n")
348 _T("<b>Failed:</b> AppFailed1\n")
349 _T("<b>Canceled:</b> AppCanceled2, AppCanceled3");
350 EXPECT_STREQ(expected_message, bundle_message);
351 }
352
353 TEST_F(GetBundleCompletionMessageTest, AppFailedAfterCancel) {
354 AddFailedAppInfo(1, false);
355
356 CString bundle_message = internal::GetBundleCompletionMessage(
357 kBundleDisplayName,
358 apps_info_,
359 false, // is_only_no_update
360 true); // is_canceled
361
362 EXPECT_STREQ(kFailedAppCompletionMessage, bundle_message);
363 }
364
365 TEST_F(GetBundleCompletionMessageTest, AppsCanceledWithMultipleFailures) {
366 AddFailedAppInfo(1, false);
367 AddFailedAppInfo(2, false);
368 AddFailedAppInfo(3, false);
369 AddCanceledAppInfo(4);
370 AddCanceledAppInfo(5);
371 AddCanceledAppInfo(6);
372
373 CString bundle_message = internal::GetBundleCompletionMessage(
374 kBundleDisplayName,
375 apps_info_,
376 false, // is_only_no_update
377 true); // is_canceled
378
379 CString expected_message =
380 _T("Some applications failed to install.\n\n")
381 _T("<b>Failed:</b> AppFailed1, AppFailed2, AppFailed3\n")
382 _T("<b>Canceled:</b> AppCanceled4, AppCanceled5, AppCanceled6");
383 EXPECT_STREQ(expected_message, bundle_message);
384 }
385
386 } // namespace omaha
OLDNEW
« no previous file with comments | « client/bundle_installer.cc ('k') | client/client_metrics.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698