Pasar al contenido principal

Behat3.x pasos de interacciones con Nodos para Drupal

Con ayuda de estás dos funciones podremos publicar y despublicar nodos. Muy útil si necesitamos tener ciertos contenidos para hacer pruebas sobre ellos.

Publicación de Nodos

/**
 * @BeforeSuite
 */
public static
function publishNode() { 
  $nids = array();  // Load all nodes in one go for better performance. Example (12, 15)
   
  $nodes = node_load_multiple($nids);
  foreach($nodes as $node) {
       
    $node-> status = 1;  // set status property to 1, Published
       
    node_save($node);   //save the node
  }
}

Despublicación de Nodos

/**
 * @AfterSuite
 */
public static
function unpublishNode() { 
  $nids = array();  // Load all nodes in one go for better performance. Example (1, 5, 15)
   
  $nodes = node_load_multiple($nids); 
  foreach($nodes as $node) {    

    $node-> status = 0; // set status property to 0, Unpublish
       
    node_save($node);   // save the node(s)
  }
}

Recuperar el NID del último nodo creado

 
 /**
   * Take the last nid create. Optional bundle
   *
   * @param string $bundle
   *   Optionally restrict the search to this type of node.
   *
   * @return int
   *   Node id (Nid).
   */
  public function getLastNodeNid($bundle = NULL) {
    if (!empty($bundle)) {
      $query = db_query("SELECT nid FROM node WHERE type = :bundle ORDER BY nid DESC LIMIT 1", array(':bundle' => $bundle));
    }
    else {
      $query = db_query("SELECT nid FROM node ORDER BY nid DESC LIMIT 1");
    }

    return $query->fetchField();
  }

 

A continuación agregamos información sobre las herramientas utilizadas y documentación sobre Behat relativa a los pasos

 

Información sobre Tags @BeforeSuite y @AfterSuite
http://docs.behat.org/en/v2.5/guides/3.hooks.html#hooks

Información sobre Drupal Extension y Mink
http://behat-drupal-extension.readthedocs.io/en/3.1/intro.html