Extract page content while simple testing with xpath and DOM

It is sometimes useful to grab content from the page that is currently tested. The idea is to search for the tag with xpath then convert it to DOM to get data... For instance, let's get the title and the href value of the second tab.

  1. $tab = $this->xpath("//ul[contains(@class, 'tabs--primary')]/li[2]/a");
  2. $link_title = dom_import_simplexml($tab[0])->nodeValue; // Edit
  3. $href = dom_import_simplexml($tab[0])->getAttribute('href'); // node/xx/edit
  4.  
  5. //note that $tab[0])->getAttribute("src"); seems to work as well
  6. // or easier to get the href $this->xpath("//ul[contains(@class, 'tabs--primary')]/li[2]/a/@href");

Display errors - WSOD

The bootstrap override the values you could set to display error ad the reporting level. To be 100% sure everything is printed out when something fails in a blank screen (wsod), make index.php like this:

Properly render a field

Drupal offers a few (sometimes complicated...) solutions to output a field. Lets take an example with a date field.
To display the full rendered field: field_view_field()

Using once()

ensure ajax reload don't apply the behaviours for items already processed

Change the theme

Programmatically change the theme on runtime by implementing hook_custom_theme()

Manually clear caches

for views and panels

Add a Jquery ui library

get the library names to use in /misc/ui folder

Embed a custom page

Get the rendered output of a custom page created with page manager (ctools) module

Embed a mini panel

Get the html output of a mini-panel

alter / automatize the install process

in the .profile file of the install profile (here "mysnippet" profile)

Aegir: perform custom tasks after a new site is installed

in a custom module, in a file called mysnippet.drush.inc (keep in mind that the install process is handled by drush...)