Groundwork to make finding search engines testable
This commit is contained in:
parent
09432b2d12
commit
b3984ab252
8 changed files with 196 additions and 137 deletions
|
@ -3,12 +3,20 @@
|
||||||
|
|
||||||
[CCode (cprefix = "Katze", lower_case_cprefix = "katze_")]
|
[CCode (cprefix = "Katze", lower_case_cprefix = "katze_")]
|
||||||
namespace Katze {
|
namespace Katze {
|
||||||
public class Array : GLib.Object {
|
static string assert_str_equal (string input, string result, string expected);
|
||||||
|
|
||||||
|
[CCode (cheader_filename = "katze/katze.h")]
|
||||||
|
public class Array : Katze.Item {
|
||||||
public Array (GLib.Type type);
|
public Array (GLib.Type type);
|
||||||
public void add_item (GLib.Object item);
|
public void add_item (GLib.Object item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CCode (cheader_filename = "katze/katze.h")]
|
||||||
public class Item : GLib.Object {
|
public class Item : GLib.Object {
|
||||||
|
public string? uri { get; set; }
|
||||||
|
public string? name { get; set; }
|
||||||
|
public string? text { get; set; }
|
||||||
|
|
||||||
public bool get_meta_boolean (string key);
|
public bool get_meta_boolean (string key);
|
||||||
public int64 get_meta_integer (string key);
|
public int64 get_meta_integer (string key);
|
||||||
public void set_meta_integer (string key, int64 value);
|
public void set_meta_integer (string key, int64 value);
|
||||||
|
|
|
@ -932,6 +932,113 @@ midori_search_action_token_for_uri (const gchar* uri)
|
||||||
return g_strdup (hostname);
|
return g_strdup (hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KatzeItem*
|
||||||
|
midori_search_action_get_engine_for_form (WebKitWebView* web_view,
|
||||||
|
PangoEllipsizeMode ellipsize)
|
||||||
|
{
|
||||||
|
#if WEBKIT_CHECK_VERSION (1, 5, 0)
|
||||||
|
WebKitDOMDocument* doc;
|
||||||
|
WebKitDOMHTMLFormElement* active_form;
|
||||||
|
WebKitDOMHTMLCollection* form_nodes;
|
||||||
|
WebKitDOMElement* active_element;
|
||||||
|
gchar* token_element;
|
||||||
|
const gchar* title;
|
||||||
|
GString* uri_str;
|
||||||
|
gulong form_len;
|
||||||
|
guint i;
|
||||||
|
KatzeItem* item;
|
||||||
|
gchar** parts;
|
||||||
|
|
||||||
|
#if WEBKIT_CHECK_VERSION (1, 9, 5)
|
||||||
|
doc = webkit_web_frame_get_dom_document (web_view);
|
||||||
|
#else
|
||||||
|
if (webkit_web_view_get_focused_frame (web_view) != webkit_web_view_get_main_frame (web_view))
|
||||||
|
return NULL;
|
||||||
|
doc = webkit_web_view_get_dom_document (web_view);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
active_element = webkit_dom_html_document_get_active_element ((WebKitDOMHTMLDocument*)doc);
|
||||||
|
active_form = webkit_dom_html_input_element_get_form ((WebKitDOMHTMLInputElement*)active_element);
|
||||||
|
|
||||||
|
if (!active_form)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
token_element = webkit_dom_element_get_attribute (active_element, "name");
|
||||||
|
|
||||||
|
form_nodes = webkit_dom_html_form_element_get_elements (active_form);
|
||||||
|
form_len = webkit_dom_html_form_element_get_length (active_form);
|
||||||
|
|
||||||
|
uri_str = g_string_new (webkit_dom_html_form_element_get_action (active_form));
|
||||||
|
g_string_append (uri_str, "?");
|
||||||
|
|
||||||
|
for (i = 0; i < form_len; i++)
|
||||||
|
{
|
||||||
|
WebKitDOMNode* form_node = webkit_dom_html_collection_item (form_nodes, i);
|
||||||
|
WebKitDOMElement* form_element = (WebKitDOMElement*) form_node;
|
||||||
|
gchar* name = webkit_dom_element_get_attribute (form_element, "name");
|
||||||
|
|
||||||
|
if (name && *name)
|
||||||
|
{
|
||||||
|
if (!g_strcmp0 (token_element, name))
|
||||||
|
g_string_append_printf (uri_str, "%s=%s&", name, "\%s");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gchar* value;
|
||||||
|
if (!g_strcmp0 (webkit_dom_element_get_tag_name (form_element), "SELECT"))
|
||||||
|
{
|
||||||
|
WebKitDOMHTMLSelectElement* select_element = (WebKitDOMHTMLSelectElement*) form_element;
|
||||||
|
gulong pos = webkit_dom_html_select_element_get_selected_index (select_element);
|
||||||
|
WebKitDOMNode* selected_node = webkit_dom_html_select_element_item (select_element, pos);
|
||||||
|
WebKitDOMElement* selected_element = (WebKitDOMElement*) selected_node;
|
||||||
|
|
||||||
|
value = webkit_dom_element_get_attribute (selected_element, "value");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
value = webkit_dom_element_get_attribute (form_element, "value");
|
||||||
|
|
||||||
|
g_string_append_printf (uri_str, "%s=%s&", name, value);
|
||||||
|
g_free (value);
|
||||||
|
}
|
||||||
|
g_free (name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
title = webkit_web_view_get_title (web_view);
|
||||||
|
|
||||||
|
item = katze_item_new ();
|
||||||
|
item->uri = g_string_free (uri_str, FALSE);
|
||||||
|
item->token = midori_search_action_token_for_uri (webkit_web_view_get_uri (web_view));
|
||||||
|
|
||||||
|
if (strstr (title, " - "))
|
||||||
|
parts = g_strsplit (title, " - ", 2);
|
||||||
|
else if (strstr (title, ": "))
|
||||||
|
parts = g_strsplit (title, ": ", 2);
|
||||||
|
else
|
||||||
|
parts = NULL;
|
||||||
|
if (parts != NULL)
|
||||||
|
{
|
||||||
|
/* See midori_view_set_title: title can be first or last */
|
||||||
|
if (ellipsize == PANGO_ELLIPSIZE_END)
|
||||||
|
{
|
||||||
|
item->name = g_strdup (parts[0]);
|
||||||
|
item->text = g_strdup (parts[1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
item->name = g_strdup (parts[1]);
|
||||||
|
item->text = g_strdup (parts[2]);
|
||||||
|
}
|
||||||
|
g_strfreev (parts);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
item->name = g_strdup (title);
|
||||||
|
|
||||||
|
g_free (token_element);
|
||||||
|
return item;
|
||||||
|
#else
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
midori_search_action_get_editor (MidoriSearchAction* search_action,
|
midori_search_action_get_editor (MidoriSearchAction* search_action,
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#define __MIDORI_SEARCH_ACTION_H__
|
#define __MIDORI_SEARCH_ACTION_H__
|
||||||
|
|
||||||
#include <katze/katze.h>
|
#include <katze/katze.h>
|
||||||
|
#include <webkit/webkit.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
@ -72,6 +73,15 @@ midori_search_action_set_default_item (MidoriSearchAction* search_action,
|
||||||
GtkWidget*
|
GtkWidget*
|
||||||
midori_search_action_get_dialog (MidoriSearchAction* search_action);
|
midori_search_action_get_dialog (MidoriSearchAction* search_action);
|
||||||
|
|
||||||
|
void
|
||||||
|
midori_search_action_get_editor (MidoriSearchAction* search_action,
|
||||||
|
KatzeItem* item,
|
||||||
|
gboolean new_engine);
|
||||||
|
|
||||||
|
KatzeItem*
|
||||||
|
midori_search_action_get_engine_for_form (WebKitWebView* web_view,
|
||||||
|
PangoEllipsizeMode ellipsize);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __MIDORI_SEARCH_ACTION_H__ */
|
#endif /* __MIDORI_SEARCH_ACTION_H__ */
|
||||||
|
|
|
@ -2433,11 +2433,6 @@ midori_web_view_menu_inspect_element_activate_cb (GtkWidget* widget,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if WEBKIT_CHECK_VERSION (1, 5, 0)
|
#if WEBKIT_CHECK_VERSION (1, 5, 0)
|
||||||
void
|
|
||||||
midori_search_action_get_editor (MidoriSearchAction* search_action,
|
|
||||||
KatzeItem* item,
|
|
||||||
gboolean new_engine);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_view_menu_add_search_engine_cb (GtkWidget* widget,
|
midori_view_menu_add_search_engine_cb (GtkWidget* widget,
|
||||||
MidoriView* view)
|
MidoriView* view)
|
||||||
|
@ -2448,114 +2443,6 @@ midori_view_menu_add_search_engine_cb (GtkWidget* widget,
|
||||||
KatzeItem* item = g_object_get_data (G_OBJECT (widget), "item");
|
KatzeItem* item = g_object_get_data (G_OBJECT (widget), "item");
|
||||||
midori_search_action_get_editor (MIDORI_SEARCH_ACTION (action), item, TRUE);
|
midori_search_action_get_editor (MIDORI_SEARCH_ACTION (action), item, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
gchar*
|
|
||||||
midori_search_action_token_for_uri (const gchar* uri);
|
|
||||||
|
|
||||||
static KatzeItem*
|
|
||||||
midori_view_search_engine_for_form (MidoriView* view,
|
|
||||||
WebKitWebView* web_view)
|
|
||||||
{
|
|
||||||
|
|
||||||
WebKitDOMDocument* doc;
|
|
||||||
WebKitDOMHTMLFormElement* active_form;
|
|
||||||
WebKitDOMHTMLCollection* form_nodes;
|
|
||||||
WebKitDOMElement* active_element;
|
|
||||||
gchar* token_element;
|
|
||||||
const gchar* title;
|
|
||||||
GString* uri_str;
|
|
||||||
gulong form_len;
|
|
||||||
guint i;
|
|
||||||
KatzeItem* item;
|
|
||||||
gchar** parts;
|
|
||||||
|
|
||||||
#if WEBKIT_CHECK_VERSION (1, 9, 5)
|
|
||||||
doc = webkit_web_frame_get_dom_document (web_view);
|
|
||||||
#else
|
|
||||||
if (webkit_web_view_get_focused_frame (web_view) != webkit_web_view_get_main_frame (web_view))
|
|
||||||
return NULL;
|
|
||||||
doc = webkit_web_view_get_dom_document (web_view);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
active_element = webkit_dom_html_document_get_active_element ((WebKitDOMHTMLDocument*)doc);
|
|
||||||
active_form = webkit_dom_html_input_element_get_form ((WebKitDOMHTMLInputElement*)active_element);
|
|
||||||
|
|
||||||
if (!active_form)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
token_element = webkit_dom_element_get_attribute (active_element, "name");
|
|
||||||
|
|
||||||
form_nodes = webkit_dom_html_form_element_get_elements (active_form);
|
|
||||||
form_len = webkit_dom_html_form_element_get_length (active_form);
|
|
||||||
|
|
||||||
uri_str = g_string_new (webkit_dom_html_form_element_get_action (active_form));
|
|
||||||
g_string_append (uri_str, "?");
|
|
||||||
|
|
||||||
for (i = 0; i < form_len; i++)
|
|
||||||
{
|
|
||||||
WebKitDOMNode* form_node = webkit_dom_html_collection_item (form_nodes, i);
|
|
||||||
WebKitDOMElement* form_element = (WebKitDOMElement*) form_node;
|
|
||||||
gchar* name = webkit_dom_element_get_attribute (form_element, "name");
|
|
||||||
|
|
||||||
if (name && *name)
|
|
||||||
{
|
|
||||||
if (!g_strcmp0 (token_element, name))
|
|
||||||
g_string_append_printf (uri_str, "%s=%s&", name, "\%s");
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gchar* value;
|
|
||||||
if (!g_strcmp0 (webkit_dom_element_get_tag_name (form_element), "SELECT"))
|
|
||||||
{
|
|
||||||
WebKitDOMHTMLSelectElement* select_element = (WebKitDOMHTMLSelectElement*) form_element;
|
|
||||||
gulong pos = webkit_dom_html_select_element_get_selected_index (select_element);
|
|
||||||
WebKitDOMNode* selected_node = webkit_dom_html_select_element_item (select_element, pos);
|
|
||||||
WebKitDOMElement* selected_element = (WebKitDOMElement*) selected_node;
|
|
||||||
|
|
||||||
value = webkit_dom_element_get_attribute (selected_element, "value");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
value = webkit_dom_element_get_attribute (form_element, "value");
|
|
||||||
|
|
||||||
g_string_append_printf (uri_str, "%s=%s&", name, value);
|
|
||||||
g_free (value);
|
|
||||||
}
|
|
||||||
g_free (name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
title = webkit_web_view_get_title (web_view);
|
|
||||||
|
|
||||||
item = katze_item_new ();
|
|
||||||
katze_item_set_uri (item, g_string_free (uri_str, FALSE));
|
|
||||||
item->token = midori_search_action_token_for_uri (view->uri);
|
|
||||||
|
|
||||||
if (strstr (title, " - "))
|
|
||||||
parts = g_strsplit (title, " - ", 2);
|
|
||||||
else if (strstr (title, ": "))
|
|
||||||
parts = g_strsplit (title, ": ", 2);
|
|
||||||
else
|
|
||||||
parts = NULL;
|
|
||||||
if (parts != NULL)
|
|
||||||
{
|
|
||||||
/* See midori_view_set_title: title can be first or last */
|
|
||||||
if (view->ellipsize == PANGO_ELLIPSIZE_END)
|
|
||||||
{
|
|
||||||
katze_item_set_name (item, g_strdup (parts[0]));
|
|
||||||
katze_item_set_text (item, g_strdup (parts[1]));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
katze_item_set_name (item, g_strdup (parts[1]));
|
|
||||||
katze_item_set_text (item, g_strdup (parts[2]));
|
|
||||||
}
|
|
||||||
g_strfreev (parts);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
katze_item_set_name (item, title);
|
|
||||||
|
|
||||||
g_free (token_element);
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static GtkWidget*
|
static GtkWidget*
|
||||||
|
@ -2666,7 +2553,8 @@ midori_view_populate_popup (MidoriView* view,
|
||||||
|
|
||||||
#if WEBKIT_CHECK_VERSION (1, 5, 0)
|
#if WEBKIT_CHECK_VERSION (1, 5, 0)
|
||||||
{
|
{
|
||||||
KatzeItem* item = midori_view_search_engine_for_form (view, web_view);
|
KatzeItem* item = midori_search_action_get_engine_for_form (
|
||||||
|
WEBKIT_WEB_VIEW (view->web_view), view->ellipsize);
|
||||||
if (item != NULL)
|
if (item != NULL)
|
||||||
{
|
{
|
||||||
menuitem = midori_view_insert_menu_item (menu_shell, -1,
|
menuitem = midori_view_insert_menu_item (menu_shell, -1,
|
||||||
|
|
|
@ -16,17 +16,17 @@ namespace Midori {
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public Midori.WebSettings settings { owned get; set; }
|
public Midori.WebSettings settings { owned get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object bookmarks { get; set; }
|
public Katze.Array bookmarks { get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object trash { get; set; }
|
public Katze.Array trash { get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object search_engines { get; set; }
|
public Katze.Array search_engines { get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object history { get; set; }
|
public Katze.Array history { get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object extensions { get; set; }
|
public Katze.Array extensions { get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object browsers { get; }
|
public Katze.Array browsers { get; }
|
||||||
public Browser? browser { get; }
|
public Browser? browser { get; }
|
||||||
|
|
||||||
[HasEmitter]
|
[HasEmitter]
|
||||||
|
@ -35,9 +35,11 @@ namespace Midori {
|
||||||
[HasEmitter]
|
[HasEmitter]
|
||||||
public signal void quit ();
|
public signal void quit ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CCode (cheader_filename = "midori/midori.h")]
|
||||||
public class Browser : Gtk.Window {
|
public class Browser : Gtk.Window {
|
||||||
public Browser ();
|
public Browser ();
|
||||||
public int add_item (GLib.Object item);
|
public int add_item (Katze.Item item);
|
||||||
public int add_uri (string uri);
|
public int add_uri (string uri);
|
||||||
public unowned View get_nth_tab (int n);
|
public unowned View get_nth_tab (int n);
|
||||||
public GLib.List<weak View> get_tabs ();
|
public GLib.List<weak View> get_tabs ();
|
||||||
|
@ -46,7 +48,7 @@ namespace Midori {
|
||||||
public unowned Gtk.ActionGroup get_action_group ();
|
public unowned Gtk.ActionGroup get_action_group ();
|
||||||
public unowned Browser get_for_widget (Gtk.Widget widget);
|
public unowned Browser get_for_widget (Gtk.Widget widget);
|
||||||
public unowned string[] get_toolbar_actions ();
|
public unowned string[] get_toolbar_actions ();
|
||||||
public unowned GLib.Object get_proxy_items ();
|
public unowned Katze.Array get_proxy_items ();
|
||||||
|
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public Gtk.MenuBar menubar { owned get; }
|
public Gtk.MenuBar menubar { owned get; }
|
||||||
|
@ -67,13 +69,13 @@ namespace Midori {
|
||||||
public string statusbar_text { owned get; set; }
|
public string statusbar_text { owned get; set; }
|
||||||
public Midori.WebSettings settings { get; set; }
|
public Midori.WebSettings settings { get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object bookmarks { owned get; set; }
|
public Katze.Array? bookmarks { owned get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object trash { owned get; set; }
|
public Katze.Array? trash { owned get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object search_engines { owned get; set; }
|
public Katze.Array? search_engines { owned get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public GLib.Object history { owned get; set; }
|
public Katze.Array? history { owned get; set; }
|
||||||
[NoAccessorMethod]
|
[NoAccessorMethod]
|
||||||
public bool show_tabs { get; set; }
|
public bool show_tabs { get; set; }
|
||||||
|
|
||||||
|
@ -85,7 +87,7 @@ namespace Midori {
|
||||||
public signal void switch_tab (View? old_view, View? new_view);
|
public signal void switch_tab (View? old_view, View? new_view);
|
||||||
[HasEmitter]
|
[HasEmitter]
|
||||||
public signal void activate_action (string name);
|
public signal void activate_action (string name);
|
||||||
public signal void add_download (GLib.Object download);
|
public signal void add_download (WebKit.Download download);
|
||||||
public signal void populate_tool_menu (Gtk.Menu menu);
|
public signal void populate_tool_menu (Gtk.Menu menu);
|
||||||
[HasEmitter]
|
[HasEmitter]
|
||||||
public signal void quit ();
|
public signal void quit ();
|
||||||
|
@ -126,6 +128,7 @@ namespace Midori {
|
||||||
public signal void open_preferences ();
|
public signal void open_preferences ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CCode (cheader_filename = "midori/midori.h")]
|
||||||
public class View : Gtk.VBox {
|
public class View : Gtk.VBox {
|
||||||
[CCode (type = "GtkWidget*")]
|
[CCode (type = "GtkWidget*")]
|
||||||
public View (GLib.Object net);
|
public View (GLib.Object net);
|
||||||
|
@ -163,7 +166,7 @@ namespace Midori {
|
||||||
public double progress { get; set; }
|
public double progress { get; set; }
|
||||||
public bool minimized { get; }
|
public bool minimized { get; }
|
||||||
public float zoom_level { get; }
|
public float zoom_level { get; }
|
||||||
public GLib.Object news_feeds { get; }
|
public Katze.Array news_feeds { get; }
|
||||||
public string statusbar_text { get; }
|
public string statusbar_text { get; }
|
||||||
public WebSettings settings { get; set; }
|
public WebSettings settings { get; set; }
|
||||||
public GLib.Object net { get; }
|
public GLib.Object net { get; }
|
||||||
|
@ -173,6 +176,11 @@ namespace Midori {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CCode (cheader_filename = "midori/midori.h")]
|
||||||
|
public class SearchAction : Gtk.Action {
|
||||||
|
public static Katze.Item? get_engine_for_form (WebKit.WebView web_view, Pango.EllipsizeMode ellipsize);
|
||||||
|
}
|
||||||
|
|
||||||
[CCode (cheader_filename = "midori/midori-view.h", cprefix = "MIDORI_DOWNLOAD_")]
|
[CCode (cheader_filename = "midori/midori-view.h", cprefix = "MIDORI_DOWNLOAD_")]
|
||||||
public enum DownloadType {
|
public enum DownloadType {
|
||||||
CANCEL,
|
CANCEL,
|
||||||
|
|
|
@ -9,10 +9,6 @@
|
||||||
See the file COPYING for the full license text.
|
See the file COPYING for the full license text.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Katze {
|
|
||||||
extern static string assert_str_equal (string input, string result, string expected);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct TestCase {
|
struct TestCase {
|
||||||
public string data;
|
public string data;
|
||||||
public string? expected;
|
public string? expected;
|
||||||
|
|
46
tests/searchaction.vala
Normal file
46
tests/searchaction.vala
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2012 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
struct FormSpec {
|
||||||
|
public string html;
|
||||||
|
public Pango.EllipsizeMode ellipsize;
|
||||||
|
public string? uri;
|
||||||
|
public string? title;
|
||||||
|
}
|
||||||
|
|
||||||
|
const FormSpec[] forms = {
|
||||||
|
{ "<form></form>", Pango.EllipsizeMode.END, null, null },
|
||||||
|
{ "<form><input></form>", Pango.EllipsizeMode.END, null, null }
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
void searchaction_form () {
|
||||||
|
/*
|
||||||
|
foreach (var form in forms) {
|
||||||
|
var view = new Midori.View.with_title ();
|
||||||
|
view.get_web_view ().load_html_string (form.html, "");
|
||||||
|
Katze.Item? result = Midori.SearchAction.get_engine_for_form (
|
||||||
|
view.get_web_view (), form.ellipsize);
|
||||||
|
Katze.assert_str_equal (form.html,
|
||||||
|
result != null ? result.uri : null, form.uri);
|
||||||
|
Katze.assert_str_equal (form.html,
|
||||||
|
result != null ? result.name : null, form.title);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
void main (string[] args) {
|
||||||
|
Test.init (ref args);
|
||||||
|
Test.add_func ("/searchaction/form", searchaction_form);
|
||||||
|
Test.run ();
|
||||||
|
}
|
||||||
|
|
|
@ -16,10 +16,6 @@ string get_test_file (string contents) {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Katze {
|
|
||||||
extern static string assert_str_equal (string input, string result, string expected);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void speeddial_load () {
|
static void speeddial_load () {
|
||||||
string data = get_test_file ("""
|
string data = get_test_file ("""
|
||||||
[Dial 1]
|
[Dial 1]
|
||||||
|
|
Loading…
Reference in a new issue