Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require 'fb.inc.php';
- $fb = fbManager::getInstance();
- $db = $fb->db;
- $fb->debug_mode=true;
- $db->debug_mode=true;
- if (!isset($_REQUEST['ajax'])) {
- drawPage();
- exit();
- } else
- {
- $className = $_REQUEST['class4'];
- $mtdName = $_REQUEST['mtdname4'];
- $targs = $_REQUEST['targs4'];
- //$obj = call_user_func(array($className,'getInstance'));
- switch ($className) {
- case 'fbManager': $obj=$fb;break;
- case 'Baser':$obj=$db;break;
- }
- $args = array_map('trim',explode('#ZZZ#',$targs));
- //-----------------------func to test method with debug
- function dbt_call($obj, $mtdName, $args) {
- $res = call_user_func_array(array($obj, $mtdName), $args);
- $testmes = call_user_func(array($obj,'deshow'));
- $debug_info = '<pre>'.var_export(debug_backtrace(),true).'</pre>';
- $result = array();
- $result['res']=$res;
- $result['testmes']=$testmes;
- $result['debug_info']=$debug_info;
- return $result;
- }
- //--------------------------------
- $result = dbt_call($obj, $mtdName, $args);
- //--------------------------------
- echo $className.'<br/>'.$mtdName.'<br/>'.$targs.'<br/>';
- echo str_repeat('-',30).'args<br/>';
- echo '<pre>'.print_r($args,true).'</pre>';
- echo str_repeat('-',30).'result<br/>';
- if (!is_scalar($result['res'])) {
- $result['res']= '<pre>'.print_r($result['res'],true).'</pre>';
- }
- echo $result['res'];
- echo '<br/>'.str_repeat('-',30).'test mes<br/>';
- echo $result['testmes'];
- //echo $result['debug_info'];
- }
- //--------------------------------------------------------
- function drawMethods($obj) {
- $className = get_class($obj);
- $refl = new ReflectionClass($className);
- $methods = $refl->getMethods();
- echo '<form name="'.$className.'" >'.
- '<table cellspacing="0" cellpadding="1" border="1" bordercolor="#888"><tr>'.
- '<th>name</th><th>type</th><th>args</th><th></th><th></th></tr>';
- $i=0;
- foreach ($methods as $method) {
- $args = $method->getParameters();
- $inf=array();
- foreach ($args as $arg) {
- $inf[] = $arg->name.($arg->isOptional()?' optional':'');
- }
- echo '<tr><td>'.$method->name.'</td><td>'.
- ($method->isAbstract() ? 'abstract ':'').
- ($method->isConstructor() ? 'constructor ':'').
- ($method->isDestructor() ? 'destructor ':'').
- ($method->isFinal() ? 'final ':'').
- ($method->isPrivate() ? 'private ':'').
- ($method->isProtected() ? 'protected ':'').
- ($method->isPublic() ? 'public ':'').
- ($method->isStatic() ? 'static ':'').
- '</td><td>'.implode(', ',$inf).'</td>'.
- '<td><input type="text" name="args'.$i.'"/></td>'.
- '<td><input type="button" name="button'.$i.'" value="go" '.
- 'onclick="this.form.nam='.$i.';'.
- 'sendtest(this.form);" /></td>'.
- '</tr>';
- $i++;
- }
- echo '</table></form>';
- }
- //------------------------------------------
- function drawPage() {
- global $fb;
- global $db;
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
- <meta name="description" content="page for unit tests" />
- <title>page for unit tests</title>
- <script type="text/javascript" src="jquery.min.js"></script>
- <script type="text/javascript">
- function sendtest(el) {
- var tclass=el.name;
- var targs = el.elements['args'+el.nam];
- var tbutton = el.elements['button'+el.nam];
- var trow = tbutton.parentNode.parentNode;
- var tds = trow.childNodes;
- var mtdName = tds[0].innerHTML;
- //alert(mtdName);
- //alert(targs.value);
- $('#content').empty();
- $.when (
- $.get("<?php echo $_SERVER["PHP_SELF"];?>",
- {ajax:'', class4: tclass, mtdname4: mtdName, targs4: targs.value}
- )
- ).done(
- function(inf) {
- $('#content').html(inf);
- }
- )
- }
- //--------------------------------------------
- $(document).ready(function() {
- $('#ajaxstatus').ajaxStart(
- function() {
- $(this).html('Request started. Please wait...');
- }
- )
- $('#ajaxstatus').ajaxStop(
- function() {
- $(this).html('Request complete');
- }
- )
- });
- </script>
- <style type="text/css">
- #leftcol {
- float:left;
- width:50%;
- }
- #rightcol {
- position:absolute;
- left:51%;
- top:0;
- }
- </style>
- </head>
- <body>
- <div id="leftcol">
- <h3>Check fbManager methods</h3>
- <?php
- drawMethods($fb);
- ?>
- <h3>Check Baser methods</h3>
- <?php
- drawMethods($db);
- ?>
- </div>
- <div id="rightcol">
- <h1>check results</h1>
- <div id="ajaxstatus"></div>
- <div id="content"></div>
- </div>
- </body>
- </html>
- <?php
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement