[tepl] Metadata unit tests: more tests
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl] Metadata unit tests: more tests
- Date: Mon, 11 May 2020 16:19:30 +0000 (UTC)
commit 459ff436e7266aff78d1b52d17ebcb44252bb01a
Author: Sébastien Wilmet <swilmet gnome org>
Date: Mon May 11 17:33:19 2020 +0200
Metadata unit tests: more tests
.../expected-to-succeed-01-trim-after.xml | 5 +
.../expected-to-succeed-01-trim-before.xml | 11 ++
testsuite/test-metadata-manager.c | 139 +++++++++++++++++----
3 files changed, 129 insertions(+), 26 deletions(-)
---
diff --git a/testsuite/test-metadata-manager-data/expected-to-succeed-01-trim-after.xml
b/testsuite/test-metadata-manager-data/expected-to-succeed-01-trim-after.xml
new file mode 100644
index 0000000..b6bbb63
--- /dev/null
+++ b/testsuite/test-metadata-manager-data/expected-to-succeed-01-trim-after.xml
@@ -0,0 +1,5 @@
+<metadata>
+ <document uri="file:///home/seb/test-semicolon.csv" atime="1585677677045">
+ <entry key="gcsvedit-delimiter" value=";"/>
+ </document>
+</metadata>
diff --git a/testsuite/test-metadata-manager-data/expected-to-succeed-01-trim-before.xml
b/testsuite/test-metadata-manager-data/expected-to-succeed-01-trim-before.xml
new file mode 100644
index 0000000..a8ecd01
--- /dev/null
+++ b/testsuite/test-metadata-manager-data/expected-to-succeed-01-trim-before.xml
@@ -0,0 +1,11 @@
+<metadata>
+ <document uri="file:///home/seb/test-comma.csv" atime="1577345634724">
+ <entry key="gcsvedit-delimiter" value=","/>
+ </document>
+ <document uri="file:///home/seb/test-semicolon.csv" atime="1585677677045">
+ <entry key="gcsvedit-delimiter" value=";"/>
+ </document>
+ <document uri="file:///home/seb/test-other.csv" atime="1577345634724">
+ <entry key="gcsvedit-delimiter" value=","/>
+ </document>
+</metadata>
diff --git a/testsuite/test-metadata-manager.c b/testsuite/test-metadata-manager.c
index 90de5e4..57c2f5d 100644
--- a/testsuite/test-metadata-manager.c
+++ b/testsuite/test-metadata-manager.c
@@ -16,6 +16,63 @@ check_get (TeplMetadata *metadata,
g_free (received_value);
}
+static GFile *
+get_store_file_for_test_data_filename (const gchar *filename)
+{
+ return g_file_new_build_filename (UNIT_TESTS_SOURCE_DIR,
+ "test-metadata-manager-data",
+ filename,
+ NULL);
+}
+
+static gchar *
+get_file_content (GFile *file)
+{
+ GError *error = NULL;
+ gchar *file_content = NULL;
+
+ g_file_load_contents (file, NULL, &file_content, NULL, NULL, &error);
+ g_assert_no_error (error);
+ g_assert_true (file_content != NULL);
+
+ return file_content;
+}
+
+static void
+check_equal_file_content (GFile *file1,
+ GFile *file2)
+{
+ gchar *file1_content = get_file_content (file1);
+ gchar *file2_content = get_file_content (file2);
+
+ g_assert_true (g_str_equal (file1_content, file2_content));
+
+ g_free (file1_content);
+ g_free (file2_content);
+}
+
+static GFile *
+save_metadata_manager (void)
+{
+ GFile *tmp_file;
+ TeplMetadataManager *manager;
+ GError *error = NULL;
+
+ tmp_file = g_file_new_build_filename (g_get_tmp_dir (), "tepl-test-metadata-manager.xml", NULL);
+ g_file_delete (tmp_file, NULL, &error);
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
+ {
+ g_clear_error (&error);
+ }
+ g_assert_no_error (error);
+
+ manager = tepl_metadata_manager_get_singleton ();
+ tepl_metadata_manager_save_to_disk (manager, tmp_file, TRUE, &error);
+ g_assert_no_error (error);
+
+ return tmp_file;
+}
+
static void
test_merge_into_and_copy_from_part1 (void)
{
@@ -121,7 +178,8 @@ test_merge_into_and_copy_from_part3 (void)
}
static void
-check_load_from_disk_expected_to_fail (const gchar *filename)
+check_load_from_disk (const gchar *filename,
+ gboolean expect_to_succeed)
{
TeplMetadataManager *manager;
GFile *file;
@@ -129,14 +187,17 @@ check_load_from_disk_expected_to_fail (const gchar *filename)
manager = tepl_metadata_manager_get_singleton ();
- file = g_file_new_build_filename (UNIT_TESTS_SOURCE_DIR,
- "test-metadata-manager-data",
- filename,
- NULL);
-
+ file = get_store_file_for_test_data_filename (filename);
tepl_metadata_manager_load_from_disk (manager, file, &error);
- g_assert_true (error != NULL);
- g_error_free (error);
+ if (expect_to_succeed)
+ {
+ g_assert_no_error (error);
+ }
+ else
+ {
+ g_assert_true (error != NULL);
+ g_error_free (error);
+ }
g_object_unref (file);
_tepl_metadata_manager_unref_singleton ();
@@ -145,14 +206,21 @@ check_load_from_disk_expected_to_fail (const gchar *filename)
static void
test_load_from_disk_expected_to_fail (void)
{
- check_load_from_disk_expected_to_fail ("expected-to-fail-00-empty.xml");
- check_load_from_disk_expected_to_fail ("expected-to-fail-01.xml");
- check_load_from_disk_expected_to_fail ("expected-to-fail-02.xml");
- check_load_from_disk_expected_to_fail ("expected-to-fail-03.xml");
- check_load_from_disk_expected_to_fail ("expected-to-fail-04.xml");
- check_load_from_disk_expected_to_fail ("expected-to-fail-05.xml");
- check_load_from_disk_expected_to_fail ("expected-to-fail-06.xml");
- check_load_from_disk_expected_to_fail ("expected-to-fail-07-garbage.xml");
+ check_load_from_disk ("expected-to-fail-00-empty.xml", FALSE);
+ check_load_from_disk ("expected-to-fail-01.xml", FALSE);
+ check_load_from_disk ("expected-to-fail-02.xml", FALSE);
+ check_load_from_disk ("expected-to-fail-03.xml", FALSE);
+ check_load_from_disk ("expected-to-fail-04.xml", FALSE);
+ check_load_from_disk ("expected-to-fail-05.xml", FALSE);
+ check_load_from_disk ("expected-to-fail-06.xml", FALSE);
+ check_load_from_disk ("expected-to-fail-07-garbage.xml", FALSE);
+}
+
+static void
+test_load_from_disk_expected_to_succeed (void)
+{
+ check_load_from_disk ("expected-to-succeed-01-trim-before.xml", TRUE);
+ check_load_from_disk ("expected-to-succeed-01-trim-after.xml", TRUE);
}
static void
@@ -174,16 +242,7 @@ check_value_round_trip (const gchar *value)
g_object_unref (metadata);
/* Save to disk */
- store_file = g_file_new_build_filename (g_get_tmp_dir (), "tepl-test-metadata-manager.xml", NULL);
- g_file_delete (store_file, NULL, &error);
- if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
- {
- g_clear_error (&error);
- }
- g_assert_no_error (error);
-
- tepl_metadata_manager_save_to_disk (manager, store_file, TRUE, &error);
- g_assert_no_error (error);
+ store_file = save_metadata_manager ();
_tepl_metadata_manager_unref_singleton ();
/* Load from disk */
@@ -215,6 +274,32 @@ test_value_round_trip (void)
//check_value_round_trip ("\t"); // FIXME: fails.
}
+static void
+test_trim (void)
+{
+ TeplMetadataManager *manager;
+ GFile *file_before;
+ GFile *file_after;
+ GFile *expected_file_after;
+ GError *error = NULL;
+
+ manager = tepl_metadata_manager_get_singleton ();
+ file_before = get_store_file_for_test_data_filename ("expected-to-succeed-01-trim-before.xml");
+ tepl_metadata_manager_load_from_disk (manager, file_before, &error);
+ g_assert_no_error (error);
+
+ tepl_metadata_manager_trim (manager, 1);
+
+ file_after = save_metadata_manager ();
+ expected_file_after = get_store_file_for_test_data_filename ("expected-to-succeed-01-trim-after.xml");
+ check_equal_file_content (file_after, expected_file_after);
+
+ g_object_unref (file_before);
+ g_object_unref (file_after);
+ g_object_unref (expected_file_after);
+ _tepl_metadata_manager_unref_singleton ();
+}
+
int
main (int argc,
char **argv)
@@ -225,7 +310,9 @@ main (int argc,
g_test_add_func ("/metadata_manager/merge_into_and_copy_from_part2",
test_merge_into_and_copy_from_part2);
g_test_add_func ("/metadata_manager/merge_into_and_copy_from_part3",
test_merge_into_and_copy_from_part3);
g_test_add_func ("/metadata_manager/load_from_disk_expected_to_fail",
test_load_from_disk_expected_to_fail);
+ g_test_add_func ("/metadata_manager/load_from_disk_expected_to_succeed",
test_load_from_disk_expected_to_succeed);
g_test_add_func ("/metadata_manager/value_round_trip", test_value_round_trip);
+ g_test_add_func ("/metadata_manager/trim", test_trim);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]