| // Copyright 2017 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/ui/webui/md_bookmarks/md_bookmarks_browsertest.h" |
| |
| #include "chrome/browser/prefs/incognito_mode_prefs.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/common/pref_names.h" |
| #include "components/bookmarks/common/bookmark_pref_names.h" |
| #include "components/prefs/pref_service.h" |
| |
| MdBookmarksBrowserTest::MdBookmarksBrowserTest() {} |
| |
| MdBookmarksBrowserTest::~MdBookmarksBrowserTest() {} |
| |
| void MdBookmarksBrowserTest::RegisterMessages() { |
| web_ui()->RegisterMessageCallback( |
| "testSetIncognito", |
| base::BindRepeating( |
| &MdBookmarksBrowserTest::HandleSetIncognitoAvailability, |
| base::Unretained(this))); |
| web_ui()->RegisterMessageCallback( |
| "testSetCanEdit", |
| base::BindRepeating(&MdBookmarksBrowserTest::HandleSetCanEditBookmarks, |
| base::Unretained(this))); |
| } |
| |
| void MdBookmarksBrowserTest::SetIncognitoAvailability(int availability) { |
| ASSERT_TRUE(availability >= 0 && |
| availability < IncognitoModePrefs::AVAILABILITY_NUM_TYPES); |
| browser()->profile()->GetPrefs()->SetInteger( |
| prefs::kIncognitoModeAvailability, availability); |
| } |
| |
| void MdBookmarksBrowserTest::SetCanEditBookmarks(bool canEdit) { |
| browser()->profile()->GetPrefs()->SetBoolean( |
| bookmarks::prefs::kEditBookmarksEnabled, canEdit); |
| } |
| |
| void MdBookmarksBrowserTest::HandleSetIncognitoAvailability( |
| const base::ListValue* args) { |
| AllowJavascript(); |
| |
| ASSERT_EQ(2U, args->GetSize()); |
| const base::Value* callback_id; |
| ASSERT_TRUE(args->Get(0, &callback_id)); |
| int pref_value; |
| ASSERT_TRUE(args->GetInteger(1, &pref_value)); |
| |
| SetIncognitoAvailability(pref_value); |
| |
| ResolveJavascriptCallback(*callback_id, base::Value()); |
| } |
| |
| void MdBookmarksBrowserTest::HandleSetCanEditBookmarks( |
| const base::ListValue* args) { |
| AllowJavascript(); |
| |
| ASSERT_EQ(2U, args->GetSize()); |
| const base::Value* callback_id; |
| ASSERT_TRUE(args->Get(0, &callback_id)); |
| bool pref_value; |
| ASSERT_TRUE(args->GetBoolean(1, &pref_value)); |
| |
| SetCanEditBookmarks(pref_value); |
| |
| ResolveJavascriptCallback(*callback_id, base::Value()); |
| } |
| |
| content::WebUIMessageHandler* MdBookmarksBrowserTest::GetMockMessageHandler() { |
| return this; |
| } |