#!/usr/bin/perl
# This script attempts to reproduce:
# https://sourceforge.net/tracker/index.php?func=detail&aid=1230339&group_id=6926&atid=106926
use strict;
use warnings;
use Test::More tests => 2;
use File::Spec;
use Config::IniFiles;
my $filename = File::Spec->catfile(
File::Spec->curdir(), "t", "store-and-retrieve-here-doc-terminator.ini"
);
my @file_write_subs =
(
sub {
my ($cfg) = @_;
$cfg->WriteConfig($filename);
return;
},
sub {
my ($cfg) = @_;
open my $fh, '>', $filename
or die "Cannot open '$filename' for writing - $!";
$cfg->OutputConfigToFileHandle($fh);
close($fh);
return;
},
);
foreach my $write_sub (@file_write_subs)
{
# Prepare the offending file.
{
# Delete the stray file - we want to over-write it.
unlink($filename);
my $cfg=Config::IniFiles->new();
$cfg->newval ("MySection", "MyParam", "Hello\nEOT\n");
$write_sub->($cfg);
}
{
my $cfg=Config::IniFiles->new(-file => $filename);
# TEST*2
is (scalar($cfg->val ("MySection", "MyParam")),
"Hello\nEOT\n",
"Default here-doc terminator was stored and retrieved correctly",
);
}
# Delete it again to keep the working-copy clean.
unlink($filename);
}