You are here

protected function BEF_TestBase::createDisplay in Better Exposed Filters 7.3

Creates a display of $type. Currently supports: 'Page'

@todo: support more types...

12 calls to BEF_TestBase::createDisplay()
BEF_TestCheckboxes::test_befPageDisplayCheckboxes in tests/better_exposed_filters.test
Verify that checkboxes are rendered correctly on a page display
BEF_TestDatepicker::test_befDatepicker in tests/better_exposed_filters.test
Verifies Datepicker options using Drupal core date fields.
BEF_TestDatepicker::test_befDatepickerCustom in tests/better_exposed_filters.test
Verifies Datepicker options using a custom (Date module) date field.
BEF_TestHidden::test_befPageDisplayHidden in tests/better_exposed_filters.test
Verify hidden exposed filters are rendered correctly on a page display
BEF_TestLinks::test_befFilterLinks in tests/better_exposed_filters.test
Verify filters rendered as links.

... See full list

File

tests/better_exposed_filters_TestBase.php, line 118
Base class for testing the Better Exposed Filters module. @author mikeker

Class

BEF_TestBase
Helper functions for Better Exposed Filters tests.

Code

protected function createDisplay($type = 'Page', $settings = NULL) {
  if (!isset($this->view['displays'])) {
    $this->view['displays'] = array();
  }

  // Add a display of $type to the view.
  $this
    ->drupalPost($this->view['edit_url'], array(), "Add {$type}");

  // Grab the name of the newly created display and store some info about it.
  $url = $this
    ->getUrl();
  $display_name = substr($url, strrpos($url, '/') + 1);
  $this->view['displays'][$display_name] = array(
    'machine_name' => $display_name,
    'edit_url' => 'admin/structure/views/view/' . $this->view['machine_name'] . '/edit/' . $display_name,
    'settings_base_url' => 'admin/structure/views/nojs/display/' . $this->view['machine_name'] . '/' . $display_name,
  );

  // Settings should be in the form of 'path' => array_of_form_settings. Eg:
  // to set the title for a new display as an override:
  //  'title' => array(
  //    'title' => 'This is an override title',
  //    'override[dropdown]' => display_machine_name_goes_here,
  //  )
  //
  // If you navigate to
  //  admin/structure/views/nojs/display/<view_name>/<display_name>/title
  // you will see the form in question.
  foreach ($settings as $path => $values) {
    $this
      ->drupalPost($this->view['displays'][$display_name]['settings_base_url'] . "/{$path}", $values, 'Apply');
  }
  $this
    ->saveView();
}