Exemplo n.º 1
0
 function testComplexExperimentIsEnabled()
 {
     // all criteria need to me meet in order to make the expirement enabled
     $this->assertTrue(Experiment::isEnabled(['criteria' => ['traffic' => 87, 'wikis' => 123]]));
     $this->assertFalse(Experiment::isEnabled(['criteria' => ['traffic' => 7, 'wikis' => 123]]));
     $this->assertFalse(Experiment::isEnabled(['criteria' => ['traffic' => 87, 'wikis' => 23]]));
     $this->assertFalse(Experiment::isEnabled(['criteria' => ['traffic' => 7, 'wikis' => 23]]));
 }
Exemplo n.º 2
0
 /**
  * Initialize performance experiments when MediaWiki starts the engine
  *
  * @param \Title $title
  * @param \Article $article
  * @param \OutputPage $output
  * @param \User $user
  * @param \WebRequest $request
  * @param \MediaWiki $wiki
  * @return bool it's a hook
  */
 static function onAfterInitialize($title, $article, $output, $user, $request, $wiki)
 {
     global $wgAbPerformanceTestingExperiments;
     wfDebug(sprintf("%s - checking experiments (with beacon ID set to '%s')...\n", __METHOD__, wfGetBeaconId()));
     // loop through all registered experiments and run those matching criteria
     foreach ($wgAbPerformanceTestingExperiments as $experimentName => $experimentConfig) {
         if (Experiment::isEnabled($experimentConfig)) {
             self::startExperiment($experimentName, $experimentConfig);
             // leave now, we handle only a single experiment at a time now
             return true;
         }
     }
     return true;
 }