PageRenderTime 26ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/suite/joomla/utilities/JStringTest.php

https://github.com/orware/joomla-platform
PHP | 439 lines | 241 code | 55 blank | 143 comment | 18 complexity | bf50db511c797b692d7a10af10dd5647 MD5 | raw file
  1. <?php
  2. /**
  3. * @package Joomla.UnitTest
  4. * @subpackage Utilities
  5. *
  6. * @copyright Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
  7. * @license GNU General Public License version 2 or later; see LICENSE
  8. */
  9. require_once JPATH_PLATFORM.'/joomla/utilities/string.php';
  10. require_once 'TestHelpers/JString-helper-dataset.php';
  11. /**
  12. * Test class for JString.
  13. * Generated by PHPUnit on 2009-10-26 at 22:29:34.
  14. */
  15. class JStringTest extends PHPUnit_Framework_TestCase
  16. {
  17. /**
  18. * @var JString
  19. */
  20. protected $object;
  21. /**
  22. * Sets up the fixture, for example, opens a network connection.
  23. * This method is called before a test is executed.
  24. */
  25. protected function setUp()
  26. {
  27. }
  28. /**
  29. * Tears down the fixture, for example, closes a network connection.
  30. * This method is called after a test is executed.
  31. */
  32. protected function tearDown()
  33. {
  34. }
  35. static public function strposData() {
  36. return JStringTest_DataSet::$strposTests;
  37. }
  38. static public function strrposData() {
  39. return JStringTest_DataSet::$strrposTests;
  40. }
  41. static public function substrData() {
  42. return JStringTest_DataSet::$substrTests;
  43. }
  44. static public function strtolowerData() {
  45. return JStringTest_DataSet::$strtolowerTests;
  46. }
  47. static public function strtoupperData() {
  48. return JStringTest_DataSet::$strtoupperTests;
  49. }
  50. static public function strlenData() {
  51. return JStringTest_DataSet::$strlenTests;
  52. }
  53. static public function str_ireplaceData() {
  54. return JStringTest_DataSet::$str_ireplaceTests;
  55. }
  56. static public function str_splitData() {
  57. return JStringTest_DataSet::$str_splitTests;
  58. }
  59. static public function strcasecmpData() {
  60. return JStringTest_DataSet::$strcasecmpTests;
  61. }
  62. static public function strcmpData() {
  63. return JStringTest_DataSet::$strcmpTests;
  64. }
  65. static public function strcspnData() {
  66. return JStringTest_DataSet::$strcspnTests;
  67. }
  68. static public function stristrData() {
  69. return JStringTest_DataSet::$stristrTests;
  70. }
  71. static public function strrevData() {
  72. return JStringTest_DataSet::$strrevTests;
  73. }
  74. static public function strspnData() {
  75. return JStringTest_DataSet::$strspnTests;
  76. }
  77. static public function substr_replaceData() {
  78. return JStringTest_DataSet::$substr_replaceTests;
  79. }
  80. static public function ltrimData() {
  81. return JStringTest_DataSet::$ltrimTests;
  82. }
  83. static public function rtrimData() {
  84. return JStringTest_DataSet::$rtrimTests;
  85. }
  86. static public function trimData() {
  87. return JStringTest_DataSet::$trimTests;
  88. }
  89. static public function ucfirstData() {
  90. return JStringTest_DataSet::$ucfirstTests;
  91. }
  92. static public function ucwordsData() {
  93. return JStringTest_DataSet::$ucwordsTests;
  94. }
  95. static public function transcodeData() {
  96. return JStringTest_DataSet::$transcodeTests;
  97. }
  98. static public function validData() {
  99. return JStringTest_DataSet::$validTests;
  100. }
  101. /**
  102. * @group String
  103. * @covers JString::strpos
  104. * @dataProvider strposData
  105. */
  106. public function testStrpos($haystack, $needle, $offset = 0, $expect)
  107. {
  108. $actual = JString::strpos($haystack, $needle, $offset);
  109. $this->assertEquals($expect, $actual);
  110. }
  111. /**
  112. * @group String
  113. * @covers JString::strrpos
  114. * @dataProvider strrposData
  115. */
  116. public function testStrrpos($haystack, $needle, $offset = 0, $expect)
  117. {
  118. $actual = JString::strrpos($haystack, $needle, $offset);
  119. $this->assertEquals($expect, $actual);
  120. }
  121. /**
  122. * @group String
  123. * @covers JString::substr
  124. * @dataProvider substrData
  125. */
  126. public function testSubstr($string, $start, $length = false, $expect)
  127. {
  128. $actual = JString::substr($string, $start, $length);
  129. $this->assertEquals($expect, $actual);
  130. }
  131. /**
  132. * @group String
  133. * @covers JString::strtolower
  134. * @dataProvider strtolowerData
  135. */
  136. public function testStrtolower($string, $expect)
  137. {
  138. $actual = JString::strtolower($string);
  139. $this->assertEquals($expect, $actual);
  140. }
  141. /**
  142. * @group String
  143. * @covers JString::strtoupper
  144. * @dataProvider strtoupperData
  145. */
  146. public function testStrtoupper($string, $expect)
  147. {
  148. $actual = JString::strtoupper($string);
  149. $this->assertEquals($expect, $actual);
  150. }
  151. /**
  152. * @group String
  153. * @covers JString::strlen
  154. * @dataProvider strlenData
  155. */
  156. public function testStrlen($string, $expect)
  157. {
  158. $actual = JString::strlen($string);
  159. $this->assertEquals($expect, $actual);
  160. }
  161. /**
  162. * @group String
  163. * @covers JString::str_ireplace
  164. * @dataProvider str_ireplaceData
  165. */
  166. public function testStr_ireplace($search, $replace, $subject, $count, $expect)
  167. {
  168. $actual = JString::str_ireplace($search, $replace, $subject, $count);
  169. $this->assertEquals($expect, $actual);
  170. }
  171. /**
  172. * @group String
  173. * @covers JString::str_split
  174. * @dataProvider str_splitData
  175. */
  176. public function testStr_split($string, $split_length, $expect)
  177. {
  178. $actual = JString::str_split($string, $split_length);
  179. $this->assertEquals($expect, $actual);
  180. }
  181. /**
  182. * @group String
  183. * @covers JString::strcasecmp
  184. * @dataProvider strcasecmpData
  185. */
  186. public function testStrcasecmp($string1, $string2, $locale, $expect)
  187. {
  188. if (substr(php_uname(), 0, 6) == 'Darwin' &&
  189. $locale != false) {
  190. $this->markTestSkipped('Darwin bug prevents foreign conversion from working properly');
  191. } else {
  192. $actual = JString::strcasecmp ($string1, $string2, $locale);
  193. if ($actual != 0) {
  194. $actual = $actual/abs($actual);
  195. }
  196. $this->assertEquals($expect, $actual);
  197. }
  198. }
  199. /**
  200. * @group String
  201. * @covers JString::strcmp
  202. * @dataProvider strcmpData
  203. */
  204. public function testStrcmp($string1, $string2, $locale, $expect)
  205. {
  206. if (substr(php_uname(), 0, 6) == 'Darwin' &&
  207. $locale != false) {
  208. $this->markTestSkipped('Darwin bug prevents foreign conversion from working properly');
  209. } else {
  210. $actual = JString::strcmp ($string1, $string2, $locale);
  211. if ($actual != 0) {
  212. $actual = $actual/abs($actual);
  213. }
  214. $this->assertEquals($expect, $actual);
  215. }
  216. }
  217. /**
  218. * @group String
  219. * @covers JString::strcspn
  220. * @dataProvider strcspnData
  221. */
  222. public function testStrcspn($haystack, $needles, $start, $len, $expect)
  223. {
  224. $actual = JString::strcspn ($haystack, $needles, $start, $len);
  225. $this->assertEquals($expect, $actual);
  226. }
  227. /**
  228. * @group String
  229. * @covers JString::stristr
  230. * @dataProvider stristrData
  231. */
  232. public function testStristr($haystack, $needle, $expect)
  233. {
  234. $actual = JString::stristr ($haystack, $needle);
  235. $this->assertEquals($expect, $actual);
  236. }
  237. /**
  238. * @group String
  239. * @covers JString::strrev
  240. * @dataProvider strrevData
  241. */
  242. public function testStrrev($string, $expect)
  243. {
  244. $actual = JString::strrev ($string);
  245. $this->assertEquals($expect, $actual);
  246. }
  247. /**
  248. * @group String
  249. * @covers JString::strspn
  250. * @dataProvider strspnData
  251. */
  252. public function testStrspn($subject, $mask, $start, $length, $expect)
  253. {
  254. $actual = JString::strspn ($subject, $mask, $start, $length);
  255. $this->assertEquals($expect, $actual);
  256. }
  257. /**
  258. * @group String
  259. * @covers JString::substr_replace
  260. * @dataProvider substr_replaceData
  261. */
  262. public function testSubstr_replace($string, $replacement, $start, $length, $expect)
  263. {
  264. $actual = JString::substr_replace ($string, $replacement, $start, $length);
  265. $this->assertEquals($expect, $actual);
  266. }
  267. /**
  268. * @group String
  269. * @covers JString::ltrim
  270. * @dataProvider ltrimData
  271. */
  272. public function testLtrim($string, $charlist, $expect)
  273. {
  274. if ($charlist === null) {
  275. $actual = JString::ltrim ($string);
  276. }
  277. else {
  278. $actual = JString::ltrim ($string, $charlist);
  279. }
  280. $this->assertEquals($expect, $actual);
  281. }
  282. /**
  283. * @group String
  284. * @covers JString::rtrim
  285. * @dataProvider rtrimData
  286. */
  287. public function testRtrim($string, $charlist, $expect)
  288. {
  289. if ($charlist === null) {
  290. $actual = JString::rtrim ($string);
  291. }
  292. else {
  293. $actual = JString::rtrim ($string, $charlist);
  294. }
  295. $this->assertEquals($expect, $actual);
  296. }
  297. /**
  298. * @group String
  299. * @covers JString::trim
  300. * @dataProvider trimData
  301. */
  302. public function testTrim($string, $charlist, $expect)
  303. {
  304. if ($charlist === null) {
  305. $actual = JString::trim ($string);
  306. }
  307. else {
  308. $actual = JString::trim ($string, $charlist);
  309. }
  310. $this->assertEquals($expect, $actual);
  311. }
  312. /**
  313. * @group String
  314. * @covers JString::ucfirst
  315. * @dataProvider ucfirstData
  316. */
  317. public function testUcfirst($string, $expect)
  318. {
  319. $actual = JString::ucfirst ($string);
  320. $this->assertEquals($expect, $actual);
  321. }
  322. /**
  323. * @group String
  324. * @covers JString::ucwords
  325. * @dataProvider ucwordsData
  326. */
  327. public function testUcwords($string, $expect)
  328. {
  329. $actual = JString::ucwords ($string);
  330. $this->assertEquals($expect, $actual);
  331. }
  332. /**
  333. * @group String
  334. * @covers JString::transcode
  335. * @dataProvider transcodeData
  336. */
  337. public function testTranscode($source, $from_encoding, $to_encoding, $expect)
  338. {
  339. $actual = JString::transcode ($source, $from_encoding, $to_encoding);
  340. $this->assertEquals($expect, $actual);
  341. }
  342. /**
  343. * @group String
  344. * @covers JString::valid
  345. * @dataProvider validData
  346. */
  347. public function testValid($string, $expect)
  348. {
  349. $actual = JString::valid ($string);
  350. $this->assertEquals($expect, $actual);
  351. }
  352. /**
  353. * @group String
  354. * @covers JString::compliant
  355. * @dataProvider validData
  356. */
  357. public function testCompliant($string, $expect)
  358. {
  359. $actual = JString::compliant ($string);
  360. $this->assertEquals($expect, $actual);
  361. }
  362. /**
  363. * @group String
  364. * @covers JString::parse_url
  365. */
  366. public function testParse_Url() {
  367. $url = 'http://localhost/joomla_development/j16_trunk/administrator/index.php?option=com_contact&view=contact&layout=edit&id=5';
  368. $expected = parse_url($url);
  369. $actual = JString::parse_url($url);
  370. $this->assertEquals($expected, $actual, 'Line: ' . __LINE__ . ' Results should be equal');
  371. $url = 'http://joomla.org/mytestpath/È';
  372. $expected = parse_url($url);
  373. // Fix up path for UTF-8 characters
  374. $expected['path'] = '/mytestpath/È';
  375. $actual = JString::parse_url($url);
  376. $this->assertEquals($expected, $actual, 'Line: ' . __LINE__ . ' Results should be equal');
  377. // Test special characters in URL
  378. $url = 'http://mydomain.com/!*\'();:@&=+$,/?%#[]';
  379. $expected = parse_url($url);
  380. $actual = JString::parse_url($url);
  381. $this->assertEquals($expected, $actual, 'Line: ' . __LINE__ . ' Results should be equal');
  382. }
  383. }
  384. ?>