[SiteTreeContentReview::class], Group::class => [ContentReviewOwner::class], Member::class => [ContentReviewOwner::class], CMSPageEditController::class => [ContentReviewCMSExtension::class], SiteConfig::class => [ContentReviewDefaultSettings::class], ]; public function testReviewedThrowsExceptionWithNoRecordID() { $this->setExpectedException(HTTPResponse_Exception::class); /** @var CMSPageEditController|ContentReviewCMSExtension $controller */ $controller = new CMSPageEditController(); $dummyForm = new Form($controller, "EditForm", new FieldList(), new FieldList()); $controller->savereview(array( "ID" => null, "Message" => null, ), $dummyForm); } public function testReviewedThrowsExceptionWithWrongRecordID() { $this->setExpectedException(HTTPResponse_Exception::class); /** @var CMSPageEditController|ContentReviewCMSExtension $controller */ $controller = new CMSPageEditController(); $dummyForm = new Form($controller, "EditForm", new FieldList(), new FieldList()); $controller->savereview(array( "ID" => "FAIL", "Message" => null, ), $dummyForm); } public function testReviewedWithAuthor() { /** @var Member $author */ $author = $this->objFromFixture(Member::class, "author"); $this->loginAs($author); /** @var Page|SiteTreeContentReview $page */ $page = $this->objFromFixture(Page::class, "home"); $data = array( "action_savereview" => 1, "ID" => $page->ID, ); $this->get('admin/pages/edit/show/' . $page->ID); $response = $this->post(singleton(CMSPageEditController::class)->getEditForm($page->ID)->FormAction(), $data); $this->assertEquals("OK", $response->getStatusDescription()); $this->assertEquals(200, $response->getStatusCode()); } public function testSaveReview() { /** @var Member $author */ $author = $this->objFromFixture(Member::class, "author"); $this->logInAs($author); /** @var Page|SiteTreeContentReview $page */ $page = $this->objFromFixture(Page::class, "home"); $data = array( "action_savereview" => 1, "ID" => $page->ID, "ReviewNotes" => "This is the best page ever", ); $this->get('admin/pages/edit/show/' . $page->ID); $response = $this->post(singleton(CMSPageEditController::class)->getEditForm($page->ID)->FormAction(), $data); $this->assertEquals("OK", $response->getStatusDescription()); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals(1, $page->ReviewLogs()->count()); $reviewLog = $page->ReviewLogs()->first(); $this->assertEquals($data["ReviewNotes"], $reviewLog->Note); } }