/** * RunResultHtmlTable constructor. * @param TestInfo $testInfo * @param TestRunResults $runResults * @param TestRunResults $rvRunResults Optional. Run results of the repeat view */ public function __construct($testInfo, $runResults, $rvRunResults = null) { $this->testInfo = $testInfo; $this->runResults = $runResults; $this->rvRunResults = $rvRunResults; $this->isMultistep = $runResults->isMultistep(); $this->leftOptionalColumns = array(self::COL_LABEL, self::COL_ABOVE_THE_FOLD, self::COL_USER_TIME, self::COL_DOM_TIME, self::COL_DOM_ELEMENTS, self::COL_SPEED_INDEX, self::COL_VISUAL_COMPLETE, self::COL_RESULT); $this->rightOptionalColumns = array(self::COL_COST); $this->enabledColumns = array(); // optional columns default setting based on data $this->enabledColumns[self::COL_LABEL] = $this->testInfo->getRuns() > 1 || $this->isMultistep || $this->rvRunResults; $this->enabledColumns[self::COL_ABOVE_THE_FOLD] = $testInfo->hasAboveTheFoldTime(); $this->enabledColumns[self::COL_RESULT] = true; $checkByMetric = array(self::COL_USER_TIME, self::COL_DOM_TIME, self::COL_DOM_ELEMENTS, self::COL_SPEED_INDEX, self::COL_VISUAL_COMPLETE); foreach ($checkByMetric as $col) { $this->enabledColumns[$col] = $runResults->hasValidMetric($col) || $rvRunResults && $rvRunResults->hasValidMetric($col); } }