Added Session driver library unit tests and added driver library autoloading to test framework
diff --git a/tests/mocks/autoloader.php b/tests/mocks/autoloader.php
index be1c222..88d016b 100644
--- a/tests/mocks/autoloader.php
+++ b/tests/mocks/autoloader.php
@@ -26,10 +26,14 @@
 		'Email', 'Encrypt', 'Form_validation',
 		'Ftp', 'Image_lib', 'Javascript',
 		'Log', 'Migration', 'Pagination',
-		'Parser', 'Profiler', 'Session',
-		'Table', 'Trackback', 'Typography',
-		'Unit_test', 'Upload', 'User_agent',
-		'Xmlrpc', 'Zip',
+		'Parser', 'Profiler', 'Table',
+	   	'Trackback', 'Typography', 'Unit_test',
+	   	'Upload', 'User_agent', 'Xmlrpc',
+	   	'Zip',
+	);
+
+	$ci_drivers = array(
+		'Session',
 	);
 
 	if (strpos($class, 'Mock_') === 0)
@@ -52,6 +56,15 @@
 			$dir = BASEPATH.'libraries'.DIRECTORY_SEPARATOR;
 			$class = ($subclass === 'Driver_Library') ? 'Driver' : $subclass;
 		}
+		elseif (in_array($subclass, $ci_drivers))
+		{
+			$dir = BASEPATH.'libraries'.DIRECTORY_SEPARATOR.$subclass.DIRECTORY_SEPARATOR;
+			$class = $subclass;
+		}
+		elseif (in_array(($parent = strtok($subclass, '_')), $ci_drivers)) {
+			$dir = BASEPATH.'libraries'.DIRECTORY_SEPARATOR.$parent.DIRECTORY_SEPARATOR.'drivers'.DIRECTORY_SEPARATOR;
+			$class = $subclass;
+		}
 		elseif (preg_match('/^CI_DB_(.+)_(driver|forge|result|utility)$/', $class, $m) && count($m) === 3)
 		{
 			$driver_path = BASEPATH.'database'.DIRECTORY_SEPARATOR.'drivers'.DIRECTORY_SEPARATOR;
@@ -91,4 +104,4 @@
 	}
 
 	include_once($file);
-}
\ No newline at end of file
+}
diff --git a/tests/mocks/libraries/session.php b/tests/mocks/libraries/session.php
new file mode 100644
index 0000000..9d6feee
--- /dev/null
+++ b/tests/mocks/libraries/session.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * Mock library to add testing features to Session driver library
+ */
+class Mock_Libraries_Session extends CI_Session {
+	/**
+	 * Simulate new page load
+	 */
+	public function reload()
+	{
+		$this->_flashdata_sweep();
+		$this->_flashdata_mark();
+		$this->_tempdata_sweep();
+	}
+}
+
+/**
+ * Mock cookie driver to overload cookie setting
+ */
+class Mock_Libraries_Session_cookie extends CI_Session_cookie {
+	/**
+	 * Overload _setcookie to manage $_COOKIE values, since actual cookies can't be set in unit testing
+	 */
+	protected function _setcookie($name, $value = '', $expire = 0, $path = '', $domain = '', $secure = false,
+	$httponly = false)
+	{
+		if (empty($value) || $expire <= time()) {
+			// Clear cookie
+			unset($_COOKIE[$name]);
+		}
+		else {
+			// Set cookie
+			$_COOKIE[$name] = $value;
+		}
+	}
+}
+
+/**
+ * Mock native driver (just for consistency in loading)
+ */
+class Mock_Libraries_Session_native extends CI_Session_native { }
+