X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Fmodules%2Fdatetime%2Fsrc%2FTests%2FViews%2FArgumentDateTimeTest.php;fp=web%2Fcore%2Fmodules%2Fdatetime%2Fsrc%2FTests%2FViews%2FArgumentDateTimeTest.php;h=e3a17bb9c4504cb09bd4d12f2603a98cb7286478;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/core/modules/datetime/src/Tests/Views/ArgumentDateTimeTest.php b/web/core/modules/datetime/src/Tests/Views/ArgumentDateTimeTest.php new file mode 100644 index 000000000..e3a17bb9c --- /dev/null +++ b/web/core/modules/datetime/src/Tests/Views/ArgumentDateTimeTest.php @@ -0,0 +1,203 @@ +nodes[] = $this->drupalCreateNode([ + 'field_date' => [ + 'value' => $date, + ] + ]); + } + } + + /** + * Test year argument. + * + * @see \Drupal\datetime\Plugin\views\argument\YearDate + */ + public function testDatetimeArgumentYear() { + $view = Views::getView('test_argument_datetime'); + + // The 'default' display has the 'year' argument. + $view->setDisplay('default'); + $this->executeView($view, ['2000']); + $expected = []; + $expected[] = ['nid' => $this->nodes[0]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + + $view->setDisplay('default'); + $this->executeView($view, ['2002']); + $expected = []; + $expected[] = ['nid' => $this->nodes[2]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + } + + /** + * Test month argument. + * + * @see \Drupal\datetime\Plugin\views\argument\MonthDate + */ + public function testDatetimeArgumentMonth() { + $view = Views::getView('test_argument_datetime'); + // The 'embed_1' display has the 'month' argument. + $view->setDisplay('embed_1'); + + $this->executeView($view, ['10']); + $expected = []; + $expected[] = ['nid' => $this->nodes[0]->id()]; + $expected[] = ['nid' => $this->nodes[1]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + + $view->setDisplay('embed_1'); + $this->executeView($view, ['01']); + $expected = []; + $expected[] = ['nid' => $this->nodes[2]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + } + + /** + * Test day argument. + * + * @see \Drupal\datetime\Plugin\views\argument\DayDate + */ + public function testDatetimeArgumentDay() { + $view = Views::getView('test_argument_datetime'); + + // The 'embed_2' display has the 'day' argument. + $view->setDisplay('embed_2'); + $this->executeView($view, ['10']); + $expected = []; + $expected[] = ['nid' => $this->nodes[0]->id()]; + $expected[] = ['nid' => $this->nodes[1]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + + $view->setDisplay('embed_2'); + $this->executeView($view, ['01']); + $expected = []; + $expected[] = ['nid' => $this->nodes[2]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + } + + /** + * Test year, month, and day arguments combined. + */ + public function testDatetimeArgumentAll() { + $view = Views::getView('test_argument_datetime'); + // The 'embed_3' display has year, month, and day arguments. + $view->setDisplay('embed_3'); + + $this->executeView($view, ['2000', '10', '10']); + $expected = []; + $expected[] = ['nid' => $this->nodes[0]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + + $view->setDisplay('embed_3'); + $this->executeView($view, ['2002', '01', '01']); + $expected = []; + $expected[] = ['nid' => $this->nodes[2]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + } + + /** + * Test week WW argument. + */ + public function testDatetimeArgumentWeek() { + $view = Views::getView('test_argument_datetime'); + // The 'embed_4' display has WW argument. + $view->setDisplay('embed_4'); + + $this->executeView($view, ['41']); + $expected = []; + $expected[] = ['nid' => $this->nodes[0]->id()]; + $expected[] = ['nid' => $this->nodes[1]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + + $view->setDisplay('embed_4'); + $this->executeView($view, ['01']); + $expected = []; + $expected[] = ['nid' => $this->nodes[2]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + } + + /** + * Test full_date CCYYMMDD argument. + */ + public function testDatetimeArgumentFullDate() { + $view = Views::getView('test_argument_datetime'); + // The 'embed_5' display has CCYYMMDD argument. + $view->setDisplay('embed_5'); + + $this->executeView($view, ['20001010']); + $expected = []; + $expected[] = ['nid' => $this->nodes[0]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + + $view->setDisplay('embed_5'); + $this->executeView($view, ['20020101']); + $expected = []; + $expected[] = ['nid' => $this->nodes[2]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + } + + /** + * Test year_month CCYYMM argument. + */ + public function testDatetimeArgumentYearMonth() { + $view = Views::getView('test_argument_datetime'); + // The 'embed_6' display has CCYYMM argument. + $view->setDisplay('embed_6'); + + $this->executeView($view, ['200010']); + $expected = []; + $expected[] = ['nid' => $this->nodes[0]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + + $view->setDisplay('embed_6'); + $this->executeView($view, ['200201']); + $expected = []; + $expected[] = ['nid' => $this->nodes[2]->id()]; + $this->assertIdenticalResultset($view, $expected, $this->map); + $view->destroy(); + } + +}