tests: update sami parser testcases
authorYoung-Ho Cha <ganadist@gmail.com>
Tue, 28 May 2013 07:56:28 +0000 (16:56 +0900)
committerTim-Philipp Müller <tim@centricular.net>
Tue, 16 Jul 2013 17:10:37 +0000 (18:10 +0100)
Remove libxml dependency for sami parser
and add more testcases.

https://bugzilla.gnome.org/show_bug.cgi?id=693056

tests/check/elements/subparse.c

index 8e3a999d9a343b675e7bf72dd3c81acd059d30e8..0651eabd50898a5f515842cf2f863d1b69a083f8 100644 (file)
@@ -667,7 +667,6 @@ GST_START_TEST (test_dks)
 
 GST_END_TEST;
 
-#ifndef GST_DISABLE_XML
 GST_START_TEST (test_sami)
 {
   SubParseInputChunk sami_input[] = {
@@ -703,7 +702,74 @@ GST_START_TEST (test_sami)
 }
 
 GST_END_TEST;
-#endif
+
+GST_START_TEST (test_sami_xml_entities)
+{
+  SubParseInputChunk sami_input[] = {
+    {"<SAMI>\n"
+          "<BODY>\n"
+          "    <SYNC Start=1000>\n"
+          "        <P Class=CC>\n" "            &lt;Hello&gt; &amp;\n",
+          1000 * GST_MSECOND, 2000 * GST_MSECOND,
+        "&lt;Hello&gt; &amp;"},
+    {"    <SYNC Start=2000>\n"
+          "        <P Class=CC>\n"
+          "            &quot;World&apos;\n" "</BODY>\n" "</SAMI>\n",
+          2000 * GST_MSECOND, GST_CLOCK_TIME_NONE,
+        "&quot;World&apos;"}
+
+  };
+
+  do_test (sami_input, G_N_ELEMENTS (sami_input), "pango-markup");
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_sami_html_entities)
+{
+  SubParseInputChunk sami_input[] = {
+    {"<SAMI>\n"
+          "<BODY>\n"
+          "    <SYNC Start=1000>\n"
+          "        <P Class=CC>\n" "            &nbsp; &plusmn; &acute;\n",
+          1000 * GST_MSECOND, 2000 * GST_MSECOND,
+        "\xc2\xa0 \xc2\xb1 \xc2\xb4"},
+    {"    <SYNC Start=2000>\n"
+          "        <P Class=CC>\n" "            &Alpha; &omega;\n",
+          2000 * GST_MSECOND, 3000 * GST_MSECOND,
+        "\xce\x91 \xcf\x89"},
+    {"    <SYNC Start=3000>\n"
+          "        <P Class=CC>\n"
+          "            &#xa0; &#177; &#180;\n" "</BODY>\n" "</SAMI>\n",
+          3000 * GST_MSECOND, GST_CLOCK_TIME_NONE,
+        "\xc2\xa0 \xc2\xb1 \xc2\xb4"}
+  };
+
+  do_test (sami_input, G_N_ELEMENTS (sami_input), "pango-markup");
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_sami_bad_entities)
+{
+  SubParseInputChunk sami_input[] = {
+    {"<SAMI>\n"
+          "<BODY>\n"
+          "    <SYNC Start=1000>\n"
+          "        <P Class=CC>\n" "            &nbsp &\n",
+          1000 * GST_MSECOND, 2000 * GST_MSECOND,
+        "\xc2\xa0 &amp;"},
+    {"    <SYNC Start=2000>\n"
+          "        <P Class=CC>\n"
+          "            &#xa0 &#177 &#180;\n" "</BODY>\n" "</SAMI>\n",
+          2000 * GST_MSECOND, GST_CLOCK_TIME_NONE,
+        "\xc2\xa0 \xc2\xb1 \xc2\xb4"}
+  };
+
+  do_test (sami_input, G_N_ELEMENTS (sami_input), "pango-markup");
+}
+
+GST_END_TEST;
 
 /* TODO:
  *  - add/modify tests so that lines aren't dogfed to the parsers in complete
@@ -733,9 +799,10 @@ subparse_suite (void)
   tcase_add_test (tc_chain, test_subviewer);
   tcase_add_test (tc_chain, test_subviewer2);
   tcase_add_test (tc_chain, test_dks);
-#ifndef GST_DISABLE_XML
   tcase_add_test (tc_chain, test_sami);
-#endif
+  tcase_add_test (tc_chain, test_sami_xml_entities);
+  tcase_add_test (tc_chain, test_sami_html_entities);
+  tcase_add_test (tc_chain, test_sami_bad_entities);
   return s;
 }