blob: a831882aa3450b2c6c05bcfd3444543a017ed6bf [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/toolbar/test_toolbar_action_view_model.h"
#include <string>
#include "chrome/browser/extensions/permissions/site_permissions_helper.h"
#include "ui/base/models/image_model.h"
#include "ui/gfx/native_ui_types.h"
TestToolbarActionViewModel::TestToolbarActionViewModel(const std::string& id)
: id_(id) {
// Needs a non-empty accessible name to pass accessibility checks.
SetAccessibleName(u"Default name");
}
TestToolbarActionViewModel::~TestToolbarActionViewModel() = default;
std::string TestToolbarActionViewModel::GetId() const {
return id_;
}
void TestToolbarActionViewModel::SetUpdateObserver(
base::RepeatingClosure observer) {
observer_ = observer;
}
ui::ImageModel TestToolbarActionViewModel::GetIcon(
content::WebContents* web_contents,
const gfx::Size& size) {
return ui::ImageModel();
}
std::u16string TestToolbarActionViewModel::GetActionName() const {
return action_name_;
}
std::u16string TestToolbarActionViewModel::GetActionTitle(
content::WebContents* web_contents) const {
return action_title_;
}
std::u16string TestToolbarActionViewModel::GetAccessibleName(
content::WebContents* web_contents) const {
return accessible_name_;
}
std::u16string TestToolbarActionViewModel::GetTooltip(
content::WebContents* web_contents) const {
return tooltip_;
}
ToolbarActionViewModel::HoverCardState
TestToolbarActionViewModel::GetHoverCardState(
content::WebContents* web_contents) const {
ToolbarActionViewModel::HoverCardState state;
state.site_access = ToolbarActionViewModel::HoverCardState::SiteAccess::
kExtensionDoesNotWantAccess;
state.policy = ToolbarActionViewModel::HoverCardState::AdminPolicy::kNone;
return state;
}
bool TestToolbarActionViewModel::IsEnabled(
content::WebContents* web_contents) const {
return is_enabled_;
}
bool TestToolbarActionViewModel::IsShowingPopup() const {
return popup_showing_;
}
void TestToolbarActionViewModel::HidePopup() {
popup_showing_ = false;
}
gfx::NativeView TestToolbarActionViewModel::GetPopupNativeView() {
return gfx::NativeView();
}
ui::MenuModel* TestToolbarActionViewModel::GetContextMenu(
extensions::ExtensionContextMenuModel::ContextMenuSource
context_menu_source) {
return nullptr;
}
void TestToolbarActionViewModel::ExecuteUserAction(InvocationSource source) {
++execute_action_count_;
}
void TestToolbarActionViewModel::TriggerPopupForAPI(
ShowPopupCallback callback) {}
extensions::SitePermissionsHelper::SiteInteraction
TestToolbarActionViewModel::GetSiteInteraction(
content::WebContents* web_contents) const {
return extensions::SitePermissionsHelper::SiteInteraction::kNone;
}
void TestToolbarActionViewModel::ShowPopup(bool by_user) {
popup_showing_ = true;
}
void TestToolbarActionViewModel::SetActionName(const std::u16string& name) {
action_name_ = name;
NotifyObserver();
}
void TestToolbarActionViewModel::SetActionTitle(const std::u16string& title) {
action_title_ = title;
NotifyObserver();
}
void TestToolbarActionViewModel::SetAccessibleName(const std::u16string& name) {
accessible_name_ = name;
NotifyObserver();
}
void TestToolbarActionViewModel::SetTooltip(const std::u16string& tooltip) {
tooltip_ = tooltip;
NotifyObserver();
}
void TestToolbarActionViewModel::SetEnabled(bool is_enabled) {
is_enabled_ = is_enabled;
NotifyObserver();
}
void TestToolbarActionViewModel::NotifyObserver() {
if (observer_) {
observer_.Run();
}
}