<?php
class test {
function pass() {
}
function fail() {
}
}
function test_clearinghouse($a0 = NULL, &$a1 = NULL, &$a2 = NULL, &$a3 = NULL, &$a4 = NULL, &$a5 = NULL, &$a6 = NULL, &$a7 = NULL, &$a8 = NULL, &$a9 = NULL) {
static $state = TEST_LOAD,
$test,
$object;
switch ($state) {
case TEST_LOAD:
$object = new test;
}
$test = $a0;
$state = TEST_START;
break;
case TEST_START:
$state = TEST_IN;
$function = 'original_'. $a0;
switch ($num_args - 1) {
case 0: $return = $function();break;
case 1: $return = $function($a1); break;
case 2: $return = $function($a1, $a2); break;
case 3: $return = $function($a1, $a2, $a3); break;
case 4: $return = $function($a1, $a2, $a3, $a4); break;
case 5: $return = $function($a1, $a2, $a3, $a4, $a5); break;
case 6: $return = $function($a1, $a2, $a3, $a4, $a5, $a6); break;
case 7: $return = $function($a1, $a2, $a3, $a4, $a5, $a6, $a7); break;
case 8: $return = $function($a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8); break;
case 9: $return = $function($a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8, $a9); break;
}
$final_return = $test['final_return'];
unset($test['final_return']);
if (!$test && $return === $final_return) {
$object->pass();
}
else {
$object->fail();
}
$state = TEST_LOAD;
break;
case TEST_IN:
$incoming = $step['incoming'];
for ($i = 0; $i < $num_args; $i++) {
$variable_name = "a$i";
if ($incoming[$i] !== $$variable_name) {
$object->fail();
}
}
if (isset($step['references'])) {
foreach ($step['references'] as $key => $value) {
$variable_name = "$a$key";
$$variable_name = $value;
}
}
if (isset($step['return'])) {
return $step['return'];
}
}
}
return test_clearinghouse('db_query', $query);
}
return test_clearinghouse('cache_get', $cid, $table);
}
return test_clearinghouse('cache_set', $cid, $data, $table, $expire, $headers);
}
return test_clearinghouse('db_fetch_object', $result);
}
require_once './drupal_original/includes/bootstrap.inc';
$variable_init_test =
'incoming' =>
array('cache_get',
'variables',
'cache'),
'return' => FALSE,
),
'incoming' =>
array('db_query',
'SELECT * FROM {variable}'),
'return' => '__test_placeholder__',
),
'incoming' =>
array('db_fetch_object',
'__test_placeholder__'),
'return' =>
(object
) array('name' =>
'foo',
'value' =>
serialize('bar')),
),
'incoming' =>
array('db_fetch_object',
'__test_placeholder__'),
'return' => FALSE,
),
),
'final_return' =>
array('foo' =>
'bar'),
);
test_clearinghouse($variable_init_test);
test_clearinghouse('variable_init');
unset($variable_init_test[2]);
$variable_init_test[4]['incoming'][2] = NULL;
$variable_init_test['final_return'] = NULL;
test_clearinghouse($variable_init_test);
test_clearinghouse('variable_init');