class PathModuleTestCase in SimpleTest 6
Hierarchy
- class \DrupalTestCase extends \WebTestCase
- class \PathModuleTestCase
Expanded class hierarchy of PathModuleTestCase
File
- tests/
path_module.test, line 4
View source
class PathModuleTestCase extends DrupalTestCase {
function get_info() {
return array(
'name' => t('Path alias functionality'),
'desc' => t('Add, edit, delete, and change alias and verify its consistency in the database.'),
'group' => t('Path Tests'),
);
}
/**
* Create user, setup permissions, log user in, and create a node.
*/
function setUp() {
parent::setUp();
$this
->drupalModuleEnable('path');
// create and login user
$web_user = $this
->drupalCreateUserRolePerm(array(
'edit own page content',
'create page content',
'administer url aliases',
'create url aliases',
));
$this
->drupalLoginUser($web_user);
}
/**
* Test alias functionality through the admin interfaces.
*/
function testAdminAlias() {
// create test node
$node1 = $this
->createNode();
// create alias
$edit = array();
$edit['src'] = 'node/' . $node1->nid;
$edit['dst'] = $this
->randomName(8);
$this
->drupalPost('admin/build/path/add', $edit, 'Create new alias');
// confirm that the alias works
$this
->drupalGet($edit['dst']);
$this
->assertText($node1->title, 'Alias works.');
// change alias
$pid = $this
->getPID($edit['dst']);
$previous = $edit['dst'];
$edit['dst'] = $this
->randomName(8);
$this
->drupalPost('admin/build/path/edit/' . $pid, $edit, 'Update alias');
// confirm that the alias works
$this
->drupalGet($edit['dst']);
$this
->assertText($node1->title, 'Changed alias works.');
// make sure that previous alias no longer works
$this
->drupalGet($previous);
$this
->assertNoText($node1->title, 'Previous alias no longer works.');
$this
->assertTitle(new PatternExpectation('/Page not found/'), 'We get page not found error');
// create second test node
$node2 = $this
->createNode();
// set alias to second test node
$edit['src'] = 'node/' . $node2->nid;
// leave $edit['dst'] the same
$this
->drupalPost('admin/build/path/add', $edit, 'Create new alias');
// confirm that the alias didn't make a duplicate
$this
->assertWantedRaw(t('The alias %alias is already in use in this language.', array(
'%alias' => $edit['dst'],
)), 'Attempt to move alias was rejected.');
// delete alias
$this
->drupalPost('admin/build/path/delete/' . $pid, array(), 'Confirm');
// confirm that the alias no longer works
$this
->drupalGet($edit['dst']);
$this
->assertNoText($node1->title, 'Alias was successfully deleted.');
}
/**
* Test alias functionality through the node interfaces.
*/
function testNodeAlias() {
// create test node
$node1 = $this
->createNode();
// create alias
$edit = array();
$edit['path'] = $this
->randomName(8);
$this
->drupalPost('node/' . $node1->nid . '/edit', $edit, 'Save');
// confirm that the alias works
$this
->drupalGet($edit['path']);
$this
->assertText($node1->title, 'Alias works.');
// change alias
$previous = $edit['path'];
$edit['path'] = $this
->randomName(8);
$this
->drupalPost('node/' . $node1->nid . '/edit', $edit, 'Save');
// confirm that the alias works
$this
->drupalGet($edit['path']);
$this
->assertText($node1->title, 'Changed alias works.');
// make sure that previous alias no longer works
$this
->drupalGet($previous);
$this
->assertNoText($node1->title, 'Previous alias no longer works.');
$this
->assertTitle(new PatternExpectation('/Page not found/'), 'We get page not found error');
// create second test node
$node2 = $this
->createNode();
// set alias to second test node
// leave $edit['path'] the same
$this
->drupalPost('node/' . $node2->nid . '/edit', $edit, 'Save');
// confirm that the alias didn't make a duplicate
$this
->assertText(t('The path is already in use.'), 'Attempt to moved alias was rejected.');
// delete alias
$this
->drupalPost('node/' . $node1->nid . '/edit', array(
'path' => '',
), 'Save');
// confirm that the alias no longer works
$this
->drupalGet($edit['path']);
$this
->assertNoText($node1->title, 'Alias was successfully deleted.');
}
function getPID($dst) {
return db_result(db_query("SELECT pid FROM {url_alias} WHERE dst = '%s'", $dst));
}
function createNode() {
$this
->drupalVariableSet('node_options_page', array(
'status',
'promote',
));
$edit = array();
$edit['title'] = '!SimpleTest test node! ' . $this
->randomName(10);
$edit['body'] = '!SimpleTest test body! ' . $this
->randomName(32) . ' ' . $this
->randomName(32);
$this
->drupalPost('node/add/page', $edit, 'Save');
// check to make sure the node was created
$node = node_load(array(
'title' => $edit['title'],
));
$this
->assertNotNull($node === FALSE ? NULL : $node, 'Node found in database. %s');
return $node;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
property | |||
DrupalTestCase:: |
function | Will trigger a pass if both parameters refer to different objects. Fail otherwise. | ||
DrupalTestCase:: |
function | Will trigger a pass if the two parameters have the same value only. Otherwise a fail. | ||
DrupalTestCase:: |
function | Confirms that an error has occurred and optionally that the error text matches exactly. | ||
DrupalTestCase:: |
function | Confirms that an error has occurred and that the error text matches a Perl regular expression. | ||
DrupalTestCase:: |
function | Will trigger a pass if the two parameters have the same value and same type. Otherwise a fail. | ||
DrupalTestCase:: |
function | Type and class test. Will pass if class matches the type name or is a subclass or if not an object, but the type is correct. | ||
DrupalTestCase:: |
function | Confirms that no errors have occurred so far in the test method. | ||
DrupalTestCase:: |
function | Type and class mismatch test. Will pass if class name or underling type does not match the one specified. | ||
DrupalTestCase:: |
function | Will trigger a pass if the two parameters have a different value. Otherwise a fail. | ||
DrupalTestCase:: |
function | Will trigger a pass if the two parameters have the different value or different type. | ||
DrupalTestCase:: |
function | Will be true if the value is set. | ||
DrupalTestCase:: |
function | Will trigger a pass if the Perl regex pattern is not present in subject. Fail if found. | ||
DrupalTestCase:: |
function | Will trigger a pass if the raw text is NOT found on the loaded page Fail otherwise. | ||
DrupalTestCase:: |
function | Will be true if the value is null. | ||
DrupalTestCase:: |
function | Will trigger a pass if both parameters refer to the same object. Fail otherwise. | ||
DrupalTestCase:: |
function | Will trigger a pass if the Perl regex pattern is found in the subject. Fail otherwise. | ||
DrupalTestCase:: |
function | Will trigger a pass if the raw text is found on the loaded page Fail otherwise. | ||
DrupalTestCase:: |
function | Retrieves and saves current modules list into $_originalModules and $_modules. | ||
DrupalTestCase:: |
function | Follows a link by name. | ||
DrupalTestCase:: |
function | @abstract Checks to see if we need to send a http-auth header to authenticate when browsing a site. | ||
DrupalTestCase:: |
function | Creates a custom content type based on default settings. | ||
DrupalTestCase:: |
function | Creates a node based on default settings. | ||
DrupalTestCase:: |
function | Create a role / perm combination specified by permissions | ||
DrupalTestCase:: |
function | Creates a user / role / permissions combination specified by permissions | ||
DrupalTestCase:: |
function | @abstract Broker for the get function adds the authentication headers if necessary @author Earnest Berry III <earnest.berry@gmail.com> | ||
DrupalTestCase:: |
function | @TODO: needs documentation | ||
DrupalTestCase:: |
function | Logs in a user with the internal browser | ||
DrupalTestCase:: |
function | Disables a drupal module | ||
DrupalTestCase:: |
function | Enables a drupal module | ||
DrupalTestCase:: |
function | Do a post request on a drupal page. It will be done as usual post request with SimpleBrowser By $reporting you specify if this request does assertions or not Warning: empty ("") returns will cause fails with $reporting | ||
DrupalTestCase:: |
function | @abstract Broker for the post function adds the authentication headers if necessary @author Earnest Berry III <earnest.berry@gmail.com> | ||
DrupalTestCase:: |
function | |||
DrupalTestCase:: |
function | Set a drupal variable and keep track of the changes for tearDown() | ||
DrupalTestCase:: |
function | Generates a random string, to be used as name or whatever | ||
DrupalTestCase:: |
function | Just some info for the reporter | ||
DrupalTestCase:: |
function | tearDown implementation, setting back switched modules etc | 8 | |
PathModuleTestCase:: |
function | |||
PathModuleTestCase:: |
function | |||
PathModuleTestCase:: |
function | |||
PathModuleTestCase:: |
function | Create user, setup permissions, log user in, and create a node. | ||
PathModuleTestCase:: |
function | Test alias functionality through the admin interfaces. | ||
PathModuleTestCase:: |
function | Test alias functionality through the node interfaces. |