121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// Copyright (c) 2010 The Chromium Authors. All rights reserved.
221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// Use of this source code is governed by a BSD-style license that can be
321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// found in the LICENSE file.
421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/diagnostics/diagnostics_test.h"
621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "base/file_path.h"
821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "base/path_service.h"
921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/common/chrome_constants.h"
1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/common/chrome_paths.h"
1121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
1221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenDiagnosticTest::DiagnosticTest(const string16& title)
1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    : title_(title), result_(DiagnosticsModel::TEST_NOT_RUN) {
1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
1621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenDiagnosticTest::~DiagnosticTest() {
1721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
1821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
1921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenbool DiagnosticTest::Execute(DiagnosticsModel::Observer* observer,
2021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                             DiagnosticsModel* model,
2121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                             size_t index) {
2221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  result_ = DiagnosticsModel::TEST_RUNNING;
2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  observer->OnProgress(index, 0, model);
2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  bool keep_going = ExecuteImpl(observer);
2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  observer->OnFinished(index, model);
2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  return keep_going;
2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstring16 DiagnosticTest::GetTitle() {
3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  return title_;
3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenDiagnosticsModel::TestResult DiagnosticTest::GetResult() {
3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  return result_;
3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenstring16 DiagnosticTest::GetAdditionalInfo() {
3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  return additional_info_;
3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid DiagnosticTest::RecordOutcome(const string16& additional_info,
4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen                                   DiagnosticsModel::TestResult result) {
4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  additional_info_ = additional_info;
4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  result_ = result;
4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen
4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// static
4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenFilePath DiagnosticTest::GetUserDefaultProfileDir() {
4921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  FilePath path;
5021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  if (!PathService::Get(chrome::DIR_USER_DATA, &path))
5121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen    return FilePath();
52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  return path.AppendASCII(chrome::kNotSignedInProfile);
5321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}
54