/** * Ensure all tests have a reference to the MODX and Discuss objects */ public function setUp() { $this->modx =& DiscussTestHarness::_getConnection(); $disCorePath = $this->modx->getOption('discuss.core_path', null, $this->modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/discuss/'); require_once $disCorePath . 'model/discuss/discuss.class.php'; $this->discuss = new Discuss($this->modx); $this->modx->discuss =& $this->discuss; /* set this here to prevent emails/headers from being sent */ $this->discuss->inTestMode = true; /* make sure to reset MODX placeholders so as not to keep placeholder data across tests */ $this->modx->placeholders = array(); }
/** * Grab a persistent instance of the xPDO class to share connection data * across multiple tests and test suites. * * @param array $options An array of configuration parameters. * @return xPDO An xPDO object instance. */ public static function _getConnection($options = array()) { $modx = DiscussTestHarness::$modx; if (is_object($modx)) { if (!$modx->request) { $modx->getRequest(); } if (!$modx->error) { $modx->request->loadErrorHandler(); } $modx->error->reset(); DiscussTestHarness::$modx = $modx; return DiscussTestHarness::$modx; } /* include config.core.php */ $properties = array(); include_once strtr(realpath(dirname(__FILE__)) . '/config.inc.php', '\\', '/'); require_once $config['modx_base_path'] . 'config.core.php'; require_once MODX_CORE_PATH . 'config/' . MODX_CONFIG_KEY . '.inc.php'; require_once MODX_CORE_PATH . 'model/modx/modx.class.php'; include_once strtr(realpath(dirname(__FILE__)) . '/properties.inc.php', '\\', '/'); if (!defined('MODX_REQP')) { define('MODX_REQP', false); } $modx = new modX(null, $properties); $ctx = !empty($options['ctx']) ? $options['ctx'] : 'web'; $modx->initialize($ctx); $debug = !empty($options['debug']); $modx->setDebug($debug); if (!empty($properties['logTarget'])) { $modx->setLogTarget($properties['logTarget']); } if (!empty($properties['logLevel'])) { $modx->setLogLevel($properties['logLevel']); } $modx->user = $modx->newObject('modUser'); $modx->user->set('id', $modx->getOption('modx.test.user.id', null, 1)); $modx->user->set('username', $modx->getOption('modx.test.user.username', null, 'test')); $modx->getRequest(); $modx->getParser(); $modx->request->loadErrorHandler(); DiscussTestHarness::$modx = $modx; return $modx; }