public function CommerceReportsViewsExportTestCase::testExportRespectsFilters in Commerce Reporting 7.4
File
- src/
Tests/ CommerceReportsViewsExportTestCase.php, line 122
Class
- CommerceReportsViewsExportTestCase
- Class CommerceReportsViewsExportTestCase
Namespace
Drupal\commerce_reports\TestsCode
public function testExportRespectsFilters() {
// Generate test data
$dates = $this
->sampleDates();
$this
->createCustomers(5);
$this
->createOrders(20, FALSE, $dates);
$months = $this
->ordersGroupedByTime('F Y');
// Date info
$start = new \DateTime();
$start
->setTimestamp($dates[0]);
$end = clone $start;
$end = $end
->add(new \DateInterval('P1M'));
// Setup our view
$name = 'commerce_reports_sales';
$id = 'page';
$view = views_get_view($name, TRUE);
$view
->set_arguments(array());
$view
->set_display(array(
$id,
));
// Set filters.
$this
->verbose(t('Filtering on @start and @end', array(
'@start' => $start
->format('F Y'),
'@end' => $end
->format('F Y'),
)));
$filters = $view->display_handler
->get_option('filters');
$filters['date_filter']['default_date'] = $start
->format('F Y');
$filters['date_filter']['default_to_date'] = $end
->format('F Y');
$view->display_handler
->set_option('filters', $filters);
$view
->pre_execute();
$view
->execute('views_data_export_1');
$rendered = array_filter(explode(PHP_EOL, $view
->render()));
array_shift($rendered);
$data = reset($rendered);
$data = str_getcsv($data);
$this
->assertEqual($data[1], $months[$start
->format('F Y')], t('The amount of orders (%reported) that is reported (%generated) upon is correct for @month.', array(
'%reported' => $data[1],
'%generated' => $months[$start
->format('F Y')],
'@month' => $start
->format('F Y'),
)));
}