appTest.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. /**
  12. * app类测试
  13. * @author Haotong Lin <lofanmi@gmail.com>
  14. */
  15. namespace tests\thinkphp\library\think;
  16. use think\App;
  17. use think\Config;
  18. use think\Request;
  19. function func_trim($value)
  20. {
  21. return trim($value);
  22. }
  23. function func_strpos($haystack, $needle)
  24. {
  25. return strpos($haystack, $needle);
  26. }
  27. class AppInvokeMethodTestClass
  28. {
  29. public static function staticRun($string)
  30. {
  31. return $string;
  32. }
  33. public function run($string)
  34. {
  35. return $string;
  36. }
  37. }
  38. class appTest extends \PHPUnit_Framework_TestCase
  39. {
  40. public function testRun()
  41. {
  42. $response = App::run(Request::create("http://www.example.com"));
  43. $expectOutputString = '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></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>';
  44. $this->assertEquals($expectOutputString, $response->getContent());
  45. $this->assertEquals(200, $response->getCode());
  46. $this->assertEquals(true, function_exists('lang'));
  47. $this->assertEquals(true, function_exists('config'));
  48. $this->assertEquals(true, function_exists('input'));
  49. $this->assertEquals(Config::get('default_timezone'), date_default_timezone_get());
  50. }
  51. // function调度
  52. public function testInvokeFunction()
  53. {
  54. $args1 = ['a b c '];
  55. $this->assertEquals(
  56. trim($args1[0]),
  57. App::invokeFunction('tests\thinkphp\library\think\func_trim', $args1)
  58. );
  59. $args2 = ['abcdefg', 'g'];
  60. $this->assertEquals(
  61. strpos($args2[0], $args2[1]),
  62. App::invokeFunction('tests\thinkphp\library\think\func_strpos', $args2)
  63. );
  64. }
  65. // 类method调度
  66. public function testInvokeMethod()
  67. {
  68. $result = App::invokeMethod(['tests\thinkphp\library\think\AppInvokeMethodTestClass', 'run'], ['thinkphp']);
  69. $this->assertEquals('thinkphp', $result);
  70. $result = App::invokeMethod('tests\thinkphp\library\think\AppInvokeMethodTestClass::staticRun', ['thinkphp']);
  71. $this->assertEquals('thinkphp', $result);
  72. }
  73. }