diff options
author | Amitai Schlair <schmonz-web-ikiwiki@schmonz.com> | 2012-01-21 14:37:24 -0500 |
---|---|---|
committer | Amitai Schlair <schmonz-web-ikiwiki@schmonz.com> | 2012-01-22 10:44:49 -0500 |
commit | f98c4c5b727796721ac9b38dc07af2911a13be22 (patch) | |
tree | 2a0782d2555d78a1b2d7c239260f947db899c9d1 /t | |
parent | 2677b7320708fb22f6bd9174c7933aec32c9e934 (diff) | |
download | ikiwiki-f98c4c5b727796721ac9b38dc07af2911a13be22.tar ikiwiki-f98c4c5b727796721ac9b38dc07af2911a13be22.tar.gz |
Extract subs: startup/shutdown, and tests for web and manual commits.
No functional change intended.
Diffstat (limited to 't')
-rwxr-xr-x | t/cvs.t | 111 |
1 files changed, 64 insertions, 47 deletions
@@ -29,60 +29,77 @@ use Test::More tests => 12; BEGIN { use_ok("IkiWiki"); } -%config=IkiWiki::defaultconfig(); -$config{rcs} = "cvs"; -$config{srcdir} = "$dir/src"; -$config{cvsrepo} = "$dir/repo"; -$config{cvspath} = "ikiwiki"; -IkiWiki::loadplugins(); -IkiWiki::checkconfig(); +sub _startup { + _generate_minimal_config(); + _create_test_repo(); +} + +sub _shutdown { + system "rm -rf $dir"; +} + +sub _generate_minimal_config { + %config=IkiWiki::defaultconfig(); + $config{rcs} = "cvs"; + $config{srcdir} = "$dir/src"; + $config{cvsrepo} = "$dir/repo"; + $config{cvspath} = "ikiwiki"; + IkiWiki::loadplugins(); + IkiWiki::checkconfig(); +} -my $cvsrepo = "$dir/repo"; +sub _create_test_repo { + my $cvsrepo = "$dir/repo"; -system "cvs -d $cvsrepo init >/dev/null"; -system "mkdir $dir/ikiwiki >/dev/null"; -system "cd $dir/ikiwiki && cvs -d $cvsrepo import -m import ikiwiki VENDOR RELEASE >/dev/null"; -system "rm -rf $dir/ikiwiki >/dev/null"; -system "cvs -d $cvsrepo co -d $config{srcdir} ikiwiki >/dev/null"; + system "cvs -d $cvsrepo init >/dev/null"; + system "mkdir $dir/ikiwiki >/dev/null"; + system "cd $dir/ikiwiki && cvs -d $cvsrepo import -m import ikiwiki VENDOR RELEASE >/dev/null"; + system "rm -rf $dir/ikiwiki >/dev/null"; + system "cvs -d $cvsrepo co -d $config{srcdir} ikiwiki >/dev/null"; +} -# Web commit -my $test1 = readfile("t/test1.mdwn"); -writefile('test1.mdwn', $config{srcdir}, $test1); -IkiWiki::rcs_add("test1.mdwn"); -IkiWiki::rcs_commit( - files => "test1.mdwn", - message => "Added the first page", - token => "moo" -); +sub test_web_commit { + my $test1 = readfile("t/test1.mdwn"); + writefile('test1.mdwn', $config{srcdir}, $test1); + IkiWiki::rcs_add("test1.mdwn"); + IkiWiki::rcs_commit( + files => "test1.mdwn", + message => "Added the first page", + token => "moo" + ); -my @changes; -@changes = IkiWiki::rcs_recentchanges(3); + my @changes = IkiWiki::rcs_recentchanges(3); -is($#changes, 0); -is($changes[0]{message}[0]{"line"}, "Added the first page"); -is($changes[0]{pages}[0]{"page"}, "test1"); + is($#changes, 0); + is($changes[0]{message}[0]{"line"}, "Added the first page"); + is($changes[0]{pages}[0]{"page"}, "test1"); +} -# Manual commit -my $message = "Added the second page"; +sub test_manual_commit { + my $message = "Added the second page"; -my $test2 = readfile("t/test2.mdwn"); -writefile('test2.mdwn', $config{srcdir}, $test2); -system "cd $config{srcdir} && cvs add test2.mdwn >/dev/null 2>&1"; -system "cd $config{srcdir} && cvs commit -m \"$message\" test2.mdwn >/dev/null"; + my $test2 = readfile("t/test2.mdwn"); + writefile('test2.mdwn', $config{srcdir}, $test2); + system "cd $config{srcdir} && cvs add test2.mdwn >/dev/null 2>&1"; + system "cd $config{srcdir} && cvs commit -m \"$message\" test2.mdwn >/dev/null"; -@changes = IkiWiki::rcs_recentchanges(3); -is($#changes, 1); -is($changes[0]{message}[0]{"line"}, $message); -is($changes[0]{pages}[0]{"page"}, "test2"); -is($changes[1]{pages}[0]{"page"}, "test1"); + my @changes = IkiWiki::rcs_recentchanges(3); + is($#changes, 1); + is($changes[0]{message}[0]{"line"}, $message); + is($changes[0]{pages}[0]{"page"}, "test2"); + is($changes[1]{pages}[0]{"page"}, "test1"); -# extra slashes in the path shouldn't break things -$config{cvspath} = "/ikiwiki//"; -IkiWiki::checkconfig(); -@changes = IkiWiki::rcs_recentchanges(3); -is($#changes, 1); -is($changes[0]{message}[0]{"line"}, $message); -is($changes[0]{pages}[0]{"page"}, "test2"); -is($changes[1]{pages}[0]{"page"}, "test1"); + # extra slashes in the path shouldn't break things + $config{cvspath} = "/ikiwiki//"; + IkiWiki::checkconfig(); + @changes = IkiWiki::rcs_recentchanges(3); + is($#changes, 1); + is($changes[0]{message}[0]{"line"}, $message); + is($changes[0]{pages}[0]{"page"}, "test2"); + is($changes[1]{pages}[0]{"page"}, "test1"); +} -system "rm -rf $dir"; +_startup(); +test_web_commit(); +test_manual_commit(); +_shutdown(); |