[gnome-software] Move the markdown functionality to the plugin dir



commit 0760221ad291a150670fa22f3ca67b16489af9bd
Author: Richard Hughes <richard hughsie com>
Date:   Tue Apr 12 13:56:05 2016 +0100

    Move the markdown functionality to the plugin dir
    
    Nothing in the core app actually uses this, and this fixes a linker warning.

 src/Makefile.am                 |    3 -
 src/gs-self-test.c              |  182 -------------------------------
 src/gs-shell-extras.c           |    1 -
 src/plugins/Makefile.am         |   19 ++++
 src/{ => plugins}/gs-markdown.c |    0
 src/{ => plugins}/gs-markdown.h |    0
 src/plugins/gs-self-test.c      |  223 +++++++++++++++++++++++++++++++++++++++
 7 files changed, 242 insertions(+), 186 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 21b9fc7..6c4301d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -164,8 +164,6 @@ gnome_software_SOURCES =                            \
        gs-screenshot-image.h                           \
        gs-shell.c                                      \
        gs-shell.h                                      \
-       gs-markdown.c                                   \
-       gs-markdown.h                                   \
        gs-shell-details.c                              \
        gs-shell-details.h                              \
        gs-shell-category.c                             \
@@ -288,7 +286,6 @@ check_PROGRAMS =                                            \
 gs_self_test_SOURCES =                                         \
        gs-app.c                                                \
        gs-category.c                                           \
-       gs-markdown.c                                           \
        gs-os-release.c                                         \
        gs-plugin-loader-sync.c                                 \
        gs-plugin-loader.c                                      \
diff --git a/src/gs-self-test.c b/src/gs-self-test.c
index a246c94..0a75918 100644
--- a/src/gs-self-test.c
+++ b/src/gs-self-test.c
@@ -27,192 +27,11 @@
 #include <glib/gstdio.h>
 
 #include "gs-app.h"
-#include "gs-markdown.h"
 #include "gs-plugin.h"
 #include "gs-plugin-loader.h"
 #include "gs-plugin-loader-sync.h"
 #include "gs-utils.h"
 
