3 require_once 'PHPUnit/Framework/TestCase.php';
4 require_once dirname(dirname(__FILE__)) . '/../../src/common/include/utils.php';
5 require_once dirname(dirname(__FILE__)) . '/../../src/common/include/escapingUtils.php';
8 * Simple tests for the utils library.
11 * @author Alain Peyrat <aljeux@free.fr>
12 * @copyright 2009 Alain Peyrat. All rights reserved.
13 * @license GPL License
15 class Utils_Tests extends PHPUnit_Framework_TestCase
18 * test the validate_email function.
20 public function testEmail()
22 $this->assertTrue(validate_email('al@fx.fr'), 'al@fx.fr is a valid email address');
24 $this->assertFalse(validate_email('al @fx.fr'), 'al @fx.fr is not a valid email address');
26 $this->assertFalse(validate_email('al'), 'al is not a valid email address');
30 * test the validate_hostname function.
32 public function testHostname()
34 $this->assertTrue(valid_hostname('myhost.com'), 'myhost.com is a valid hostname.');
36 $this->assertTrue(valid_hostname('myhost.com.'), 'myhost.com. is a valid hostname.');
38 $this->assertFalse(valid_hostname('my host.com'), 'my host.com is not a valid hostname');
40 $this->assertFalse(valid_hostname('O@O'), 'O@O is not a valid hostname');
44 * test the util_check_url function.
46 public function testUtilCheckUrl()
48 $this->assertTrue(util_check_url('http://fusionforge.org/'), 'http://fusionforge.org/ is a valid URL.');
50 $this->assertTrue(util_check_url('https://fusionforge.org/'), 'https://fusionforge.org/ is a valid URL.');
52 $this->assertTrue(util_check_url('ftp://fusionforge.org/'), 'ftp://fusionforge.org/ is a valid URL.');
54 $this->assertFalse(util_check_url('webdav://toto'), 'webdav://toto is not a valid URL.');
56 $this->assertFalse(util_check_url('fusionforge.org'), 'fusionforge.org is not a valid URL');
60 * test the util_strip_accents() function.
62 public function testStripAccents()
64 $this->assertEquals(util_strip_accents('aléiât'), 'aleiat');
66 $this->assertEquals(util_strip_accents('ààéééïï'), 'aaeeeii');
68 $this->assertEquals(util_strip_accents('alain'), 'alain');
72 * test the util_make_links() function.
74 public function testUtilMakeLinks()
77 'a <a href="http://fusionforge.org/" target="_new">http://fusionforge.org/</a> b',
78 util_make_links('a http://fusionforge.org/ b')
82 'a <a href="https://fusionforge.org/" target="_new">https://fusionforge.org/</a> b',
83 util_make_links('a https://fusionforge.org/ b')
87 'a <img src="http://ff.org/i.png" /> b',
88 util_make_links('a <img src="http://ff.org/i.png" /> b')
93 * test the human_readable_bytes() function.
95 public function testHumanReadableBytes()
97 $this->assertEquals('0', human_readable_bytes(0));
98 $this->assertEquals('12 bytes', human_readable_bytes(12));
99 $this->assertEquals('-12 bytes', human_readable_bytes(-12));
100 $this->assertEquals('1 KiB', human_readable_bytes(1024));
101 $this->assertEquals('1 kB', human_readable_bytes(1000, true));
102 $this->assertEquals('2 KiB', human_readable_bytes(2*1024));
103 $this->assertEquals('2 kB', human_readable_bytes(2000, true));
104 $this->assertEquals('2 kB', human_readable_bytes(2012, true));
105 $this->assertEquals('1 MiB', human_readable_bytes(1024*1024));
106 $this->assertEquals('1 MB', human_readable_bytes(1000000, true));
107 $this->assertEquals('1 GiB', human_readable_bytes(1024*1024*1024));
108 $this->assertEquals('1 GB', human_readable_bytes(1000000000, true));
109 $this->assertEquals('1 TiB', human_readable_bytes(1024*1024*1024*1024));
110 $this->assertEquals('1 TB', human_readable_bytes(1000000000000, true));
113 public function testGetFilteredStringFromRequest()
115 $_REQUEST=array('arg' => 'good');
116 $this->assertEquals(getFilteredStringFromRequest('arg', '/^[a-z]+$/', 'default'), 'good');
118 $_REQUEST=array('arg' => 'BaD');
119 $this->assertEquals(getFilteredStringFromRequest('arg', '/^[a-z]+$/', 'default'), 'default');
121 $_REQUEST=array('no_arg' => 'BaD');
122 $this->assertEquals(getFilteredStringFromRequest('arg', '/^[a-z]+$/', 'default'), 'default');