View source
<?php
namespace Drupal\Tests\views\Kernel\Handler;
use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
use Drupal\views\Views;
class ArgumentDateTest extends ViewsKernelTestBase {
public static $testViews = [
'test_argument_date',
];
protected $columnMap = [
'id' => 'id',
];
public function viewsData() {
$data = parent::viewsData();
$date_plugins = [
'date_fulldate',
'date_day',
'date_month',
'date_week',
'date_year',
'date_year_month',
];
foreach ($date_plugins as $plugin_id) {
$data['views_test_data'][$plugin_id] = $data['views_test_data']['created'];
$data['views_test_data'][$plugin_id]['real field'] = 'created';
$data['views_test_data'][$plugin_id]['argument']['id'] = $plugin_id;
}
return $data;
}
public function testCreatedFullDateHandler() {
$view = Views::getView('test_argument_date');
$view
->setDisplay('default');
$this
->executeView($view, [
'20000102',
]);
$expected = [];
$expected[] = [
'id' => 2,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('default');
$this
->executeView($view, [
'20000101',
]);
$expected = [];
$expected[] = [
'id' => 1,
];
$expected[] = [
'id' => 3,
];
$expected[] = [
'id' => 4,
];
$expected[] = [
'id' => 5,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('default');
$this
->executeView($view, [
'20001023',
]);
$expected = [];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
}
public function testDayHandler() {
$view = Views::getView('test_argument_date');
$view
->setDisplay('embed_1');
$this
->executeView($view, [
'02',
]);
$expected = [];
$expected[] = [
'id' => 2,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_1');
$this
->executeView($view, [
'01',
]);
$expected = [];
$expected[] = [
'id' => 1,
];
$expected[] = [
'id' => 3,
];
$expected[] = [
'id' => 4,
];
$expected[] = [
'id' => 5,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_1');
$this
->executeView($view, [
'23',
]);
$expected = [];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
}
public function testMonthHandler() {
$view = Views::getView('test_argument_date');
$view
->setDisplay('embed_2');
$this
->executeView($view, [
'01',
]);
$expected = [];
$expected[] = [
'id' => 1,
];
$expected[] = [
'id' => 2,
];
$expected[] = [
'id' => 3,
];
$expected[] = [
'id' => 4,
];
$expected[] = [
'id' => 5,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_2');
$this
->executeView($view, [
'12',
]);
$expected = [];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
}
public function testWeekHandler() {
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 9, 26, 2008),
])
->condition('id', 1)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 2, 29, 2004),
])
->condition('id', 2)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 1, 1, 2000),
])
->condition('id', 3)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 1, 10, 2000),
])
->condition('id', 4)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 2, 1, 2000),
])
->condition('id', 5)
->execute();
$view = Views::getView('test_argument_date');
$view
->setDisplay('embed_3');
$this
->executeView($view, [
'39',
]);
$expected = [];
$expected[] = [
'id' => 1,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_3');
$this
->executeView($view, [
'09',
]);
$expected = [];
$expected[] = [
'id' => 2,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_3');
$this
->executeView($view, [
'52',
]);
$expected = [];
$expected[] = [
'id' => 3,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_3');
$this
->executeView($view, [
'02',
]);
$expected = [];
$expected[] = [
'id' => 4,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_3');
$this
->executeView($view, [
'05',
]);
$expected = [];
$expected[] = [
'id' => 5,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_3');
$this
->executeView($view, [
'23',
]);
$expected = [];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
}
public function testYearHandler() {
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 1, 1, 2001),
])
->condition('id', 3)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 1, 1, 2002),
])
->condition('id', 4)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 1, 1, 2002),
])
->condition('id', 5)
->execute();
$view = Views::getView('test_argument_date');
$view
->setDisplay('embed_4');
$this
->executeView($view, [
'2000',
]);
$expected = [];
$expected[] = [
'id' => 1,
];
$expected[] = [
'id' => 2,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_4');
$this
->executeView($view, [
'2001',
]);
$expected = [];
$expected[] = [
'id' => 3,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_4');
$this
->executeView($view, [
'2002',
]);
$expected = [];
$expected[] = [
'id' => 4,
];
$expected[] = [
'id' => 5,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_4');
$this
->executeView($view, [
'23',
]);
$expected = [];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
}
public function testYearMonthHandler() {
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 1, 1, 2001),
])
->condition('id', 3)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 4, 1, 2001),
])
->condition('id', 4)
->execute();
$this->container
->get('database')
->update('views_test_data')
->fields([
'created' => gmmktime(0, 0, 0, 4, 1, 2001),
])
->condition('id', 5)
->execute();
$view = Views::getView('test_argument_date');
$view
->setDisplay('embed_5');
$this
->executeView($view, [
'200001',
]);
$expected = [];
$expected[] = [
'id' => 1,
];
$expected[] = [
'id' => 2,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_5');
$this
->executeView($view, [
'200101',
]);
$expected = [];
$expected[] = [
'id' => 3,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_5');
$this
->executeView($view, [
'200104',
]);
$expected = [];
$expected[] = [
'id' => 4,
];
$expected[] = [
'id' => 5,
];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
$view
->destroy();
$view
->setDisplay('embed_5');
$this
->executeView($view, [
'201301',
]);
$expected = [];
$this
->assertIdenticalResultset($view, $expected, $this->columnMap);
}
}