function testBatchSetResetExpiry() { $oldRequest = $_REQUEST; $action = new BatchSetExpiry(); $this->assertTrue(is_string($action->getActionTitle())); $this->assertTrue(is_string($action->getDoingText())); $this->assertTrue($action->getParameterFields() instanceof FieldSet); $this->logInAs($this->objFromFixture('Member', 'admin')); $page1 = new Page(); $page1->write(); $page1->openOrNewWorkflowRequest('WorkflowPublicationRequest'); $page1ID = $page1->ID; $page2 = new Page(); $page2->Content = '<a href="' . $page1->AbsoluteLink() . '">link here</a>'; $page2->write(); $page2ID = $page2->ID; $pages = new DataObjectSet(); $pages->push($page1); $pages->push($page2); $this->assertEquals(array($page1->ID), $action->applicablePages($pages->column('ID')), 'applicableIds only returns pages with open requests'); SS_Datetime::set_mock_now('2009-06-15 15:00:00'); $_REQUEST['ExpiryDate_Batch'] = array('date' => '31/01/2010', 'time' => '3:00 pm'); $_REQUEST['ajax'] = 1; // Test confirmation dialog $page1->BacklinkTracking()->add($page2); $confirmation = $action->confirmationDialog($pages->column('ID')); $this->assertTrue($confirmation['alert']); $action->run($pages); $page1 = DataObject::get_by_id('Page', $page1ID); $page2 = DataObject::get_by_id('Page', $page2ID); $this->assertEquals($page1->ExpiryDate, '2010-01-31 15:00:00'); $this->assertNull($page2->openWorkflowRequest()); $this->assertNull($page2->ExpiryDate); // Now test resetting $action = new BatchResetExpiry(); $this->assertTrue(is_string($action->getActionTitle())); $this->assertTrue(is_string($action->getDoingText())); $pages = new DataObjectSet(); $pages->push($page1); $pages->push($page2); $this->assertEquals(array($page1->ID), $action->applicablePages(array($page1->ID, $page2->ID)), 'applicableIds only returns pages with open requests'); $action->run($pages); $page1 = DataObject::get_by_id('Page', $page1ID); $page2 = DataObject::get_by_id('Page', $page2ID); $this->assertNull($page1->openWorkflowRequest()->ExpiryDate); $this->assertNull($page2->openWorkflowRequest()); $_REQUEST = $oldRequest; SS_Datetime::clear_mock_now(); }
function testRecentlyPublishedPagesReport() { $report = new RecentlyPublishedPagesReport(); $this->assertTrue(is_string($report->title())); $this->assertTrue(is_array($report->columns())); $this->assertTrue($report->canView()); $this->assertTrue($report->parameterFields() instanceof FieldSet); $this->logInAs($this->objFromFixture('Member', 'admin')); SS_Datetime::set_mock_now('2010-02-10 15:00:00'); $page1 = new Page(); $page1->Title = 'Page1'; $page1->write(); $wfr = $page1->openOrNewWorkflowRequest('WorkflowPublicationRequest'); $wfr->request('Request'); $wfr->approve('Approved'); SS_Datetime::set_mock_now('2010-02-15 15:00:00'); $page2 = new Page(); $page2->Title = 'Page2'; $page2->write(); $wfr = $page2->openOrNewWorkflowRequest('WorkflowPublicationRequest'); $wfr->request('Request'); $wfr->approve('Approved'); SS_Datetime::set_mock_now('2010-02-16 15:00:00'); $page3 = new Page(); $page3->Title = 'Page3'; $page3->write(); $wfr = $page3->openOrNewWorkflowRequest('WorkflowPublicationRequest'); $wfr->request('Request'); $wfr->approve('Approved'); SS_Datetime::set_mock_now('2010-02-14 00:00:00'); // Test with no dates set $results = $report->sourceRecords(array(), '"Title" DESC', false); //die(); $this->assertEquals($results->column('Title'), array('Page3', 'Page2')); // Test with start date only $results = $report->sourceRecords(array('StartDate' => array('date' => '14/02/2010', 'time' => '12:00 am')), '"Title" DESC', false); $this->assertEquals($results->column('Title'), array('Page3', 'Page2')); // Test with end date only $results = $report->sourceRecords(array('EndDate' => array('date' => '14/02/2010', 'time' => '12:00 am')), '"Title" ASC', false); $this->assertEquals($results->column('Title'), array('Page1')); // Test with start and end dates $results = $report->sourceRecords(array('StartDate' => array('date' => '04/02/2010', 'time' => '12:00 am'), 'EndDate' => array('date' => '12/02/2010', 'time' => '12:00 am')), '"Title" DESC', false); $this->assertEquals($results->column('Title'), array('Page1')); SS_Datetime::clear_mock_now(); }
function testEmbargoExpiryWithVirtualPages() { $custompublisher = $this->objFromFixture('Member', 'custompublisher'); $custompublisher->login(); $sourcePage = new Page(); $sourcePage->Content = '<p>Pre-embargo</p>'; $sourcePage->write(); $sourcePage->doPublish(); $sourcePage->Content = '<p>Post-embargo</p>'; $sourcePage->write(); $request = $sourcePage->openOrNewWorkflowRequest('WorkflowPublicationRequest'); $sourcePage->setEmbargo('01/06/2050', '3:00pm'); $sourcePage->write(); $request->approve('all good'); $virtualPage = new VirtualPage(); $virtualPage->CopyContentFromID = $sourcePage->ID; $virtualPage->write(); $virtualPage->doPublish(); $liveVirtualPage = Versioned::get_one_by_stage('VirtualPage', 'Live', '"SiteTree"."ID" = ' . $virtualPage->ID); $this->assertEquals($liveVirtualPage->Content, '<p>Pre-embargo</p>'); }