| Index: chrome/browser/diagnostics/diagnostics_model_unittest.cc
|
| diff --git a/chrome/browser/diagnostics/diagnostics_model_unittest.cc b/chrome/browser/diagnostics/diagnostics_model_unittest.cc
|
| index d70a2991c2fb0a787306fceba3bee2625bb2e149..b1e7b4f25ec2d52002b66b40dcb647f57f0fd249 100644
|
| --- a/chrome/browser/diagnostics/diagnostics_model_unittest.cc
|
| +++ b/chrome/browser/diagnostics/diagnostics_model_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/command_line.h"
|
| #include "base/compiler_specific.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace diagnostics {
|
| @@ -14,75 +15,81 @@ namespace diagnostics {
|
| class DiagnosticsModelTest : public testing::Test {
|
| protected:
|
| DiagnosticsModelTest()
|
| - : model_(NULL),
|
| - cmdline_(CommandLine::NO_PROGRAM) {
|
| + : cmdline_(CommandLine::NO_PROGRAM) {
|
| }
|
|
|
| virtual ~DiagnosticsModelTest() { }
|
|
|
| virtual void SetUp() {
|
| - model_ = MakeDiagnosticsModel(cmdline_);
|
| - ASSERT_TRUE(model_ != NULL);
|
| + model_.reset(MakeDiagnosticsModel(cmdline_));
|
| + ASSERT_TRUE(model_.get() != NULL);
|
| }
|
|
|
| virtual void TearDown() {
|
| - delete model_;
|
| + model_.reset();
|
| }
|
|
|
| - DiagnosticsModel* model_;
|
| + scoped_ptr<DiagnosticsModel> model_;
|
| CommandLine cmdline_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DiagnosticsModelTest);
|
| };
|
|
|
| // The test observer is used to know if the callbacks are being called.
|
| class UTObserver: public DiagnosticsModel::Observer {
|
| public:
|
| UTObserver()
|
| - : done_(false),
|
| - finished_(0),
|
| - id_of_failed_stop_test(-1) {
|
| + : tests_done_(false),
|
| + recovery_done_(false),
|
| + num_tested_(0),
|
| + num_recovered_(0) {
|
| }
|
|
|
| - virtual void OnFinished(int index, DiagnosticsModel* model) OVERRIDE {
|
| + virtual void OnTestFinished(int index, DiagnosticsModel* model) OVERRIDE {
|
| EXPECT_TRUE(model != NULL);
|
| - ++finished_;
|
| - if (model->GetTest(index).GetResult() == DiagnosticsModel::TEST_FAIL_STOP) {
|
| - id_of_failed_stop_test = index;
|
| - ASSERT_TRUE(false);
|
| - }
|
| + ++num_tested_;
|
| + EXPECT_NE(DiagnosticsModel::TEST_FAIL_STOP,
|
| + model->GetTest(index).GetResult())
|
| + << "Failed stop test: " << index;
|
| }
|
|
|
| - virtual void OnDoneAll(DiagnosticsModel* model) OVERRIDE {
|
| - done_ = true;
|
| + virtual void OnAllTestsDone(DiagnosticsModel* model) OVERRIDE {
|
| EXPECT_TRUE(model != NULL);
|
| + tests_done_ = true;
|
| }
|
|
|
| - bool done() const { return done_; }
|
| + virtual void OnRecoveryFinished(int index, DiagnosticsModel* model) OVERRIDE {
|
| + EXPECT_TRUE(model != NULL);
|
| + ++num_recovered_;
|
| + EXPECT_NE(DiagnosticsModel::RECOVERY_FAIL_STOP,
|
| + model->GetTest(index).GetResult())
|
| + << "Failed stop recovery: " << index;
|
| + }
|
|
|
| - int finished() const { return finished_;}
|
| + virtual void OnAllRecoveryDone(DiagnosticsModel* model) OVERRIDE {
|
| + EXPECT_TRUE(model != NULL);
|
| + recovery_done_ = true;
|
| + }
|
| +
|
| + bool tests_done() const { return tests_done_; }
|
| + bool recovery_done() const { return recovery_done_; }
|
| +
|
| + int num_tested() const { return num_tested_;}
|
| + int num_recovered() const { return num_recovered_;}
|
|
|
| private:
|
| - bool done_;
|
| - int finished_;
|
| - int id_of_failed_stop_test;
|
| -};
|
| + bool tests_done_;
|
| + bool recovery_done_;
|
| + int num_tested_;
|
| + int num_recovered_;
|
|
|
| -// This is the count of tests on each platform.
|
| -#if defined(OS_WIN)
|
| -const int kDiagnosticsTestCount = 19;
|
| -#elif defined(OS_MACOSX)
|
| -const int kDiagnosticsTestCount = 16;
|
| -#elif defined(OS_POSIX)
|
| -#if defined(OS_CHROMEOS)
|
| -const int kDiagnosticsTestCount = 19;
|
| -#else
|
| -const int kDiagnosticsTestCount = 17;
|
| -#endif
|
| -#endif
|
| + DISALLOW_COPY_AND_ASSIGN(UTObserver);
|
| +};
|
|
|
| // Test that the initial state is correct.
|
| TEST_F(DiagnosticsModelTest, BeforeRun) {
|
| int available = model_->GetTestAvailableCount();
|
| - EXPECT_EQ(kDiagnosticsTestCount, available);
|
| + EXPECT_EQ(DiagnosticsModel::kDiagnosticsTestCount, available);
|
| EXPECT_EQ(0, model_->GetTestRunCount());
|
| EXPECT_EQ(DiagnosticsModel::TEST_NOT_RUN, model_->GetTest(0).GetResult());
|
| }
|
| @@ -91,11 +98,15 @@ TEST_F(DiagnosticsModelTest, BeforeRun) {
|
| // final state is correct.
|
| TEST_F(DiagnosticsModelTest, RunAll) {
|
| UTObserver observer;
|
| - EXPECT_FALSE(observer.done());
|
| + EXPECT_FALSE(observer.tests_done());
|
| model_->RunAll(&observer);
|
| - EXPECT_TRUE(observer.done());
|
| - EXPECT_EQ(kDiagnosticsTestCount, model_->GetTestRunCount());
|
| - EXPECT_EQ(kDiagnosticsTestCount, observer.finished());
|
| + EXPECT_TRUE(observer.tests_done());
|
| + EXPECT_FALSE(observer.recovery_done());
|
| + model_->RecoverAll(&observer);
|
| + EXPECT_TRUE(observer.recovery_done());
|
| + EXPECT_EQ(DiagnosticsModel::kDiagnosticsTestCount, model_->GetTestRunCount());
|
| + EXPECT_EQ(DiagnosticsModel::kDiagnosticsTestCount, observer.num_tested());
|
| + EXPECT_EQ(DiagnosticsModel::kDiagnosticsTestCount, observer.num_recovered());
|
| }
|
|
|
| } // namespace diagnostics
|
|
|