From c186288755aba46a2b6f0c3f104d9a6ce6b11a7f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 9 Jun 2012 23:16:58 +0300 Subject: Cleanup/optimize tests/codeigniter/ --- tests/codeigniter/core/Config_test.php | 38 +++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'tests/codeigniter/core/Config_test.php') diff --git a/tests/codeigniter/core/Config_test.php b/tests/codeigniter/core/Config_test.php index 30f0cc61d..30cb90a28 100644 --- a/tests/codeigniter/core/Config_test.php +++ b/tests/codeigniter/core/Config_test.php @@ -5,7 +5,7 @@ class Config_test extends CI_TestCase { public function set_up() { $cls =& $this->ci_core_class('cfg'); - + // set predictable config values $this->ci_set_config(array( 'index_page' => 'index.php', @@ -13,9 +13,9 @@ class Config_test extends CI_TestCase { 'subclass_prefix' => 'MY_' )); - $this->config = new $cls; + $this->config = new $cls; } - + // -------------------------------------------------------------------- public function test_item() @@ -24,30 +24,30 @@ class Config_test extends CI_TestCase { // Bad Config value $this->assertFalse($this->config->item('no_good_item')); - + // Index $this->assertFalse($this->config->item('no_good_item', 'bad_index')); $this->assertFalse($this->config->item('no_good_item', 'default')); } - + // -------------------------------------------------------------------- - + public function test_set_item() { $this->assertFalse($this->config->item('not_yet_set')); - + $this->config->set_item('not_yet_set', 'is set'); - + $this->assertEquals('is set', $this->config->item('not_yet_set')); } // -------------------------------------------------------------------- - + public function test_slash_item() { // Bad Config value $this->assertFalse($this->config->slash_item('no_good_item')); - + $this->assertEquals('http://example.com/', $this->config->slash_item('base_url')); $this->assertEquals('MY_/', $this->config->slash_item('subclass_prefix')); @@ -58,33 +58,33 @@ class Config_test extends CI_TestCase { public function test_site_url() { $this->assertEquals('http://example.com/index.php', $this->config->site_url()); - + $base_url = $this->config->item('base_url'); - + $this->config->set_item('base_url', ''); - + $q_string = $this->config->item('enable_query_strings'); - + $this->config->set_item('enable_query_strings', FALSE); $this->assertEquals('index.php/test', $this->config->site_url('test')); $this->assertEquals('index.php/test/1', $this->config->site_url(array('test', '1'))); - + $this->config->set_item('enable_query_strings', TRUE); $this->assertEquals('index.php?test', $this->config->site_url('test')); $this->assertEquals('index.php?0=test&1=1', $this->config->site_url(array('test', '1'))); - + $this->config->set_item('base_url', $base_url); $this->assertEquals('http://example.com/index.php?test', $this->config->site_url('test')); - + // back to home base - $this->config->set_item('enable_query_strings', $q_string); + $this->config->set_item('enable_query_strings', $q_string); } // -------------------------------------------------------------------- - + public function test_system_url() { $this->assertEquals('http://example.com/system/', $this->config->system_url()); -- cgit v1.2.3-24-g4f1b From 6030719346e9b0eb0e0ea99c679cadeb1fe4afde Mon Sep 17 00:00:00 2001 From: dchill42 Date: Mon, 27 Aug 2012 23:59:31 -0400 Subject: Improved VFS usage in Loader and Config units, added Loader driver test, and moved config load testing to Config unit Signed-off-by: dchill42 --- tests/codeigniter/core/Config_test.php | 52 +++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) (limited to 'tests/codeigniter/core/Config_test.php') diff --git a/tests/codeigniter/core/Config_test.php b/tests/codeigniter/core/Config_test.php index 30cb90a28..7782a7898 100644 --- a/tests/codeigniter/core/Config_test.php +++ b/tests/codeigniter/core/Config_test.php @@ -90,4 +90,54 @@ class Config_test extends CI_TestCase { $this->assertEquals('http://example.com/system/', $this->config->system_url()); } -} \ No newline at end of file + // -------------------------------------------------------------------- + + public function test_load() + { + // Create VFS tree of application config files + $file1 = 'test.php'; + $file2 = 'secttest'; + $key1 = 'testconfig'; + $val1 = 'my_value'; + $cfg1 = array( + $key1 => $val1 + ); + $cfg2 = array( + 'one' => 'prime', + 'two' => 2, + 'three' => true + ); + $tree = array( + 'application' => array( + 'config' => array( + $file1 => ' 'config->_config_paths = array(vfsStream::url('application').'/'); + + // Test regular load + $this->assertTrue($this->config->load($file1)); + $this->assertEquals($val1, $this->config->item($key1)); + + // Test section load + $this->assertTrue($this->config->load($file2, TRUE)); + $this->assertEquals($cfg2, $this->config->item($file2)); + + // Test graceful fail + $this->assertFalse($this->config->load('not_config_file', FALSE, TRUE)); + + // Test regular fail + $file3 = 'absentia'; + $this->setExpectedException( + 'RuntimeException', + 'CI Error: The configuration file '.$file3.'.php does not exist.' + ); + $this->assertNull($this->config->load($file3)); + } + +} -- cgit v1.2.3-24-g4f1b From e3621cc79fa4b4658768fea0694cc0ae52835d85 Mon Sep 17 00:00:00 2001 From: dchill42 Date: Sun, 14 Oct 2012 18:23:52 -0400 Subject: Adapted Config load test to VFS APPPATH Signed-off-by: dchill42 --- tests/codeigniter/core/Config_test.php | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'tests/codeigniter/core/Config_test.php') diff --git a/tests/codeigniter/core/Config_test.php b/tests/codeigniter/core/Config_test.php index 7782a7898..80e0862ff 100644 --- a/tests/codeigniter/core/Config_test.php +++ b/tests/codeigniter/core/Config_test.php @@ -94,7 +94,7 @@ class Config_test extends CI_TestCase { public function test_load() { - // Create VFS tree of application config files + // Create config files in VFS $file1 = 'test.php'; $file2 = 'secttest'; $key1 = 'testconfig'; @@ -107,18 +107,10 @@ class Config_test extends CI_TestCase { 'two' => 2, 'three' => true ); - $tree = array( - 'application' => array( - 'config' => array( - $file1 => ' 'config->_config_paths = array(vfsStream::url('application').'/'); + $this->ci_vfs_create(array( + $file1 => ' 'ci_app_root, 'config'); // Test regular load $this->assertTrue($this->config->load($file1)); @@ -140,4 +132,4 @@ class Config_test extends CI_TestCase { $this->assertNull($this->config->load($file3)); } -} +} \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 3a43f130a02be38b7244ffe4507c6cefd874f285 Mon Sep 17 00:00:00 2001 From: dchill42 Date: Sat, 20 Oct 2012 22:44:16 -0400 Subject: Raised CI_Config test coverage to 100% Signed-off-by: dchill42 --- tests/codeigniter/core/Config_test.php | 197 ++++++++++++++++++++++++++------- 1 file changed, 158 insertions(+), 39 deletions(-) (limited to 'tests/codeigniter/core/Config_test.php') diff --git a/tests/codeigniter/core/Config_test.php b/tests/codeigniter/core/Config_test.php index 80e0862ff..d652a625e 100644 --- a/tests/codeigniter/core/Config_test.php +++ b/tests/codeigniter/core/Config_test.php @@ -7,11 +7,12 @@ class Config_test extends CI_TestCase { $cls =& $this->ci_core_class('cfg'); // set predictable config values - $this->ci_set_config(array( + $this->cfg = array( 'index_page' => 'index.php', 'base_url' => 'http://example.com/', 'subclass_prefix' => 'MY_' - )); + ); + $this->ci_set_config($this->cfg); $this->config = new $cls; } @@ -20,7 +21,7 @@ class Config_test extends CI_TestCase { public function test_item() { - $this->assertEquals('http://example.com/', $this->config->item('base_url')); + $this->assertEquals($this->cfg['base_url'], $this->config->item('base_url')); // Bad Config value $this->assertFalse($this->config->item('no_good_item')); @@ -48,36 +49,103 @@ class Config_test extends CI_TestCase { // Bad Config value $this->assertFalse($this->config->slash_item('no_good_item')); - $this->assertEquals('http://example.com/', $this->config->slash_item('base_url')); + $this->assertEquals($this->cfg['base_url'], $this->config->slash_item('base_url')); - $this->assertEquals('MY_/', $this->config->slash_item('subclass_prefix')); + $this->assertEquals($this->cfg['subclass_prefix'].'/', $this->config->slash_item('subclass_prefix')); } // -------------------------------------------------------------------- - public function test_site_url() + public function test_base_url() { - $this->assertEquals('http://example.com/index.php', $this->config->site_url()); + // Test regular base URL + $base_url = $this->cfg['base_url']; + $this->assertEquals($base_url, $this->config->base_url()); + + // Test with URI + $uri = 'test'; + $this->assertEquals($base_url.$uri, $this->config->base_url($uri)); + + // Clear base_url + $this->ci_set_config('base_url', ''); + + // Rerun constructor + $cls =& $this->ci_core_class('cfg'); + $this->config = new $cls; - $base_url = $this->config->item('base_url'); + // Test default base + $this->assertEquals('http://localhost/', $this->config->base_url()); + // Capture server vars + $old_host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : NULL; + $old_script = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : NULL; + $old_https = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : NULL; + + // Setup server vars for detection + $host = 'test.com'; + $path = '/path/'; + $script = 'base_test.php'; + $_SERVER['HTTP_HOST'] = $host; + $_SERVER['SCRIPT_NAME'] = $path.$script; + + // Rerun constructor + $this->config = new $cls; + + // Test plain detected + $this->assertEquals('http://'.$host.$path, $this->config->base_url()); + + // Rerun constructor + $_SERVER['HTTPS'] = 'on'; + $this->config = new $cls; + + // Test secure detected + $this->assertEquals('https://'.$host.$path, $this->config->base_url()); + + // Restore server vars + if ($old_host === NULL) unset($_SERVER['HTTP_HOST']); + else $_SERVER['HTTP_HOST'] = $old_host; + if ($old_script === NULL) unset($_SERVER['SCRIPT_NAME']); + else $_SERVER['SCRIPT_NAME'] = $old_script; + if ($old_https === NULL) unset($_SERVER['HTTPS']); + else $_SERVER['HTTPS'] = $old_https; + } + + // -------------------------------------------------------------------- + + public function test_site_url() + { + $base_url = $this->cfg['base_url']; + $index_page = $this->cfg['index_page']; + $this->assertEquals($base_url.$index_page, $this->config->site_url()); + + $old_base = $this->config->item('base_url'); $this->config->set_item('base_url', ''); $q_string = $this->config->item('enable_query_strings'); - $this->config->set_item('enable_query_strings', FALSE); - $this->assertEquals('index.php/test', $this->config->site_url('test')); - $this->assertEquals('index.php/test/1', $this->config->site_url(array('test', '1'))); + $uri= 'test'; + $uri2 = '1'; + $this->assertEquals($index_page.'/'.$uri, $this->config->site_url($uri)); + $this->assertEquals($index_page.'/'.$uri.'/'.$uri2, $this->config->site_url(array($uri, $uri2))); + + $suffix = 'ing'; + $this->config->set_item('url_suffix', $suffix); + + $arg = 'pass'; + $this->assertEquals($index_page.'/'.$uri.$suffix, $this->config->site_url($uri)); + $this->assertEquals($index_page.'/'.$uri.$suffix.'?'.$arg, $this->config->site_url($uri.'?'.$arg)); + + $this->config->set_item('url_suffix', FALSE); $this->config->set_item('enable_query_strings', TRUE); - $this->assertEquals('index.php?test', $this->config->site_url('test')); - $this->assertEquals('index.php?0=test&1=1', $this->config->site_url(array('test', '1'))); + $this->assertEquals($index_page.'?'.$uri, $this->config->site_url($uri)); + $this->assertEquals($index_page.'?0='.$uri.'&1='.$uri2, $this->config->site_url(array($uri, $uri2))); - $this->config->set_item('base_url', $base_url); + $this->config->set_item('base_url', $old_base); - $this->assertEquals('http://example.com/index.php?test', $this->config->site_url('test')); + $this->assertEquals($base_url.$index_page.'?'.$uri, $this->config->site_url($uri)); // back to home base $this->config->set_item('enable_query_strings', $q_string); @@ -87,49 +155,100 @@ class Config_test extends CI_TestCase { public function test_system_url() { - $this->assertEquals('http://example.com/system/', $this->config->system_url()); + $this->assertEquals($this->cfg['base_url'].'system/', $this->config->system_url()); } // -------------------------------------------------------------------- public function test_load() { - // Create config files in VFS - $file1 = 'test.php'; - $file2 = 'secttest'; - $key1 = 'testconfig'; - $val1 = 'my_value'; - $cfg1 = array( - $key1 => $val1 - ); - $cfg2 = array( + // Test regular load + $file = 'test.php'; + $key = 'testconfig'; + $val = 'my_value'; + $cfg = array($key => $val); + $this->ci_vfs_create($file, 'ci_app_root, 'config'); + $this->assertTrue($this->config->load($file)); + $this->assertEquals($val, $this->config->item($key)); + + // Test reload - value should not change + $val2 = 'new_value'; + $cfg = array($key => $val2); + $this->ci_vfs_create($file, 'ci_app_root, 'config'); + $this->assertTrue($this->config->load($file)); + $this->assertEquals($val, $this->config->item($key)); + + // Test section load + $file = 'secttest'; + $cfg = array( 'one' => 'prime', 'two' => 2, 'three' => true ); - $this->ci_vfs_create(array( - $file1 => ' 'ci_app_root, 'config'); + $this->ci_vfs_create($file.'.php', 'ci_app_root, 'config'); + $this->assertTrue($this->config->load($file, TRUE)); + $this->assertEquals($cfg, $this->config->item($file)); - // Test regular load - $this->assertTrue($this->config->load($file1)); - $this->assertEquals($val1, $this->config->item($key1)); + // Test section merge + $cfg2 = array( + 'three' => 'tres', + 'number' => 42, + 'letter' => 'Z' + ); + $pkg_dir = 'package'; + $this->ci_vfs_create($file.'.php', 'ci_app_root, + array($pkg_dir, 'config')); + array_push($this->config->_config_paths, $this->ci_vfs_path($pkg_dir.'/', APPPATH)); + $this->assertTrue($this->config->load($file, TRUE)); + $this->assertEquals(array_merge($cfg, $cfg2), $this->config->item($file)); + array_pop($this->config->_config_paths); + + // Test graceful fail of invalid file + $file = 'badfile'; + $this->ci_vfs_create($file, '', $this->ci_app_root, 'config'); + $this->assertFalse($this->config->load($file, FALSE, TRUE)); + + // Test regular fail of invalid file + $this->setExpectedException( + 'RuntimeException', + 'CI Error: Your '.$this->ci_vfs_path('config/'.$file.'.php', APPPATH). + ' file does not appear to contain a valid configuration array.' + ); + $this->assertNull($this->config->load($file)); + } - // Test section load - $this->assertTrue($this->config->load($file2, TRUE)); - $this->assertEquals($cfg2, $this->config->item($file2)); + // -------------------------------------------------------------------- - // Test graceful fail + public function test_load_nonexistent() + { + // Test graceful fail of nonexistent file $this->assertFalse($this->config->load('not_config_file', FALSE, TRUE)); // Test regular fail - $file3 = 'absentia'; + $file = 'absentia'; $this->setExpectedException( 'RuntimeException', - 'CI Error: The configuration file '.$file3.'.php does not exist.' + 'CI Error: The configuration file '.$file.'.php does not exist.' + ); + $this->assertNull($this->config->load($file)); + } + + // -------------------------------------------------------------------- + + public function test_assign_to_config() + { + $key1 = 'test'; + $key2 = '1'; + $val1 = 'foo'; + $val2 = 'bar'; + $cfg = array( + $key1 => $val1, + $key2 => $val2 ); - $this->assertNull($this->config->load($file3)); + + $this->assertNull($this->config->_assign_to_config($cfg)); + $this->assertEquals($val1, $this->config->item($key1)); + $this->assertEquals($val2, $this->config->item($key2)); } } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 5232ba07752ffa783d03754c3a869d9f73ccae69 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 27 Oct 2012 15:25:05 +0300 Subject: Docblock improvements to the Config library and remove CI_Config::_assign_to_config() Existance of _assign_to_config() is pointless as this method consists just of a foreach calling CI_Config::set_item() and is only called by CodeIgniter.php - moved that foreach() in there instead. --- tests/codeigniter/core/Config_test.php | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) (limited to 'tests/codeigniter/core/Config_test.php') diff --git a/tests/codeigniter/core/Config_test.php b/tests/codeigniter/core/Config_test.php index d652a625e..be426d070 100644 --- a/tests/codeigniter/core/Config_test.php +++ b/tests/codeigniter/core/Config_test.php @@ -9,7 +9,7 @@ class Config_test extends CI_TestCase { // set predictable config values $this->cfg = array( 'index_page' => 'index.php', - 'base_url' => 'http://example.com/', + 'base_url' => 'http://example.com/', 'subclass_prefix' => 'MY_' ); $this->ci_set_config($this->cfg); @@ -38,7 +38,6 @@ class Config_test extends CI_TestCase { $this->assertFalse($this->config->item('not_yet_set')); $this->config->set_item('not_yet_set', 'is set'); - $this->assertEquals('is set', $this->config->item('not_yet_set')); } @@ -50,7 +49,6 @@ class Config_test extends CI_TestCase { $this->assertFalse($this->config->slash_item('no_good_item')); $this->assertEquals($this->cfg['base_url'], $this->config->slash_item('base_url')); - $this->assertEquals($this->cfg['subclass_prefix'].'/', $this->config->slash_item('subclass_prefix')); } @@ -124,7 +122,7 @@ class Config_test extends CI_TestCase { $q_string = $this->config->item('enable_query_strings'); $this->config->set_item('enable_query_strings', FALSE); - $uri= 'test'; + $uri = 'test'; $uri2 = '1'; $this->assertEquals($index_page.'/'.$uri, $this->config->site_url($uri)); $this->assertEquals($index_page.'/'.$uri.'/'.$uri2, $this->config->site_url(array($uri, $uri2))); @@ -137,7 +135,6 @@ class Config_test extends CI_TestCase { $this->assertEquals($index_page.'/'.$uri.$suffix.'?'.$arg, $this->config->site_url($uri.'?'.$arg)); $this->config->set_item('url_suffix', FALSE); - $this->config->set_item('enable_query_strings', TRUE); $this->assertEquals($index_page.'?'.$uri, $this->config->site_url($uri)); @@ -233,22 +230,4 @@ class Config_test extends CI_TestCase { $this->assertNull($this->config->load($file)); } - // -------------------------------------------------------------------- - - public function test_assign_to_config() - { - $key1 = 'test'; - $key2 = '1'; - $val1 = 'foo'; - $val2 = 'bar'; - $cfg = array( - $key1 => $val1, - $key2 => $val2 - ); - - $this->assertNull($this->config->_assign_to_config($cfg)); - $this->assertEquals($val1, $this->config->item($key1)); - $this->assertEquals($val2, $this->config->item($key2)); - } - } \ No newline at end of file -- cgit v1.2.3-24-g4f1b