RequestTest.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. /**
  3. * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
  4. * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
  5. *
  6. * Licensed under The MIT License
  7. * Redistributions of files must retain the above copyright notice.
  8. *
  9. * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
  10. * @link http://cakephp.org CakePHP(tm) Project
  11. * @since 3.0.0
  12. * @license http://www.opensource.org/licenses/mit-license.php MIT License
  13. */
  14. namespace Cake\Test\TestCase\Network\Http;
  15. use Cake\Network\Http\Request;
  16. use Cake\TestSuite\TestCase;
  17. /**
  18. * HTTP request test.
  19. */
  20. class RequestTest extends TestCase
  21. {
  22. /**
  23. * test url method
  24. *
  25. * @return void
  26. */
  27. public function testUrl()
  28. {
  29. $request = new Request();
  30. $this->assertSame($request, $request->url('http://example.com'));
  31. $this->assertEquals('http://example.com', $request->url());
  32. }
  33. /**
  34. * test method method.
  35. *
  36. * @return void
  37. */
  38. public function testMethod()
  39. {
  40. $request = new Request();
  41. $this->assertSame($request, $request->method(Request::METHOD_GET));
  42. $this->assertEquals(Request::METHOD_GET, $request->method());
  43. }
  44. /**
  45. * test invalid method.
  46. *
  47. * @expectedException \Cake\Core\Exception\Exception
  48. * @return void
  49. */
  50. public function testMethodInvalid()
  51. {
  52. $request = new Request();
  53. $request->method('set on fire');
  54. }
  55. /**
  56. * test body method.
  57. *
  58. * @return void
  59. */
  60. public function testBody()
  61. {
  62. $data = '{"json":"data"}';
  63. $request = new Request();
  64. $this->assertSame($request, $request->body($data));
  65. $this->assertEquals($data, $request->body());
  66. }
  67. /**
  68. * test header method.
  69. *
  70. * @return void
  71. */
  72. public function testHeader()
  73. {
  74. $request = new Request();
  75. $type = 'application/json';
  76. $result = $request->header('Content-Type', $type);
  77. $this->assertSame($result, $request, 'Should return self');
  78. $result = $request->header('content-type');
  79. $this->assertEquals($type, $result, 'lowercase does not work');
  80. $result = $request->header('ConTent-typE');
  81. $this->assertEquals($type, $result, 'Funny casing does not work');
  82. $result = $request->header([
  83. 'Connection' => 'close',
  84. 'user-agent' => 'CakePHP'
  85. ]);
  86. $this->assertSame($result, $request, 'Should return self');
  87. $this->assertEquals('close', $request->header('connection'));
  88. $this->assertEquals('CakePHP', $request->header('USER-AGENT'));
  89. $this->assertNull($request->header('not set'));
  90. }
  91. /**
  92. * test cookie method.
  93. *
  94. * @return void
  95. */
  96. public function testCookie()
  97. {
  98. $request = new Request();
  99. $result = $request->cookie('session', '123456');
  100. $this->assertSame($result, $request, 'Should return self');
  101. $this->assertNull($request->cookie('not set'));
  102. $result = $request->cookie('session');
  103. $this->assertEquals('123456', $result);
  104. }
  105. /**
  106. * test version method.
  107. *
  108. * @return void
  109. */
  110. public function testVersion()
  111. {
  112. $request = new Request();
  113. $result = $request->version('1.0');
  114. $this->assertSame($request, $request, 'Should return self');
  115. $this->assertSame('1.0', $request->version());
  116. }
  117. }