Index: content/public/test/text_input_test_utils.cc |
diff --git a/content/public/test/text_input_test_utils.cc b/content/public/test/text_input_test_utils.cc |
index 594c4bedf0864aeaa4050407982367b4d48c08ef..8990941799741e3530f9a99df95d888019743ba9 100644 |
--- a/content/public/test/text_input_test_utils.cc |
+++ b/content/public/test/text_input_test_utils.cc |
@@ -58,6 +58,10 @@ class TextInputManagerTester::InternalObserver |
on_selection_bounds_changed_callback_ = callback; |
} |
+ void set_on_text_selection_changed_callback(const base::Closure& callback) { |
+ on_text_selection_changed_callback_ = callback; |
+ } |
+ |
const RenderWidgetHostView* GetUpdatedView() const { return updated_view_; } |
bool text_input_state_changed() const { return text_input_state_changed_; } |
@@ -84,6 +88,13 @@ class TextInputManagerTester::InternalObserver |
on_selection_bounds_changed_callback_.Run(); |
} |
+ void OnTextSelectionChanged(TextInputManager* text_input_manager, |
+ RenderWidgetHostViewBase* updated_view) override { |
+ updated_view_ = updated_view; |
+ if (!on_text_selection_changed_callback_.is_null()) |
+ on_text_selection_changed_callback_.Run(); |
+ } |
+ |
// WebContentsObserver implementation. |
void WebContentsDestroyed() override { text_input_manager_ = nullptr; } |
@@ -93,6 +104,7 @@ class TextInputManagerTester::InternalObserver |
bool text_input_state_changed_; |
base::Closure update_text_input_state_callback_; |
base::Closure on_selection_bounds_changed_callback_; |
+ base::Closure on_text_selection_changed_callback_; |
DISALLOW_COPY_AND_ASSIGN(InternalObserver); |
}; |
@@ -244,6 +256,11 @@ void TextInputManagerTester::SetOnSelectionBoundsChangedCallback( |
observer_->set_on_selection_bounds_changed_callback(callback); |
} |
+void TextInputManagerTester::SetOnTextSelectionChangedCallback( |
+ const base::Closure& callback) { |
+ observer_->set_on_text_selection_changed_callback(callback); |
+} |
+ |
bool TextInputManagerTester::GetTextInputType(ui::TextInputType* type) { |
DCHECK(observer_->text_input_manager()); |
const TextInputState* state = |
@@ -273,6 +290,16 @@ const RenderWidgetHostView* TextInputManagerTester::GetUpdatedView() { |
return observer_->GetUpdatedView(); |
} |
+bool TextInputManagerTester::GetCurrentTextSelectionLength(size_t* length) { |
+ DCHECK(observer_->text_input_manager()); |
+ |
+ if (!observer_->text_input_manager()->GetActiveWidget()) |
+ return false; |
+ |
+ *length = observer_->text_input_manager()->GetTextSelection()->text.size(); |
+ return true; |
+} |
+ |
bool TextInputManagerTester::IsTextInputStateChanged() { |
return observer_->text_input_state_changed(); |
} |
@@ -351,4 +378,4 @@ std::unique_ptr<TestInputMethodObserver> TestInputMethodObserver::Create( |
return observer; |
} |
-} // namespace content |
+} // namespace content |