public function beforeScenario($event) { parent::beforeScenario($event); // @todo provide our own mail system to ameliorate ensuing ugliness. if ($event instanceof ScenarioEvent) { if ($event->getScenario()->hasTag('mail')) { if (module_exists('devel')) { variable_set('mail_system', array('default-system' => 'DevelMailLog')); } else { throw new \Exception('You must ensure that the devel module is enabled'); } $fs = new \Filesystem(); if ($mail_path = $event->getScenario()->getTitle()) { $fs->remove('/tmp/' . $mail_path); $fs->mkdir($mail_path); } variable_set('devel_debug_mail_directory', $mail_path); // NB: DevelMailLog is going to replace our separator with __. variable_set('devel_debug_mail_file_format', '%to::%subject'); $this->mail = new \DevelMailLog(); } } if (!$this->drupalSession) { $_SERVER['SERVER_SOFTWARE'] = 'foo'; $this->drupalSession = (object) array('name' => session_name(), 'id' => session_id()); $_SESSION['foo'] = 'bar'; drupal_session_commit(); } session_name($this->drupalSession->name); session_id($this->drupalSession->id); $_COOKIE[session_name()] = session_id(); drupal_session_start(); $base_url = getenv('DRUPAL_BASE_URL'); if (!empty($base_url)) { $this->setMinkParameter('base_url', $base_url); } $userName = getenv('DRUPAL_BASIC_AUTH_USERNAME'); $pass = getenv('DRUPAL_BASIC_AUTH_PASS'); foreach (array('selenium2', 'goutte') as $session) { $session = $this->getMink()->getSession($session); $session->visit($this->locatePath('/index.php?foo=bar')); if (!empty($userName) && !empty($pass)) { $this->getMink()->getSession()->setBasicAuth($userName, $pass); } } }
$output = update_selection_page(); break; } case 'Apply pending updates': if (isset($_GET['token']) && $_GET['token'] == drupal_get_token('update')) { update_batch($_POST['start'], $base_url . '/update.php?op=results', $base_url . '/update.php'); break; } case 'info': $output = update_info_page(); break; case 'results': $output = update_results_page(); break; // Regular batch ops : defer to batch processing API. // Regular batch ops : defer to batch processing API. default: update_task_list('run'); $output = _batch_page(); break; } } else { $output = update_access_denied_page(); } if (isset($output) && $output) { // Explictly start a session so that the update.php token will be accepted. drupal_session_start(); // We defer the display of messages until all updates are done. $progress_page = ($batch = batch_get()) && isset($batch['running']); print theme('update_page', array('content' => $output, 'show_messages' => !$progress_page)); }
/** * Creates an array in the session. All variables now will be stored * under this array * * @param bool $isRead * Is this a read operation, in this case, the session will not be touched. * * * @return void */ public function initialize($isRead = FALSE) { // lets initialize the _session variable just before we need it // hopefully any bootstrapping code will actually load the session from the CMS if (!isset($this->_session)) { // CRM-9483 if (!isset($_SESSION) && PHP_SAPI !== 'cli') { if ($isRead) { return; } $config =& CRM_Core_Config::singleton(); // FIXME: This belongs in CRM_Utils_System_* if ($config->userSystem->is_drupal && function_exists('drupal_session_start')) { // https://issues.civicrm.org/jira/browse/CRM-14356 if (!(isset($GLOBALS['lazy_session']) && $GLOBALS['lazy_session'] == TRUE)) { drupal_session_start(); } $_SESSION = array(); } else { session_start(); } } $this->_session =& $_SESSION; } if ($isRead) { return; } if (!isset($this->_session[$this->_key]) || !is_array($this->_session[$this->_key])) { $this->_session[$this->_key] = array(); } return NULL; }
/** * Creates an array in the session. All variables now will be stored * under this array * * @param boolean isRead is this a read operation, in this case, the session will not be touched * * @access private * * @return void */ function initialize($isRead = FALSE) { // lets initialize the _session variable just before we need it // hopefully any bootstrapping code will actually load the session from the CMS if (!isset($this->_session)) { // CRM-9483 if (!isset($_SESSION) && PHP_SAPI !== 'cli') { if ($isRead) { return; } $config =& CRM_Core_Config::singleton(); if ($config->userSystem->is_drupal && function_exists('drupal_session_start')) { drupal_session_start(); } else { session_start(); } } $this->_session =& $_SESSION; } if ($isRead) { return; } if (!isset($this->_session[$this->_key]) || !is_array($this->_session[$this->_key])) { $this->_session[$this->_key] = array(); } return; }
/** * Stores the current transaction session to the Drupal session. */ public function storeToSession() { if (!drupal_session_started()) { drupal_session_start(); } $_SESSION['publisher_transaction_session'] = $this; }