FIX Update tests to ensure TestPage owns its widget area

This commit is contained in:
Robbie Averill 2017-12-21 11:16:48 +13:00
parent 5ca288c9a3
commit 8583b894a1
3 changed files with 20 additions and 25 deletions

View File

@ -3,14 +3,9 @@
namespace SilverStripe\Widgets\Tests; namespace SilverStripe\Widgets\Tests;
use SilverStripe\Dev\FunctionalTest; use SilverStripe\Dev\FunctionalTest;
use SilverStripe\Forms\Form;
use SilverStripe\Widgets\Tests\WidgetControllerTest\TestPage; use SilverStripe\Widgets\Tests\WidgetControllerTest\TestPage;
use SilverStripe\Widgets\Tests\WidgetControllerTest\TestWidget; use SilverStripe\Widgets\Tests\WidgetControllerTest\TestWidget;
/**
* @package widgets
* @subpackage tests
*/
class WidgetControllerTest extends FunctionalTest class WidgetControllerTest extends FunctionalTest
{ {
protected static $fixture_file = 'WidgetControllerTest.yml'; protected static $fixture_file = 'WidgetControllerTest.yml';
@ -20,11 +15,18 @@ class WidgetControllerTest extends FunctionalTest
TestWidget::class, TestWidget::class,
]; ];
protected function setUp()
{
parent::setUp();
$this->actWithPermission('ADMIN', function () {
$this->objFromFixture(TestPage::class, 'page1')->publishRecursive();
});
}
public function testWidgetFormRendering() public function testWidgetFormRendering()
{ {
$page = $this->objFromFixture(TestPage::class, 'page1'); $page = $this->objFromFixture(TestPage::class, 'page1');
$page->copyVersionToStage('Stage', 'Live');
$widget = $this->objFromFixture(TestWidget::class, 'widget1'); $widget = $this->objFromFixture(TestWidget::class, 'widget1');
$response = $this->get($page->URLSegment); $response = $this->get($page->URLSegment);
@ -40,11 +42,9 @@ class WidgetControllerTest extends FunctionalTest
public function testWidgetFormSubmission() public function testWidgetFormSubmission()
{ {
$page = $this->objFromFixture(TestPage::class, 'page1'); $page = $this->objFromFixture(TestPage::class, 'page1');
$page->copyVersionToStage('Stage', 'Live');
$widget = $this->objFromFixture(TestWidget::class, 'widget1'); $widget = $this->objFromFixture(TestWidget::class, 'widget1');
$response = $this->get($page->URLSegment); $this->get($page->URLSegment);
$response = $this->submitForm('Form_Form', null, array('TestValue' => 'Updated')); $response = $this->submitForm('Form_Form', null, array('TestValue' => 'Updated'));
$this->assertContains( $this->assertContains(

View File

@ -4,18 +4,17 @@ namespace SilverStripe\Widgets\Tests\WidgetControllerTest;
use Page; use Page;
use SilverStripe\Dev\TestOnly; use SilverStripe\Dev\TestOnly;
use SilverStripe\View\SSViewer;
use SilverStripe\Widgets\Model\WidgetArea; use SilverStripe\Widgets\Model\WidgetArea;
/**
* @package cms
* @subpackage tests
*/
class TestPage extends Page implements TestOnly class TestPage extends Page implements TestOnly
{ {
private static $table_name = 'TestPage'; private static $table_name = 'TestPage';
private static $has_one = array( private static $has_one = [
'WidgetControllerTestSidebar' => WidgetArea::class 'WidgetControllerTestSidebar' => WidgetArea::class,
); ];
private static $owns = [
'WidgetControllerTestSidebar',
];
} }

View File

@ -5,15 +5,11 @@ namespace SilverStripe\Widgets\Tests\WidgetControllerTest;
use SilverStripe\Dev\TestOnly; use SilverStripe\Dev\TestOnly;
use SilverStripe\Widgets\Model\Widget; use SilverStripe\Widgets\Model\Widget;
/**
* @package widgets
* @subpackage tests
*/
class TestWidget extends Widget implements TestOnly class TestWidget extends Widget implements TestOnly
{ {
private static $table_name = 'WidgetControllerTest_TestWidget'; private static $table_name = 'WidgetControllerTest_TestWidget';
private static $db = array( private static $db = [
'TestValue' => 'Text' 'TestValue' => 'Text',
); ];
} }