Updating branch refs/heads/master
         to 89bcd9e540800e86c544b95d7f2db1f0704ac678 (commit)
       from d107b6e07496eb6eeca4ee10bfaa9d5afb9844a0 (commit)

commit 89bcd9e540800e86c544b95d7f2db1f0704ac678
Author: Christian Dywan <christ...@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)
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to