Issue #2244757 by tim.plunkett: Path Admin UI is broken and has no test coverage.

8.0.x
webchick 2014-04-18 13:39:10 -07:00
parent 52da1905b4
commit e6ac9ec569
4 changed files with 111 additions and 4 deletions

View File

@ -15,7 +15,15 @@ class PathController {
/**
* @todo Remove path_admin_overview().
*/
public function adminOverview($keys = NULL) {
public function adminOverview() {
module_load_include('admin.inc', 'path');
return path_admin_overview();
}
/**
* @todo Remove path_admin_overview().
*/
public function adminOverviewFiltered($keys) {
module_load_include('admin.inc', 'path');
return path_admin_overview($keys);
}

View File

@ -0,0 +1,92 @@
<?php
/**
* @file
* Contains \Drupal\path\Tests\PathAdminTest.
*/
namespace Drupal\path\Tests;
/**
* Tests the Path admin UI.
*/
class PathAdminTest extends PathTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array('path');
public static function getInfo() {
return array(
'name' => 'Path admin UI',
'description' => 'Tests the Path admin UI.',
'group' => 'Path',
);
}
function setUp() {
parent::setUp();
// Create test user and login.
$web_user = $this->drupalCreateUser(array('create page content', 'edit own page content', 'administer url aliases', 'create url aliases'));
$this->drupalLogin($web_user);
}
/**
* Tests the filtering aspect of the Path UI.
*/
public function testPathFiltering() {
// Create test nodes.
$node1 = $this->drupalCreateNode();
$node2 = $this->drupalCreateNode();
// Create aliases.
$alias1 = $this->randomName(8);
$edit = array(
'source' => 'node/' . $node1->id(),
'alias' => $alias1,
);
$this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
$alias2 = $this->randomName(8);
$edit = array(
'source' => 'node/' . $node2->id(),
'alias' => $alias2,
);
$this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
// Filter by the first alias.
$edit = array(
'filter' => $alias1,
);
$this->drupalPostForm(NULL, $edit, t('Filter'));
$this->assertLinkByHref($alias1);
$this->assertNoLinkByHref($alias2);
// Filter by the second alias.
$edit = array(
'filter' => $alias2,
);
$this->drupalPostForm(NULL, $edit, t('Filter'));
$this->assertNoLinkByHref($alias1);
$this->assertLinkByHref($alias2);
// Filter by a random string with a different length.
$edit = array(
'filter' => $this->randomName(10),
);
$this->drupalPostForm(NULL, $edit, t('Filter'));
$this->assertNoLinkByHref($alias1);
$this->assertNoLinkByHref($alias2);
// Reset the filter.
$edit = array();
$this->drupalPostForm(NULL, $edit, t('Reset'));
$this->assertLinkByHref($alias1);
$this->assertLinkByHref($alias2);
}
}

View File

@ -307,5 +307,5 @@ function path_admin_filter_form_submit_filter($form, &$form_state) {
* @see path_admin_filter_form_submit_filter()
*/
function path_admin_filter_form_submit_reset($form, &$form_state) {
$form_state['redirect'] = 'admin/config/search/path/list';
$form_state['redirect'] = 'admin/config/search/path';
}

View File

@ -7,11 +7,18 @@ path.delete:
_permission: 'administer url aliases'
path.admin_overview:
path: '/admin/config/search/path/{keys}'
path: '/admin/config/search/path'
defaults:
_title: 'URL aliases'
_content: '\Drupal\path\Controller\PathController::adminOverview'
keys: NULL
requirements:
_permission: 'administer url aliases'
path.admin_overview_filter:
path: '/admin/config/search/path/list/{keys}'
defaults:
_title: 'URL aliases'
_content: '\Drupal\path\Controller\PathController::adminOverviewFiltered'
requirements:
_permission: 'administer url aliases'