diff options
Diffstat (limited to 't/dh_installgsettings')
-rw-r--r-- | t/dh_installgsettings/debian/changelog | 5 | ||||
-rw-r--r-- | t/dh_installgsettings/debian/control | 17 | ||||
-rwxr-xr-x | t/dh_installgsettings/dh_installgsettings.t | 49 |
3 files changed, 71 insertions, 0 deletions
diff --git a/t/dh_installgsettings/debian/changelog b/t/dh_installgsettings/debian/changelog new file mode 100644 index 0000000..5850f0e --- /dev/null +++ b/t/dh_installgsettings/debian/changelog @@ -0,0 +1,5 @@ +foo (1.0-1) unstable; urgency=low + + * Initial release. (Closes: #XXXXXX) + + -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200 diff --git a/t/dh_installgsettings/debian/control b/t/dh_installgsettings/debian/control new file mode 100644 index 0000000..c3cb827 --- /dev/null +++ b/t/dh_installgsettings/debian/control @@ -0,0 +1,17 @@ +Source: foo +Section: misc +Priority: optional +Maintainer: Test <testing@nowhere> +Standards-Version: 3.9.8 + +Package: has-settings +Architecture: all +Depends: ${misc:Depends} +Description: package has-settings + This package has a GSettings schema. + +Package: no-settings +Architecture: all +Depends: ${misc:Depends} +Description: package no-settings + This package doesn't have a GSettings schema. diff --git a/t/dh_installgsettings/dh_installgsettings.t b/t/dh_installgsettings/dh_installgsettings.t new file mode 100755 index 0000000..fe76e8d --- /dev/null +++ b/t/dh_installgsettings/dh_installgsettings.t @@ -0,0 +1,49 @@ +#!/usr/bin/perl +use strict; +use Test::More tests => 1; + +use autodie; +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; +use File::Path qw(remove_tree make_path); +use Debian::Debhelper::Dh_Lib qw(!dirname); + +our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw( + debian/changelog + debian/control +)); + +my $SCHEMAS = 'usr/share/glib-2.0/schemas'; + +sub touch { + my $path = shift; + open(my $fh, '>>', $path); + close $fh; +} + +sub slurp { + my $path = shift; + local $/ = undef; + open(my $fh, '<', $path); + my $contents = <$fh>; + close $fh; + return $contents; +} + +each_compat_subtest { + make_path("debian/has-settings/$SCHEMAS"); + touch("debian/has-settings/$SCHEMAS/com.example.HasSettings.xml"); + make_path("debian/has-unimportant-settings/$SCHEMAS"); + touch("debian/no-settings.substvars"); + ok(run_dh_tool('dh_installgsettings', '-phas-settings'), 'run for has-settings'); + ok(run_dh_tool('dh_installgsettings', '-pno-settings'), 'run for no-settings'); + remove_tree(qw(debian/has-settings debian/has-unimportant-settings)); + like(slurp('debian/has-settings.substvars'), + qr{^misc:Depends=dconf-gsettings-backend \| gsettings-backend$}m, + 'has-settings should depend on a backend'); + unlike(slurp('debian/no-settings.substvars'), + qr{^misc:Depends=dconf-gsettings-backend \| gsettings-backend$}m, + 'no-settings should not depend on a backend'); +}; + |