Remove unused Module::Build tests
[p5sagit/p5-mst-13.2.git] / lib / Module / Build / t / tilde.t
CommitLineData
bb4e9162 1#!/usr/bin/perl -w
2
3# Test ~ expansion from command line arguments.
4
5use strict;
6use lib $ENV{PERL_CORE} ? '../lib/Module/Build/t/lib' : 't/lib';
c1d8f74e 7use MBTest tests => 14;
bb4e9162 8
9use Cwd ();
10my $cwd = Cwd::cwd;
11my $tmp = File::Spec->catdir( $cwd, 't', '_tmp' );
12
13use DistGen;
14my $dist = DistGen->new( dir => $tmp );
15$dist->regen;
16
17chdir( $dist->dirname ) or die "Can't chdir to '@{[$dist->dirname]}': $!";
18
19
20use Module::Build;
21
22sub 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
c1d8f74e 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
bb4e9162 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
92chdir( $cwd ) or die "Can''t chdir to '$cwd': $!";
93$dist->remove;
94
95use File::Path;
96rmtree( $tmp );