| 
<?php/*
 * test_git_program_client.php
 *
 * @(#) $Id: test_git_program_client.php,v 1.2 2019/09/20 07:22:06 mlemos Exp $
 *
 */
 
 ?>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML>
 <HEAD>
 <TITLE>Test for Manuel Lemos' PHP Git client class using the git program</TITLE>
 </HEAD>
 <BODY>
 <H1 align="center">Test for Manuel Lemos' PHP Git client class using the git program</H1>
 <HR>
 <UL>
 <?php
 
 require('git_client.php');
 require('git_program_client.php');
 
 set_time_limit(0);
 $git = new git_program_client_class;
 
 /* Output debugging information about the progress of the connection */
 $git->debug = true;
 
 /* Output debugging information to PHP error log */
 $git->log_debug = true;
 
 /* Format dubug output to display with HTML pages */
 $git->html_debug = false;
 
 $git->temporary_directory = 'tmp';
 
 $repository = 'https://github.com/manuellemos/gitclient.git';
 $module = '';
 $log_file = 'test_git_client.php';
 
 echo '<li><h2>Validating the Git repository</h2>', "\n", '<p>Repository: ', $repository, '</p>', "\n", '<p>Module: ', $module, '</p>', "\n";
 flush();
 $arguments = array(
 'Repository' => $repository,
 'Module' => $module,
 );
 if ($git->Validate($arguments, $error_code))
 {
 switch ($error_code)
 {
 case GIT_REPOSITORY_ERROR_NO_ERROR:
 break;
 case GIT_REPOSITORY_ERROR_INVALID_SERVER_ADDRESS:
 $git->error = 'It was specified an invalid Git server address';
 break;
 case GIT_REPOSITORY_ERROR_CANNOT_CONNECT:
 $git->error = 'Could not connect to the Git server';
 break;
 case GIT_REPOSITORY_ERROR_INVALID_AUTHENTICATION:
 $git->error = 'It was specified an invalid user or an incorrect password';
 break;
 case GIT_REPOSITORY_ERROR_COMMUNICATION_FAILURE:
 $git->error = 'There was a problem communicating with the Git server';
 break;
 case GIT_REPOSITORY_ERROR_CANNOT_CHECKOUT:
 $git->error = 'It was not possible to checkout the specified module from the Git server';
 break;
 case GIT_REPOSITORY_ERROR_CANNOT_FIND_HEAD:
 $git->error = 'The repository seems to be empty.';
 break;
 default:
 $git->error = 'it was returned an unexpected Git repository validation error: ' . $git->error;
 break;
 }
 }
 if (strlen($git->error) == 0)
 {
 echo '<li><h2>Connecting to the Git server</h2>', "\n", '<p>Repository: ', $repository, '</p>', "\n";
 flush();
 $arguments = array(
 'Repository' => $repository
 );
 }
 if(strlen($git->error) == 0
 && $git->Connect($arguments))
 {
 echo '<li><h2>Checking out files from the repository '.$repository.'</h2>', "\n";
 flush();
 $arguments = array(
 'Module' => $module
 );
 if($git->Checkout($arguments))
 {
 $arguments = array(
 'GetFileData'=>false,
 'GetFileModes'=>false
 );
 for($files = 0;; ++$files)
 {
 if(!$git->GetNextFile($arguments, $file, $no_more_files)
 || $no_more_files)
 break;
 echo '<pre>', HtmlSpecialChars(print_r($file, 1)), '</pre>';
 flush();
 }
 echo '<pre>Total of '.$files.' files</pre>',"\n";
 }
 echo '<li><h2>Getting the log of changes of file '.$log_file.'</h2>', "\n";
 flush();
 $arguments = array(
 'Module' => $module,
 'File' => $log_file,
 //            'Revision' => 'a47e98393a5740d68ff78c34d29f68e22d38b2d0',
 //            'NewerThan' => '2013-11-28 15:59:46 +0000'
 );
 if ($git->Log($arguments))
 {
 for(;;)
 {
 $arguments = array();
 if (!$git->GetNextLogFile($arguments, $file, $no_more_files)
 || $no_more_files)
 break;
 echo '<pre>', HtmlSpecialChars(print_r($file, 1)), '</pre>';
 }
 }
 $git->Disconnect();
 }
 if (strlen($git->error))
 echo '<H2 align="center">Error: ', HtmlSpecialChars($git->error), '</H2>', "\n";
 ?>
 </UL>
 <HR>
 </BODY>
 </HTML>
 
 |