Commit a93b6375 authored by webchick's avatar webchick

Issue #1829822 by tim.plunkett, dawehner, damiankloip: Write a test which...

Issue #1829822 by tim.plunkett, dawehner, damiankloip: Write a test which tests the UI for all of the handlers.
parent 566ccd63
<?php
/**
* @file
* Contains Drupal\views\Tests\UI\HandlerTest.
*/
namespace Drupal\views\Tests\UI;
use Drupal\views\ViewExecutable;
/**
* Tests some generic handler UI functionality.
*
* @see \Drupal\views\Plugin\views\HandlerBase
*/
class HandlerTest extends UITestBase {
public static function getInfo() {
return array(
'name' => 'Handler test',
'description' => 'Tests handler UI for views.',
'group' => 'Views UI'
);
}
/**
* Tests UI CRUD.
*/
public function testUICRUD() {
$handler_types = ViewExecutable::viewsHandlerTypes();
foreach ($handler_types as $type => $type_info) {
// Test adding handlers.
$add_handler_url = "admin/structure/views/nojs/add-item/test_view/default/$type";
// Area handler types need to use a different handler.
if (in_array($type, array('header', 'footer', 'empty'))) {
$this->drupalPost($add_handler_url, array('name[views.area]' => TRUE), t('Add and configure @handler', array('@handler' => $type_info['ltitle'])));
$edit_handler_url = "admin/structure/views/nojs/config-item/test_view/default/$type/area";
}
elseif ($type == 'relationship') {
// @todo Add a views_test_data relationship handler to test.
continue;
}
else {
$this->drupalPost($add_handler_url, array('name[views_test_data.job]' => TRUE), t('Add and configure @handler', array('@handler' => $type_info['ltitle'])));
$edit_handler_url = "admin/structure/views/nojs/config-item/test_view/default/$type/job";
}
$this->assertUrl($edit_handler_url, array(), 'The user got redirected to the handler edit form.');
$this->drupalPost(NULL, array(), t('Apply'));
$this->assertUrl('admin/structure/views/view/test_view/edit', array(), 'The user got redirected to the views edit form.');
$this->assertLinkByHref($edit_handler_url, 0, 'The handler edit link appears in the UI.');
$this->drupalPost($edit_handler_url, array(), t('Remove'));
$this->assertNoLinkByHref($edit_handler_url, 0, 'The handler edit link does not appears in the UI after removing.');
}
}
}
......@@ -317,9 +317,9 @@ public function getDisplayTab($view) {
// If the plugin doesn't exist, display an error message instead of an edit
// page.
if (empty($display)) {
$title = isset($display['display_title']) ? $display['display_title'] : t('Invalid');
$title = isset($display->display['display_title']) ? $display->display['display_title'] : t('Invalid');
// @TODO: Improved UX for the case where a plugin is missing.
$build['#markup'] = t("Error: Display @display refers to a plugin named '@plugin', but that plugin is not available.", array('@display' => $display['id'], '@plugin' => $display['display_plugin']));
$build['#markup'] = t("Error: Display @display refers to a plugin named '@plugin', but that plugin is not available.", array('@display' => $display->display['id'], '@plugin' => $display->display['display_plugin']));
}
// Build the content of the edit page.
else {
......@@ -592,12 +592,13 @@ public function submitDisplayDelete($form, &$form_state) {
* Regenerate the current tab for AJAX updates.
*/
public function rebuildCurrentTab(ViewUI $view, &$output, $display_id) {
$view->displayID = $display_id;
if (!$view->get('executable')->setDisplay('default')) {
return;
}
// Regenerate the main display area.
$build = static::getDisplayTab($this);
$build = $this->getDisplayTab($view);
static::addMicroweights($build);
$output[] = ajax_command_html('#views-tab-' . $display_id, drupal_render($build));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment