t('Pathauto basic tests'),
'desc' => t('Test basic pathauto functionality.'),
'group' => 'Pathauto',
);
}
/**
* Implementation of setUp().
*/
function setUp() {
// Custom content type for path setting tests.
$this->content_type = $this->drupalCreateContentType();
menu_rebuild();
// User to create paths with pathauto.
$this->web_user = $this->drupalCreateUserRolePerm(array(
'administer pathauto',
'create '. $this->content_type->type .' content',
'edit own '. $this->content_type->type .' content',
'administer url aliases',
'create url aliases',
));
}
/**
* testPathAuto
*
* TODO: Better description!
*/
function testPathAuto() {
$this->drupalGet('logout');
$this->drupalLoginUser($this->web_user);
$this->drupalGet('admin/build/path/pathauto');
$this->assertWantedRaw(t('General settings'), '[testPathAuto]: Settings page displayed');
// Set pathauto settings we assume to be as-is in this test.
$this->drupalVariableSet('pathauto_node_'. $this->content_type->type .'_pattern', 'content/[title-raw]');
$this->drupalVariableSet('pathauto_separator', '-');
$this->drupalVariableSet('pathauto_case', '1'); // lowercase
$this->drupalVariableSet('pathauto_max_length', '100');
$this->drupalVariableSet('pathauto_max_component_length', '100');
$this->drupalVariableSet('pathauto_punctuation_underscore', '2'); // no action
// Create node for testing.
$random_title = $this->randomName(10); // this contains _
$edit['title'] = 'Simpletest title '. $random_title;
$expected_alias = 'content/simpletest-title-'. strtolower($random_title);
$edit['body'] = 'Simpletest body '. $this->randomName(10);
$this->drupalPost('node/add/'. str_replace('_', '-', $this->content_type->type), $edit, 'Save');
$this->assertWantedRaw(t('@type %title has been created.', array('@type' => $this->content_type->name, '%title' => $edit['title'])), '[testPathAuto]: Test node submitted');
// Look for alias generated in the form.
$node = node_load(array('title' => $edit['title']));
$this->drupalGet('node/'. $node->nid .'/edit');
$this->assertWantedPattern('!]+name="path"[^>]+value="'. $expected_alias .'"!', $this->drupalGetContent(), '[testPathAuto]: Proper automated alias generated');
// Look for checkbox.
$this->assertWantedPattern('!]+name="pathauto_perform_alias"[^>]+checked="checked"!', $this->drupalGetContent(), '[testPathAuto]: Automated alias turned on');
// Check whether the alias actually works.
$this->drupalGet($expected_alias);
$this->assertWantedRaw($edit['title'], '[testPathAuto]: Node accessible through alias');
}
}