[Xfce4-commits] <midori:master> Add basic formhistory unit test and assertions
Christian Dywan
noreply at xfce.org
Fri Dec 7 20:20:04 CET 2012
Updating branch refs/heads/master
to 89bcd9e540800e86c544b95d7f2db1f0704ac678 (commit)
from d107b6e07496eb6eeca4ee10bfaa9d5afb9844a0 (commit)
commit 89bcd9e540800e86c544b95d7f2db1f0704ac678
Author: Christian Dywan <christian at twotoasts.de>
Date: Fri Dec 7 20:17:52 2012 +0100
Add basic formhistory unit test and assertions
extensions/formhistory/formhistory-gdom-frontend.c | 4 +-
extensions/formhistory/formhistory-js-frontend.c | 4 +-
extensions/formhistory/formhistory.c | 84 +++++++++++--------
midori/midori-extension.c | 3 +-
4 files changed, 52 insertions(+), 43 deletions(-)
diff --git a/extensions/formhistory/formhistory-gdom-frontend.c b/extensions/formhistory/formhistory-gdom-frontend.c
index 76e0361..b601f35 100644
--- a/extensions/formhistory/formhistory-gdom-frontend.c
+++ b/extensions/formhistory/formhistory-gdom-frontend.c
@@ -14,9 +14,7 @@
FormHistoryPriv*
formhistory_private_new ()
{
- FormHistoryPriv* priv;
-
- priv = g_slice_new (FormHistoryPriv);
+ FormHistoryPriv* priv = g_slice_new (FormHistoryPriv);
priv->oldkeyword = g_strdup ("");
priv->selection_index = -1;
return priv;
diff --git a/extensions/formhistory/formhistory-js-frontend.c b/extensions/formhistory/formhistory-js-frontend.c
index ec64d7a..2596335 100644
--- a/extensions/formhistory/formhistory-js-frontend.c
+++ b/extensions/formhistory/formhistory-js-frontend.c
@@ -13,9 +13,7 @@
FormHistoryPriv*
formhistory_private_new ()
{
- FormHistoryPriv* priv;
-
- priv = g_slice_new (FormHistoryPriv);
+ FormHistoryPriv* priv = g_slice_new (FormHistoryPriv);
return priv;
}
diff --git a/extensions/formhistory/formhistory.c b/extensions/formhistory/formhistory.c
index fca8aad..d999cd4 100644
--- a/extensions/formhistory/formhistory.c
+++ b/extensions/formhistory/formhistory.c
@@ -29,8 +29,7 @@ formhistory_update_database (gpointer db,
if (!(value && *value))
return;
- sqlcmd = sqlite3_mprintf ("INSERT INTO forms VALUES"
- "('%q', '%q', '%q')",
+ sqlcmd = sqlite3_mprintf ("INSERT INTO forms VALUES('%q', '%q', '%q')",
host, key, value);
success = sqlite3_exec (db, sqlcmd, NULL, NULL, &errmsg);
sqlite3_free (sqlcmd);
@@ -44,16 +43,21 @@ formhistory_update_database (gpointer db,
static gchar*
formhistory_get_login_data (gpointer db,
- const gchar* domain)
+ const gchar* uri)
{
+ gchar* domain;
static sqlite3_stmt* stmt;
- const char* sqlcmd;
gint result;
gchar* value = NULL;
+ g_return_val_if_fail (db != NULL, NULL);
+ g_return_val_if_fail (uri != NULL, NULL);
+ domain = midori_uri_parse_hostname (uri, NULL);
+ g_return_val_if_fail (domain != NULL, NULL);
+
if (!stmt)
{
- sqlcmd = "SELECT value FROM forms WHERE domain = ?1 and field = 'MidoriPasswordManager' limit 1";
+ const gchar* sqlcmd = "SELECT value FROM forms WHERE domain = ?1 and field = 'MidoriPasswordManager' limit 1";
sqlite3_prepare_v2 (db, sqlcmd, strlen (sqlcmd) + 1, &stmt, NULL);
}
sqlite3_bind_text (stmt, 1, domain, -1, NULL);
@@ -62,6 +66,7 @@ formhistory_get_login_data (gpointer db,
value = g_strdup ((gchar*)sqlite3_column_text (stmt, 0));
sqlite3_reset (stmt);
sqlite3_clear_bindings (stmt);
+ g_free (domain);
return value;
}
@@ -233,18 +238,13 @@ formhistory_navigation_decision_cb (WebKitWebView* web_view,
#if WEBKIT_CHECK_VERSION (1, 3, 8)
else
{
- gchar* data;
- gchar* domain;
#if 0
FormhistoryPasswordEntry* entry;
#endif
-
- domain = midori_uri_parse_hostname (webkit_web_frame_get_uri (web_frame), NULL);
- data = formhistory_get_login_data (priv->db, domain);
+ gchar* data = formhistory_get_login_data (priv->db, webkit_web_frame_get_uri (web_frame));
if (data)
{
g_free (data);
- g_free (domain);
break;
}
#if 0
@@ -367,7 +367,6 @@ formhistory_frame_loaded_cb (WebKitWebView* web_view,
FormHistoryPriv* priv;
JSContextRef js_context;
gchar* data;
- gchar* domain;
gchar* count;
page_uri = webkit_web_frame_get_uri (web_frame);
@@ -385,9 +384,7 @@ formhistory_frame_loaded_cb (WebKitWebView* web_view,
g_free (count);
priv = g_object_get_data (G_OBJECT (extension), "priv");
- domain = midori_uri_parse_hostname (webkit_web_frame_get_uri (web_frame), NULL);
- data = formhistory_get_login_data (priv->db, domain);
- g_free (domain);
+ data = formhistory_get_login_data (priv->db, webkit_web_frame_get_uri (web_frame));
if (!data)
return;
@@ -504,31 +501,21 @@ formhistory_deactivate_cb (MidoriExtension* extension,
formhistory_private_destroy (priv);
}
-static void
-formhistory_activate_cb (MidoriExtension* extension,
- MidoriApp* app)
+static FormHistoryPriv*
+formhistory_new (const gchar* config_dir)
{
- const gchar* config_dir;
gchar* filename;
sqlite3* db;
char* errmsg = NULL, *errmsg2 = NULL;
- KatzeArray* browsers;
- MidoriBrowser* browser;
- FormHistoryPriv* priv;
-
- priv = formhistory_private_new ();
+ FormHistoryPriv* priv = formhistory_private_new ();
priv->master_password = NULL;
priv->master_password_canceled = 0;
formhistory_construct_popup_gui (priv);
- config_dir = midori_extension_get_config_dir (extension);
- if (config_dir != NULL)
- katze_mkdir_with_parents (config_dir, 0700);
filename = g_build_filename (config_dir, "forms.db", NULL);
if (sqlite3_open (filename, &db) != SQLITE_OK)
{
- if (config_dir != NULL)
- g_warning (_("Failed to open database: %s\n"), sqlite3_errmsg (db));
+ g_warning (_("Failed to open database: %s\n"), sqlite3_errmsg (db));
sqlite3_close (db);
}
g_free (filename);
@@ -556,14 +543,23 @@ formhistory_activate_cb (MidoriExtension* extension,
}
sqlite3_close (db);
}
+ return priv;
+}
+static void
+formhistory_activate_cb (MidoriExtension* extension,
+ MidoriApp* app)
+{
+ const gchar* config_dir = midori_extension_get_config_dir (extension);
+ FormHistoryPriv* priv = formhistory_new (config_dir);
+ KatzeArray* browsers = katze_object_get_object (app, "browsers");
+ MidoriBrowser* browser;
g_object_set_data (G_OBJECT (extension), "priv", priv);
- browsers = katze_object_get_object (app, "browsers");
+
KATZE_ARRAY_FOREACH_ITEM (browser, browsers)
formhistory_app_add_browser_cb (app, browser, extension);
g_signal_connect (app, "add-browser",
G_CALLBACK (formhistory_app_add_browser_cb), extension);
-
g_object_unref (browsers);
}
@@ -658,13 +654,31 @@ formhistory_toggle_state_cb (GtkAction* action,
formhistory_add_tab_cb (browser, view, extension);
}
-MidoriExtension*
-extension_init (void)
+static void
+test_formhistory_login (void)
{
- MidoriExtension* extension;
+ gchar* config_dir = midori_paths_get_extension_config_dir ("formhistory");
+ FormHistoryPriv* priv = formhistory_new (config_dir);
+ g_free (formhistory_get_login_data (priv->db, "http://example.com"));
+ g_free (formhistory_get_login_data (priv->db, "http://beispiel.de"));
+ formhistory_update_database (priv->db, "http://example.com", "MidoriPasswordManager", "lalelu");
+ formhistory_update_database (priv->db, NULL, "spam", "eggs");
+ g_free (formhistory_get_login_data (priv->db, "http://example.com"));
+ g_free (formhistory_get_login_data (priv->db, "http://beispiel.de"));
+ g_free (config_dir);
+ formhistory_private_destroy (priv);
+}
+void
+extension_test (void)
+{
+ g_test_add_func ("/extensions/formhistory/login", test_formhistory_login);
+}
- extension = g_object_new (MIDORI_TYPE_EXTENSION,
+MidoriExtension*
+extension_init (void)
+{
+ MidoriExtension* extension = g_object_new (MIDORI_TYPE_EXTENSION,
"name", _("Form history filler"),
"description", _("Stores history of entered form data"),
"version", "2.0" MIDORI_VERSION_SUFFIX,
diff --git a/midori/midori-extension.c b/midori/midori-extension.c
index 61f4428..6f1d156 100644
--- a/midori/midori-extension.c
+++ b/midori/midori-extension.c
@@ -841,8 +841,7 @@ static void
midori_extension_save_settings (MidoriExtension *extension)
{
GError* error = NULL;
- gchar* config_file = g_build_filename (extension->priv->config_dir,
- "config", NULL);
+ gchar* config_file = g_build_filename (extension->priv->config_dir, "config", NULL);
katze_mkdir_with_parents (extension->priv->config_dir, 0700);
sokoke_key_file_save_to_file (extension->priv->key_file, config_file, &error);
if (error)
More information about the Xfce4-commits
mailing list