GravatarHelperTest.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?php
  2. namespace Tools\Test\TestCase\View\Helper;
  3. use Cake\View\View;
  4. use Tools\TestSuite\TestCase;
  5. use Tools\View\Helper\GravatarHelper;
  6. /**
  7. * Gravatar Test Case
  8. */
  9. class GravatarHelperTest extends TestCase {
  10. /**
  11. * SetUp method
  12. *
  13. * @return void
  14. */
  15. public function setUp() {
  16. parent::setUp();
  17. $this->testEmail = 'graham@grahamweldon.com'; // For testing normal behavior
  18. $this->garageEmail = 'test@test.de'; // For testing default image behavior
  19. $this->Gravatar = new GravatarHelper(new View(null));
  20. }
  21. /**
  22. * TearDown method
  23. *
  24. * @return void
  25. */
  26. public function tearDown() {
  27. parent::tearDown();
  28. unset($this->Gravatar);
  29. }
  30. /**
  31. * @return void
  32. */
  33. public function testDefaultImages() {
  34. $is = $this->Gravatar->defaultImages();
  35. $expectedCount = 7;
  36. foreach ($is as $image) {
  37. //$this->debug($image . ' ');
  38. }
  39. $this->assertTrue(is_array($is) && (count($is) === $expectedCount));
  40. }
  41. /**
  42. * @return void
  43. */
  44. public function testImages() {
  45. $is = $this->Gravatar->image($this->garageEmail);
  46. //$this->debug($is);
  47. $this->assertTrue(!empty($is));
  48. $is = $this->Gravatar->image($this->testEmail);
  49. //$this->debug($is);
  50. $this->assertTrue(!empty($is));
  51. $is = $this->Gravatar->image($this->testEmail, ['size' => '200']);
  52. //$this->debug($is);
  53. $this->assertTrue(!empty($is));
  54. $is = $this->Gravatar->image($this->testEmail, ['size' => '20']);
  55. //$this->debug($is);
  56. $this->assertTrue(!empty($is));
  57. $is = $this->Gravatar->image($this->testEmail, ['rating' => 'X']); # note the capit. x
  58. //$this->debug($is);
  59. $this->assertTrue(!empty($is));
  60. $is = $this->Gravatar->image($this->testEmail, ['ext' => true]);
  61. //$this->debug($is);
  62. $this->assertTrue(!empty($is));
  63. $is = $this->Gravatar->image($this->testEmail, ['default' => 'none']);
  64. //$this->debug($is);
  65. $this->assertTrue(!empty($is));
  66. $is = $this->Gravatar->image($this->garageEmail, ['default' => 'none']);
  67. //$this->debug($is);
  68. $this->assertTrue(!empty($is));
  69. $is = $this->Gravatar->image($this->garageEmail, ['default' => 'http://2.gravatar.com/avatar/8379aabc84ecee06f48d8ca48e09eef4?d=identicon']);
  70. //$this->debug($is);
  71. $this->assertTrue(!empty($is));
  72. }
  73. /**
  74. * BASE TEST CASES
  75. **/
  76. /**
  77. * TestBaseUrlGeneration
  78. *
  79. * @return void
  80. */
  81. public function testBaseUrlGeneration() {
  82. $expected = 'http://www.gravatar.com/avatar/' . md5('example@gravatar.com');
  83. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false, 'default' => 'wavatar']);
  84. list($url, $params) = explode('?', $result);
  85. $this->assertEquals($expected, $url);
  86. }
  87. /**
  88. * TestExtensions
  89. *
  90. * @return void
  91. */
  92. public function testExtensions() {
  93. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => true, 'default' => 'wavatar']);
  94. $this->assertRegExp('/\.jpg(?:$|\?)/', $result);
  95. }
  96. /**
  97. * TestRating
  98. *
  99. * @return void
  100. */
  101. public function testRating() {
  102. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => true, 'default' => 'wavatar']);
  103. $this->assertRegExp('/\.jpg(?:$|\?)/', $result);
  104. }
  105. /**
  106. * TestAlternateDefaultIcon
  107. *
  108. * @return void
  109. */
  110. public function testAlternateDefaultIcon() {
  111. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false, 'default' => 'wavatar']);
  112. list($url, $params) = explode('?', $result);
  113. $this->assertRegExp('/default=wavatar/', $params);
  114. }
  115. /**
  116. * TestAlternateDefaultIconCorrection
  117. *
  118. * @return void
  119. */
  120. public function testAlternateDefaultIconCorrection() {
  121. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false, 'default' => '12345']);
  122. $this->assertRegExp('/[^\?]+/', $result);
  123. }
  124. /**
  125. * TestSize
  126. *
  127. * @return void
  128. */
  129. public function testSize() {
  130. $result = $this->Gravatar->url('example@gravatar.com', ['size' => '120']);
  131. list($url, $params) = explode('?', $result);
  132. $this->assertRegExp('/size=120/', $params);
  133. }
  134. /**
  135. * TestImageTag
  136. *
  137. * @return void
  138. */
  139. public function testImageTag() {
  140. $expected = '<img src="http://www.gravatar.com/avatar/' . md5('example@gravatar.com') . '" alt=""/>';
  141. $result = $this->Gravatar->image('example@gravatar.com', ['ext' => false]);
  142. $this->assertEquals($expected, $result);
  143. $expected = '<img src="http://www.gravatar.com/avatar/' . md5('example@gravatar.com') . '" alt="Gravatar"/>';
  144. $result = $this->Gravatar->image('example@gravatar.com', ['ext' => false, 'alt' => 'Gravatar']);
  145. $this->assertEquals($expected, $result);
  146. }
  147. /**
  148. * TestDefaulting
  149. *
  150. * @return void
  151. */
  152. public function testDefaulting() {
  153. $result = $this->Gravatar->url('example@gravatar.com', ['default' => 'wavatar', 'size' => 'default']);
  154. list($url, $params) = explode('?', $result);
  155. $this->assertEquals($params, 'default=wavatar');
  156. }
  157. /**
  158. * TestNonSecureUrl
  159. *
  160. * @return void
  161. */
  162. public function testNonSecureUrl() {
  163. $_SERVER['HTTPS'] = false;
  164. $expected = 'http://www.gravatar.com/avatar/' . md5('example@gravatar.com');
  165. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false]);
  166. $this->assertEquals($expected, $result);
  167. $expected = 'http://www.gravatar.com/avatar/' . md5('example@gravatar.com');
  168. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false, 'secure' => false]);
  169. $this->assertEquals($expected, $result);
  170. $_SERVER['HTTPS'] = true;
  171. $expected = 'http://www.gravatar.com/avatar/' . md5('example@gravatar.com');
  172. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false, 'secure' => false]);
  173. $this->assertEquals($expected, $result);
  174. }
  175. /**
  176. * TestSecureUrl
  177. *
  178. * @return void
  179. */
  180. public function testSecureUrl() {
  181. $expected = 'https://secure.gravatar.com/avatar/' . md5('example@gravatar.com');
  182. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false, 'secure' => true]);
  183. $this->assertEquals($expected, $result);
  184. $_SERVER['HTTPS'] = true;
  185. $this->Gravatar = new GravatarHelper(new View(null));
  186. $expected = 'https://secure.gravatar.com/avatar/' . md5('example@gravatar.com');
  187. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false]);
  188. $this->assertEquals($expected, $result);
  189. $expected = 'https://secure.gravatar.com/avatar/' . md5('example@gravatar.com');
  190. $result = $this->Gravatar->url('example@gravatar.com', ['ext' => false, 'secure' => true]);
  191. $this->assertEquals($expected, $result);
  192. }
  193. }