1.20.x path.test | PathTestCase::testNodeAlias() |
Tests alias functionality through the node interfaces.
File
- modules/
path/ tests/ path.test, line 147 - Tests for the Path module.
Class
- PathTestCase
- Provides a base class for testing the Path module.
Code
function testNodeAlias() {
// Create test node.
$node1 = $this->backdropCreateNode();
// Create alias.
$edit = array();
$edit['path[auto]'] = FALSE;
$edit['path[alias]'] = $this->randomName(8);
$this->backdropPost('node/' . $node1->nid . '/edit', $edit, t('Save'));
// Confirm that the alias works.
$this->backdropGet($edit['path[alias]']);
$this->assertText($node1->title, 'Alias works.');
$this->assertResponse(200);
// Change alias to one containing "exotic" characters.
$edit['path[auto]'] = FALSE;
$previous = $edit['path[alias]'];
$edit['path[alias]'] = "- ._~!$'\"()*@[]?&+%#,;=:" . // "Special" ASCII characters.
"%23%25%26%2B%2F%3F" . // Characters that look like a percent-escaped string.
"éøïвβ中國書۞"; // Characters from various non-ASCII alphabets.
$this->backdropPost('node/' . $node1->nid . '/edit', $edit, t('Save'));
// Confirm that the alias works.
$this->backdropGet($edit['path[alias]']);
$this->assertText($node1->title, 'Changed alias works.');
$this->assertResponse(200);
// Make sure that previous alias no longer works.
$this->backdropGet($previous);
$this->assertNoText($node1->title, 'Previous alias no longer works.');
$this->assertResponse(404);
// Create second test node.
$node2 = $this->backdropCreateNode();
// Set alias to second test node.
// Leave $edit['path[alias]'] the same.
$this->backdropPost('node/' . $node2->nid . '/edit', $edit, t('Save'));
// Confirm that the alias didn't make a duplicate.
$this->assertText(t('The alias is already in use.'), 'Attempt to moved alias was rejected.');
// Delete alias.
$this->backdropPost('node/' . $node1->nid . '/edit', array('path[alias]' => ''), t('Save'));
// Confirm that the alias no longer works.
$this->backdropGet($edit['path[alias]']);
$this->assertNoText($node1->title, 'Alias was successfully deleted.');
$this->assertResponse(404);
}