<?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) OR $expire <= time())
		{
			unset($_COOKIE[$name]);
		}
		else
		{
			$_COOKIE[$name] = $value;
		}
	}
}

/**
 * Mock native driver (just for consistency in loading)
 */
class Mock_Libraries_Session_native extends CI_Session_native { }