From 00e44097d5e7112acb7decd2d606d929b2c71a2f Mon Sep 17 00:00:00 2001 From: Errietta Kostala Date: Sun, 15 Dec 2013 23:12:46 +0000 Subject: [PATCH] A few tests. --- t/000-tear-env.t | 17 +++++++++++++++ t/001-setup-env.t | 19 +++++++++++++++++ t/100-init.t | 54 +++++++++++++++++++++++++++++++++++++++++++++++ t/200-delete.t | 19 +++++++++++++++++ t/999-tear-env.t | 17 +++++++++++++++ 5 files changed, 126 insertions(+) create mode 100644 t/000-tear-env.t create mode 100644 t/001-setup-env.t create mode 100644 t/100-init.t create mode 100644 t/200-delete.t create mode 100644 t/999-tear-env.t diff --git a/t/000-tear-env.t b/t/000-tear-env.t new file mode 100644 index 0000000..afe261a --- /dev/null +++ b/t/000-tear-env.t @@ -0,0 +1,17 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Shell::Command; +use Test::Most; + +chdir 't' or die $!; + +if (!-d 'etc') { + plan skip_all => 'No need to tear previous env.'; +} + +ok rm_rf 'etc'; + +done_testing; diff --git a/t/001-setup-env.t b/t/001-setup-env.t new file mode 100644 index 0000000..fb59f05 --- /dev/null +++ b/t/001-setup-env.t @@ -0,0 +1,19 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Test::Most; + +system ("mkdir -p t/etc"); +ok !$?; + +system ("mkdir -p t/etc/.vcsh_home"); +ok !$?; + +chdir 't/etc/' or die $!; + +system ("ln -s '../../vcsh'"); +ok !$?; + +done_testing; diff --git a/t/100-init.t b/t/100-init.t new file mode 100644 index 0000000..b726868 --- /dev/null +++ b/t/100-init.t @@ -0,0 +1,54 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Cwd 'abs_path'; +use Test::Most; + +chdir 't/etc/' or die $!; + +$ENV{'HOME'} = abs_path ('.vcsh_home'); + +my $output = `./vcsh status`; + +ok $output eq "", 'No repos set up yet.'; + +$output = `./vcsh init test1`; + +ok $output eq "Initialized empty Git repository in " . $ENV{'HOME'} . "/.config/vcsh/repo.d/test1.git/\n"; + +$output = `./vcsh status`; + +ok $output eq "test1:\n\n", 'Our new repo is there'; + +chdir $ENV{"HOME"} . '/.config/vcsh/repo.d/test1.git/' or die $!; + +ok -f 'HEAD'; +ok -d 'branches'; +ok -f 'config'; +ok -f 'description'; +ok -d 'hooks'; +ok -d 'info'; +ok -d 'objects'; +ok -d 'refs'; + +ok -f 'hooks/applypatch-msg.sample'; +ok -f 'hooks/commit-msg.sample'; +ok -f 'hooks/post-update.sample'; +ok -f 'hooks/pre-applypatch.sample'; +ok -f 'hooks/pre-commit.sample'; +ok -f 'hooks/pre-push.sample'; +ok -f 'hooks/pre-rebase.sample'; +ok -f 'hooks/prepare-commit-msg.sample'; +ok -f 'hooks/update.sample'; + +ok -f 'info/exclude'; + +ok -d 'objects/info'; +ok -d 'objects/pack'; + +ok -d 'refs/heads'; +ok -d 'refs/tags'; + +done_testing; diff --git a/t/200-delete.t b/t/200-delete.t new file mode 100644 index 0000000..cd07871 --- /dev/null +++ b/t/200-delete.t @@ -0,0 +1,19 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Cwd 'abs_path'; +use Test::Most; + +chdir 't/etc/' or die $!; + +$ENV{'HOME'} = abs_path ('.vcsh_home'); + +system ("echo 'Yes, do as I say' | ./vcsh delete test1"); + +my $output = `./vcsh status`; + +ok $output eq "", 'No repos set up anymore.'; + +done_testing; diff --git a/t/999-tear-env.t b/t/999-tear-env.t new file mode 100644 index 0000000..afe261a --- /dev/null +++ b/t/999-tear-env.t @@ -0,0 +1,17 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Shell::Command; +use Test::Most; + +chdir 't' or die $!; + +if (!-d 'etc') { + plan skip_all => 'No need to tear previous env.'; +} + +ok rm_rf 'etc'; + +done_testing; -- 2.39.5