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 bc13104efcdbfa7d11867504c1d4d44357f451dc..79ab7378dac83b8c25ea529e0cac44d611cc9a7b 100644 |
--- a/content/public/test/text_input_test_utils.cc |
+++ b/content/public/test/text_input_test_utils.cc |
@@ -65,6 +65,10 @@ class TextInputManagerTester::InternalObserver |
on_ime_composition_range_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_; } |
@@ -99,6 +103,13 @@ class TextInputManagerTester::InternalObserver |
on_ime_composition_range_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; } |
@@ -109,6 +120,7 @@ class TextInputManagerTester::InternalObserver |
base::Closure update_text_input_state_callback_; |
base::Closure on_selection_bounds_changed_callback_; |
base::Closure on_ime_composition_range_changed_callback_; |
+ base::Closure on_text_selection_changed_callback_; |
DISALLOW_COPY_AND_ASSIGN(InternalObserver); |
}; |
@@ -284,6 +296,11 @@ void TextInputManagerTester::SetOnImeCompositionRangeChangedCallback( |
observer_->set_on_ime_composition_range_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 = |
@@ -313,6 +330,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(); |
} |