diff options
-rwxr-xr-x | git-branch-list | 4 | ||||
-rw-r--r-- | t/106-checkout-works-with-more-than-ten-saved-branches.t | 100 | ||||
-rw-r--r-- | t/107-drop-works-with-more-than-ten-saved-branches.t | 100 |
3 files changed, 202 insertions, 2 deletions
diff --git a/git-branch-list b/git-branch-list index 7cd1295..fca335e 100755 --- a/git-branch-list +++ b/git-branch-list @@ -130,8 +130,8 @@ function branch_by_id () { local id="$1" local branch=$(list_branches | - tr -d ' ' | - fgrep "$id " | + tr -s ' ' | + fgrep " $id " | cut -d ' ' -f 2) echo "$branch" diff --git a/t/106-checkout-works-with-more-than-ten-saved-branches.t b/t/106-checkout-works-with-more-than-ten-saved-branches.t new file mode 100644 index 0000000..b51c699 --- /dev/null +++ b/t/106-checkout-works-with-more-than-ten-saved-branches.t @@ -0,0 +1,100 @@ +#!/usr/bin/env perl -w + +use strict; + +use Test::More; + +use Bin qw($BIN); + +chdir 't-git-repo' or die $!; + +system('git branch one'); +ok !$?; + +system("$BIN save one"); +ok !$?; + +system('git branch two'); +ok !$?; + +system("$BIN save two"); +ok !$?; + +system('git branch three'); +ok !$?; + +system("$BIN save three"); +ok !$?; + +system('git branch four'); +ok !$?; + +system("$BIN save four"); +ok !$?; + +system('git branch five'); +ok !$?; + +system("$BIN save five"); +ok !$?; + +system('git branch six'); +ok !$?; + +system("$BIN save six"); +ok !$?; + +system('git branch seven'); +ok !$?; + +system("$BIN save seven"); +ok !$?; + +system('git branch eight'); +ok !$?; + +system("$BIN save eight"); +ok !$?; + +system('git branch nine'); +ok !$?; + +system("$BIN save nine"); +ok !$?; + +system('git branch ten'); +ok !$?; + +system("$BIN save ten"); +ok !$?; + +system('git branch eleven'); +ok !$?; + +system("$BIN save eleven"); +ok !$?; + + +system("$BIN 1"); +ok !$?; + +my $current_branch = qx(git rev-parse --abbrev-ref HEAD); +is $current_branch, 'eleven +'; + + +system("$BIN 11"); +ok !$?; + +$current_branch = qx(git rev-parse --abbrev-ref HEAD); +is $current_branch, 'one +'; + + +# Teardown +system('git checkout master'); +system("$BIN clear"); +system('git branch -d one two three four five six seven eight nine ten eleven'); + + +done_testing; diff --git a/t/107-drop-works-with-more-than-ten-saved-branches.t b/t/107-drop-works-with-more-than-ten-saved-branches.t new file mode 100644 index 0000000..374f49b --- /dev/null +++ b/t/107-drop-works-with-more-than-ten-saved-branches.t @@ -0,0 +1,100 @@ +#!/usr/bin/env perl -w + +use strict; + +use Test::More; + +use Bin qw($BIN); + +chdir 't-git-repo' or die $!; + +system('git branch one'); +ok !$?; + +system("$BIN save one"); +ok !$?; + +system('git branch two'); +ok !$?; + +system("$BIN save two"); +ok !$?; + +system('git branch three'); +ok !$?; + +system("$BIN save three"); +ok !$?; + +system('git branch four'); +ok !$?; + +system("$BIN save four"); +ok !$?; + +system('git branch five'); +ok !$?; + +system("$BIN save five"); +ok !$?; + +system('git branch six'); +ok !$?; + +system("$BIN save six"); +ok !$?; + +system('git branch seven'); +ok !$?; + +system("$BIN save seven"); +ok !$?; + +system('git branch eight'); +ok !$?; + +system("$BIN save eight"); +ok !$?; + +system('git branch nine'); +ok !$?; + +system("$BIN save nine"); +ok !$?; + +system('git branch ten'); +ok !$?; + +system("$BIN save ten"); +ok !$?; + +system('git branch eleven'); +ok !$?; + +system("$BIN save eleven"); +ok !$?; + + +system("$BIN drop 1"); +ok !$?; + +my $branch_list = qx($BIN); +is $branch_list, ' 1 ten + 2 nine + 3 eight + 4 seven + 5 six + 6 five + 7 four + 8 three + 9 two + 10 one +'; + + +# Teardown +system("$BIN clear"); +system('git branch -d one two three four five six seven eight nine ten eleven'); + + +done_testing; |