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

Side by Side Diff: chrome/installer/util/installation_validator_unittest.cc

Issue 2034393004: Allow multiple logging::LogMessage{Handler,Listener}s Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clean up, MockLog uses listener Created 4 years, 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 Vehicle vehicle, 275 Vehicle vehicle,
276 FakeProductState* state); 276 FakeProductState* state);
277 static void MakeMachineState( 277 static void MakeMachineState(
278 InstallationValidator::InstallationType inst_type, 278 InstallationValidator::InstallationType inst_type,
279 Level install_level, 279 Level install_level,
280 Channel channel, 280 Channel channel,
281 Vehicle vehicle, 281 Vehicle vehicle,
282 FakeInstallationState* state); 282 FakeInstallationState* state);
283 void TearDown() override; 283 void TearDown() override;
284 284
285 static logging::LogMessageHandlerFunction old_log_message_handler_;
286 static ValidationErrorRecipient* validation_error_recipient_; 285 static ValidationErrorRecipient* validation_error_recipient_;
287 static InstallationTypeToModifiers* type_to_modifiers_; 286 static InstallationTypeToModifiers* type_to_modifiers_;
288 }; 287 };
289 288
290 // static 289 // static
291 logging::LogMessageHandlerFunction
292 InstallationValidatorTest::old_log_message_handler_ = NULL;
293
294 // static
295 InstallationValidatorTest::ValidationErrorRecipient* 290 InstallationValidatorTest::ValidationErrorRecipient*
296 InstallationValidatorTest::validation_error_recipient_ = NULL; 291 InstallationValidatorTest::validation_error_recipient_ = NULL;
297 292
298 // static 293 // static
299 InstallationValidatorTest::InstallationTypeToModifiers* 294 InstallationValidatorTest::InstallationTypeToModifiers*
300 InstallationValidatorTest::type_to_modifiers_ = NULL; 295 InstallationValidatorTest::type_to_modifiers_ = NULL;
301 296
302 // static 297 // static
303 int InstallationValidatorTest::GetChannelModifiers( 298 int InstallationValidatorTest::GetChannelModifiers(
304 InstallationValidator::InstallationType type) { 299 InstallationValidator::InstallationType type) {
305 DCHECK(type_to_modifiers_); 300 DCHECK(type_to_modifiers_);
306 DCHECK(type_to_modifiers_->find(type) != type_to_modifiers_->end()); 301 DCHECK(type_to_modifiers_->find(type) != type_to_modifiers_->end());
307 302
308 return (*type_to_modifiers_)[type]; 303 return (*type_to_modifiers_)[type];
309 } 304 }
310 305
311 // static 306 // static
312 void InstallationValidatorTest::SetUpTestCase() { 307 void InstallationValidatorTest::SetUpTestCase() {
313 DCHECK(type_to_modifiers_ == NULL); 308 DCHECK(type_to_modifiers_ == NULL);
314 old_log_message_handler_ = logging::GetLogMessageHandler(); 309 logging::PushLogMessageHandler(HandleLogMessage);
315 logging::SetLogMessageHandler(&HandleLogMessage);
316 310
317 type_to_modifiers_ = new InstallationTypeToModifiers(); 311 type_to_modifiers_ = new InstallationTypeToModifiers();
318 InstallationTypeToModifiers& ttm = *type_to_modifiers_; 312 InstallationTypeToModifiers& ttm = *type_to_modifiers_;
319 ttm[InstallationValidator::NO_PRODUCTS] = 0; 313 ttm[InstallationValidator::NO_PRODUCTS] = 0;
320 ttm[InstallationValidator::CHROME_SINGLE] = 0; 314 ttm[InstallationValidator::CHROME_SINGLE] = 0;
321 ttm[InstallationValidator::CHROME_MULTI] = CM_MULTI | CM_CHROME; 315 ttm[InstallationValidator::CHROME_MULTI] = CM_MULTI | CM_CHROME;
322 ttm[InstallationValidator::CHROME_FRAME_SINGLE] = 0; 316 ttm[InstallationValidator::CHROME_FRAME_SINGLE] = 0;
323 ttm[InstallationValidator::CHROME_FRAME_SINGLE_CHROME_SINGLE] = 0; 317 ttm[InstallationValidator::CHROME_FRAME_SINGLE_CHROME_SINGLE] = 0;
324 ttm[InstallationValidator::CHROME_FRAME_SINGLE_CHROME_MULTI] = 318 ttm[InstallationValidator::CHROME_FRAME_SINGLE_CHROME_MULTI] =
325 CM_MULTI | CM_CHROME; 319 CM_MULTI | CM_CHROME;
326 ttm[InstallationValidator::CHROME_FRAME_MULTI] = CM_MULTI | CM_CHROME_FRAME; 320 ttm[InstallationValidator::CHROME_FRAME_MULTI] = CM_MULTI | CM_CHROME_FRAME;
327 ttm[InstallationValidator::CHROME_FRAME_MULTI_CHROME_MULTI] = 321 ttm[InstallationValidator::CHROME_FRAME_MULTI_CHROME_MULTI] =
328 CM_MULTI | CM_CHROME_FRAME | CM_CHROME; 322 CM_MULTI | CM_CHROME_FRAME | CM_CHROME;
329 } 323 }
330 324
331 // static 325 // static
332 void InstallationValidatorTest::TearDownTestCase() { 326 void InstallationValidatorTest::TearDownTestCase() {
333 logging::SetLogMessageHandler(old_log_message_handler_); 327 logging::PopLogMessageHandler(HandleLogMessage);
334 old_log_message_handler_ = NULL;
335 328
336 delete type_to_modifiers_; 329 delete type_to_modifiers_;
337 type_to_modifiers_ = NULL; 330 type_to_modifiers_ = NULL;
338 } 331 }
339 332
340 // static 333 // static
341 bool InstallationValidatorTest::HandleLogMessage(int severity, 334 bool InstallationValidatorTest::HandleLogMessage(int severity,
342 const char* file, 335 const char* file,
343 int line, 336 int line,
344 size_t message_start, 337 size_t message_start,
345 const std::string& str) { 338 const std::string& str) {
346 // All validation failures result in LOG(ERROR) 339 // All validation failures result in LOG(ERROR)
347 if (severity == logging::LOG_ERROR && !str.empty()) { 340 if (severity == logging::LOG_ERROR && !str.empty()) {
348 // Remove the trailing newline, if present. 341 // Remove the trailing newline, if present.
349 size_t message_length = str.size() - message_start; 342 size_t message_length = str.size() - message_start;
350 if (*str.rbegin() == '\n') 343 if (*str.rbegin() == '\n')
351 --message_length; 344 --message_length;
352 if (validation_error_recipient_ != NULL) { 345 if (validation_error_recipient_ != NULL) {
353 validation_error_recipient_->ReceiveValidationError( 346 validation_error_recipient_->ReceiveValidationError(
354 file, line, str.substr(message_start, message_length).c_str()); 347 file, line, str.substr(message_start, message_length).c_str());
355 } else { 348 } else {
356 // Fail the test if an error wasn't handled. 349 // Fail the test if an error wasn't handled.
357 ADD_FAILURE_AT(file, line) 350 ADD_FAILURE_AT(file, line)
358 << base::StringPiece(str.c_str() + message_start, message_length); 351 << base::StringPiece(str.c_str() + message_start, message_length);
359 } 352 }
360 return true; 353 return true;
361 } 354 }
362 355
363 if (old_log_message_handler_ != NULL)
364 return (old_log_message_handler_)(severity, file, line, message_start, str);
365
366 return false; 356 return false;
367 } 357 }
368 358
369 // static 359 // static
370 void InstallationValidatorTest::set_validation_error_recipient( 360 void InstallationValidatorTest::set_validation_error_recipient(
371 ValidationErrorRecipient* recipient) { 361 ValidationErrorRecipient* recipient) {
372 validation_error_recipient_ = recipient; 362 validation_error_recipient_ = recipient;
373 } 363 }
374 364
375 // static 365 // static
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 AllValidInstallations, 472 AllValidInstallations,
483 InstallationValidatorTest, 473 InstallationValidatorTest,
484 Values(InstallationValidator::NO_PRODUCTS, 474 Values(InstallationValidator::NO_PRODUCTS,
485 InstallationValidator::CHROME_SINGLE, 475 InstallationValidator::CHROME_SINGLE,
486 InstallationValidator::CHROME_MULTI, 476 InstallationValidator::CHROME_MULTI,
487 InstallationValidator::CHROME_FRAME_SINGLE, 477 InstallationValidator::CHROME_FRAME_SINGLE,
488 InstallationValidator::CHROME_FRAME_SINGLE_CHROME_SINGLE, 478 InstallationValidator::CHROME_FRAME_SINGLE_CHROME_SINGLE,
489 InstallationValidator::CHROME_FRAME_SINGLE_CHROME_MULTI, 479 InstallationValidator::CHROME_FRAME_SINGLE_CHROME_MULTI,
490 InstallationValidator::CHROME_FRAME_MULTI, 480 InstallationValidator::CHROME_FRAME_MULTI,
491 InstallationValidator::CHROME_FRAME_MULTI_CHROME_MULTI)); 481 InstallationValidator::CHROME_FRAME_MULTI_CHROME_MULTI));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698