protected function execute(InputInterface $input, OutputInterface $output) { $this->recreateContainerWithWebEnvironment(); $this->initHostAndQueryString($input); if ($this->isTestModeEnabled()) { $indexFile = '/tests/PHPUnit/proxy/'; $this->resetDatabase(); } else { $indexFile = '/'; } $indexFile .= 'index.php'; if (!empty($_GET['pid'])) { $process = new Process($_GET['pid']); if ($process->hasFinished()) { return; } $process->startProcess(); } if ($input->getOption('superuser')) { StaticContainer::addDefinitions(array('observers.global' => \DI\add(array(array('Environment.bootstrapped', function () { Access::getInstance()->setSuperUserAccess(true); }))))); } require_once PIWIK_INCLUDE_PATH . $indexFile; if (!empty($process)) { $process->finishProcess(); } }
/** * @test */ public function extensions_can_be_registered() { $container = $this->createContainer(['twig.extensions' => DI\add([DI\get(Twig_Extension_StringLoader::class)])]); /** @var Twig_Environment $twig */ $twig = $container->get(Twig_Environment::class); $this->assertTrue($twig->hasExtension('string_loader')); }
<?php return array('Piwik\\Plugins\\CoreUpdater\\Updater' => DI\object()->constructorParameter('tmpPath', DI\get('path.tmp')), 'diagnostics.optional' => DI\add(array(DI\get('Piwik\\Plugins\\CoreUpdater\\Diagnostic\\HttpsUpdateCheck'))));
<?php return array('tracker.request.processors' => DI\add(array(DI\get('Piwik\\Plugins\\Actions\\Tracker\\ActionsRequestProcessor'))));
<?php return ['steps.after' => DI\add([DI\get('Couscous\\Module\\Core\\Step\\ClearTargetDirectory'), DI\get('Couscous\\Module\\Core\\Step\\WriteFiles')])];
<?php return array('tracker.request.processors' => DI\add(array(DI\get('Piwik\\Plugins\\Heartbeat\\Tracker\\PingRequestProcessor'))));
<?php return array('diagnostics.optional' => DI\add(array(DI\get('Piwik\\Plugins\\UserCountry\\Diagnostic\\GeolocationDiagnostic'))));
<?php return array('tracker.request.processors' => DI\add(array(DI\get('Piwik\\Plugins\\SitesManager\\Tracker\\SitesManagerRequestProcessor'))));
use Piwik\Container\StaticContainer; return array('tests.ui.url_normalizer_blacklist.api' => array(), 'tests.ui.url_normalizer_blacklist.controller' => array(), 'Piwik\\Config' => \DI\decorate(function (\Piwik\Config $config) { $config->General['cors_domains'][] = '*'; $config->General['trusted_hosts'][] = $config->tests['http_host']; $config->General['trusted_hosts'][] = $config->tests['http_host'] . ':' . $config->tests['port']; return $config; }), 'observers.global' => \DI\add(array(array('Request.dispatch.end', function (&$result) { $request = $_GET + $_POST; $apiblacklist = StaticContainer::get('tests.ui.url_normalizer_blacklist.api'); if (!empty($request['method']) && in_array($request['method'], $apiblacklist)) { return; } $controllerActionblacklist = StaticContainer::get('tests.ui.url_normalizer_blacklist.controller'); if (!empty($request['module']) && !empty($request['action'])) { $controllerAction = $request['module'] . '.' . $request['action']; if (in_array($controllerAction, $controllerActionblacklist)) { return; } } $config = \Piwik\Config::getInstance(); $host = $config->tests['http_host']; $port = $config->tests['port']; if (!empty($port)) { // remove the port from URLs if any so UI tests won't fail if the port isn't 80 $result = str_replace($host . ':' . $port, $host, $result); } // remove PIWIK_INCLUDE_PATH from result so tests don't change based on the machine used $result = str_replace(realpath(PIWIK_INCLUDE_PATH), '', $result); }), array('Controller.RssWidget.rssPiwik.end', function (&$result, $parameters) { $result = ""; }))));
<?php return ['steps.preprocessing' => DI\add([DI\get('Couscous\\Module\\Markdown\\Step\\LoadMarkdownFiles'), DI\get('Couscous\\Module\\Markdown\\Step\\ParseMarkdownFrontMatter'), DI\get('Couscous\\Module\\Markdown\\Step\\ProcessMarkdownFileName'), DI\get('Couscous\\Module\\Markdown\\Step\\RewriteMarkdownLinks'), DI\get('Couscous\\Module\\Markdown\\Step\\RenderMarkdown'), DI\get('Couscous\\Module\\Markdown\\Step\\CreateHeadingIds')]), 'Mni\\FrontYAML\\Parser' => DI\object()->constructorParameter('markdownParser', DI\get('Mni\\FrontYAML\\Markdown\\MarkdownParser')), 'Mni\\FrontYAML\\Markdown\\MarkdownParser' => DI\object('Mni\\FrontYAML\\Bridge\\Parsedown\\ParsedownParser')->constructor(DI\get('ParsedownExtra'))];
<?php return array('diagnostics.optional' => DI\add(array(DI\get('Piwik\\Plugins\\CustomPiwikJs\\Diagnostic\\PiwikJsCheck'))));
$access = new FakeAccess(); FakeAccess::$superUser = true; FakeAccess::$superUserLogin = '******'; return $access; } else { return $previous; } }), 'observers.global' => DI\add(array(array('AssetManager.getStylesheetFiles', function (&$stylesheets) { $useOverrideCss = \Piwik\Container\StaticContainer::get('test.vars.useOverrideCss'); if ($useOverrideCss) { $stylesheets[] = 'tests/resources/screenshot-override/override.css'; } }), array('AssetManager.getJavaScriptFiles', function (&$jsFiles) { $useOverrideJs = \Piwik\Container\StaticContainer::get('test.vars.useOverrideJs'); if ($useOverrideJs) { $jsFiles[] = 'tests/resources/screenshot-override/override.js'; } }), array('Updater.checkForUpdates', function () { try { @\Piwik\Filesystem::deleteAllCacheOnUpdate(); } catch (Exception $ex) { // pass } }), array('Test.Mail.send', function (\Zend_Mail $mail) { $outputFile = PIWIK_INCLUDE_PATH . '/tmp/' . Common::getRequestVar('module', '') . '.' . Common::getRequestVar('action', '') . '.mail.json'; $outputContent = str_replace("=\n", "", $mail->getBodyText($textOnly = true)); $outputContent = str_replace("=0A", "\n", $outputContent); $outputContent = str_replace("=3D", "=", $outputContent); $outputContents = array('from' => $mail->getFrom(), 'to' => $mail->getRecipients(), 'subject' => $mail->getSubject(), 'contents' => $outputContent); file_put_contents($outputFile, json_encode($outputContents)); }))));
<?php return array('tests.ui.url_normalizer_blacklist.api' => DI\add(array('Overlay.getFollowingPages')), 'tests.ui.url_normalizer_blacklist.controller' => DI\add(array('Overlay.renderSidebar')));
<?php return ['steps.init' => DI\add([DI\get('Couscous\\Module\\Config\\Step\\SetDefaultConfig'), DI\get('Couscous\\Module\\Config\\Step\\LoadConfig'), DI\get('Couscous\\Module\\Config\\Step\\OverrideBaseUrlForPreview')])];
<?php return array('tracker.request.processors' => DI\add(array(DI\get('Piwik\\Plugins\\CustomVariables\\Tracker\\CustomVariablesRequestProcessor'))), 'CustomVariables.today' => 'today');
<?php return ['steps.before' => DI\add([DI\get('Couscous\\Module\\Template\\Step\\UseDefaultTemplate'), DI\get('Couscous\\Module\\Template\\Step\\FetchRemoteTemplate'), DI\get('Couscous\\Module\\Template\\Step\\ValidateTemplateDirectory')]), 'steps.postprocessing' => DI\add([DI\get('Couscous\\Module\\Template\\Step\\LoadAssets'), DI\get('Couscous\\Module\\Template\\Step\\AddPageListToLayoutVariables'), DI\get('Couscous\\Module\\Template\\Step\\ProcessTwigLayouts')])];
<?php return ['steps.preprocessing' => DI\add([DI\get('Couscous\\Module\\Bower\\Step\\RunBowerInstall')])];
public static function provideContainerConfigBeforeClass() { $result = array(); $testingEnvironment = new TestingEnvironmentVariables(); if ($testingEnvironment->_triggerTrackerFailure) { $result['observers.global'] = \DI\add(array(array('Tracker.newHandler', function () { @http_response_code(500); throw new \Exception("injected exception"); }))); } return $result; }
<?php return array('Piwik\\Plugins\\CoreHome\\Tracker\\VisitRequestProcessor' => DI\object()->constructorParameter('visitStandardLength', DI\get('ini.Tracker.visit_standard_length')), 'tracker.request.processors' => DI\add(array(DI\get('Piwik\\Plugins\\CoreHome\\Tracker\\VisitRequestProcessor'))));
public static function provideContainerConfigBeforeClass() { $result = array(); $observers = array(); $testingEnvironment = new TestingEnvironmentVariables(); if ($testingEnvironment->_triggerTrackerFailure) { $observers[] = array('Tracker.newHandler', function () { @http_response_code(500); throw new \Exception("injected exception"); }); } if ($testingEnvironment->_triggerInvalidRequests) { // we trigger an invalid request by checking for triggerInvalid=1 in a request, and if found replacing the // request w/ a request that has an nonexistent idsite $observers[] = array('Tracker.initRequestSet', function (RequestSet $requestSet) { $requests = $requestSet->getRequests(); foreach ($requests as $index => $request) { $url = $request->getParam('url'); if (strpos($url, 'triggerInvalid=1') !== false) { $newParams = $request->getParams(); $newParams['idsite'] = 1000; $requests[$index] = new Request($newParams); } } $requestSet->setRequests($requests); }); } if (!empty($observers)) { $result['observers.global'] = \DI\add($observers); } return $result; }
<?php return ['steps.before' => DI\add([DI\get('Couscous\\Module\\Scripts\\Step\\ExecuteBeforeScripts')]), 'steps.after' => DI\add([DI\get('Couscous\\Module\\Scripts\\Step\\ExecuteAfterScripts')])];
public function getExtraDefinitions() { $testVarDefinitionSource = new TestingEnvironmentVariablesDefinitionSource($this->vars); $diConfigs = array($testVarDefinitionSource); if ($this->vars->testCaseClass) { $testCaseClass = $this->vars->testCaseClass; if (class_exists($testCaseClass)) { $testCase = new $testCaseClass(); // Apply DI config from the fixture if (isset($testCaseClass::$fixture)) { $diConfigs[] = $testCaseClass::$fixture->provideContainerConfig(); } if (method_exists($testCaseClass, 'provideContainerConfigBeforeClass')) { $diConfigs[] = $testCaseClass::provideContainerConfigBeforeClass(); } if (method_exists($testCase, 'provideContainerConfig')) { $diConfigs[] = $testCase->provideContainerConfig(); } } } else { if ($this->vars->fixtureClass) { $fixtureClass = $this->vars->fixtureClass; if (class_exists($fixtureClass)) { $fixture = new $fixtureClass(); if (method_exists($fixture, 'provideContainerConfig')) { $diConfigs[] = $fixture->provideContainerConfig(); } } } } $plugins = $this->getPluginsToLoadDuringTest(); $diConfigs[] = array('observers.global' => \DI\add($this->globalObservers), 'Piwik\\Config' => \DI\decorate(function (Config $config, ContainerInterface $c) use($plugins) { /** @var PluginList $pluginList */ $pluginList = $c->get('Piwik\\Application\\Kernel\\PluginList'); $plugins = $pluginList->sortPlugins($plugins); // set the plugins to load, has to be done to Config, since Config will reload files on construction. // TODO: probably shouldn't need to do this, will wait until 3.0 to remove. $config->Plugins['Plugins'] = $plugins; return $config; })); return $diConfigs; }
<?php return array('tracker.request.processors' => DI\add(array(DI\get('Piwik\\Plugins\\Ecommerce\\Tracker\\EcommerceRequestProcessor'))));