list_files and cache in ~u2001/.meta/files
[cloudstore.git] / t / API.t
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use Test::More tests => 27;
6 use Data::Dump qw(dump);
7
8 use lib 'lib';
9
10 use_ok 'CloudStore::API';
11
12 ok my $o = CloudStore::API->new('s1'), 'new';
13
14 ok exists $o->{SLICE}, 'SLICE';
15
16 cmp_ok $o->create_user('md5@example.com','md5sum',0), '==', 2000, 'create_user md5';
17
18 ok my $info = $o->user_info( 'md5' ), 'user_info';
19 diag dump $info;
20
21 cmp_ok $info->{uid}, '==', 2000, 'uid';
22
23 ok my $uid = $o->create_user('test@example.com','password',100_000_000), 'create_user test';
24 diag "test: $uid";
25 ok my $test = $o->user_info( $uid ), "user_info $uid";
26 diag dump($test);
27
28 ok open(my $fh, ">", $test->{dir} . '/foo.txt'), 'open';
29 ok print($fh "test pid: $$\n"), 'print';
30 ok close($fh) , 'close';
31 ok chown $test->{uid}, $test->{gid}, "$test->{dir}/foo.txt", 'chown';
32
33 ok my $uid2 = $o->create_user('test2@example.com','password',100_000_000), 'create_user test2';
34 ok my $test2 = $o->user_info( $uid2 ), "user_info $uid2";
35
36 foreach ( $test->{dir}, $test2->{dir} ) {
37         $_ .= "/.log";
38         unlink $_ if -e $_;
39 }
40
41 sub usage {
42         ok my $u = $o->usage( $_[0] ), 'usage';
43 #       diag dump $u;
44 }
45
46 ok $o->send_file( $uid => '/foo.txt', $uid2 => 'dir1/dir2/bar.txt' ), 'send_file';
47 usage $uid;
48 usage $uid2;
49
50 ok $o->send_file( $uid2 => 'dir1/dir2/bar.txt', $uid => 'bar.txt' ), 'send_file back';
51 usage $uid;
52 usage $uid2;
53
54 ok $o->send_file( $uid2 => 'dir1/dir2/bar.txt', 2004 => 'bar.txt' ), 'send_file cross-slice';
55
56 ok $o->delete( $uid, 'foo.txt' );
57 usage $uid;
58
59 ok $o->delete( $uid2, 'dir1' );
60 usage $uid2;
61
62 ok $o->delete( $uid, 'bar.txt' );
63 usage $uid;
64