1 files deleted
2 files modified
3 files renamed
1 files added
File was renamed from tests/MailDecode.php |
| | |
| | | <?php |
| | | |
| | | /** |
| | | * Test class to test messages decoding functions |
| | | * Test class to test rcube_mime class |
| | | * |
| | | * @package Tests |
| | | */ |
| | | class MailDecode extends PHPUnit_Framework_TestCase |
| | | class Framework_Mime extends PHPUnit_Framework_TestCase |
| | | { |
| | | |
| | | /** |
New file |
| | |
| | | <?php |
| | | |
| | | /** |
| | | * Test class to test rcube_shared functions |
| | | * |
| | | * @package Tests |
| | | */ |
| | | class Framework_Shared extends PHPUnit_Framework_TestCase |
| | | { |
| | | |
| | | /** |
| | | * rcube_shared.inc: in_array_nocase() |
| | | */ |
| | | function test_in_array_nocase() |
| | | { |
| | | $haystack = array('Test'); |
| | | $needle = 'test'; |
| | | $result = in_array_nocase($needle, $haystack); |
| | | |
| | | $this->assertTrue($result, $title); |
| | | |
| | | $result = in_array_nocase($needle, null); |
| | | |
| | | $this->assertFalse($result, $title); |
| | | } |
| | | |
| | | /** |
| | | * rcube_shared.inc: get_boolean() |
| | | */ |
| | | function test_get_boolean() |
| | | { |
| | | $input = array( |
| | | false, 'false', '0', 'no', 'off', 'nein', 'FALSE', '', null, |
| | | ); |
| | | |
| | | foreach ($input as $idx => $value) { |
| | | $this->assertFalse(get_boolean($value), "Invalid result for $idx test item"); |
| | | } |
| | | |
| | | $input = array( |
| | | true, 'true', '1', 1, 'yes', 'anything', 1000, |
| | | ); |
| | | |
| | | foreach ($input as $idx => $value) { |
| | | $this->assertTrue(get_boolean($value), "Invalid result for $idx test item"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * rcube_shared.inc: parse_bytes() |
| | | */ |
| | | function test_parse_bytes() |
| | | { |
| | | $data = array( |
| | | '1' => 1, |
| | | '1024' => 1024, |
| | | '2k' => 2 * 1024, |
| | | '2 k' => 2 * 1024, |
| | | '2kb' => 2 * 1024, |
| | | '2kB' => 2 * 1024, |
| | | '2m' => 2 * 1048576, |
| | | '2 m' => 2 * 1048576, |
| | | '2mb' => 2 * 1048576, |
| | | '2mB' => 2 * 1048576, |
| | | '2g' => 2 * 1024 * 1048576, |
| | | '2 g' => 2 * 1024 * 1048576, |
| | | '2gb' => 2 * 1024 * 1048576, |
| | | '2gB' => 2 * 1024 * 1048576, |
| | | ); |
| | | |
| | | foreach ($data as $value => $expected) { |
| | | $result = parse_bytes($value); |
| | | $this->assertEquals($expected, $result, "Invalid parse_bytes() result for $value"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * rcube_shared.inc: slashify() |
| | | */ |
| | | function test_slashify() |
| | | { |
| | | $data = array( |
| | | 'test' => 'test/', |
| | | 'test/' => 'test/', |
| | | '' => '/', |
| | | "\\" => "\\/", |
| | | ); |
| | | |
| | | foreach ($data as $value => $expected) { |
| | | $result = slashify($value); |
| | | $this->assertEquals($expected, $result, "Invalid slashify() result for $value"); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * rcube_shared.inc: unslashify() |
| | | */ |
| | | function test_unslashify() |
| | | { |
| | | $data = array( |
| | | 'test' => 'test', |
| | | 'test/' => 'test', |
| | | '/' => '', |
| | | "\\/" => "\\", |
| | | 'test/test' => 'test/test', |
| | | 'test//' => 'test', |
| | | ); |
| | | |
| | | foreach ($data as $value => $expected) { |
| | | $result = unslashify($value); |
| | | $this->assertEquals($expected, $result, "Invalid unslashify() result for $value"); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * rcube_shared.inc: get_offset_sec() |
| | | */ |
| | | function test_get_offset_sec() |
| | | { |
| | | $data = array( |
| | | '1s' => 1, |
| | | '1m' => 1 * 60, |
| | | '1h' => 1 * 60 * 60, |
| | | '1d' => 1 * 60 * 60 * 24, |
| | | '1w' => 1 * 60 * 60 * 24 * 7, |
| | | '1y' => (int) '1y', |
| | | 100 => 100, |
| | | '100' => 100, |
| | | ); |
| | | |
| | | foreach ($data as $value => $expected) { |
| | | $result = get_offset_sec($value); |
| | | $this->assertEquals($expected, $result, "Invalid get_offset_sec() result for $value"); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * rcube_shared.inc: array_keys_recursive() |
| | | */ |
| | | function test_array_keys_recursive() |
| | | { |
| | | $input = array( |
| | | 'one' => array( |
| | | 'two' => array( |
| | | 'three' => array(), |
| | | 'four' => 'something', |
| | | ), |
| | | ), |
| | | 'five' => 'test', |
| | | ); |
| | | |
| | | $result = array_keys_recursive($input); |
| | | $input_str = 'one,two,three,four,five'; |
| | | $result_str = implode(',', $result); |
| | | |
| | | $this->assertEquals($input_str, $result_str, "Invalid array_keys_recursive() result"); |
| | | } |
| | | } |
File was renamed from tests/Utils.php |
| | |
| | | * |
| | | * @package Tests |
| | | */ |
| | | class Utils extends PHPUnit_Framework_TestCase |
| | | class Framework_Utils extends PHPUnit_Framework_TestCase |
| | | { |
| | | |
| | | /** |
| | |
| | | $this->assertFalse(rcube_utils::check_email($email, false), $title); |
| | | } |
| | | |
| | | /** |
| | | * rcube_utils::mod_css_styles() |
| | | */ |
| | | function test_mod_css_styles() |
| | | { |
| | | $css = file_get_contents(TESTS_DIR . 'src/valid.css'); |
| | | $mod = rcube_utils::mod_css_styles($css, 'rcmbody'); |
| | | |
| | | $this->assertRegExp('/#rcmbody\s+\{/', $mod, "Replace body style definition"); |
| | | $this->assertRegExp('/#rcmbody h1\s\{/', $mod, "Prefix tag styles (single)"); |
| | | $this->assertRegExp('/#rcmbody h1, #rcmbody h2, #rcmbody h3, #rcmbody textarea\s+\{/', $mod, "Prefix tag styles (multiple)"); |
| | | $this->assertRegExp('/#rcmbody \.noscript\s+\{/', $mod, "Prefix class styles"); |
| | | } |
| | | |
| | | /** |
| | | * rcube_utils::mod_css_styles() |
| | | */ |
| | | function test_mod_css_styles_xss() |
| | | { |
| | | $mod = rcube_utils::mod_css_styles("body.main2cols { background-image: url('../images/leftcol.png'); }", 'rcmbody'); |
| | | $this->assertEquals("/* evil! */", $mod, "No url() values allowed"); |
| | | |
| | | $mod = rcube_utils::mod_css_styles("@import url('http://localhost/somestuff/css/master.css');", 'rcmbody'); |
| | | $this->assertEquals("/* evil! */", $mod, "No import statements"); |
| | | |
| | | $mod = rcube_utils::mod_css_styles("left:expression(document.body.offsetWidth-20)", 'rcmbody'); |
| | | $this->assertEquals("/* evil! */", $mod, "No expression properties"); |
| | | |
| | | $mod = rcube_utils::mod_css_styles("left:exp/* */ression( alert('xss3') )", 'rcmbody'); |
| | | $this->assertEquals("/* evil! */", $mod, "Don't allow encoding quirks"); |
| | | |
| | | $mod = rcube_utils::mod_css_styles("background:\\0075\\0072\\006c( javascript:alert('xss') )", 'rcmbody'); |
| | | $this->assertEquals("/* evil! */", $mod, "Don't allow encoding quirks (2)"); |
| | | } |
| | | } |
File was renamed from tests/VCards.php |
| | |
| | | * |
| | | * @package Tests |
| | | */ |
| | | class VCards extends PHPUnit_Framework_TestCase |
| | | class Framework_VCard extends PHPUnit_Framework_TestCase |
| | | { |
| | | |
| | | function _srcpath($fn) |
| | | { |
| | | return realpath(dirname(__FILE__) . '/src/' . $fn); |
| | | return realpath(dirname(__FILE__) . '/../src/' . $fn); |
| | | } |
| | | |
| | | function test_parse_one() |
| | |
| | | } |
| | | |
| | | require_once(INSTALL_PATH . 'program/include/iniset.php'); |
| | | |
| | | rcmail::get_instance()->config->set('devel_mode', false); |
| | |
| | | colors="true"> |
| | | <testsuites> |
| | | <testsuite name="All Tests"> |
| | | <file>Framework/Mime.php</file> |
| | | <file>Framework/Shared.php</file> |
| | | <file>Framework/Utils.php</file> |
| | | <file>Framework/VCard.php</file> |
| | | <file>HtmlToText.php</file> |
| | | <file>MailDecode.php</file> |
| | | <file>MailFunc.php</file> |
| | | <file>ModCss.php</file> |
| | | <file>Shared.php</file> |
| | | <file>Utils.php</file> |
| | | <file>VCards.php</file> |
| | | </testsuite> |
| | | </testsuites> |
| | | </phpunit> |