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.
5 #ifndef CHROME_BROWSER_PROFILE_RESETTER_PROFILE_RESETTER_TEST_BASE_H_
6 #define CHROME_BROWSER_PROFILE_RESETTER_PROFILE_RESETTER_TEST_BASE_H_
8 #include "chrome/browser/profile_resetter/profile_resetter.h"
9 #include "content/public/test/test_utils.h"
10 #include "testing/gmock/include/gmock/gmock.h"
12 // The ProfileResetterMockObject is used to block the thread until
13 // ProfileResetter::Reset has completed:
15 // ProfileResetterMockObject mock_object;
16 // resetter_->Reset(ProfileResetter::ALL,
18 // base::Bind(&ProfileResetterMockObject::StopLoop,
19 // base::Unretained(&mock_object)));
20 // mock_object.RunLoop();
21 class ProfileResetterMockObject
{
23 ProfileResetterMockObject();
24 ~ProfileResetterMockObject();
30 MOCK_METHOD0(Callback
, void(void));
32 scoped_refptr
<content::MessageLoopRunner
> runner_
;
34 DISALLOW_COPY_AND_ASSIGN(ProfileResetterMockObject
);
37 // Base class for all ProfileResetter unit tests.
38 class ProfileResetterTestBase
{
40 ProfileResetterTestBase();
41 ~ProfileResetterTestBase();
43 void ResetAndWait(ProfileResetter::ResettableFlags resettable_flags
);
44 void ResetAndWait(ProfileResetter::ResettableFlags resettable_flags
,
45 const std::string
& prefs
);
47 testing::StrictMock
<ProfileResetterMockObject
> mock_object_
;
48 scoped_ptr
<ProfileResetter
> resetter_
;
51 DISALLOW_COPY_AND_ASSIGN(ProfileResetterTestBase
);
54 #endif // CHROME_BROWSER_PROFILE_RESETTER_PROFILE_RESETTER_TEST_BASE_H_