diff options
Diffstat (limited to 'libappstream-glib/as-self-test.c')
-rw-r--r-- | libappstream-glib/as-self-test.c | 356 |
1 files changed, 0 insertions, 356 deletions
diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c index 7e56e60..bb6b0dc 100644 --- a/libappstream-glib/as-self-test.c +++ b/libappstream-glib/as-self-test.c @@ -36,7 +36,6 @@ #include "as-icon-private.h" #include "as-image-private.h" #include "as-review-private.h" -#include "as-inf.h" #include "as-markup.h" #include "as-monitor.h" #include "as-node-private.h" @@ -2173,52 +2172,6 @@ as_test_app_parse_file_desktop_func (void) } static void -as_test_app_parse_file_inf_func (void) -{ - AsIcon *ic; - AsRelease *rel; - GError *error = NULL; - GPtrArray *releases; - gboolean ret; - g_autofree gchar *filename = NULL; - g_autoptr(AsApp) app = NULL; - - /* create an AsApp from a desktop file */ - app = as_app_new (); - filename = as_test_get_filename ("example.inf"); - ret = as_app_parse_file (app, - filename, - AS_APP_PARSE_FLAG_NONE, - &error); - g_assert_no_error (error); - g_assert (ret); - - /* test things we found */ - g_assert_cmpstr (as_app_get_name (app, "C"), ==, "ColorHug Firmware"); - g_assert_cmpstr (as_app_get_comment (app, "C"), ==, - "Firmware for the ColorHug Colorimeter"); - g_assert_cmpstr (as_app_get_source_file (app), ==, filename); - g_assert_cmpstr (as_app_get_id (app), ==, "84f40464-9272-4ef7-9399-cd95f12da695"); - - /* check icon */ - g_assert_cmpint (as_app_get_icons(app)->len, ==, 1); - ic = as_app_get_icon_default (app); - g_assert (ic != NULL); - g_assert_cmpstr (as_icon_get_name (ic), ==, "application-x-executable"); - g_assert_cmpint (as_icon_get_kind (ic), ==, AS_ICON_KIND_STOCK); - g_assert_cmpint (as_icon_get_width (ic), ==, 0); - g_assert_cmpint (as_icon_get_height (ic), ==, 0); - - /* check releases */ - releases = as_app_get_releases (app); - g_assert_cmpint (releases->len, ==, 1); - rel = g_ptr_array_index (releases, 0); - g_assert_cmpint ((gint32) as_release_get_timestamp (rel), ==, 1425340800); - g_assert_cmpstr (as_release_get_version (rel), ==, "0.2.2"); - //g_assert_cmpstr (as_release_get_description (rel), ==, "XXX"); -} - -static void as_test_app_no_markup_func (void) { GError *error = NULL; @@ -4653,313 +4606,6 @@ as_test_utils_vercmp_func (void) } static void -as_test_inf_func (void) -{ - GError *error = NULL; - GKeyFile *kf; - const gchar *data; - gboolean ret; - gchar *tmp; - guint64 ts; - g_autoptr(GDir) dir = NULL; - g_autofree gchar *filename = NULL; - g_autofree gchar *infs = NULL; - - /* case insensitive */ - kf = g_key_file_new (); - ret = as_inf_load_data (kf, "[Version]\nClass=Firmware", - AS_INF_LOAD_FLAG_CASE_INSENSITIVE, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "version", "class", NULL); - g_assert_cmpstr (tmp, ==, "Firmware"); - g_free (tmp); - - /* section merging */ - ret = as_inf_load_data (kf, "[Version]\nPnpLockdown=1", 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "version", "class", NULL); - g_assert_cmpstr (tmp, ==, "Firmware"); - g_free (tmp); - tmp = g_key_file_get_string (kf, "Version", "PnpLockdown", NULL); - g_assert_cmpstr (tmp, ==, "1"); - g_free (tmp); - - /* dequoting */ - ret = as_inf_load_data (kf, "[Version]\n" - "PnpLockdown = \" 2 \"\n" - "Empty = \"\"", 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Version", "PnpLockdown", NULL); - g_assert_cmpstr (tmp, ==, " 2 "); - g_free (tmp); - tmp = g_key_file_get_string (kf, "Version", "Empty", NULL); - g_assert_cmpstr (tmp, ==, ""); - g_free (tmp); - - /* autovalues */ - ret = as_inf_load_data (kf, "[RandomList]\nfilename.cap", 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "RandomList", "value000", NULL); - g_assert_cmpstr (tmp, ==, "filename.cap"); - g_free (tmp); - - /* autovalues with quotes */ - ret = as_inf_load_data (kf, "[RandomList2]\n\"SomeRandomValue=1\"", 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "RandomList2", "value000", NULL); - g_assert_cmpstr (tmp, ==, "SomeRandomValue=1"); - g_free (tmp); - - /* Dirids */ - ret = as_inf_load_data (kf, "[DriverServiceInst]\nServiceBinary=%12%\\service.exe", 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "DriverServiceInst", "ServiceBinary", NULL); - g_assert_cmpstr (tmp, ==, "/tmp/service.exe"); - g_free (tmp); - - /* comments */ - data = "; group priority\n" - "[Metadata] ; similar to [Version]\n" - "Vendor=Hughski ; vendor name\n" - "Owner=\"Richard; Ania\"\n" - "; device name priority\n" - "Device=\"ColorHug\" ; device name"; - ret = as_inf_load_data (kf, data, 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Metadata", "Vendor", NULL); - g_assert_cmpstr (tmp, ==, "Hughski"); - g_free (tmp); - tmp = g_key_file_get_string (kf, "Metadata", "Device", NULL); - g_assert_cmpstr (tmp, ==, "ColorHug"); - g_free (tmp); - tmp = g_key_file_get_string (kf, "Metadata", "Owner", NULL); - g_assert_cmpstr (tmp, ==, "Richard; Ania"); - g_free (tmp); - - /* comment values */ - tmp = g_key_file_get_comment (kf, "Metadata", "Vendor", NULL); - g_assert_cmpstr (tmp, ==, "vendor name\n"); - g_free (tmp); - tmp = g_key_file_get_comment (kf, "Metadata", "Device", NULL); - g_assert_cmpstr (tmp, ==, "device name priority\n"); - g_free (tmp); - tmp = g_key_file_get_comment (kf, "Metadata", "Owner", NULL); - g_assert_cmpstr (tmp, ==, NULL); - g_free (tmp); -// tmp = g_key_file_get_comment (kf, "metadata", NULL, NULL); -// g_assert_cmpstr (tmp, ==, "group priority"); -// g_free (tmp); - - /* strings substitution */ - data = "[Version]\n" - "Provider=Vendor was %Provider% now %Unknown% Ltd\n" - "[Strings]\n" - "Provider=Hughski\n"; - ret = as_inf_load_data (kf, data, 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Version", "Provider", NULL); - g_assert_cmpstr (tmp, ==, "Vendor was Hughski now %Unknown% Ltd"); - g_free (tmp); - - /* continued lines */ - data = "[Version]\n" - "Provider=Richard & \\\n" - "Ania & \\\n" - "Friends"; - ret = as_inf_load_data (kf, data, 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Version", "Provider", NULL); - g_assert_cmpstr (tmp, ==, "Richard & Ania & Friends"); - g_free (tmp); - - /* multiline value */ - data = "[Metadata]\n" - "UpdateDescription = \"This is a very \"long\" update \" |\n" - " \"description designed to be shown \" |\n" - " \"to the end user.\""; - ret = as_inf_load_data (kf, data, 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Metadata", "UpdateDescription", NULL); - g_assert_cmpstr (tmp, ==, "This is a very \"long\" update description " - "designed to be shown to the end user."); - g_free (tmp); - - /* substitution as the key name */ - data = "[Version]\n" - "%Manufacturer.Foo% = \"Devices\"\n" - "[Strings]\n" - "Manufacturer.Foo = \"Hughski\"\n"; - ret = as_inf_load_data (kf, data, 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Version", "Hughski", NULL); - g_assert_cmpstr (tmp, ==, "Devices"); - g_free (tmp); - - /* key names with double quotes */ - ret = as_inf_load_data (kf, "[\"Firmware\"]\nFoo=Bar\n", 0, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Firmware", "Foo", NULL); - g_assert_cmpstr (tmp, ==, "Bar"); - g_free (tmp); - - /* unbalanced quotes */ - ret = as_inf_load_data (kf, "[Version]\nProvider = \"Hughski\n", - AS_INF_LOAD_FLAG_STRICT, &error); - g_assert_error (error, AS_INF_ERROR, AS_INF_ERROR_FAILED); - g_assert (!ret); - g_clear_error (&error); - ret = as_inf_load_data (kf, "[Version]\nProvider = \"Hughski\n", - AS_INF_LOAD_FLAG_NONE, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Version", "Provider", NULL); - g_assert_cmpstr (tmp, ==, "Hughski"); - g_free (tmp); - - /* missing string replacement */ - ret = as_inf_load_data (kf, "[Version]\nProvider = \"%MISSING%\"\n", - AS_INF_LOAD_FLAG_STRICT, &error); - g_assert_error (error, AS_INF_ERROR, AS_INF_ERROR_FAILED); - g_assert (!ret); - g_clear_error (&error); - ret = as_inf_load_data (kf, "[Version]\nProvider = \"%MISSING%\"\n", - AS_INF_LOAD_FLAG_NONE, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Version", "Provider", NULL); - g_assert_cmpstr (tmp, ==, "%MISSING%"); - g_free (tmp); - - /* invalid UTF-8 */ - ret = as_inf_load_data (kf, "[Version]\nProvider = Hughski \x99\n", - AS_INF_LOAD_FLAG_STRICT, &error); - g_assert_error (error, AS_INF_ERROR, AS_INF_ERROR_FAILED); - g_assert (!ret); - g_clear_error (&error); - ret = as_inf_load_data (kf, "[Version]\nProvider = Hughski \x99\n", - AS_INF_LOAD_FLAG_NONE, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = g_key_file_get_string (kf, "Version", "Provider", NULL); - g_assert_cmpstr (tmp, ==, "Hughski ?"); - g_free (tmp); - - g_key_file_unref (kf); - - /* parse file */ - kf = g_key_file_new (); - filename = as_test_get_filename ("example.inf"); - ret = as_inf_load_file (kf, filename, 0, &error); - g_assert_no_error (error); - g_assert (ret); - - /* simple */ - tmp = g_key_file_get_string (kf, "Version", "Class", NULL); - g_assert_cmpstr (tmp, ==, "Firmware"); - g_free (tmp); - - /* HK */ - tmp = g_key_file_get_string (kf, "Firmware_AddReg", "HKR_FirmwareId", NULL); - g_assert_cmpstr (tmp, ==, "{84f40464-9272-4ef7-9399-cd95f12da695}"); - g_free (tmp); - tmp = g_key_file_get_string (kf, "Firmware_AddReg", "HKR_FirmwareVersion_0x00010001", NULL); - g_assert_cmpstr (tmp, ==, "0x00020002"); - g_free (tmp); - tmp = g_key_file_get_string (kf, "Firmware_AddReg", "HKR_FirmwareFilename", NULL); - g_assert_cmpstr (tmp, ==, "firmware.bin"); - g_free (tmp); - - /* key replacement */ - tmp = g_key_file_get_string (kf, "Firmware_CopyFiles", "value000", NULL); - g_assert_cmpstr (tmp, ==, "firmware.bin"); - g_free (tmp); - - /* double quotes swallowing */ - tmp = g_key_file_get_string (kf, "Strings", "FirmwareDesc", NULL); - g_assert_cmpstr (tmp, ==, "ColorHug Firmware"); - g_free (tmp); - - /* string replacement */ - tmp = g_key_file_get_string (kf, "Version", "Provider", NULL); - g_assert_cmpstr (tmp, ==, "Hughski"); - g_free (tmp); - - /* valid DriverVer */ - ret = as_inf_load_data (kf, "[Version]\n" - "DriverVer = \"03/01/2015,2.0.0\"\n", - AS_INF_LOAD_FLAG_NONE, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = as_inf_get_driver_version (kf, &ts, &error); - g_assert_no_error (error); - g_assert_cmpstr (tmp, ==, "2.0.0"); - g_assert_cmpint ((gint32) ts, ==, 1425168000); - g_free (tmp); - - /* invalid DriverVer date */ - ret = as_inf_load_data (kf, "[Version]\n" - "DriverVer = \"13/01/2015,2.0.0\"\n", - AS_INF_LOAD_FLAG_NONE, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = as_inf_get_driver_version (kf, &ts, &error); - g_assert_error (error, AS_INF_ERROR, AS_INF_ERROR_INVALID_TYPE); - g_assert_cmpstr (tmp, ==, NULL); - g_clear_error (&error); - - /* no DriverVer date */ - ret = as_inf_load_data (kf, "[Version]\n" - "DriverVer = \"2.0.0\"\n", - AS_INF_LOAD_FLAG_NONE, &error); - g_assert_no_error (error); - g_assert (ret); - tmp = as_inf_get_driver_version (kf, &ts, &error); - g_assert_error (error, AS_INF_ERROR, AS_INF_ERROR_INVALID_TYPE); - g_assert_cmpstr (tmp, ==, NULL); - g_clear_error (&error); - - g_key_file_unref (kf); - - /* test every .inf file from my Windows XP installation disk */ - infs = as_test_get_filename ("infs"); - if (infs != NULL) { - dir = g_dir_open (infs, 0, NULL); - while ((data = g_dir_read_name (dir)) != NULL) { - g_autofree gchar *path = NULL; - path = g_build_filename (infs, data, NULL); - kf = g_key_file_new (); - ret = as_inf_load_file (kf, path, - AS_INF_LOAD_FLAG_NONE, - &error); - if (g_error_matches (error, - AS_INF_ERROR, - AS_INF_ERROR_INVALID_TYPE)) { - g_clear_error (&error); - } else { - if (error != NULL) - g_print ("Failed to process: %s\n", - path); - g_assert_no_error (error); - g_assert (ret); - } - g_key_file_unref (kf); - } - } -} - -static void as_test_utils_install_filename_func (void) { gboolean ret; @@ -5260,11 +4906,9 @@ main (int argc, char **argv) g_test_add_func ("/AppStream/app{validate-meta-bad}", as_test_app_validate_meta_bad_func); g_test_add_func ("/AppStream/app{validate-intltool}", as_test_app_validate_intltool_func); g_test_add_func ("/AppStream/app{parse-file:desktop}", as_test_app_parse_file_desktop_func); - g_test_add_func ("/AppStream/app{parse-file:inf}", as_test_app_parse_file_inf_func); g_test_add_func ("/AppStream/app{no-markup}", as_test_app_no_markup_func); g_test_add_func ("/AppStream/app{subsume}", as_test_app_subsume_func); g_test_add_func ("/AppStream/app{search}", as_test_app_search_func); - g_test_add_func ("/AppStream/inf", as_test_inf_func); g_test_add_func ("/AppStream/markup{import-html}", as_test_markup_import_html); g_test_add_func ("/AppStream/node", as_test_node_func); g_test_add_func ("/AppStream/node{reflow}", as_test_node_reflow_text_func); |