/** * Bootstraps test suite * * @global stdClass $CONFIG Global config * @global stdClass $_ELGG Global vars * @return void */ public static function bootstrap() { date_default_timezone_set('America/Los_Angeles'); error_reporting(E_ALL | E_STRICT); $config = new Config((object) self::getTestingConfigArray()); $sp = new ServiceProvider($config); $sp->setFactory('plugins', function (ServiceProvider $c) { $pool = new InMemory(); return new TestingPlugins($pool, $c->pluginSettingsCache); }); $sp->setValue('mailer', new InMemoryTransport()); $sp->siteSecret->setTestingSecret('z1234567890123456789012345678901'); // persistentLogin service needs this set to instantiate without calling DB $sp->config->getCookieConfig(); $app = new Application($sp); Application::setTestingApplication(true); Application::$_instance = $app; // loadCore bails on repeated calls, so we need to manually inject this to make // sure it happens before each test. $app->loadCore(); _elgg_services($sp); // Invalidate memcache _elgg_get_memcache('new_entity_cache')->clear(); self::$_mocks = null; // reset mocking service }
/** * Allow plugins to rewrite the path. * * @return void */ private function allowPathRewrite() { $request = $this->services->request; $new = $this->services->router->allowRewrite($request); if ($new === $request) { return; } $this->services->setValue('request', $new); _elgg_set_initial_context($new); }