dbtng_example.test in Examples for Developers 7
SimpleTests for dbtng_example module.
File
dbtng_example/dbtng_example.testView source
<?php
/**
* @file
* SimpleTests for dbtng_example module.
*/
/**
* Default test case for the dbtng_example module.
*
* @ingroup dbtng_example
*/
class DBTNGExampleUnitTestCase extends DrupalWebTestCase {
/**
* {@inheritdoc}
*/
public static function getInfo() {
return array(
'name' => 'DBTNG example unit and UI tests',
'description' => 'Various unit tests on the dbtng example module.',
'group' => 'Examples',
);
}
/**
* {@inheritdoc}
*/
public function setUp() {
parent::setUp('dbtng_example');
}
/**
* Test default module installation, two entries in the database table.
*/
public function testInstall() {
$result = dbtng_example_entry_load();
$this
->assertEqual(count($result), 2, 'Found two entries in the table after installing the module.');
}
/**
* Test the UI.
*/
public function testUI() {
// Test the basic list.
$this
->drupalGet('examples/dbtng');
$this
->assertPattern("/John[td\\/<>\\w]+Doe/", "Text 'John Doe' found in table");
// Test the add tab.
// Add the new entry.
$this
->drupalPost('examples/dbtng/add', array(
'name' => 'Some',
'surname' => 'Anonymous',
'age' => 33,
), t('Add'));
// Now find the new entry.
$this
->drupalGet('examples/dbtng');
$this
->assertPattern("/Some[td\\/<>\\w]+Anonymous/", "Text 'Some Anonymous' found in table");
// Try the update tab.
// Find out the pid of our "anonymous" guy.
$result = dbtng_example_entry_load(array(
'surname' => 'Anonymous',
));
$this
->drupalGet("examples/dbtng");
$this
->assertEqual(count($result), 1, 'Found one entry in the table with surname = "Anonymous".');
$entry = $result[0];
unset($entry->uid);
$entry->name = 'NewFirstName';
$this
->drupalPost('examples/dbtng/update', (array) $entry, t('Update'));
// Now find the new entry.
$this
->drupalGet('examples/dbtng');
$this
->assertPattern("/NewFirstName[td\\/<>\\w]+Anonymous/", "Text 'NewFirstName Anonymous' found in table");
// Try the advanced tab.
$this
->drupalGet('examples/dbtng/advanced');
$rows = $this
->xpath("//*[@id='block-system-main']/div/table[1]/tbody/tr");
$this
->assertEqual(count($rows), 1, "One row found in advanced view");
$this
->assertFieldByXPath("//*[@id='block-system-main']/div/table[1]/tbody/tr/td[4]", "Roe", "Name 'Roe' Exists in advanced list");
//Test the grouping tab
$this
->drupalGet('examples/dbtng/grouping_list');
$this
->assertPattern("/John[td\\/<>\\w]+2/", "Text 'John' found in table with 2 count");
//Now add new entry
$this
->drupalPost('examples/dbtng/add', array(
'name' => 'Some',
'surname' => 'Anonymous',
'age' => 31,
), t('Add'));
$this
->drupalGet('examples/dbtng/grouping_list');
$this
->assertPattern("/Some[td\\/<>\\w]+1/", "Text 'Some' found in table with 1 count");
}
/**
* Test several combinations, adding entries, updating and deleting.
*/
public function testAPIExamples() {
// Create a new entry.
$entry = array(
'name' => 'James',
'surname' => 'Doe',
'age' => 23,
);
dbtng_example_entry_insert($entry);
// Save another entry.
$entry = array(
'name' => 'Jane',
'surname' => 'NotDoe',
'age' => 19,
);
dbtng_example_entry_insert($entry);
// Verify that 4 records are found in the database.
$result = dbtng_example_entry_load();
$this
->assertEqual(count($result), 4, 'Found a total of four entries in the table after creating two additional entries.');
// Verify 2 of these records have 'Doe' as surname.
$result = dbtng_example_entry_load(array(
'surname' => 'Doe',
));
$this
->assertEqual(count($result), 2, 'Found two entries in the table with surname = "Doe".');
// Now find our not-Doe entry.
$result = dbtng_example_entry_load(array(
'surname' => 'NotDoe',
));
$this
->assertEqual(count($result), 1, 'Found one entry in the table with surname "NotDoe');
// Our NotDoe will be changed to "NowDoe".
$entry = $result[0];
$entry->surname = "NowDoe";
dbtng_example_entry_update((array) $entry);
$result = dbtng_example_entry_load(array(
'surname' => 'NowDoe',
));
$this
->assertEqual(count($result), 1, "Found renamed 'NowDoe' surname");
// Read only John Doe entry.
$result = dbtng_example_entry_load(array(
'name' => 'John',
'surname' => 'Doe',
));
$this
->assertEqual(count($result), 1, 'Found one entry for John Doe.');
// Get the entry.
$entry = (array) end($result);
// Change age to 45
$entry['age'] = 45;
// Update entry in database.
dbtng_example_entry_update((array) $entry);
// Find entries with age = 45
// Read only John Doe entry.
$result = dbtng_example_entry_load(array(
'surname' => 'NowDoe',
));
$this
->assertEqual(count($result), 1, 'Found one entry with surname = Nowdoe.');
// Verify it is Jane NowDoe.
$entry = (array) end($result);
$this
->assertEqual($entry['name'], 'Jane', 'The name Jane is found in the entry');
$this
->assertEqual($entry['surname'], 'NowDoe', 'The surname NowDoe is found in the entry');
// Delete the entry.
dbtng_example_entry_delete($entry);
// Verify that now there are only 3 records.
$result = dbtng_example_entry_load();
$this
->assertEqual(count($result), 3, 'Found only three records, a record was deleted.');
}
}
Classes
Name | Description |
---|---|
DBTNGExampleUnitTestCase | Default test case for the dbtng_example module. |