+++ /dev/null
-/*
- Copyright (C) 2009 Christian Dywan <christian@twotoasts.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#if HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include "midori.h"
-#include "midori-bookmarks.h"
-
-static void
-bookmarks_panel_create (void)
-{
- MidoriApp* app;
- MidoriBookmarks* bookmarks;
- gpointer value;
-
- app = g_object_new (MIDORI_TYPE_APP, NULL);
-
- bookmarks = g_object_new (MIDORI_TYPE_BOOKMARKS, NULL);
- value = katze_object_get_object (bookmarks, "app");
- g_assert (value == NULL);
- gtk_widget_destroy (GTK_WIDGET (bookmarks));
-
- bookmarks = g_object_new (MIDORI_TYPE_BOOKMARKS, "app", app, NULL);
- value = katze_object_get_object (bookmarks, "app");
- g_assert (value == app);
- gtk_widget_destroy (GTK_WIDGET (bookmarks));
-
- bookmarks = g_object_new (MIDORI_TYPE_BOOKMARKS, NULL);
- g_object_set (bookmarks, "app", app, NULL);
- value = katze_object_get_object (bookmarks, "app");
- g_assert (value == app);
- gtk_widget_destroy (GTK_WIDGET (bookmarks));
-}
-
-static KatzeItem*
-bookmark_new (const gchar* uri,
- const gchar* title)
-{
- return g_object_new (KATZE_TYPE_ITEM, "uri", uri, "name", title, NULL);
-}
-
-static KatzeArray*
-folder_new (const gchar* title)
-{
- KatzeArray* folder;
-
- folder = katze_array_new (KATZE_TYPE_ARRAY);
- g_object_set (folder, "name", title, NULL);
- return folder;
-}
-
-static void
-bookmarks_panel_fill (void)
-{
- MidoriApp* app;
- KatzeArray* array;
- MidoriBookmarks* bookmarks;
- GList* children;
- GtkWidget* treeview;
- GtkTreeModel* model;
- GtkTreeIter iter;
- KatzeItem* bookmark;
- KatzeArray* folder;
- guint n;
- gpointer value;
-
- app = g_object_new (MIDORI_TYPE_APP, NULL);
- array = katze_array_new (KATZE_TYPE_ARRAY);
- g_object_set (app, "bookmarks", array, NULL);
- value = katze_object_get_object (app, "bookmarks");
- g_assert (value == array);
- bookmarks = g_object_new (MIDORI_TYPE_BOOKMARKS, "app", app, NULL);
- children = gtk_container_get_children (GTK_CONTAINER (bookmarks));
- treeview = g_list_nth_data (children, 0);
- g_list_free (children);
- g_assert (GTK_IS_TREE_VIEW (treeview));
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
- g_assert (GTK_IS_TREE_MODEL (model));
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
- bookmark = bookmark_new ("http://www.example.com", "Example");
- katze_array_add_item (array, bookmark);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 1);
- katze_array_remove_item (array, bookmark);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
- bookmark = bookmark_new ("http://www.example.com", "Example");
- katze_array_add_item (array, bookmark);
- folder = folder_new ("Empty");
- katze_array_add_item (array, folder);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 2);
- katze_array_remove_item (array, folder);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 1);
- folder = folder_new ("Empty");
- katze_array_add_item (array, folder);
- folder = folder_new ("Kurioses");
- katze_array_add_item (array, folder);
- bookmark = bookmark_new ("http://www.ende.de", "Das Ende");
- katze_array_add_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 3);
- folder = folder_new ("Miscellaneous");
- katze_array_add_item (array, folder);
- gtk_tree_model_iter_nth_child (model, &iter, NULL, 3);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 0);
- bookmark = bookmark_new ("http://thesaurus.reference.com/", "Thesaurus");
- katze_array_add_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 1);
- bookmark = bookmark_new ("http://en.wikipedia.org/", "Wikipedia");
- katze_array_add_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 2);
- katze_array_remove_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 1);
- katze_array_remove_item (array, folder);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 3);
- katze_array_add_item (array, folder);
- /* katze_array_clear (folder);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 0); */
- katze_array_clear (array);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
-}
-
-int
-main (int argc,
- char** argv)
-{
- /* libSoup uses threads, therefore if WebKit is built with libSoup
- or Midori is using it, we need to initialize threads. */
- if (!g_thread_supported ()) g_thread_init (NULL);
- g_test_init (&argc, &argv, NULL);
- gtk_init_check (&argc, &argv);
-
- g_test_add_func ("/bookmarks/panel/create", bookmarks_panel_create);
- g_test_add_func ("/bookmarks/panel/fill", bookmarks_panel_fill);
-
- return g_test_run ();
-}
+++ /dev/null
-/*
- Copyright (C) 2009 Christian Dywan <christian@twotoasts.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#if HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include "midori.h"
-
-/* This is a private function */
-GtkWidget*
-midori_location_action_entry_for_proxy (GtkWidget* proxy);
-
-static const gchar* compare_urls[] = {
- "http://en.wikipedia.org/wiki/Foul",
- "http://de.wikipedia.org/wiki/Düsseldorf",
- "http://de.wikipedia.org/wiki/Düsseldorf",
- "http://ja.wikipedia.org/wiki/若井はんじ・けんじ",
- "http://www.johannkönig.com",
- "http://şøñđëřżēıċħęŋđőmæîņĭśŧşũþėŗ.de",
- };
-
-static void
-completion_compare (void)
-{
- const guint runs = 10000;
- guint t;
- gdouble elapsed = 0.0;
-
- for (t = 0; t < runs; t++)
- {
- g_test_timer_start ();
- guint i, j;
- for (i = 0; i < G_N_ELEMENTS (compare_urls); i++)
- {
- gchar* url = katze_collfold (compare_urls[i]);
- for (j = 0; j < G_N_ELEMENTS (compare_urls); j++)
- katze_utf8_stristr (compare_urls[i], url);
- g_free (url);
- }
- elapsed += g_test_timer_elapsed ();
- }
- g_print ("%f seconds for comparison\n", elapsed / runs);
-}
-
-typedef struct
-{
- const gchar* uri;
- const gchar* name;
-} CompletionItem;
-
-static const CompletionItem items[] = {
- { "http://one.com", "One" },
- { "http://one.com/", "One" }, /* Duplicate */
- { "http://one.com/", "One One" }, /* Duplicate */
- { "http://one.com", "One Two" }, /* Duplicate */
- { "http://two.com", "Two" },
- { "http://three.com", "Three" },
- { "http://one.com/one/", "One off" },
- { "http://four.org", "One" },
- { "https://four.org", "Four" },
- { "ftp://four.org/", "ごオルゴ" },
- { "http://muenchen.de/weißwürste/", "Münchner Weißwürste" }, /* Umlauts */
- };
-static const guint items_n = 9;
-
-static void
-completion_count (void)
-{
- MidoriLocationAction* action;
- GtkWidget* toolitem;
- GtkWidget* location_entry;
- GtkWidget* entry;
- GtkTreeModel* model;
- guint n, i;
-
- action = g_object_new (MIDORI_TYPE_LOCATION_ACTION, NULL);
- toolitem = gtk_action_create_tool_item (GTK_ACTION (action));
- location_entry = midori_location_action_entry_for_proxy (toolitem);
- entry = gtk_bin_get_child (GTK_BIN (location_entry));
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (location_entry));
-
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
- midori_location_action_add_item (action, "http://one.com", NULL, "One");
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 1);
- midori_location_action_clear (action);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
- for (i = 0; i < G_N_ELEMENTS (items); i++)
- midori_location_action_add_item (action, items[i].uri,
- NULL, items[i].name);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, items_n);
- /* Adding the exact same items again shouldn't increase the total amount */
- for (i = 0; i < G_N_ELEMENTS (items); i++)
- midori_location_action_add_item (action, items[i].uri,
- NULL, items[i].name);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, items_n);
-}
-
-/* Components to construct test addresses, the numbers take into account
- how many items minus duplicates are unique. */
-static const gchar* protocols[] = {
- "http", "https", "ftp"
- };
-static const guint protocols_n = 3;
-static const gchar* subs[] = {
- "", "www.", "ww2.", "ftp."
- };
-static const guint subs_n = 4;
-static const gchar* slds[] = {
- "one", "two", "four", "six", "seven"/*, "Seven", "SEVEN"*/
- };
-static const guint slds_n = 5;
-static const gchar* tlds[] = {
- "com", "org", "net", "de", "co.uk", "com.au"/*, "Com.Au", "COM.AU"*/
- };
-static const guint tlds_n = 6;
-static const gchar* files[] = {
- "/", "/index.html", "/img.png", /*"/weißwürste",*/ "/images/"
- /*, "/Images", "/IMAGES/"*/
- };
-static const guint files_n = 4;
-
-static const gchar* inputs[] = {
- "http://www.one.com/index", "http://two.de/images", "http://six.com.au/img"/*,
- "http://muenchen.de/weißwürste/"*/
- };
-static const gchar* additions[] = {
- "http://www.one.com/invention", "http://two.de/island", "http://six.com.au/ish"
- };
-
-static void location_action_fill (MidoriLocationAction* action)
-{
- guint i, j, k, l, m;
-
- for (i = 0; i < G_N_ELEMENTS (protocols); i++)
- for (j = 0; j < G_N_ELEMENTS (subs); j++)
- for (k = 0; k < G_N_ELEMENTS (slds); k++)
- for (l = 0; l < G_N_ELEMENTS (tlds); l++)
- for (m = 0; m < G_N_ELEMENTS (files); m++)
- {
- gchar* uri = g_strdup_printf ("%s://%s%s.%s%s",
- protocols[i], subs[j], slds[k], tlds[l], files[m]);
- midori_location_action_add_item (action, uri, NULL, uri);
- g_free (uri);
- }
-}
-
-static void
-completion_fill (void)
-{
- MidoriLocationAction* action;
- GtkWidget* toolitem;
- GtkWidget* location_entry;
- GtkWidget* entry;
- GtkTreeModel* model;
- guint i, items_added, items_added_effective, n;
- gdouble elapsed;
-
- action = g_object_new (MIDORI_TYPE_LOCATION_ACTION, NULL);
- toolitem = gtk_action_create_tool_item (GTK_ACTION (action));
- location_entry = midori_location_action_entry_for_proxy (toolitem);
- entry = gtk_bin_get_child (GTK_BIN (location_entry));
-
- g_print ("...\n");
-
- items_added = G_N_ELEMENTS (protocols) * G_N_ELEMENTS (subs)
- * G_N_ELEMENTS (slds) * G_N_ELEMENTS (tlds) * G_N_ELEMENTS (files);
- items_added_effective = protocols_n * subs_n * slds_n * tlds_n * files_n;
- g_print ("Adding %d items, effectively %d items:\n",
- items_added, items_added_effective);
-
- /* Since adding items when the action is frozen is very fast,
- we run it 5 times and take the average time. */
- elapsed = 0.0;
- for (i = 0; i < 5; i++)
- {
- midori_location_action_clear (action);
- midori_location_action_freeze (action);
- g_test_timer_start ();
- location_action_fill (action);
- elapsed += g_test_timer_elapsed ();
- midori_location_action_thaw (action);
- }
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (location_entry));
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, items_added_effective);
- g_print ("%f seconds, the action is frozen\n", elapsed / 5.0);
-
- midori_location_action_clear (action);
- g_test_timer_start ();
- location_action_fill (action);
- elapsed = g_test_timer_elapsed ();
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (location_entry));
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, items_added_effective);
- g_print ("%f seconds, the action updates normally\n", elapsed);
-
- /* We don't clear the action intentionally in order to see
- how long adding only duplicates takes. */
- g_test_timer_start ();
- location_action_fill (action);
- elapsed = g_test_timer_elapsed ();
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (location_entry));
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, items_added_effective);
- g_print ("%f seconds, adding exact duplicates\n", elapsed);
-
- g_print ("...");
-}
-
-static guint matches = 0;
-static guint matches_expected = 0;
-
-static gboolean
-entry_completion_insert_prefix_cb (GtkEntryCompletion* completion,
- const gchar* prefix,
- MidoriLocationAction* action)
-{
- GtkWidget* entry = gtk_entry_completion_get_entry (completion);
- const gchar* text = gtk_entry_get_text (GTK_ENTRY (entry));
-
- if (!g_strrstr (prefix, text))
- g_print ("Match failed, input: %s, result: %s\n",
- text, prefix);
- g_assert (g_strrstr (prefix, text));
- midori_location_action_delete_item_from_uri (action, text);
- midori_location_action_add_uri (action, text);
-
- matches++;
-
- return FALSE;
-}
-
-static void
-completion_match (void)
-{
- MidoriLocationAction* action;
- GtkWidget* toolitem;
- GtkWidget* location_entry;
- GtkWidget* entry;
- GtkEntryCompletion* completion;
- guint i;
-
- action = g_object_new (MIDORI_TYPE_LOCATION_ACTION, NULL);
-
- midori_location_action_freeze (action);
- location_action_fill (action);
- midori_location_action_thaw (action);
-
- toolitem = gtk_action_create_tool_item (GTK_ACTION (action));
- location_entry = midori_location_action_entry_for_proxy (toolitem);
- entry = gtk_bin_get_child (GTK_BIN (location_entry));
- completion = gtk_entry_get_completion (GTK_ENTRY (entry));
- g_signal_connect (completion, "insert-prefix",
- G_CALLBACK (entry_completion_insert_prefix_cb), action);
- gtk_entry_completion_set_inline_completion (completion, TRUE);
- gtk_entry_completion_set_popup_single_match (completion, FALSE);
-
- for (i = 0; i < G_N_ELEMENTS (inputs); i++)
- {
- matches_expected++;
- gtk_entry_set_text (GTK_ENTRY (entry), inputs[i]);
- gtk_entry_completion_complete (completion);
- gtk_entry_completion_insert_prefix (completion);
- if (matches != matches_expected)
- g_print ("Match failed, input: %s, result: %s\n",
- inputs[i], gtk_entry_get_text (GTK_ENTRY (entry)));
- g_assert_cmpint (matches, ==, matches_expected);
- }
- for (i = 0; i < G_N_ELEMENTS (additions); i++)
- {
- midori_location_action_add_uri (action, additions[i]);
- midori_location_action_delete_item_from_uri (action, additions[i]);
- midori_location_action_add_uri (action, additions[i]);
- }
- for (i = 0; i < G_N_ELEMENTS (inputs); i++)
- {
- matches_expected++;
- gtk_entry_set_text (GTK_ENTRY (entry), inputs[i]);
- gtk_entry_completion_complete (completion);
- gtk_entry_completion_insert_prefix (completion);
- if (matches != matches_expected)
- g_print ("Match failed, input: %s, result: %s\n",
- inputs[i], gtk_entry_get_text (GTK_ENTRY (entry)));
- g_assert_cmpint (matches, ==, matches_expected);
- }
- for (i = 0; i < G_N_ELEMENTS (additions); i++)
- {
- matches_expected++;
- gtk_entry_set_text (GTK_ENTRY (entry), additions[i]);
- gtk_entry_completion_complete (completion);
- gtk_entry_completion_insert_prefix (completion);
- if (matches != matches_expected)
- g_print ("Match failed, input: %s, result: %s\n",
- additions[i], gtk_entry_get_text (GTK_ENTRY (entry)));
- g_assert_cmpint (matches, ==, matches_expected);
- }
-}
-
-int
-main (int argc,
- char** argv)
-{
- /* libSoup uses threads, so we need to initialize threads. */
- if (!g_thread_supported ()) g_thread_init (NULL);
- g_test_init (&argc, &argv, NULL);
- gtk_init_check (&argc, &argv);
-
- g_test_add_func ("/completion/compare", completion_compare);
- g_test_add_func ("/completion/count", completion_count);
- g_test_add_func ("/completion/fill", completion_fill);
- g_test_add_func ("/completion/match", completion_match);
-
- return g_test_run ();
-}
+++ /dev/null
-/*
- Copyright (C) 2009 Christian Dywan <christian@twotoasts.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#if HAVE_CONFIG_H
- #include <config.h>
-#endif
-
-#include "midori.h"
-#include "midori-history.h"
-#include "sokoke.h"
-
-static void
-history_panel_create (void)
-{
- MidoriApp* app;
- MidoriHistory* history;
- gpointer value;
-
- app = g_object_new (MIDORI_TYPE_APP, NULL);
-
- history = g_object_new (MIDORI_TYPE_HISTORY, NULL);
- value = katze_object_get_object (history, "app");
- g_assert (value == NULL);
- gtk_widget_destroy (GTK_WIDGET (history));
-
- history = g_object_new (MIDORI_TYPE_HISTORY, "app", app, NULL);
- value = katze_object_get_object (history, "app");
- g_assert (value == app);
- gtk_widget_destroy (GTK_WIDGET (history));
-
- history = g_object_new (MIDORI_TYPE_HISTORY, NULL);
- g_object_set (history, "app", app, NULL);
- value = katze_object_get_object (history, "app");
- g_assert (value == app);
- gtk_widget_destroy (GTK_WIDGET (history));
-}
-
-static KatzeItem*
-bookmark_new (const gchar* uri,
- const gchar* title)
-{
- return g_object_new (KATZE_TYPE_ITEM, "uri", uri, "name", title, NULL);
-}
-
-static KatzeArray*
-folder_new (const gchar* title)
-{
- KatzeArray* folder;
-
- folder = katze_array_new (KATZE_TYPE_ARRAY);
- g_object_set (folder, "name", title, NULL);
- return folder;
-}
-
-static void
-history_panel_fill (void)
-{
- MidoriApp* app;
- KatzeArray* array;
- MidoriHistory* history;
- GList* children;
- GtkWidget* treeview;
- GtkTreeModel* model;
- GtkTreeIter iter;
- KatzeItem* bookmark;
- KatzeArray* folder;
- guint n;
- gpointer value;
-
- app = g_object_new (MIDORI_TYPE_APP, NULL);
- array = katze_array_new (KATZE_TYPE_ARRAY);
- g_object_set (app, "history", array, NULL);
- value = katze_object_get_object (app, "history");
- g_assert (value == array);
- history = g_object_new (MIDORI_TYPE_HISTORY, "app", app, NULL);
- children = gtk_container_get_children (GTK_CONTAINER (history));
- treeview = g_list_nth_data (children, 1);
- g_list_free (children);
- g_assert (GTK_IS_TREE_VIEW (treeview));
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
- g_assert (GTK_IS_TREE_MODEL (model));
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
- bookmark = bookmark_new ("http://www.example.com", "Example");
- katze_array_add_item (array, bookmark);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 1);
- katze_array_remove_item (array, bookmark);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
- bookmark = bookmark_new ("http://www.example.com", "Example");
- katze_array_add_item (array, bookmark);
- folder = folder_new ("Empty");
- katze_array_add_item (array, folder);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 2);
- katze_array_remove_item (array, folder);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 1);
- folder = folder_new ("Empty");
- katze_array_add_item (array, folder);
- folder = folder_new ("Kurioses");
- katze_array_add_item (array, folder);
- bookmark = bookmark_new ("http://www.ende.de", "Das Ende");
- katze_array_add_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 3);
- folder = folder_new ("Miscellaneous");
- katze_array_add_item (array, folder);
- gtk_tree_model_iter_nth_child (model, &iter, NULL, 3);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 0);
- bookmark = bookmark_new ("http://thesaurus.reference.com/", "Thesaurus");
- katze_array_add_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 1);
- bookmark = bookmark_new ("http://en.wikipedia.org/", "Wikipedia");
- katze_array_add_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 2);
- katze_array_remove_item (folder, bookmark);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 1);
- katze_array_remove_item (array, folder);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 3);
- katze_array_add_item (array, folder);
- /* katze_array_clear (folder);
- n = gtk_tree_model_iter_n_children (model, &iter);
- g_assert_cmpint (n, ==, 0); */
- katze_array_clear (array);
- n = gtk_tree_model_iter_n_children (model, NULL);
- g_assert_cmpint (n, ==, 0);
-}
-
-static void
-notify_load_status_cb (GtkWidget* view,
- GParamSpec* pspec,
- guint* done)
-{
- MidoriLoadStatus status;
-
- status = midori_view_get_load_status (MIDORI_VIEW (view));
- if (*done == 2 && status == MIDORI_LOAD_COMMITTED)
- *done = 1;
- else if (*done == 1 && status == MIDORI_LOAD_FINISHED)
- *done = 0;
-}
-
-static void
-history_browser_add (void)
-{
- MidoriBrowser* browser;
- MidoriWebSettings* settings;
- KatzeArray* array;
- GtkWidget* view;
- guint done;
- KatzeItem* date;
- gsize i;
- GtkActionGroup* action_group;
- GtkAction* action;
-
- browser = midori_browser_new ();
- settings = midori_web_settings_new ();
- array = katze_array_new (KATZE_TYPE_ARRAY);
- g_object_set (browser, "settings", settings, "history", array, NULL);
- view = midori_view_new (NULL);
- midori_browser_add_tab (browser, view);
- midori_view_set_uri (MIDORI_VIEW (view),
- "data:text/html;charset=utf-8,<title>Test</title>Test");
- g_signal_connect (view, "notify::load-status",
- G_CALLBACK (notify_load_status_cb), &done);
- done = 2;
- while (done)
- gtk_main_iteration ();
- g_assert_cmpint (katze_array_get_length (array), ==, 1);
- date = katze_array_get_nth_item (array, 0);
- g_assert_cmpint (katze_array_get_length (KATZE_ARRAY (date)), ==, 1);
- i = 0;
- gtk_widget_show (view);
- midori_browser_set_current_tab (browser, view);
- g_assert (midori_browser_get_current_tab (browser) == view);
- done = 2;
- action_group = midori_browser_get_action_group (browser);
- action = gtk_action_group_get_action (action_group, "Location");
- midori_location_action_set_uri (MIDORI_LOCATION_ACTION (action),
- "data:text/html;charset=utf-8,<title>Test</title>Test");
- g_signal_emit_by_name (action, "submit-uri",
- "data:text/html;charset=utf-8,<title>Test</title>Test", FALSE);
- while (done)
- gtk_main_iteration ();
- g_assert_cmpint (katze_array_get_length (array), ==, 1);
- date = katze_array_get_nth_item (array, 0);
- g_assert_cmpint (katze_array_get_length (KATZE_ARRAY (date)), ==, 1);
- i = 0;
-}
-
-int
-main (int argc,
- char** argv)
-{
- /* libSoup uses threads, so we need to initialize threads. */
- if (!g_thread_supported ()) g_thread_init (NULL);
- g_test_init (&argc, &argv, NULL);
- gtk_init_check (&argc, &argv);
- sokoke_register_stock_items ();
-
- g_test_add_func ("/history/panel/create", history_panel_create);
- g_test_add_func ("/history/panel/fill", history_panel_fill);
- g_test_add_func ("/history/browser/add", history_browser_add);
-
- return g_test_run ();
-}