/** * Add an error to the queue. * * @param Bugsnag_Error $config the bugsnag error instance * @param array $passedMetaData the associated meta data * * @return bool */ public function addError(Bugsnag_Error $error, $passedMetaData = array()) { // Check if this error should be sent to Bugsnag if (!$this->config->shouldNotify()) { return false; } // Add global meta-data to error $error->setMetaData($this->config->metaData); // Add request meta-data to error if (Bugsnag_Request::isRequest()) { $error->setMetaData(Bugsnag_Request::getRequestMetaData()); } // Session Tab if ($this->config->sendSession && !empty($_SESSION)) { $error->setMetaData(array('session' => $_SESSION)); } // Cookies Tab if ($this->config->sendCookies && !empty($_COOKIE)) { $error->setMetaData(array('cookies' => $_COOKIE)); } // Add environment meta-data to error if ($this->config->sendEnvironment && !empty($_ENV)) { $error->setMetaData(array('Environment' => $_ENV)); } // Add user-specified meta-data to error $error->setMetaData($passedMetaData); // Run beforeNotify function (can cause more meta-data to be merged) if (isset($this->config->beforeNotifyFunction) && is_callable($this->config->beforeNotifyFunction)) { $beforeNotifyReturn = call_user_func($this->config->beforeNotifyFunction, $error); } // Skip this error if the beforeNotify function returned FALSE if (!isset($beforeNotifyReturn) || $beforeNotifyReturn !== false) { $this->errorQueue[] = $error; return true; } else { return false; } }
public function testBothCustomShouldNotify() { $this->config->releaseStage = "banana"; $this->config->notifyReleaseStages = array("banana"); $this->assertTrue($this->config->shouldNotify()); }