[tepl] MetadataStore: moar unit tests!



commit 115a632812c38d6f089af77ec9b2b7a3c6d50f12
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Apr 1 00:48:13 2020 +0200

    MetadataStore: moar unit tests!
    
    Nice, found another bug.

 tepl/tepl-metadata-store.c                          |  1 +
 testsuite/test-metadata-store.c                     | 21 +++++++++++++++++++++
 .../test-metadata-store/document-with-no-entry.xml  |  4 ++++
 testsuite/test-metadata-store/empty-key.xml         |  5 +++++
 .../test-metadata-store/expected-to-fail-01.xml     |  2 ++
 .../test-metadata-store/expected-to-fail-02.xml     |  4 ++++
 .../test-metadata-store/expected-to-fail-03.xml     |  5 +++++
 .../test-metadata-store/expected-to-fail-04.xml     |  5 +++++
 .../test-metadata-store/expected-to-fail-05.xml     |  5 +++++
 .../test-metadata-store/expected-to-fail-06.xml     |  5 +++++
 .../test-metadata-store/new-format-version.xml      |  6 ++++++
 11 files changed, 63 insertions(+)
---
diff --git a/tepl/tepl-metadata-store.c b/tepl/tepl-metadata-store.c
index 2e340c7..1062470 100644
--- a/tepl/tepl-metadata-store.c
+++ b/tepl/tepl-metadata-store.c
@@ -545,6 +545,7 @@ parse_entry_element (GMarkupParseContext  *context,
                                     G_MARKUP_ERROR_MISSING_ATTRIBUTE,
                                     /* Translators: do not translate <entry>, “key” and “value”. */
                                     _("The <entry> element must contain the “key” and “value” attributes."));
+               return;
        }
 
        insert_entry_to_current_document (parsing_data, key, value);
diff --git a/testsuite/test-metadata-store.c b/testsuite/test-metadata-store.c
index 3bd1814..4f337cd 100644
--- a/testsuite/test-metadata-store.c
+++ b/testsuite/test-metadata-store.c
@@ -185,6 +185,26 @@ static void
 test_expected_to_fail (void)
 {
        check_load_test_data_filename ("expected-to-fail-00-empty.xml");
+       check_load_test_data_filename ("expected-to-fail-01.xml");
+       check_load_test_data_filename ("expected-to-fail-02.xml");
+       check_load_test_data_filename ("expected-to-fail-03.xml");
+       check_load_test_data_filename ("expected-to-fail-04.xml");
+       check_load_test_data_filename ("expected-to-fail-05.xml");
+       check_load_test_data_filename ("expected-to-fail-06.xml");
+}
+
+static void
+test_expected_to_succeed (void)
+{
+       check_load_test_data_filename ("document-with-no-entry.xml");
+       check_load_test_data_filename ("empty-key.xml");
+       check_load_test_data_filename ("from-old-metadata-manager.xml");
+       check_load_test_data_filename ("gcsvedit-one-entry.xml");
+       check_load_test_data_filename ("max-num-locations-after.xml");
+       check_load_test_data_filename ("max-num-locations-before.xml");
+       check_load_test_data_filename ("metadata-tag-only.xml");
+       check_load_test_data_filename ("new-format-version.xml");
+       check_load_test_data_filename ("one-entry-markup-escape.xml");
 }
 
 static void
