普通文本  |  54行  |  1.49 KB

// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/diagnostics/diagnostics_test.h"

#include "base/file_path.h"
#include "base/path_service.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_paths.h"

DiagnosticTest::DiagnosticTest(const string16& title)
    : title_(title), result_(DiagnosticsModel::TEST_NOT_RUN) {
}

DiagnosticTest::~DiagnosticTest() {
}

bool DiagnosticTest::Execute(DiagnosticsModel::Observer* observer,
                             DiagnosticsModel* model,
                             size_t index) {
  result_ = DiagnosticsModel::TEST_RUNNING;
  observer->OnProgress(index, 0, model);
  bool keep_going = ExecuteImpl(observer);
  observer->OnFinished(index, model);
  return keep_going;
}

string16 DiagnosticTest::GetTitle() {
  return title_;
}

DiagnosticsModel::TestResult DiagnosticTest::GetResult() {
  return result_;
}

string16 DiagnosticTest::GetAdditionalInfo() {
  return additional_info_;
}

void DiagnosticTest::RecordOutcome(const string16& additional_info,
                                   DiagnosticsModel::TestResult result) {
  additional_info_ = additional_info;
  result_ = result;
}

// static
FilePath DiagnosticTest::GetUserDefaultProfileDir() {
  FilePath path;
  if (!PathService::Get(chrome::DIR_USER_DATA, &path))
    return FilePath();
  return path.AppendASCII(chrome::kNotSignedInProfile);
}