Commit 87c33fa2 authored by Benjamin Otte's avatar Benjamin Otte
Browse files

tests: Update text test for textview

1) Allow inserting text to move the cursor to after the inserted text
2) Implement selecting text for GtkTextView. Also assert if it's an
   unsupported widget type.
3) Select an inside part of the widget, not the end.
parent 768b192d
......@@ -577,6 +577,18 @@ select_region (GtkWidget *widget,
gtk_editable_select_region (GTK_EDITABLE (widget), start, end);
else if (GTK_IS_LABEL (widget))
gtk_label_select_region (GTK_LABEL (widget), start, end);
else if (GTK_IS_TEXT_VIEW (widget))
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
GtkTextIter start_iter, end_iter;
gtk_text_buffer_get_iter_at_offset (buffer, &start_iter, end);
gtk_text_buffer_get_iter_at_offset (buffer, &end_iter, start);
gtk_text_buffer_select_range (buffer, &start_iter, &end_iter);
}
else
g_assert_not_reached ();
}
typedef struct {
......@@ -604,7 +616,7 @@ static void
test_selection (GtkWidget *widget)
{
AtkText *atk_text;
const gchar *text = "Bla bla";
const gchar *text = "Bla bla bla";
gint n;
gchar *ret;
gint start, end;
......@@ -628,12 +640,17 @@ test_selection (GtkWidget *widget)
n = atk_text_get_n_selections (atk_text);
g_assert_cmpint (n, ==, 0);
g_assert_cmpint (data1.count, ==, 0);
if (data1.count == 1)
/* insertion before cursor */
g_assert_cmpint (data1.position, ==, 11);
else
/* insertion after cursor */
g_assert_cmpint (data1.count, ==, 0);
g_assert_cmpint (data2.count, ==, 0);
select_region (widget, 4, 7);
g_assert_cmpint (data1.count, ==, 1);
g_assert_cmpint (data1.count, >=, 1);
g_assert_cmpint (data1.position, ==, 7);
g_assert_cmpint (data2.count, >=, 1);
g_assert_cmpint (data2.bound, ==, 4);
......@@ -652,7 +669,7 @@ test_selection (GtkWidget *widget)
n = atk_text_get_n_selections (atk_text);
g_assert_cmpint (n, ==, 0);
g_assert_cmpint (data1.count, ==, 1);
g_assert_cmpint (data1.count, >=, 1);
g_assert_cmpint (data2.count, >=, 2);
g_assert_cmpint (data2.position, ==, 7);
g_assert_cmpint (data2.bound, ==, 7);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment