mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
Merge branch 'master' of https://github.com/top-think/think
This commit is contained in:
@@ -108,7 +108,7 @@ thinkphp5 的测试的主要流程是跟 thinkphp 的系统流程是相似的,
|
||||
|模块|认领人|进度|
|
||||
|---|---|---|
|
||||
|Base|||
|
||||
|App|Haotong Lin||
|
||||
|App|Haotong Lin|√|
|
||||
|Build|刘志淳||
|
||||
|Config|Haotong Lin|√|
|
||||
|Cache|||
|
||||
@@ -117,6 +117,7 @@ thinkphp5 的测试的主要流程是跟 thinkphp 的系统流程是相似的,
|
||||
|Db|||
|
||||
|Debug|大漠|√|
|
||||
|Error|大漠||
|
||||
|Exception|Haotong Lin|√|
|
||||
|Hook|流年|√|
|
||||
|Input|Haotong Lin|√|
|
||||
|Lang|流年|√|
|
||||
|
||||
@@ -16,12 +16,82 @@
|
||||
|
||||
namespace tests\thinkphp\library\think;
|
||||
|
||||
use ReflectionClass;
|
||||
use think\App;
|
||||
use think\Config;
|
||||
|
||||
function func_trim($value)
|
||||
{
|
||||
return trim($value);
|
||||
}
|
||||
|
||||
function func_strpos($haystack, $needle)
|
||||
{
|
||||
return strpos($haystack, $needle);
|
||||
}
|
||||
|
||||
class AppInvokeMethodTestClass
|
||||
{
|
||||
public static function staticRun($string)
|
||||
{
|
||||
return $string;
|
||||
}
|
||||
|
||||
public function run($string)
|
||||
{
|
||||
return $string;
|
||||
}
|
||||
}
|
||||
|
||||
class appTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testRun()
|
||||
{
|
||||
//\think\App::run();
|
||||
//$this->expectOutputString('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP5</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_bd568ce7058a1091"></thinkad>');
|
||||
// todo...
|
||||
Config::set('root_namespace', ['/path/']);
|
||||
|
||||
App::run();
|
||||
|
||||
$expectOutputString = '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP5</b>!</p></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_bd568ce7058a1091"></thinkad>';
|
||||
$this->expectOutputString($expectOutputString);
|
||||
|
||||
$rc = new ReflectionClass('\think\Loader');
|
||||
$ns = $rc->getProperty('namespace');
|
||||
$ns->setAccessible(true);
|
||||
$this->assertEquals(true, in_array('/path/', $ns->getValue()));
|
||||
|
||||
$this->assertEquals(true, function_exists('L'));
|
||||
$this->assertEquals(true, function_exists('C'));
|
||||
$this->assertEquals(true, function_exists('I'));
|
||||
|
||||
$this->assertEquals(Config::get('default_timezone'), date_default_timezone_get());
|
||||
|
||||
}
|
||||
|
||||
// function调度
|
||||
public function testInvokeFunction()
|
||||
{
|
||||
$args1 = ['a b c '];
|
||||
$this->assertEquals(
|
||||
trim($args1[0]),
|
||||
App::invokeFunction('tests\thinkphp\library\think\func_trim', $args1)
|
||||
);
|
||||
|
||||
$args2 = ['abcdefg', 'g'];
|
||||
$this->assertEquals(
|
||||
strpos($args2[0], $args2[1]),
|
||||
App::invokeFunction('tests\thinkphp\library\think\func_strpos', $args2)
|
||||
);
|
||||
}
|
||||
|
||||
// 类method调度
|
||||
public function testInvokeMethod()
|
||||
{
|
||||
$_GET = ['thinkphp'];
|
||||
$result = App::invokeMethod(['tests\thinkphp\library\think\AppInvokeMethodTestClass', 'run']);
|
||||
$this->assertEquals('thinkphp', $result);
|
||||
|
||||
$_GET = ['thinkphp'];
|
||||
$result = App::invokeMethod('tests\thinkphp\library\think\AppInvokeMethodTestClass::staticRun');
|
||||
$this->assertEquals('thinkphp', $result);
|
||||
}
|
||||
}
|
||||
|
||||
51
tests/thinkphp/library/think/exceptionTest.php
Normal file
51
tests/thinkphp/library/think/exceptionTest.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* exception类测试
|
||||
* @author Haotong Lin <lofanmi@gmail.com>
|
||||
*/
|
||||
|
||||
namespace tests\thinkphp\library\think;
|
||||
|
||||
use ReflectionMethod;
|
||||
use think\Exception as ThinkException;
|
||||
|
||||
class MyException extends ThinkException
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
class exceptionTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testGetHttpStatus()
|
||||
{
|
||||
try {
|
||||
throw new ThinkException("Error Processing Request", 1);
|
||||
} catch (ThinkException $e) {
|
||||
$this->assertEquals(500, $e->getHttpStatus());
|
||||
}
|
||||
}
|
||||
|
||||
public function testDebugData()
|
||||
{
|
||||
$data = ['a' => 'b', 'c' => 'd'];
|
||||
try {
|
||||
$e = new MyException("Error Processing Request", 1);
|
||||
$method = new ReflectionMethod($e, 'setData');
|
||||
$method->setAccessible(true);
|
||||
$method->invokeArgs($e, ['test', $data]);
|
||||
throw $e;
|
||||
} catch (MyException $e) {
|
||||
$this->assertEquals(['test' => $data], $e->getData());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,8 @@ class routeTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
Route::pattern(['id' => '\d+', 'name' => '\w{6,25}']);
|
||||
Route::group('group', [':id' => 'index/hello', ':name' => 'index/say']);
|
||||
$this->assertEquals(false, Route::check('group/think'));
|
||||
$this->assertEquals(false, Route::check('empty/think'));
|
||||
$this->assertEquals(['type' => 'module', 'module' => [null, 'index', 'say']], Route::check('group/think'));
|
||||
$this->assertEquals(['type' => 'module', 'module' => [null, 'index', 'hello']], Route::check('group/10'));
|
||||
$this->assertEquals(['type' => 'module', 'module' => [null, 'index', 'say']], Route::check('group/thinkphp'));
|
||||
}
|
||||
|
||||
@@ -124,7 +124,12 @@ class viewTest extends \PHPUnit_Framework_TestCase
|
||||
$view_instance = \think\View::instance();
|
||||
$method = new \ReflectionMethod('\think\View', 'ParseTemplate');
|
||||
$method->setAccessible(true);
|
||||
$this->assertEquals(DS . 'theme_name' . DS . 'template_name.html', $method->invoke($view_instance, 'template_name'));
|
||||
if (defined('CONTROLLER_NAME')) {
|
||||
$expect_data = DS . 'theme_name' . DS . CONTROLLER_NAME . DS . 'template_name.html';
|
||||
} else {
|
||||
$expect_data = DS . 'theme_name' . DS . 'template_name.html';
|
||||
}
|
||||
$this->assertEquals($expect_data, $method->invoke($view_instance, 'template_name'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user