summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/MDV/Distribconf.pm4
-rw-r--r--t/01distribconf.t93
2 files changed, 77 insertions, 20 deletions
diff --git a/lib/MDV/Distribconf.pm b/lib/MDV/Distribconf.pm
index 6ec9c87..74de631 100644
--- a/lib/MDV/Distribconf.pm
+++ b/lib/MDV/Distribconf.pm
@@ -2,7 +2,7 @@ package MDV::Distribconf;
# $Id$
-our $VERSION = '3.04';
+our $VERSION = '3.05';
=head1 NAME
@@ -466,7 +466,7 @@ sub getpath {
$distrib->mediaexists($media) or return;
$var ||= ""; # Avoid undef value
my $val = $distrib->getvalue($media, $var);
- $var =~ /^(?:root|VERSION)$/ and return $val;
+ $var =~ /^(?:root|VERSION|(?:media|info)dir)$/ and return $val;
my $thispath = $var eq 'path' ? $distrib->{mediadir} : $distrib->{infodir};
if ($distrib->getvalue(undef, 'mediacfg_version') >= 2) {
return $thispath . '/' . $val;
diff --git a/t/01distribconf.t b/t/01distribconf.t
index fb7f3c4..b494c6d 100644
--- a/t/01distribconf.t
+++ b/t/01distribconf.t
@@ -3,7 +3,16 @@
# $Id$
use strict;
-use Test::More tests => 35;
+use Test::More;
+
+my %testdpath = (
+ 'testdata/test' => undef,
+ 'testdata/test2' => undef,
+ 'testdata/test3' => undef,
+ 'http://server/path/' => 'testdata/test/media/media_info/media.cfg',
+);
+
+plan tests => 14 + 21 * scalar(keys %testdpath);
use_ok('MDV::Distribconf');
@@ -12,34 +21,51 @@ ok(my $dconf = MDV::Distribconf->new('/dev/null'), "Can get new MDV::Distribconf
ok(!$dconf->load(), "loading wrong distrib give error");
}
-foreach my $path (qw(test test2)) {
+foreach my $path (keys %testdpath) {
ok(my $dconf = MDV::Distribconf->new($path), "Can get new MDV::Distribconf");
- ok($dconf->load(), "Can load conf");
+ if ($testdpath{$path}) {
+ $dconf->settree('mandriva');
+ } else {
+ ok($dconf->load(), "Can load conf");
+ }
+
+ is($dconf->getpath(undef, 'root'), $path, "Can get root path");
+ like($dconf->getpath(undef, 'media_info'), qr!^/*media/media_info/?$!, "Can get media_info path"); # vim color: */
+ like($dconf->getpath(undef, 'infodir'), qr!^/*media/media_info/?$!, "Can get infodir"); # vim color: */
+ like($dconf->getpath(undef, 'mediadir'), qr!^/*media/?$!, "Can get infodir"); # vim color: */
+
+ if ($testdpath{$path}) {
+ ok($dconf->parse_mediacfg($testdpath{$path}), "can parse media.cfg");
+ }
ok(scalar($dconf->listmedia) == 8, "Can list all media");
- ok(grep { $_ eq 'main' } $dconf->listmedia, "list properly media");
-
- ok($dconf->getvalue(undef, 'version') eq '2006.0', "Can get global value");
- ok($dconf->getvalue('main', 'version') eq '2006.0', "Can get global value via media");
- ok($dconf->getvalue('main', 'name') eq 'main', "Can get default name");
- ok($dconf->getvalue('contrib', 'name') eq 'Contrib', "Can get media name");
-
- ok($dconf->getpath(undef, 'root') eq $path, "Can get root path");
- ok($dconf->getpath(undef, 'media_info') =~ m!^/*media/media_info/?$!, "Can get media_info path"); # vim color: */
- ok($dconf->getfullpath(undef, 'media_info') =~ m!^/*$path/+media/media_info/?$!, "Can get media_info fullpath"); # vim color: */
- ok($dconf->getpath('main', 'path') =~ m!^/*media/+main/?$!, "Can get media path"); # vim color: */
- ok($dconf->getfullpath('main', 'path') =~ m!^/*$path/*media/+main/?$!, "Can get media fullpath"); # vim color: */
+ ok((grep { $_ eq 'main' } $dconf->listmedia), "list properly media");
+
+ is($dconf->getvalue(undef, 'version'), '2006.0', "Can get global value");
+ is($dconf->getvalue('main', 'version'), '2006.0', "Can get global value via media");
+ is($dconf->getvalue('main', 'name'), 'main', "Can get default name");
+ is($dconf->getvalue('contrib', 'name'), 'Contrib', "Can get media name");
+
+ is($dconf->getpath(undef, 'root'), $path, "Can get root path");
+ like($dconf->getpath(undef, 'media_info'), qr!^/*media/media_info/?$!, "Can get media_info path"); # vim color: */
+ like($dconf->getfullpath(undef, 'media_info'), qr!^/*$path/+media/media_info/?$!, "Can get media_info fullpath"); # vim color: */
+ like($dconf->getpath('main', 'path'), qr!^/*media/+main/?$!, "Can get media path"); # vim color: */
+ like($dconf->getfullpath('main', 'path'), qr!^/*$path/*media/+main/?$!, "Can get media fullpath"); # vim color: */
+ like($dconf->getpath('main', 'hdlist'), qr!^/*media/+media_info/+hdlist_main.cz$!, "Can get media path"); # vim color: */
+ like($dconf->getfullpath('main', 'hdlist'), qr!^/*$path/*media/+media_info/+hdlist_main.cz$!, "Can get media fullpath"); # vim color: */
+ like($dconf->getmediapath('main', 'hdlist'), qr!^/*media/+main/+media_info/+hdlist.cz$!, "Can get media path"); # vim color: */
+ like($dconf->getfullmediapath('main', 'hdlist'), qr!^/*$path/*media/+main/+media_info/+hdlist.cz$!, "Can get media fullpath"); # vim color: */
}
{
ok(my $dconf = MDV::Distribconf->new('not_exists', 1), "Can get new MDV::Distribconf");
$dconf->settree();
-ok($dconf->getpath(undef, 'media_info') =~ m!^/*media/media_info/?$!, "Can get media_info path"); # vim color: */
+like($dconf->getpath(undef, 'media_info'), qr!^/*media/media_info/?$!, "Can get media_info path"); # vim color: */
}
{
ok(my $dconf = MDV::Distribconf->new('not_exists', 1), "Can get new MDV::Distribconf");
$dconf->settree('manDraKE');
-ok($dconf->getpath(undef, 'media_info') =~ m!^/*Mandrake/base/?$!, "Can get media_info path"); # vim color: */
+like($dconf->getpath(undef, 'media_info'), qr!^/*Mandrake/base/?$!, "Can get media_info path"); # vim color: */
}
{
ok(my $dconf = MDV::Distribconf->new('not_exists', 1), "Can get new MDV::Distribconf");
@@ -47,5 +73,36 @@ $dconf->settree({
mediadir => 'mediadir',
infodir => 'infodir',
});
-ok($dconf->getpath(undef, 'media_info') =~ m!^/*infodir/?$!, "Can get media_info path"); # vim color: */
+like($dconf->getpath(undef, 'media_info'), qr!^/*infodir/?$!, "Can get media_info path"); # vim color: */
+}
+
+{
+ # test for %{} ${} var
+ my $dc = MDV::Distribconf->new('testdata/test3');
+ $dc->load();
+ is(
+ $dc->_expand(undef, '${version}'),
+ '2006.0',
+ 'expand works'
+ );
+ is(
+ $dc->_expand('jpackage', '%{name}'),
+ 'jpackage',
+ 'expand works'
+ );
+ is(
+ $dc->_expand('jpackage', '${version}'),
+ '2006.0',
+ 'expand works'
+ );
+ is(
+ $dc->_expand(undef, '%{foo}'),
+ '%{foo}',
+ 'expand works'
+ );
+ is(
+ $dc->getvalue('jpackage', 'hdlist'),
+ 'hdlist_jpackage.cz',
+ 'getvalue works'
+ );
}