blob: 2a1a13f088a868c2e691874db38ccfa694e06b5e [file] [log] [blame]
// 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;
}