700_Dpkg_Control.t 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # -*- mode: cperl;-*-
  2. use Test::More tests => 9;
  3. use strict;
  4. use warnings;
  5. use IO::String;
  6. use_ok('Dpkg::Control::Info');
  7. my $srcdir = $ENV{srcdir} || '.';
  8. $srcdir .= '/t/700_Dpkg_Control';
  9. my $c = Dpkg::Control::Info->new("$srcdir/control-1");
  10. my $io = IO::String->new();
  11. $c->dump($io);
  12. my $value = ${$io->string_ref()};
  13. my $expected = 'Source: mysource
  14. My-Field-One: myvalue1
  15. My-Field-Two: myvalue2
  16. Long-Field: line1
  17. line 2 line 2 line 2
  18. .
  19. line 3 line 3 line 3
  20. ..
  21. line 4
  22. Empty-Field:
  23. Package: mypackage1
  24. Depends: libc6
  25. Package: mypackage2
  26. Depends: hello
  27. Package: mypackage3
  28. Depends: hello
  29. Description: short one
  30. long one
  31. very long one
  32. ';
  33. is($value, $expected, "Dump of $srcdir/control-1");
  34. my $src = $c->get_source();
  35. is($src->{'my-field-one'}, 'myvalue1', "Access field through badly capitalized field name");
  36. is($src->{'long-field'},
  37. 'line1
  38. line 2 line 2 line 2
  39. line 3 line 3 line 3
  40. .
  41. line 4', "Get multi-line field");
  42. is($src->{'Empty-field'}, "", "Get empty field");
  43. my $pkg = $c->get_pkg_by_idx(1);
  44. is($pkg->{package}, 'mypackage1', 'Name of first package');
  45. $pkg = $c->get_pkg_by_name("mypackage3");
  46. is($pkg->{package}, 'mypackage3', 'Name of third package');
  47. is($pkg->{Depends}, 'hello', 'Name of third package');
  48. $pkg = $c->get_pkg_by_idx(2);
  49. $io = IO::String->new();
  50. $pkg->output($io);
  51. is(${$io->string_ref()},
  52. 'Package: mypackage2
  53. Depends: hello
  54. ', "Dump of second binary package of $srcdir/control-1");