<?php 
/** 
 * test.php; mininimalistic class webdav_client testing script. 
 * 
 * This script shows the basic use of the methods implemented in the webdav_client class. 
 * 
 * @author Christian Juerges <christian.juerges@xwave.ch>, Xwave GmbH, Josefstr. 92, 8005 Zuerich - Switzerland. 
 * @copyright (C) 2003/2004, Christian Juerges 
 * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License 
 * @package test 
 */  
?> 
<html> 
<body> 
<?php 
/* 
$Id: test.php,v 1.4 2004/08/18 14:11:04 chris Exp $ 
$Author: chris $ 
$Date: 2004/08/18 14:11:04 $ 
$Revision: 1.4 $ 
 
*/ 
 
if (!class_exists('webdav_client')) { 
 require('./class_webdav_client.php'); 
}  
 
$wdc = new webdav_client(); 
$wdc->set_server('demo.webdav.ch'); 
$wdc->set_port(80); 
$wdc->set_user('demo@xwave.ch'); 
$wdc->set_pass('demodemo'); 
// use HTTP/1.1 
$wdc->set_protocol(1); 
// enable debugging 
$wdc->set_debug(false); 
 
 
if (!$wdc->open()) { 
  print 'Error: could not open server connection'; 
  exit; 
} 
 
// check if server supports webdav rfc 2518 
if (!$wdc->check_webdav()) { 
  print 'Error: server does not support webdav or user/password may be wrong'; 
  exit; 
} 
 
$dir = $wdc->ls('/'); 
?> 
<h1>class_webdav_client Test-Suite:</h1><p> 
Using method webdav_client::ls to get a listing of dir /:<br> 
<table summary="ls" border="1"> 
<th>Filename</th><th>Size</th><th>Creationdate</th><th>Resource Type</th><th>Content Type</th><th>Activelock Depth</th><th>Activelock Owner</th><th>Activelock Token</th><th>Activelock Type</th> 
<?php  
foreach($dir as $e) { 
  $ts = $wdc->iso8601totime($e['creationdate']); 
  $line = sprintf('<tr><td>%s </td><td>%s </td><td>%s </td><td>%s </td><td>%s </td><td>%s </td><td>%s </td><td>%s </td><td>%s </td></tr>', 
          $e['href'],  
          $e['getcontentlength'],  
          date('d.m.Y H:i:s',$ts), 
          $e['resourcetype'], 
          $e['getcontenttype'], 
          $e['activelock_depth'], 
          $e['activelock_owner'], 
          $e['activelock_token'], 
          $e['activelock_type'] 
          ); 
  print urldecode($line); 
} 
?> 
</table> 
<p> 
Create a new collection (Directory) using method webdav_client::mkcol... 
<?php 
$test_folder = '/wdc test 1 folder'; 
print '<br>creating collection ' . $test_folder .' ...<br>'; 
$http_status  = $wdc->mkcol($test_folder); 
print 'webdav server returns ' . $http_status . '<br>'; 
 
print 'removing collection just created using method webdav_client::delete ...<br>'; 
$http_status_array = $wdc->delete($test_folder); 
print 'webdav server returns ' . $http_status_array['status'] . '<br>'; 
 
print 'let\'s see what\'s happening when we try to delete the same nonexistent collection again....<br>'; 
$http_status_array = $wdc->delete($test_folder); 
print 'webdav server returns ' . $http_status_array['status'] . '<br>'; 
 
print 'let\'s see what\'s happening when we try to delete an existent locked collection....<br>'; 
$http_status_array = $wdc->delete('/packages.txt'); 
print 'webdav server returns ' . $http_status_array['status'] . '<br>'; 
 
 
$test_folder = '/wdc test 2 folder'; 
print 'let\'s create a second collection ...' . $test_folder . '<br>'; 
$http_status  = $wdc->mkcol($test_folder); 
print 'webdav server returns ' . $http_status . '<br>'; 
 
// put a file to webdav collection 
$filename = './Testfiles/test_ref.rar'; 
print 'Let\'s put the file ' . $filename . ' using webdav::put into collection...<br>'; 
$handle = fopen ($filename, 'r'); 
$contents = fread ($handle, filesize ($filename)); 
fclose ($handle); 
$target_path = $test_folder . '/test 123 456.rar'; 
$http_status = $wdc->put($target_path,$contents); 
print 'webdav server returns ' . $http_status .'<br>'; 
// --- 
$filename = './Testfiles/Chiquita.jpg'; 
print 'Let\'s Test second put method...<br>'; 
$target_path = $test_folder . '/picture.jpg'; 
$http_status = $wdc->put_file($target_path, $filename); 
print 'webdav server returns ' . $http_status . '<br>'; 
 
// --- 
print 'Let\'s get file just putted...'; 
$http_status = $wdc->get($test_folder . '/picture.jpg', $buffer); 
print 'webdav server returns ' . $http_status . '. Buffer is filled with ' . strlen($buffer). ' Bytes.<br>'; 
 
// --- 
print 'Let\'s use method webdav_client::copy to create a copy of file ' . $target_path . ' the webdav server<br>'; 
$new_copy_target = '/copy of picture.jpg'; 
$http_status = $wdc->copy_file($target_path, $new_copy_target, true); 
print 'webdav server returns ' . $http_status . '<br>'; 
 
// -- 
print 'Let\'s use method webdav_client::copy to create a copy of collection ' . $test_folder . ' the webdav server<br>'; 
$new_copy_target = '/copy of wdc test 2 folder'; 
$http_status = $wdc->copy_coll($test_folder, $new_copy_target, true); 
print 'webdav server returns ' . $http_status . '<br>'; 
 
 
// --- 
print 'Let\'s move/rename a file in a collection<br>'; 
$new_target_path = $test_folder . '/picture renamed.jpg'; 
$http_status = $wdc->move($target_path, $new_target_path, true); 
print 'webdav server returns ' . $http_status . '<br>'; 
 
// --- 
print 'Let\'s move/rename a collection<br>'; 
$new_target_folder = '/wdc test 2 folder renamed'; 
$http_status = $wdc->move($test_folder, $new_target_folder, true); 
print 'webdav server returns ' .  $http_status . '<br>'; 
 
// ---  
print 'Let\'s lock this moved collection<br>'; 
$http_status_array = $wdc->lock($new_target_folder); 
print 'webdav server returns ' . $http_status_array['status'] . '<br>'; 
 
print 'locktocken is ' . $http_status_array[0]['locktoken']. '<br>'; 
print 'Owner of lock is ' . $http_status_array[0]['owner'] . '<br>'; 
// --- 
print 'Let\'s unlock this collection with a wrong locktoken<br>'; 
$http_status = $wdc->unlock($new_target_folder, 'wrongtoken'); 
print "webdav server returns $http_status<br>"; 
 
print 'Let\'s unlock this collection with the right locktoken<br>'; 
$http_status = $wdc->unlock($new_target_folder, $http_status_array[0]['locktoken']); 
print 'webdav server returns ' . $http_status .'<br>'; 
 
// --  
print 'Let\'s remove/delete the moved collection ' . $new_target_folder . '<br>'; 
$http_status_array = $wdc->delete($new_target_folder); 
print 'webdav server returns ' . $http_status_array['status'] . '<br>'; 
 
$wdc->close(); 
flush(); 
?> 
</body> 
<html>
 
 |