]> Pileus Git - ~andy/gtk/blobdiff - gtk/tests/textbuffer.c
filechooser: Get the filechooser tests to build
[~andy/gtk] / gtk / tests / textbuffer.c
index 3fdbf9f400352251d0789df5d9e19fcf534d154e..e26a5ddfa8617f7ffe2d4d356d8ee43b55540363 100644 (file)
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <config.h>
+#include "config.h"
 #include <stdio.h>
 #include <string.h>
 
@@ -879,6 +877,8 @@ split_r_n_separators_test (void)
 
   gtk_text_buffer_get_iter_at_offset (buffer, &iter, 3);
   g_assert (gtk_text_iter_ends_line (&iter));
+
+  g_object_unref (buffer);
 }
 
 static void
@@ -912,6 +912,40 @@ test_line_separator (void)
   split_r_n_separators_test ();
 }
 
+static void
+test_backspace (void)
+{
+  GtkTextBuffer *buffer;
+  GtkTextIter iter;
+  gboolean ret;
+
+  buffer = gtk_text_buffer_new (NULL);
+
+  gtk_text_buffer_set_text (buffer, "foo", -1);
+  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 2);
+  ret = gtk_text_buffer_backspace (buffer, &iter, TRUE, TRUE);
+  g_assert (ret);
+  g_assert_cmpint (1, ==, gtk_text_iter_get_offset (&iter));
+  g_assert_cmpint (2, ==, gtk_text_buffer_get_char_count (buffer));
+
+  gtk_text_buffer_set_text (buffer, "foo", -1);
+  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
+  ret = gtk_text_buffer_backspace (buffer, &iter, TRUE, TRUE);
+  g_assert (!ret);
+  g_assert_cmpint (0, ==, gtk_text_iter_get_offset (&iter));
+  g_assert_cmpint (3, ==, gtk_text_buffer_get_char_count (buffer));
+
+  /* test bug #544724 */
+  gtk_text_buffer_set_text (buffer, "foo\r\n\r\nbar", -1);
+  gtk_text_buffer_get_iter_at_offset (buffer, &iter, 5);
+  ret = gtk_text_buffer_backspace (buffer, &iter, TRUE, TRUE);
+  g_assert (ret);
+  g_assert_cmpint (0, ==, gtk_text_iter_get_line (&iter));
+  g_assert_cmpint (8, ==, gtk_text_buffer_get_char_count (buffer));
+
+  g_object_unref (buffer);
+}
+
 static void
 test_logical_motion (void)
 {
@@ -1175,8 +1209,9 @@ test_utf8 (void)
   gunichar ch;
 
   /* Check UTF8 unknown char thing */
-  g_assert (g_utf8_strlen (gtk_text_unknown_char_utf8, 3) == 1);
-  ch = g_utf8_get_char (gtk_text_unknown_char_utf8);
+  g_assert (GTK_TEXT_UNKNOWN_CHAR_UTF8_LEN == 3);
+  g_assert (g_utf8_strlen (gtk_text_unknown_char_utf8_gtk_tests_only (), 3) == 1);
+  ch = g_utf8_get_char (gtk_text_unknown_char_utf8_gtk_tests_only ());
   g_assert (ch == GTK_TEXT_UNKNOWN_CHAR);
 }
 
@@ -1284,19 +1319,17 @@ test_tag (void)
   g_object_unref (buffer);
 }
 
-extern void pixbuf_init (void);
-
 int
 main (int argc, char** argv)
 {
   /* First, we turn on btree debugging. */
-  gtk_debug_flags |= GTK_DEBUG_TEXT;
+  gtk_set_debug_flags (gtk_get_debug_flags () | GTK_DEBUG_TEXT);
 
   gtk_test_init (&argc, &argv);
-  pixbuf_init ();
 
   g_test_add_func ("/TextBuffer/UTF8 unknown char", test_utf8);
   g_test_add_func ("/TextBuffer/Line separator", test_line_separator);
+  g_test_add_func ("/TextBuffer/Backspace", test_backspace);
   g_test_add_func ("/TextBuffer/Logical motion", test_logical_motion);
   g_test_add_func ("/TextBuffer/Marks", test_marks);
   g_test_add_func ("/TextBuffer/Empty buffer", test_empty_buffer);