@@ -439,6 +459,7 @@ main (int    argc,
        gtk_test_init (&argc, &argv);
 
        g_test_add_func ("/metadata_store/expected_to_fail", test_expected_to_fail);
+       g_test_add_func ("/metadata_store/expected_to_succeed", test_expected_to_succeed);
        g_test_add_func ("/metadata_store/load_non_existing_store_file", test_load_non_existing_store_file);
        g_test_add_func ("/metadata_store/empty_store", test_empty_store);
        g_test_add_func ("/metadata_store/load_xml_from_old_metadata_manager", 
test_load_xml_from_old_metadata_manager);
diff --git a/testsuite/test-metadata-store/document-with-no-entry.xml 
b/testsuite/test-metadata-store/document-with-no-entry.xml
new file mode 100644
index 0000000..1057818
--- /dev/null
+++ b/testsuite/test-metadata-store/document-with-no-entry.xml
@@ -0,0 +1,4 @@
+<metadata>
+  <document uri="file:///foo" atime="1585677677045">
+  </document>
+</metadata>
diff --git a/testsuite/test-metadata-store/empty-key.xml b/testsuite/test-metadata-store/empty-key.xml
new file mode 100644
index 0000000..648597d
--- /dev/null
+++ b/testsuite/test-metadata-store/empty-key.xml
@@ -0,0 +1,5 @@
+<metadata>
+  <document uri="file:///foo" atime="1585677677045">
+    <entry key="" value="no key no chocolate" />
+  </document>
+</metadata>
diff --git a/testsuite/test-metadata-store/expected-to-fail-01.xml 
b/testsuite/test-metadata-store/expected-to-fail-01.xml
new file mode 100644
index 0000000..da0fe3b
--- /dev/null
+++ b/testsuite/test-metadata-store/expected-to-fail-01.xml
@@ -0,0 +1,2 @@
+<thats_not_a_metadata_element>
+</thats_not_a_metadata_element>
diff --git a/testsuite/test-metadata-store/expected-to-fail-02.xml 
b/testsuite/test-metadata-store/expected-to-fail-02.xml
new file mode 100644
index 0000000..24cc661
--- /dev/null
+++ b/testsuite/test-metadata-store/expected-to-fail-02.xml
@@ -0,0 +1,4 @@
+<metadata>
+  <thats_not_a_document_element>
+  </thats_not_a_document_element>
+</metadata>
diff --git a/testsuite/test-metadata-store/expected-to-fail-03.xml 
b/testsuite/test-metadata-store/expected-to-fail-03.xml
new file mode 100644
index 0000000..4a272c6
--- /dev/null
+++ b/testsuite/test-metadata-store/expected-to-fail-03.xml
@@ -0,0 +1,5 @@
+<metadata>
+  <document uri="file:///home/seb/test-semicolon.csv" atime="hey-not-valid-here">
+    <entry key="gcsvedit-delimiter" value=";" />
+  </document>
+</metadata>
diff --git a/testsuite/test-metadata-store/expected-to-fail-04.xml 
b/testsuite/test-metadata-store/expected-to-fail-04.xml
new file mode 100644
index 0000000..5e61437
--- /dev/null
+++ b/testsuite/test-metadata-store/expected-to-fail-04.xml
@@ -0,0 +1,5 @@
+<metadata>
+  <document uri="file:///look/atime/will/be/missing.csv">
+    <entry key="gcsvedit-delimiter" value=";" />
+  </document>
+</metadata>
diff --git a/testsuite/test-metadata-store/expected-to-fail-05.xml 
b/testsuite/test-metadata-store/expected-to-fail-05.xml
new file mode 100644
index 0000000..998ac91
--- /dev/null
+++ b/testsuite/test-metadata-store/expected-to-fail-05.xml
@@ -0,0 +1,5 @@
+<metadata>
+  <document uri="file:///home/seb/test-semicolon.csv" atime="1585677677045">
+    <this_is_not_an_entry_element key="gcsvedit-delimiter" value=";" />
+  </document>
+</metadata>
diff --git a/testsuite/test-metadata-store/expected-to-fail-06.xml 
b/testsuite/test-metadata-store/expected-to-fail-06.xml
new file mode 100644
index 0000000..1e7e5e9
--- /dev/null
+++ b/testsuite/test-metadata-store/expected-to-fail-06.xml
@@ -0,0 +1,5 @@
+<metadata>
+  <document uri="file:///home/seb/test-semicolon.csv" atime="1585677677045">
+    <entry key="ho_nooooo_value_attribute" />
+  </document>
+</metadata>
diff --git a/testsuite/test-metadata-store/new-format-version.xml 
b/testsuite/test-metadata-store/new-format-version.xml
new file mode 100644
index 0000000..a48aa87
--- /dev/null
+++ b/testsuite/test-metadata-store/new-format-version.xml
@@ -0,0 +1,6 @@
+<!-- Add additional attributes, should be forward-compatible. -->
+<metadata version="2">
+  <document uri="file:///foo" atime="158567767704599999" space_craft="borg17">
+    <entry key="a_key" value="a_value" origin="earth" />
+  </document>
+</metadata>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]