// Copyright 2021 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/ash/input_method/fake_suggestion_handler.h"
#include "base/strings/string_util.h"
namespace ash {
namespace input_method {
FakeSuggestionHandler::FakeSuggestionHandler() = default;
FakeSuggestionHandler::~FakeSuggestionHandler() = default;
bool FakeSuggestionHandler::DismissSuggestion(int context_id,
std::string* error) {
showing_suggestion_ = false;
dismissed_suggestion_ = true;
suggestion_text_ = u"";
confirmed_length_ = 0;
return true;
}
bool FakeSuggestionHandler::SetSuggestion(
int context_id,
const ui::ime::SuggestionDetails& details,
std::string* error) {
showing_suggestion_ = true;
context_id_ = context_id;
suggestion_text_ = details.text;
confirmed_length_ = details.confirmed_length;
last_suggestion_details_ = details;
return true;
}
bool FakeSuggestionHandler::AcceptSuggestion(int context_id,
std::string* error) {
showing_suggestion_ = false;
accepted_suggestion_ = true;
accepted_suggestion_text_ = suggestion_text_;
suggestion_text_ = u"";
confirmed_length_ = 0;
return true;
}
void FakeSuggestionHandler::OnSuggestionsChanged(
const std::vector<std::string>& suggestions) {
last_on_suggestion_changed_event_suggestions_ = suggestions;
}
bool FakeSuggestionHandler::SetButtonHighlighted(
int context_id,
const ui::ime::AssistiveWindowButton& button,
bool highlighted,
std::string* error) {
highlighted_suggestion_ = highlighted;
highlighted_button_ = button;
return false;
}
void FakeSuggestionHandler::ClickButton(
const ui::ime::AssistiveWindowButton& button) {
last_clicked_button_ = button.id;
}
bool FakeSuggestionHandler::AcceptSuggestionCandidate(
int context_id,
const std::u16string& candidate,
size_t delete_previous_utf16_len,
bool use_replace_surrounding_text,
std::string* error) {
showing_suggestion_ = false;
accepted_suggestion_ = true;
accepted_suggestion_text_ = candidate;
delete_previous_utf16_len_ = delete_previous_utf16_len;
suggestion_text_ = u"";
confirmed_length_ = 0;
return true;
}
bool FakeSuggestionHandler::SetAssistiveWindowProperties(
int context_id,
const AssistiveWindowProperties& assistive_window,
std::string* error) {
if (!assistive_window.announce_string.empty()) {
announcements_.push_back(assistive_window.announce_string);
}
if (assistive_window.visible) {
context_id_ = context_id;
showing_suggestion_ = true;
suggestion_text_ = base::JoinString(assistive_window.candidates, u";");
} else {
showing_suggestion_ = false;
}
return true;
}
void FakeSuggestionHandler::Announce(const std::u16string& message) {
announcements_.push_back(message);
}
} // namespace input_method
} // namespace ash