| # -*- mode: cperl;-*- |
| # |
| # 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, see <http://www.gnu.org/licenses/>. |
| |
| use Test::More tests => 11; |
| |
| use strict; |
| use warnings; |
| use IO::String; |
| |
| use_ok('Dpkg::Control::Info'); |
| |
| my $srcdir = $ENV{srcdir} || '.'; |
| my $datadir = $srcdir . '/t/700_Dpkg_Control'; |
| |
| my $c = Dpkg::Control::Info->new("$datadir/control-1"); |
| |
| my $io = IO::String->new(); |
| $c->output($io); |
| my $value = ${$io->string_ref()}; |
| my $expected = 'Source: mysource |
| My-Field-One: myvalue1 |
| My-Field-Two: myvalue2 |
| Long-Field: line1 |
| line 2 line 2 line 2 |
| . |
| line 3 line 3 line 3 |
| .. |
| line 4 |
| Empty-Field: |
| |
| Package: mypackage1 |
| Architecture: any |
| Depends: libc6 |
| |
| Package: mypackage2 |
| Architecture: all |
| Depends: hello |
| |
| Package: mypackage3 |
| Architecture: all |
| Depends: hello |
| Description: short one |
| long one |
| very long one |
| '; |
| is($value, $expected, "Dump of $datadir/control-1"); |
| |
| my $src = $c->get_source(); |
| is($src, $c->[0], "array representation of Dpkg::Control::Info 1/2"); |
| is($src->{'my-field-one'}, 'myvalue1', "Access field through badly capitalized field name"); |
| is($src->{'long-field'}, |
| 'line1 |
| line 2 line 2 line 2 |
| |
| line 3 line 3 line 3 |
| . |
| line 4', "Get multi-line field"); |
| is($src->{'Empty-field'}, "", "Get empty field"); |
| |
| my $pkg = $c->get_pkg_by_idx(1); |
| is($pkg, $c->[1], "array representation of Dpkg::Control::Info 2/2"); |
| is($pkg->{package}, 'mypackage1', 'Name of first package'); |
| |
| $pkg = $c->get_pkg_by_name("mypackage3"); |
| is($pkg->{package}, 'mypackage3', 'Name of third package'); |
| is($pkg->{Depends}, 'hello', 'Name of third package'); |
| |
| $pkg = $c->get_pkg_by_idx(2); |
| $io = IO::String->new(); |
| $pkg->output($io); |
| |
| is(${$io->string_ref()}, |
| 'Package: mypackage2 |
| Architecture: all |
| Depends: hello |
| ', "Dump of second binary package of $datadir/control-1"); |