function ViewsTestCase::assertIdenticalResultset
Same name in other branches
- 7.x-3.x tests/views_query.test \ViewsTestCase::assertIdenticalResultset()
Helper function: verify a result set returned by view.
The comparison is done on the string representation of the columns of the column map, taking the order of the rows into account, but not the order of the columns.
Parameters
$view: An executed View.
$expected_result: An expected result set.
$column_map: An associative array mapping the columns of the result set from the view (as keys) and the expected result set (as values).
File
-
tests/
views_query.test, line 27
Class
- ViewsTestCase
- Abstract class for views testing
Code
protected function assertIdenticalResultset($view, $expected_result, $column_map, $message = 'Identical result set') {
// Convert $view->result to an array of arrays.
$result = array();
foreach ($view->result as $key => $value) {
$row = array();
foreach ($column_map as $view_column => $expected_column) {
// The comparison will be done on the string representation of the value.
$row[$expected_column] = (string) $value->{$view_column};
}
$result[$key] = $row;
}
// Remove the columns we don't need from the expected result.
foreach ($expected_result as $key => $value) {
$row = array();
foreach ($column_map as $expected_column) {
// The comparison will be done on the string representation of the value.
$row[$expected_column] = (string) $value[$expected_column];
}
$expected_result[$key] = $row;
}
// Reset the numbering of the arrays.
$result = array_values($result);
$expected_result = array_values($expected_result);
$this->verbose('<pre>Returned data set: ' . print_r($result, TRUE) . "\n\nExpected: " . print_r($expected_result, TRUE));
// Do the actual comparison.
return $this->assertIdentical($result, $expected_result, $message);
}