summaryrefslogtreecommitdiffstats
path: root/tests/codeigniter/libraries/Driver_test.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/codeigniter/libraries/Driver_test.php')
-rw-r--r--tests/codeigniter/libraries/Driver_test.php180
1 files changed, 0 insertions, 180 deletions
diff --git a/tests/codeigniter/libraries/Driver_test.php b/tests/codeigniter/libraries/Driver_test.php
deleted file mode 100644
index ea5cfa235..000000000
--- a/tests/codeigniter/libraries/Driver_test.php
+++ /dev/null
@@ -1,180 +0,0 @@
-<?php
-
-/**
- * Driver library base class unit test
- */
-class Driver_test extends CI_TestCase {
-
- private $name;
-
- /**
- * Set up test framework
- */
- public function set_up()
- {
- // Set our subclass prefix
- $this->subclass = 'Mock_Libraries_';
- $this->ci_set_config('subclass_prefix', $this->subclass);
-
- // Mock Loader->get_package_paths
- $paths = 'get_package_paths';
- $ldr = $this->getMockBuilder('CI_Loader')->setMethods(array($paths))->getMock();
- $ldr->expects($this->any())->method($paths)->will($this->returnValue(array(APPPATH, BASEPATH)));
- $this->ci_instance_var('load', $ldr);
-
- // Create mock driver library
- $this->name = 'Driver';
- $this->lib = new Mock_Libraries_Driver();
- }
-
- /**
- * Test driver child loading
- */
- public function test_load_driver()
- {
- // Create driver file
- $driver = 'basic';
- $file = $this->name.'_'.$driver;
- $class = 'CI_'.$file;
- $prop = 'called';
- $content = '<?php class '.$class.' extends CI_Driver { public $'.$prop.' = FALSE; '.
- 'public function decorate($parent) { $this->'.$prop.' = TRUE; } }';
- $this->ci_vfs_create($file, $content, $this->ci_base_root, array('libraries', $this->name, 'drivers'));
-
- // Make driver valid
- $this->lib->driver_list($driver);
-
- // Load driver
- $this->assertNotNull($this->lib->load_driver($driver));
-
- // Did lib name get set?
- $this->assertEquals($this->name, $this->lib->get_name());
-
- // Was driver loaded?
- $this->assertObjectHasAttribute($driver, $this->lib);
- $this->assertInstanceOf($class, $this->lib->$driver);
- $this->assertInstanceOf('CI_Driver', $this->lib->$driver);
-
- // Was decorate called?
- $this->assertObjectHasAttribute($prop, $this->lib->$driver);
- $this->assertTrue($this->lib->$driver->$prop);
-
- // Do we get an error for an invalid driver?
- $driver = 'unlisted';
- $this->setExpectedException('RuntimeException', 'CI Error: Invalid driver requested: '.$this->name.'_'.$driver);
- $this->lib->load_driver($driver);
- }
-
- /**
- * Test loading lowercase from app path
- */
- public function test_load_app_driver()
- {
- // Create driver file
- $driver = 'lowpack';
- $file = $this->name.'_'.$driver;
- $class = 'CI_'.$file;
- $content = '<?php class '.$class.' extends CI_Driver { }';
- $this->ci_vfs_create($file, $content, $this->ci_app_root,
- array('libraries', $this->name, 'drivers'));
-
- // Make valid list
- $nodriver = 'absent';
- $this->lib->driver_list(array($driver, $nodriver));
-
- // Load driver
- $this->assertNotNull($this->lib->load_driver($driver));
-
- // Was driver loaded?
- $this->assertObjectHasAttribute($driver, $this->lib);
- $this->assertInstanceOf($class, $this->lib->$driver);
- $this->assertInstanceOf('CI_Driver', $this->lib->$driver);
-
- // Do we get an error for a non-existent driver?
- $this->setExpectedException('RuntimeException', 'CI Error: Unable to load the requested driver: CI_'.
- $this->name.'_'.$nodriver);
- $this->lib->load_driver($nodriver);
- }
-
- /**
- * Test loading driver extension
- */
- public function test_load_driver_ext()
- {
- // Create base file
- $driver = 'extend';
- $base = $this->name.'_'.$driver;
- $baseclass = 'CI_'.$base;
- $content = '<?php class '.$baseclass.' extends CI_Driver { }';
- $this->ci_vfs_create($base, $content, $this->ci_base_root, array('libraries', $this->name, 'drivers'));
-
- // Create driver file
- $class = $this->subclass.$base;
- $content = '<?php class '.$class.' extends '.$baseclass.' { }';
- $this->ci_vfs_create($class, $content, $this->ci_app_root, array('libraries', $this->name, 'drivers'));
-
- // Make valid list
- $this->lib->driver_list($driver);
-
- // Load driver
- $this->assertNotNull($this->lib->load_driver($driver));
-
- // Was driver loaded?
- $this->assertObjectHasAttribute($driver, $this->lib);
- $this->assertInstanceOf($class, $this->lib->$driver);
- $this->assertInstanceOf($baseclass, $this->lib->$driver);
- $this->assertInstanceOf('CI_Driver', $this->lib->$driver);
-
- // Create driver extension without base
- $driver = 'baseless';
- $base = $this->name.'_'.$driver;
- $class = $this->subclass.$base;
- $content = '<?php class '.$class.' extends CI_Driver { }';
- $this->ci_vfs_create($class, $content, $this->ci_app_root, array('libraries', $this->name, 'drivers'));
- $this->lib->driver_list($driver);
-
- // Do we get an error when base class isn't found?
- $this->setExpectedException('RuntimeException', 'CI Error: Unable to load the requested class: CI_'.$base);
- $this->lib->load_driver($driver);
- }
-
- /**
- * Test decorating driver with parent attributes
- */
- public function test_decorate()
- {
- // Create parent with a method and property to access
- $pclass = 'Test_Parent';
- $prop = 'parent_prop';
- $value = 'initial';
- $method = 'parent_func';
- $return = 'func return';
- $code = 'class '.$pclass.' { public $'.$prop.' = \''.$value.'\'; '.
- 'public function '.$method.'() { return \''.$return.'\'; } }';
- eval($code);
- $parent = new $pclass();
-
- // Create child driver to decorate
- $class = 'Test_Driver';
- eval('class '.$class.' extends CI_Driver { }');
- $child = new $class();
-
- // Decorate child
- $child->decorate($parent);
-
- // Do we get the initial parent property value?
- $this->assertEquals($value, $child->$prop);
-
- // Can we change the parent property?
- $newval = 'changed';
- $child->$prop = $newval;
- $this->assertEquals($newval, $parent->$prop);
-
- // Do we get back the updated value?
- $this->assertEquals($newval, $child->$prop);
-
- // Can we call the parent method?
- $this->assertEquals($return, $child->$method());
- }
-
-}