-static void
-gs_markdown_func (void)
-{
-       gchar *text;
-       const gchar *markdown;
-       const gchar *markdown_expected;
-       g_autoptr(GsMarkdown) md = NULL;
-
-       /* get GsMarkdown object */
-       md = gs_markdown_new (GS_MARKDOWN_OUTPUT_PANGO);
-       g_assert (md);
-
-       markdown = "OEMs\n"
-                  "====\n"
-                  " - Bullett\n";
-       markdown_expected =
-                  "<big>OEMs</big>\n"
-                  "• Bullett";
-       /* markdown (type2 header) */
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       /* markdown (autocode) */
-       markdown = "this is http://www.hughsie.com/with_spaces_in_url inline link\n";
-       markdown_expected = "this is <tt>http://www.hughsie.com/with_spaces_in_url</tt> inline link";
-       gs_markdown_set_autocode (md, TRUE);
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       /* markdown some invalid header */
-       markdown = "*** This software is currently in alpha state ***\n";
-       markdown_expected = "<b><i> This software is currently in alpha state </b></i>";
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       /* markdown (complex1) */
-       markdown = " - This is a *very*\n"
-                  "   short paragraph\n"
-                  "   that is not usual.\n"
-                  " - Another";
-       markdown_expected =
-                  "• This is a <i>very</i> short paragraph that is not usual.\n"
-                  "• Another";
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       /* markdown (complex1) */
-       markdown = "*  This is a *very*\n"
-                  "   short paragraph\n"
-                  "   that is not usual.\n"
-                  "*  This is the second\n"
-                  "   bullett point.\n"
-                  "*  And the third.\n"
-                  " \n"
-                  "* * *\n"
-                  " \n"
-                  "Paragraph one\n"
-                  "isn't __very__ long at all.\n"
-                  "\n"
-                  "Paragraph two\n"
-                  "isn't much better.";
-       markdown_expected =
-                  "• This is a <i>very</i> short paragraph that is not usual.\n"
-                  "• This is the second bullett point.\n"
-                  "• And the third.\n"
-                  "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\n"
-                  "Paragraph one isn&apos;t <b>very</b> long at all.\n"
-                  "Paragraph two isn&apos;t much better.";
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       markdown = "This is a spec file description or\n"
-                  "an **update** description in bohdi.\n"
-                  "\n"
-                  "* * *\n"
-                  "# Big title #\n"
-                  "\n"
-                  "The *following* things 'were' fixed:\n"
-                  "- Fix `dave`\n"
-                  "* Fubar update because of \"security\"\n";
-       markdown_expected =
-                  "This is a spec file description or an <b>update</b> description in bohdi.\n"
-                  "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\n"
-                  "<big>Big title</big>\n"
-                  "The <i>following</i> things 'were' fixed:\n"
-                  "• Fix <tt>dave</tt>\n"
-                  "• Fubar update because of \"security\"";
-       /* markdown (complex2) */
-       text = gs_markdown_parse (md, markdown);
-       if (g_strcmp0 (text, markdown_expected) == 0)
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       /* markdown (list with spaces) */
-       markdown = "* list seporated with spaces -\n"
-                  "  first item\n"
-                  "\n"
-                  "* second item\n"
-                  "\n"
-                  "* third item\n";
-       markdown_expected =
-                  "• list seporated with spaces - first item\n"
-                  "• second item\n"
-                  "• third item";
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       gs_markdown_set_max_lines (md, 1);
-
-       /* markdown (one line limit) */
-       markdown = "* list seporated with spaces -\n"
-                  "  first item\n"
-                  "* second item\n";
-       markdown_expected =
-                  "• list seporated with spaces - first item";
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       gs_markdown_set_max_lines (md, 1);
-
-       /* markdown (escaping) */
-       markdown = "* list & <spaces>";
-       markdown_expected =
-                  "• list &amp; &lt;spaces&gt;";
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       /* markdown (URLs) */
-       markdown = "this is the http://www.hughsie.com/ coolest site";
-       markdown_expected =
-                  "this is the "
-                  "<a href=\"http://www.hughsie.com/\";>http://www.hughsie.com/</a>"
-                  " coolest site";
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-
-       /* markdown (free text) */
-       gs_markdown_set_escape (md, FALSE);
-       text = gs_markdown_parse (md, "This isn't a present");
-       g_assert_cmpstr (text, ==, "This isn't a present");
-       g_free (text);
-
-       /* markdown (autotext underscore) */
-       text = gs_markdown_parse (md, "This isn't CONFIG_UEVENT_HELPER_PATH present");
-       g_assert_cmpstr (text, ==, "This isn't <tt>CONFIG_UEVENT_HELPER_PATH</tt> present");
-       g_free (text);
-
-       /* markdown (end of bullett) */
-       markdown = "*Thu Mar 12 12:00:00 2009* Dan Walsh <dwalsh redhat com> - 2.0.79-1\n"
-                  "- Update to upstream \n"
-                  " * Netlink socket handoff patch from Adam Jackson.\n"
-                  " * AVC caching of compute_create results by Eric Paris.\n"
-                  "\n"
-                  "*Tue Mar 10 12:00:00 2009* Dan Walsh <dwalsh redhat com> - 2.0.78-5\n"
-                  "- Add patch from ajax to accellerate X SELinux \n"
-                  "- Update eparis patch\n";
-       markdown_expected =
-                  "<i>Thu Mar 12 12:00:00 2009</i> Dan Walsh <tt>&lt;dwalsh redhat com&gt;</tt> - 2.0.79-1\n"
-                  "• Update to upstream\n"
-                  "• Netlink socket handoff patch from Adam Jackson.\n"
-                  "• AVC caching of compute_create results by Eric Paris.\n"
-                  "<i>Tue Mar 10 12:00:00 2009</i> Dan Walsh <tt>&lt;dwalsh redhat com&gt;</tt> - 2.0.78-5\n"
-                  "• Add patch from ajax to accellerate X SELinux\n"
-                  "• Update eparis patch";
-       gs_markdown_set_escape (md, TRUE);
-       gs_markdown_set_max_lines (md, 1024);
-       text = gs_markdown_parse (md, markdown);
-       g_assert_cmpstr (text, ==, markdown_expected);
-       g_free (text);
-}
-
 static gboolean
 gs_plugin_list_filter_cb (GsApp *app, gpointer user_data)
 {
@@ -650,7 +469,6 @@ main (int argc, char **argv)
        g_log_set_fatal_mask (NULL, G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL);
 
        /* tests go here */
-       g_test_add_func ("/gnome-software/markdown", gs_markdown_func);
        g_test_add_func ("/gnome-software/plugin-loader{refine}", gs_plugin_loader_refine_func);
        g_test_add_func ("/gnome-software/plugin", gs_plugin_func);
        g_test_add_func ("/gnome-software/app", gs_app_func);
diff --git a/src/gs-shell-extras.c b/src/gs-shell-extras.c
index 96ba78d..9633179 100644
--- a/src/gs-shell-extras.c
+++ b/src/gs-shell-extras.c
@@ -26,7 +26,6 @@
 #include "gs-app.h"
 #include "gs-app-row.h"
 #include "gs-language.h"
-#include "gs-markdown.h"
 #include "gs-shell.h"
 #include "gs-utils.h"
 #include "gs-vendor.h"
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index d52e4a7..765c9a9 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -229,6 +229,8 @@ libgs_plugin_packagekit_la_CFLAGS = $(GS_PLUGIN_CFLAGS) $(WARN_CFLAGS)
 
 libgs_plugin_packagekit_refine_la_SOURCES =            \
        gs-plugin-packagekit-refine.c                   \
+       gs-markdown.c                                   \
+       gs-markdown.h                                   \
        packagekit-common.c                             \
        packagekit-common.h
 libgs_plugin_packagekit_refine_la_LIBADD = $(GS_PLUGIN_LIBS) $(PACKAGEKIT_LIBS)
@@ -275,4 +277,21 @@ libgs_plugin_packagekit_proxy_la_LIBADD = $(GS_PLUGIN_LIBS)
 libgs_plugin_packagekit_proxy_la_LDFLAGS = -module -avoid-version
 libgs_plugin_packagekit_proxy_la_CFLAGS = $(GS_PLUGIN_CFLAGS) $(WARN_CFLAGS)
 
+if ENABLE_TESTS
+check_PROGRAMS =                                               \
+       gs-self-test
+
+gs_self_test_SOURCES =                                         \
+       gs-markdown.c                                           \
+       gs-self-test.c
+
+gs_self_test_LDADD =                                           \
+       $(GLIB_LIBS)                                            \
+       $(GTK_LIBS)
+
+gs_self_test_CFLAGS = $(WARN_CFLAGS)
+
+TESTS = gs-self-test
+endif
+
 -include $(top_srcdir)/git.mk
diff --git a/src/gs-markdown.c b/src/plugins/gs-markdown.c
similarity index 100%
rename from src/gs-markdown.c
rename to src/plugins/gs-markdown.c
diff --git a/src/gs-markdown.h b/src/plugins/gs-markdown.h
similarity index 100%
rename from src/gs-markdown.h
rename to src/plugins/gs-markdown.h
diff --git a/src/plugins/gs-self-test.c b/src/plugins/gs-self-test.c
new file mode 100644
index 0000000..2936a90
--- /dev/null
+++ b/src/plugins/gs-self-test.c
@@ -0,0 +1,223 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2013-2016 Richard Hughes <richard hughsie com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <glib-object.h>
+
+#include "gs-markdown.h"
+
+static void
+gs_markdown_func (void)
+{
+       gchar *text;
+       const gchar *markdown;
+       const gchar *markdown_expected;
+       g_autoptr(GsMarkdown) md = NULL;
+
+       /* get GsMarkdown object */
+       md = gs_markdown_new (GS_MARKDOWN_OUTPUT_PANGO);
+       g_assert (md);
+
+       markdown = "OEMs\n"
+                  "====\n"
+                  " - Bullett\n";
+       markdown_expected =
+                  "<big>OEMs</big>\n"
+                  "• Bullett";
+       /* markdown (type2 header) */
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       /* markdown (autocode) */
+       markdown = "this is http://www.hughsie.com/with_spaces_in_url inline link\n";
+       markdown_expected = "this is <tt>http://www.hughsie.com/with_spaces_in_url</tt> inline link";
+       gs_markdown_set_autocode (md, TRUE);
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       /* markdown some invalid header */
+       markdown = "*** This software is currently in alpha state ***\n";
+       markdown_expected = "<b><i> This software is currently in alpha state </b></i>";
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       /* markdown (complex1) */
+       markdown = " - This is a *very*\n"
+                  "   short paragraph\n"
+                  "   that is not usual.\n"
+                  " - Another";
+       markdown_expected =
+                  "• This is a <i>very</i> short paragraph that is not usual.\n"
+                  "• Another";
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       /* markdown (complex1) */
+       markdown = "*  This is a *very*\n"
+                  "   short paragraph\n"
+                  "   that is not usual.\n"
+                  "*  This is the second\n"
+                  "   bullett point.\n"
+                  "*  And the third.\n"
+                  " \n"
+                  "* * *\n"
+                  " \n"
+                  "Paragraph one\n"
+                  "isn't __very__ long at all.\n"
+                  "\n"
+                  "Paragraph two\n"
+                  "isn't much better.";
+       markdown_expected =
+                  "• This is a <i>very</i> short paragraph that is not usual.\n"
+                  "• This is the second bullett point.\n"
+                  "• And the third.\n"
+                  "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\n"
+                  "Paragraph one isn&apos;t <b>very</b> long at all.\n"
+                  "Paragraph two isn&apos;t much better.";
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       markdown = "This is a spec file description or\n"
+                  "an **update** description in bohdi.\n"
+                  "\n"
+                  "* * *\n"
+                  "# Big title #\n"
+                  "\n"
+                  "The *following* things 'were' fixed:\n"
+                  "- Fix `dave`\n"
+                  "* Fubar update because of \"security\"\n";
+       markdown_expected =
+                  "This is a spec file description or an <b>update</b> description in bohdi.\n"
+                  "⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\n"
+                  "<big>Big title</big>\n"
+                  "The <i>following</i> things 'were' fixed:\n"
+                  "• Fix <tt>dave</tt>\n"
+                  "• Fubar update because of \"security\"";
+       /* markdown (complex2) */
+       text = gs_markdown_parse (md, markdown);
+       if (g_strcmp0 (text, markdown_expected) == 0)
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       /* markdown (list with spaces) */
+       markdown = "* list seporated with spaces -\n"
+                  "  first item\n"
+                  "\n"
+                  "* second item\n"
+                  "\n"
+                  "* third item\n";
+       markdown_expected =
+                  "• list seporated with spaces - first item\n"
+                  "• second item\n"
+                  "• third item";
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       gs_markdown_set_max_lines (md, 1);
+
+       /* markdown (one line limit) */
+       markdown = "* list seporated with spaces -\n"
+                  "  first item\n"
+                  "* second item\n";
+       markdown_expected =
+                  "• list seporated with spaces - first item";
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       gs_markdown_set_max_lines (md, 1);
+
+       /* markdown (escaping) */
+       markdown = "* list & <spaces>";
+       markdown_expected =
+                  "• list &amp; &lt;spaces&gt;";
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       /* markdown (URLs) */
+       markdown = "this is the http://www.hughsie.com/ coolest site";
+       markdown_expected =
+                  "this is the "
+                  "<a href=\"http://www.hughsie.com/\";>http://www.hughsie.com/</a>"
+                  " coolest site";
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+
+       /* markdown (free text) */
+       gs_markdown_set_escape (md, FALSE);
+       text = gs_markdown_parse (md, "This isn't a present");
+       g_assert_cmpstr (text, ==, "This isn't a present");
+       g_free (text);
+
+       /* markdown (autotext underscore) */
+       text = gs_markdown_parse (md, "This isn't CONFIG_UEVENT_HELPER_PATH present");
+       g_assert_cmpstr (text, ==, "This isn't <tt>CONFIG_UEVENT_HELPER_PATH</tt> present");
+       g_free (text);
+
+       /* markdown (end of bullett) */
+       markdown = "*Thu Mar 12 12:00:00 2009* Dan Walsh <dwalsh redhat com> - 2.0.79-1\n"
+                  "- Update to upstream \n"
+                  " * Netlink socket handoff patch from Adam Jackson.\n"
+                  " * AVC caching of compute_create results by Eric Paris.\n"
+                  "\n"
+                  "*Tue Mar 10 12:00:00 2009* Dan Walsh <dwalsh redhat com> - 2.0.78-5\n"
+                  "- Add patch from ajax to accellerate X SELinux \n"
+                  "- Update eparis patch\n";
+       markdown_expected =
+                  "<i>Thu Mar 12 12:00:00 2009</i> Dan Walsh <tt>&lt;dwalsh redhat com&gt;</tt> - 2.0.79-1\n"
+                  "• Update to upstream\n"
+                  "• Netlink socket handoff patch from Adam Jackson.\n"
+                  "• AVC caching of compute_create results by Eric Paris.\n"
+                  "<i>Tue Mar 10 12:00:00 2009</i> Dan Walsh <tt>&lt;dwalsh redhat com&gt;</tt> - 2.0.78-5\n"
+                  "• Add patch from ajax to accellerate X SELinux\n"
+                  "• Update eparis patch";
+       gs_markdown_set_escape (md, TRUE);
+       gs_markdown_set_max_lines (md, 1024);
+       text = gs_markdown_parse (md, markdown);
+       g_assert_cmpstr (text, ==, markdown_expected);
+       g_free (text);
+}
+
+int
+main (int argc, char **argv)
+{
+       g_test_init (&argc, &argv, NULL);
+       g_setenv ("G_MESSAGES_DEBUG", "all", TRUE);
+
+       /* only critical and error are fatal */
+       g_log_set_fatal_mask (NULL, G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL);
+
+       /* tests go here */
+       g_test_add_func ("/gnome-software/markdown", gs_markdown_func);
+
+       return g_test_run ();
+}
+
+/* vim: set noexpandtab: */


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