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);
         }
     }
 }
Exemplo n.º 2
0
                $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));
}
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
 /**
  * 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;
 }
Exemplo n.º 5
0
 /**
  * Stores the current transaction session to the Drupal session.
  */
 public function storeToSession()
 {
     if (!drupal_session_started()) {
         drupal_session_start();
     }
     $_SESSION['publisher_transaction_session'] = $this;
 }