Remove unused Module::Build tests
[p5sagit/p5-mst-13.2.git] / lib / Module / Build / t / tilde.t
1 #!/usr/bin/perl -w
2
3 # Test ~ expansion from command line arguments.
4
5 use strict;
6 use lib $ENV{PERL_CORE} ? '../lib/Module/Build/t/lib' : 't/lib';
7 use MBTest tests => 14;
8
9 use Cwd ();
10 my $cwd = Cwd::cwd;
11 my $tmp = File::Spec->catdir( $cwd, 't', '_tmp' );
12
13 use DistGen;
14 my $dist = DistGen->new( dir => $tmp );
15 $dist->regen;
16
17 chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
18
19
20 use Module::Build;
21
22 sub run_sample {
23     my @args = @_;
24
25     local $Test::Builder::Level = $Test::Builder::Level + 1;
26
27     $dist->clean;
28
29     my $mb;
30     stdout_of( sub {
31       $mb = Module::Build->new_from_context( @args );
32     } );
33
34     return $mb;
35 }
36
37
38 {
39     local $ENV{HOME} = 'home';
40
41     my $mb;
42
43     $mb = run_sample( install_base => '~' );
44     is( $mb->install_base,      $ENV{HOME} );
45
46     $mb = run_sample( install_base => '~/foo' );
47     is( $mb->install_base,      "$ENV{HOME}/foo" );
48
49     $mb = run_sample( install_base => '~~' );
50     is( $mb->install_base,      '~~' );
51
52   TODO: {
53     local $TODO = "Not handling spaces in _detildefy() properly yet";
54
55     $mb = run_sample( install_base => '~ foo' );
56     is( $mb->install_base,      '~ foo' );
57
58     # glob() doesn't work on non-existent paths with spaces
59     $mb = run_sample( install_base => '~/ foo' );
60     is( $mb->install_base,      "$ENV{HOME}/ foo" );
61
62     $mb = run_sample( install_base => '~/fo o' );
63     is( $mb->install_base,      "$ENV{HOME}/fo o" );
64   }
65
66     $mb = run_sample( install_base => 'foo~' );
67     is( $mb->install_base,      'foo~' );
68
69     $mb = run_sample( prefix => '~' );
70     is( $mb->prefix,            $ENV{HOME} );
71
72     $mb = run_sample( install_path => { html => '~/html',
73                                         lib  => '~/lib'   }
74                     );
75     is( $mb->install_destination('lib'),  "$ENV{HOME}/lib" );
76     # 'html' is translated to 'binhtml' & 'libhtml'
77     is( $mb->install_destination('binhtml'), "$ENV{HOME}/html" );
78     is( $mb->install_destination('libhtml'), "$ENV{HOME}/html" );
79
80     $mb = run_sample( install_path => { lib => '~/lib' } );
81     is( $mb->install_destination('lib'),  "$ENV{HOME}/lib" );
82
83     $mb = run_sample( destdir => '~' );
84     is( $mb->destdir,           $ENV{HOME} );
85
86     $mb->install_base('~');
87     is( $mb->install_base,      '~', 'API does not expand tildes' );
88 }
89
90
91 # cleanup
92 chdir( $cwd ) or die "Can''t chdir to '$cwd': $!";
93 $dist->remove;
94
95 use File::Path;
96 rmtree( $tmp );