summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2015-12-30 09:43:44 +0000
committerRichard Hughes <richard@hughsie.com>2015-12-30 09:44:11 +0000
commit0c789c7623e6479e716e6a46a270080778743a5a (patch)
treea235f0f0cf9cfbff8f26162af7f1cb7269143135
parent6212d2eddc2d424813013be383af92388f54f9d8 (diff)
downloadappstream-glib-0c789c7623e6479e716e6a46a270080778743a5a.tar.gz
Check the project_group when validating
Fixes https://github.com/hughsie/appstream-glib/issues/73
-rw-r--r--data/tests/broken.appdata.xml1
-rw-r--r--libappstream-glib/as-app-validate.c11
-rw-r--r--libappstream-glib/as-self-test.c4
3 files changed, 15 insertions, 1 deletions
diff --git a/data/tests/broken.appdata.xml b/data/tests/broken.appdata.xml
index 6cdebe8..def2fb5 100644
--- a/data/tests/broken.appdata.xml
+++ b/data/tests/broken.appdata.xml
@@ -4,6 +4,7 @@
<metadata_license>GPLv3+</metadata_license>
<metadata_license>BSD</metadata_license>
<project_license>CC1</project_license>
+ <project_group>GNU</project_group>
<name>Power Statistics.</name>
<summary>Observe power management.</summary>
<description>
diff --git a/libappstream-glib/as-app-validate.c b/libappstream-glib/as-app-validate.c
index 87e4a10..1f87324 100644
--- a/libappstream-glib/as-app-validate.c
+++ b/libappstream-glib/as-app-validate.c
@@ -1239,6 +1239,17 @@ as_app_validate (AsApp *app, AsAppValidateFlags flags, GError **error)
}
}
+ /* project_group */
+ tmp = as_app_get_project_group (app);
+ if (tmp != NULL) {
+ if (!as_utils_is_environment_id (tmp)) {
+ ai_app_validate_add (&helper,
+ AS_PROBLEM_KIND_TAG_INVALID,
+ "<project_group> is not valid [%s]",
+ tmp);
+ }
+ }
+
/* pkgname */
if (as_app_get_pkgname_default (app) != NULL &&
as_app_get_source_kind (app) == AS_APP_SOURCE_KIND_METAINFO) {
diff --git a/libappstream-glib/as-self-test.c b/libappstream-glib/as-self-test.c
index ea70ee5..5e09dd3 100644
--- a/libappstream-glib/as-self-test.c
+++ b/libappstream-glib/as-self-test.c
@@ -1578,7 +1578,9 @@ as_test_app_validate_file_bad_func (void)
"<p> requires sentence case");
as_test_app_validate_check (probs, AS_PROBLEM_KIND_STYLE_INCORRECT,
"<li> requires sentence case");
- g_assert_cmpint (probs->len, ==, 28);
+ as_test_app_validate_check (probs, AS_PROBLEM_KIND_TAG_INVALID,
+ "<project_group> is not valid");
+ g_assert_cmpint (probs->len, ==, 29);
}
static void