@@ -22,7 +22,7 @@ use HTTP::DAV
2222select STDERR ; $| = 1;
2323select STDOUT ; $| = 1;
2424
25- my $t = Test::Nginx-> new()-> has(qw/ http dav/ )-> plan(13 );
25+ my $t = Test::Nginx-> new()-> has(qw/ http dav/ )-> plan(20 );
2626
2727$t -> write_file_expand(' nginx.conf' , <<'EOF' );
2828
@@ -65,6 +65,10 @@ my $content;
6565my $d = HTTP::DAV-> new();
6666$d -> open ($url );
6767
68+ # debug:
69+ # $d->DebugLevel(3);
70+ # see /tmp/perldav_debug.txt.
71+
6872my $p = $d -> propfind(' /' , 1);
6973is($p -> is_collection, 1, ' propfind dir collection' );
7074is($p -> get_property(' displayname' ), ' /' , ' propfind dir displayname' );
@@ -85,32 +89,54 @@ is($d->lock('/foo'), 0, 'prevent double lock');
8589$d -> unlock(' /foo' );
8690is($d -> lock(' /foo' ), 1, ' relock' );
8791
92+ $d -> lock(' /bar' );
93+ $p = $d -> propfind(' /bar' );
94+ is($p -> get_property(' displayname' ), ' bar' , ' lock creates a file' );
95+
96+ $d -> get(' /bar' , \$content ) or $content = ' none' ;
97+ is($content , ' ' , ' lock creates an empty file' );
98+
8899$content = " bar" ;
89- $d -> put(\$content , ' /foo' );
90- $content = ' ' ;
91- $d -> get(' /foo' , \$content );
100+ $d -> put(\$content , ' /bar' );
101+ $d -> get(' /bar' , \$content ) or $content = ' ' ;
92102is($content , ' bar' , ' put lock' );
93103
94104$content = " qux" ;
95- $d2 -> put(\$content , ' /foo' );
96- $content = ' ' ;
97- $d2 -> get(' /foo' , \$content );
105+ $d2 -> put(\$content , ' /bar' );
106+ $d2 -> get(' /bar' , \$content ) or $content = ' ' ;
98107isnt($content , ' qux' , ' prevent put lock' );
99108
100- $d -> mkcol(' /d' );
109+ $d -> mkcol(' /d/ ' );
101110$d -> lock(' /d/' );
102- $d -> copy(' /foo' , ' /d/foo' );
103- $content = ' ' ;
104- $d -> get(' /d/foo' , \$content );
111+ $d -> copy(' /bar' , ' /d/bar' );
112+ $d -> get(' /d/bar' , \$content ) or $content = ' ' ;
105113is($content , ' bar' , ' copy lock' );
106114
107- $d -> unlock(' /foo' );
108- $d2 -> copy(' /foo' , ' /d/bar' );
109- $content = ' ' ;
110- $d2 -> get(' /d/bar' , \$content );
115+ $d2 -> copy(' /bar' , ' /d/qux' );
116+ $d2 -> get(' /d/qux' , \$content ) or $content = ' ' ;
111117isnt($content , ' bar' , ' prevent copy lock' );
112118
113- $d -> unlock(' /d' );
119+ $d2 -> delete (' /d/bar' );
120+ $d2 -> get(' /d/bar' , \$content ) or $content = ' ' ;
121+ is($content , ' bar' , ' prevent delete lock' );
122+
123+ $d -> delete (' /d/bar' );
124+ $d -> get(' /d/bar' , \$content ) or $content = ' ' ;
125+ is($content , ' ' , ' delete lock' );
126+
127+ $d -> mkcol(' /d/c/' );
128+ $p = $d -> propfind(' /d/c/' );
129+ is($p -> is_collection, 1, ' mkcol lock' );
130+
131+ $d2 -> mkcol(' /d/e/' );
132+ is($d2 -> propfind(' /d/e/' ), 0, ' prevent mkcol lock' );
133+
134+ $d -> unlock(' /d/' );
135+ $d -> lock(' /d/' , -depth => " 0" );
136+ $content = ' qux' ;
137+ $d2 -> put(\$content , ' /d/c/qux' );
138+ $d2 -> get(' /d/c/qux' , \$content ) or $content = ' ' ;
139+ is($content , ' qux' , ' put to a depth-0-locked subdirectory' );
114140
115141
116142# ##############################################################################
0 commit comments