Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Side by Side Diff: chrome/browser/ui/webui/settings/reset_settings_handler_unittest.cc

Issue 1490503002: MD Settings: Adding unit test for ResetSettingsHandler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 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 "base/message_loop/message_loop.h"
6 #include "base/values.h"
7 #include "chrome/browser/profile_resetter/profile_resetter.h"
8 #include "chrome/browser/ui/webui/settings/reset_settings_handler.h"
9 #include "chrome/test/base/testing_profile.h"
10 #include "content/public/browser/web_ui_data_source.h"
11 #include "content/public/test/test_browser_thread.h"
12 #include "content/public/test/test_web_ui.h"
13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 using settings::ResetSettingsHandler;
17
18 namespace {
19
20 /* Mock version of ProfileResetter to be used in tests. */
Dan Beam 2015/12/01 04:27:37 // Single line comment.
dpapad 2015/12/01 19:06:04 Done.
21 class MockProfileResetter : public ProfileResetter {
22 public:
23 explicit MockProfileResetter(TestingProfile* profile)
24 : ProfileResetter(profile) {
25 }
26
27 bool IsActive() const override {
Dan Beam 2015/12/01 17:29:04 battre@: here ^
28 return false;
29 }
30
31 void Reset(ResettableFlags resettable_flags,
32 scoped_ptr<BrandcodedDefaultSettings> master_settings,
33 const base::Closure& callback) override {
Dan Beam 2015/12/01 17:29:04 battre@: and here ^
34 resets_++;
35 callback.Run();
36 }
37
38 int resets() const {
39 return resets_;
40 }
41
42 private:
43 int resets_ = 0;
Dan Beam 2015/12/01 04:27:37 nit: size_t
dpapad 2015/12/01 19:06:04 Done.
44 };
45
46
47 class TestingResetSettingsHandler : public ResetSettingsHandler {
48 public:
49 TestingResetSettingsHandler(
50 TestingProfile* profile, bool allow_powerwash, content::WebUI* web_ui)
51 : ResetSettingsHandler(profile, allow_powerwash),
52 profile_(make_scoped_ptr(profile)),
53 resetter_(profile) {
54 set_web_ui(web_ui);
55 }
56
57 ~TestingResetSettingsHandler() override {
58 set_web_ui(nullptr);
59 }
60
61 MockProfileResetter* GetResetter() override {
62 return &resetter_;
63 }
64
65 using settings::ResetSettingsHandler::HandleResetProfileSettings;
66
67 private:
68 scoped_ptr<TestingProfile> profile_;
Dan Beam 2015/12/01 04:27:37 why should the handler own the profile? this shou
69 MockProfileResetter resetter_;
70
71 DISALLOW_COPY_AND_ASSIGN(TestingResetSettingsHandler);
72 };
73
74 // The fixture for testing class Foo.
75 class ResetSettingsHandlerTest : public testing::Test {
76 public:
77 ResetSettingsHandlerTest()
78 : web_ui_(new content::TestWebUI()),
79 ui_thread_(content::BrowserThread::UI, &message_loop_) {
80 handler_.reset(new TestingResetSettingsHandler(
81 new TestingProfile(), false, web_ui_.get()));
82 }
83
84 protected:
85 // The order here matters, because the |message_loop_| needs to exist during
86 // destruction of |handler_|.
87 base::MessageLoopForUI message_loop_;
88 scoped_ptr<TestingResetSettingsHandler> handler_;
Dan Beam 2015/12/01 04:27:37 nit: instead of protected member, private member +
Dan Beam 2015/12/01 04:27:37 why does this need to be a scoped_ptr? just initi
dpapad 2015/12/01 19:06:04 Done. Also removed usage of deprecated TestBrowser
89 scoped_ptr<content::TestWebUI> web_ui_;
Dan Beam 2015/12/01 04:27:37 why does this need to be a scoped_ptr?
dpapad 2015/12/01 19:06:04 Removed.
90
91 private:
92 content::TestBrowserThread ui_thread_;
93 };
94
95
96 TEST_F(ResetSettingsHandlerTest, HandleResetProfileSettings) {
97 base::ListValue list;
98 list.AppendBoolean(false);
99 handler_->HandleResetProfileSettings(&list);
100 // Check that the delegate ProfileResetter was called.
101 EXPECT_EQ(1, handler_->GetResetter()->resets());
102 // Check that Javascript side is notified after resetting is done.
103 EXPECT_EQ("SettingsResetPage.doneResetting",
104 web_ui_->call_data()[0]->function_name());
Dan Beam 2015/12/01 04:27:37 doesn't this effectively check that resets_ >= 1?
dpapad 2015/12/01 19:06:04 It does. The assertion at line 101 checks that res
Dan Beam 2015/12/02 04:40:07 ok
105 }
106
107
108 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698