xaizek / rocketgit (License: AGPLv3+) (since 2018-12-09)
Light and fast Git hosting solution suitable to serve both as a hub or as a personal code storage with its tickets, pull requests, API and much more.
<root> / tests / http_304.php (3d99dc8ebc623ac879574c139fabc3926ff26b93) (1,165B) (mode 100644) [raw]
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('track_errors', 'On');

$rg_cache_debug = TRUE;
$test_normal = TRUE;

$INC = dirname(__FILE__) . '/../inc';
require_once(dirname(__FILE__) . '/config.php');
require_once($INC . '/init.inc.php');
require_once($INC . '/util.inc.php');
require_once('helpers.inc.php');
require_once('http.inc.php');

rg_log_set_file('http_304.log');

require_once('common.php');

$_testns = 'http_304';

prepare_http();

rg_log('');
rg_log_enter('Loading main page to get ETag value...');
$data = array(); $headers = array();
$r = do_req($test_url . '/', $data, $headers);
rg_log_ml('Headers: ' . print_r($r['header'], TRUE));
$x = explode("\nETag: ", $r['header'], 2);
$y = explode("\n", $x[1], 2);
$etag = trim($y[0]);
rg_log_exit();


rg_log('');
rg_log_enter('Loading main page...');
$data = array(); $headers = array('If-None-Match: ' . $etag);
$r = do_req($test_url . '/', $data, $headers);
$x = explode("\n", $r['header'], 2);
$x = trim($x[0]);
if (!strstr($x, ' 304 ')) {
	rg_log_ml('headers: ' . print_r($r['header'], TRUE));
	rg_log('We did not got 304 answer (but [' . $x . '])!');
	exit(1);
}
rg_log_exit();

rg_log('OK!');
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master