SVN-Notify
view release on metacpan or search on metacpan
'Check for the last diff line';
unlike $email, qr{ BEGIN }, 'Check for missing extra line';
like $email, qr{Diff output truncated at 1024 characters.},
'Check for truncation message';
##############################################################################
# Try html format with a single file changed.
##############################################################################
ok( $notifier = SVN::Notify::HTML->new(%args, revision => '222'),
"Construct new HTML file notifier" );
isa_ok($notifier, 'SVN::Notify::HTML');
isa_ok($notifier, 'SVN::Notify');
ok( $notifier->prepare, "Prepare HTML file" );
ok( $notifier->execute, "Notify HTML file" );
# Check the output.
$email = get_output();
like( $email, qr{Subject: \[222\] Hrm hrm\. Let's try a few links\.\n},
"Check subject header for HTML file" );
like( $email, qr/From: theory\n/, 'Check HTML file From');
like( $email, qr/To: test\@example\.com\n/, 'Check HTML file To');
like( $email, qr{Content-Type: text/html; charset=UTF-8\n},
'Check HTML file Content-Type' );
like( $email, qr{Content-Transfer-Encoding: 8bit\n},
'Check HTML file Content-Transfer-Encoding');
##############################################################################
# Try viewcvs_url + HTML.
##############################################################################
ok( $notifier = SVN::Notify::HTML->new(%args,
viewcvs_url => 'http://svn.example.com/?rev=%s&view=rev',
),
"Construct new HTML viewcvs_url notifier" );
isa_ok($notifier, 'SVN::Notify::HTML');
isa_ok($notifier, 'SVN::Notify');
ok( $notifier->prepare, "Prepare HTML viewcvs_url" );
ok( $notifier->execute, "Notify HTML viewcvs_url" );
# Check the output.
$email = get_output();
like( $email,
qr|<dt>Revision</dt>\s+<dd><a href="http://svn\.example\.com/\?rev=111\&view=rev">111</a></dd>\n|,
'Check for HTML URL');
##############################################################################
# Try encoding.
##############################################################################
ok( $notifier = SVN::Notify::HTML->new(%args, encoding => 'ISO-8859-1'),
"Construct new encoding notifier" );
isa_ok($notifier, 'SVN::Notify::HTML');
isa_ok($notifier, 'SVN::Notify');
ok( $notifier->prepare, "Prepare encoding" );
ok( $notifier->execute, "Notify encoding" );
# Check the output.
$email = get_output();
like( $email, qr{Content-Type: text/html; charset=ISO-8859-1\n},
'Check Content-Type charset' );
##############################################################################
# Try html format with propsets.
##############################################################################
ok( $notifier = SVN::Notify::HTML->new(%args, with_diff => 1, revision => '333'),
"Construct new HTML propset notifier" );
isa_ok($notifier, 'SVN::Notify::HTML');
isa_ok($notifier, 'SVN::Notify');
ok( $notifier->prepare, "Prepare HTML propset" );
ok( $notifier->execute, "Notify HTML propset" );
# Check the output.
$email = get_output();
like( $email, qr{Subject: \[333\] Property modification\.\n},
"Check subject header for propset HTML" );
like( $email, qr/From: theory\n/, 'Check HTML propset From');
like( $email, qr/To: test\@example\.com\n/, 'Check HTML propset To');
like( $email, qr{Content-Type: text/html; charset=UTF-8\n},
'Check HTML propset Content-Type' );
like( $email, qr{Content-Transfer-Encoding: 8bit\n},
'Check HTML propset Content-Transfer-Encoding');
like( $email,
qr|<a id="trunkactivitymailbinactivitymail">Modified: trunk/activitymail/bin/activitymail</a>\n|,
"Check for file name anchor id" );
like( $email,
qr|<a id="trunkactivitymailtactivitymailt">Property changes on: trunk/activitymail/t/activitymail\.t</a>\n|,
"Check for propset file name anchor id" );
##############################################################################
# Try linkize and Bug tracking URLs.
##############################################################################
ok( $notifier = SVN::Notify::HTML->new(
%args,
revision => 222,
viewcvs_url => 'http://viewsvn.bricolage.cc/?rev=%s&view=rev',
rt_url => 'http://rt.cpan.org/NoAuth/Bugs.html?id=%s',
bugzilla_url => 'http://bugzilla.mozilla.org/show_bug.cgi?id=%s',
jira_url => 'http://jira.atlassian.com/secure/ViewIssue.jspa?key=%s',
gnats_url => 'http://gnats.example.com/gnatsweb.pl?cmd=view&pr=%s',
ticket_url => 'http://ticket.example.com/id=%s',
ticket_regex => '\[?\s*(Custom\s*#\s*(\d+))\s*\]?',
),
"Construct new HTML URL notifier" );
isa_ok($notifier, 'SVN::Notify::HTML');
isa_ok($notifier, 'SVN::Notify');
ok( $notifier->prepare, "Prepare HTML URL" );
ok( $notifier->execute, "Notify HTML URL" );
$email = get_output();
# Check linkize results.
like($email, qr|<a href="mailto:foo\@example\.com">foo\@example\.com</a>|,
"Check for linked email address");
like($email, qr{<a href="http://www\.kineticode\.com/">http://www\.kineticode\.com/</a>},
"Check for linked URL" );
like($email,
qr{<a href="http://foo\.bar\.com/one/two/do\.pl\?this=1&that=2">http://foo\.bar\.com/one/two/do\.pl\?this=1&that=2</a>},
"Check for fancy linked URL" );
# Check for application URLs.
like( $email,
qr|<dt>Revision</dt>\s+<dd><a href="http://viewsvn\.bricolage\.cc/\?rev=222\&view=rev">222</a></dd>\n|,
'Check for main ViewCVS URL');
like($email,
qr{<a href="http://rt\.cpan\.org/NoAuth/Bugs\.html\?id=4321">Ticket # 4321</a>},
"Check for RT URL");
like($email,
qr{<a href="http://viewsvn\.bricolage\.cc/\?rev=606&view=rev">Revision # 606</a>},
"Check for log mesage ViewCVS URL");
like( $email,
qr{<a href="http://bugzilla\.mozilla\.org/show_bug\.cgi\?id=709">Bug # 709</a>},
"Check for Bugzilla URL" );
like( $email,
qr{<a href="http://jira\.atlassian\.com/secure/ViewIssue\.jspa\?key=PRJ1234-111">PRJ1234-111</a>},
"Check for Jira URL" );
like( $email,
qr{<a href="http://gnats\.example\.com/gnatsweb\.pl\?cmd=view&pr=12345">PR 12345</a>},
"Check for GNATS URL" );
like( $email,
qr{<a href="http://ticket\.example\.com/id=4321">Custom # 4321</a>},
"Check for custom ticket URL" );
##############################################################################
# Major linkize and Bug tracking URLs, as well as complex diff.
##############################################################################
ok( $notifier = SVN::Notify::HTML->new(
%args,
( run in 0.353 second using v1.01-cache-2.11-cpan-71847e10f99 )