| OLD | NEW |
| 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 "chrome/browser/diagnostics/recon_diagnostics.h" | 5 #include "chrome/browser/diagnostics/recon_diagnostics.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 return true; | 318 return true; |
| 319 } | 319 } |
| 320 | 320 |
| 321 private: | 321 private: |
| 322 DISALLOW_COPY_AND_ASSIGN(DiskSpaceTest); | 322 DISALLOW_COPY_AND_ASSIGN(DiskSpaceTest); |
| 323 }; | 323 }; |
| 324 | 324 |
| 325 // Checks that a given json file can be correctly parsed. | 325 // Checks that a given json file can be correctly parsed. |
| 326 class JSONTest : public DiagnosticsTest { | 326 class JSONTest : public DiagnosticsTest { |
| 327 public: | 327 public: |
| 328 enum FileImportance { |
| 329 NON_CRITICAL, |
| 330 CRITICAL |
| 331 }; |
| 332 |
| 328 JSONTest(const base::FilePath& path, | 333 JSONTest(const base::FilePath& path, |
| 329 const std::string& id, | 334 const std::string& id, |
| 330 const std::string& name, | 335 const std::string& name, |
| 331 int64 max_file_size) | 336 int64 max_file_size, |
| 332 : DiagnosticsTest(id, name), path_(path), max_file_size_(max_file_size) {} | 337 FileImportance importance) |
| 338 : DiagnosticsTest(id, name), |
| 339 path_(path), |
| 340 max_file_size_(max_file_size), |
| 341 importance_(importance) {} |
| 333 | 342 |
| 334 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE { | 343 virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) OVERRIDE { |
| 335 if (!base::PathExists(path_)) { | 344 if (!base::PathExists(path_)) { |
| 336 RecordFailure(DIAG_RECON_FILE_NOT_FOUND, "File not found"); | 345 if (importance_ == CRITICAL) { |
| 346 RecordOutcome(DIAG_RECON_FILE_NOT_FOUND, |
| 347 "File not found", |
| 348 DiagnosticsModel::TEST_FAIL_CONTINUE); |
| 349 } else { |
| 350 RecordOutcome(DIAG_RECON_FILE_NOT_FOUND_OK, |
| 351 "File not found (but that is OK)", |
| 352 DiagnosticsModel::TEST_OK); |
| 353 } |
| 337 return true; | 354 return true; |
| 338 } | 355 } |
| 339 int64 file_size; | 356 int64 file_size; |
| 340 if (!file_util::GetFileSize(path_, &file_size)) { | 357 if (!file_util::GetFileSize(path_, &file_size)) { |
| 341 RecordFailure(DIAG_RECON_CANNOT_OBTAIN_FILE_SIZE, | 358 RecordFailure(DIAG_RECON_CANNOT_OBTAIN_FILE_SIZE, |
| 342 "Cannot obtain file size"); | 359 "Cannot obtain file size"); |
| 343 return true; | 360 return true; |
| 344 } | 361 } |
| 345 | 362 |
| 346 if (file_size > max_file_size_) { | 363 if (file_size > max_file_size_) { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 367 return true; | 384 return true; |
| 368 } | 385 } |
| 369 | 386 |
| 370 RecordSuccess("File parsed OK"); | 387 RecordSuccess("File parsed OK"); |
| 371 return true; | 388 return true; |
| 372 } | 389 } |
| 373 | 390 |
| 374 private: | 391 private: |
| 375 base::FilePath path_; | 392 base::FilePath path_; |
| 376 int64 max_file_size_; | 393 int64 max_file_size_; |
| 394 FileImportance importance_; |
| 377 DISALLOW_COPY_AND_ASSIGN(JSONTest); | 395 DISALLOW_COPY_AND_ASSIGN(JSONTest); |
| 378 }; | 396 }; |
| 379 | 397 |
| 380 } // namespace | 398 } // namespace |
| 381 | 399 |
| 382 DiagnosticsTest* MakeUserDirTest() { return new PathTest(kPathsToTest[0]); } | 400 DiagnosticsTest* MakeUserDirTest() { return new PathTest(kPathsToTest[0]); } |
| 383 | 401 |
| 384 DiagnosticsTest* MakeLocalStateFileTest() { | 402 DiagnosticsTest* MakeLocalStateFileTest() { |
| 385 return new PathTest(kPathsToTest[1]); | 403 return new PathTest(kPathsToTest[1]); |
| 386 } | 404 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 399 | 417 |
| 400 DiagnosticsTest* MakeOperatingSystemTest() { return new OperatingSystemTest(); } | 418 DiagnosticsTest* MakeOperatingSystemTest() { return new OperatingSystemTest(); } |
| 401 | 419 |
| 402 DiagnosticsTest* MakeConflictingDllsTest() { return new ConflictingDllsTest(); } | 420 DiagnosticsTest* MakeConflictingDllsTest() { return new ConflictingDllsTest(); } |
| 403 | 421 |
| 404 DiagnosticsTest* MakeInstallTypeTest() { return new InstallTypeTest(); } | 422 DiagnosticsTest* MakeInstallTypeTest() { return new InstallTypeTest(); } |
| 405 | 423 |
| 406 DiagnosticsTest* MakePreferencesTest() { | 424 DiagnosticsTest* MakePreferencesTest() { |
| 407 base::FilePath path = DiagnosticsTest::GetUserDefaultProfileDir(); | 425 base::FilePath path = DiagnosticsTest::GetUserDefaultProfileDir(); |
| 408 path = path.Append(chrome::kPreferencesFilename); | 426 path = path.Append(chrome::kPreferencesFilename); |
| 409 return new JSONTest( | 427 return new JSONTest(path, |
| 410 path, kJSONProfileTest, "Profile JSON", 100 * kOneKilobyte); | 428 kJSONProfileTest, |
| 429 "Profile JSON", |
| 430 100 * kOneKilobyte, |
| 431 JSONTest::CRITICAL); |
| 411 } | 432 } |
| 412 | 433 |
| 413 DiagnosticsTest* MakeBookMarksTest() { | 434 DiagnosticsTest* MakeBookMarksTest() { |
| 414 base::FilePath path = DiagnosticsTest::GetUserDefaultProfileDir(); | 435 base::FilePath path = DiagnosticsTest::GetUserDefaultProfileDir(); |
| 415 path = path.Append(chrome::kBookmarksFileName); | 436 path = path.Append(chrome::kBookmarksFileName); |
| 416 return new JSONTest( | 437 return new JSONTest(path, |
| 417 path, kJSONBookmarksTest, "Bookmarks JSON", 2 * kOneMegabyte); | 438 kJSONBookmarksTest, |
| 439 "Bookmarks JSON", |
| 440 2 * kOneMegabyte, |
| 441 JSONTest::NON_CRITICAL); |
| 418 } | 442 } |
| 419 | 443 |
| 420 DiagnosticsTest* MakeLocalStateTest() { | 444 DiagnosticsTest* MakeLocalStateTest() { |
| 421 base::FilePath path; | 445 base::FilePath path; |
| 422 PathService::Get(chrome::DIR_USER_DATA, &path); | 446 PathService::Get(chrome::DIR_USER_DATA, &path); |
| 423 path = path.Append(chrome::kLocalStateFilename); | 447 path = path.Append(chrome::kLocalStateFilename); |
| 424 return new JSONTest( | 448 return new JSONTest(path, |
| 425 path, kJSONLocalStateTest, "Local State JSON", 50 * kOneKilobyte); | 449 kJSONLocalStateTest, |
| 450 "Local State JSON", |
| 451 50 * kOneKilobyte, |
| 452 JSONTest::CRITICAL); |
| 426 } | 453 } |
| 427 | 454 |
| 428 } // namespace diagnostics | 455 } // namespace diagnostics |
| OLD | NEW |