1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/profile_resetter/profile_resetter_test_base.h"
6
7#include <string>
8
9#include "chrome/browser/profile_resetter/brandcoded_default_settings.h"
10
11ProfileResetterMockObject::ProfileResetterMockObject() {}
12
13ProfileResetterMockObject::~ProfileResetterMockObject() {}
14
15void ProfileResetterMockObject::RunLoop() {
16  EXPECT_CALL(*this, Callback());
17  runner_ = new content::MessageLoopRunner;
18  runner_->Run();
19  runner_ = NULL;
20}
21
22void ProfileResetterMockObject::StopLoop() {
23  DCHECK(runner_.get());
24  Callback();
25  runner_->Quit();
26}
27
28ProfileResetterTestBase::ProfileResetterTestBase() {}
29
30ProfileResetterTestBase::~ProfileResetterTestBase() {}
31
32void ProfileResetterTestBase::ResetAndWait(
33    ProfileResetter::ResettableFlags resettable_flags) {
34  scoped_ptr<BrandcodedDefaultSettings> master_settings(
35      new BrandcodedDefaultSettings);
36  resetter_->Reset(resettable_flags,
37                   master_settings.Pass(),
38                   false,
39                   base::Bind(&ProfileResetterMockObject::StopLoop,
40                              base::Unretained(&mock_object_)));
41  mock_object_.RunLoop();
42}
43
44void ProfileResetterTestBase::ResetAndWait(
45    ProfileResetter::ResettableFlags resettable_flags,
46    const std::string& prefs) {
47  scoped_ptr<BrandcodedDefaultSettings> master_settings(
48      new BrandcodedDefaultSettings(prefs));
49  resetter_->Reset(resettable_flags,
50                   master_settings.Pass(),
51                   false,
52                   base::Bind(&ProfileResetterMockObject::StopLoop,
53                              base::Unretained(&mock_object_)));
54  mock_object_.RunLoop();
55}
56