Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
lhalaa committed Sep 3, 2019
1 parent 0dc782e commit d5faf40
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 28 deletions.
3 changes: 1 addition & 2 deletions src/controllers/PartialUserFormController.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,7 @@ public function partial(HTTPRequest $request)
$request->getSession()->set(PartialSubmissionController::SESSION_KEY, $partial->ID);
}

if (
$controller->PasswordProtected &&
if ($controller->PasswordProtected &&
$request->getSession()->get(PasswordForm::PASSWORD_SESSION_KEY) !== $partial->ID
) {
return $this->redirect('verify');
Expand Down
1 change: 0 additions & 1 deletion src/extensions/UserDefinedFormControllerExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ protected function createPartialSubmission()

// Create partial fields
foreach ($page->data()->Fields() as $field) {

// We don't need literal fields, headers, html, etc
if ($field::config()->literal === true || $field->ClassName == EditableFormStep::class) {
continue;
Expand Down
1 change: 0 additions & 1 deletion src/models/PartialFileFieldSubmission.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ class PartialFileFieldSubmission extends SubmittedFileField
'SubmittedForm' => PartialFormSubmission::class,
];


/**
* @param Member $member
* @param array $context
Expand Down
3 changes: 2 additions & 1 deletion tests/templates/Page.ss
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<html>
<head></head>
<body>
$Layout
$Content
$Form
</body>
</html>
18 changes: 12 additions & 6 deletions tests/unit/PartialFileFieldSubmissionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,17 @@ public function testCanDelete()
protected function setUp()
{
parent::setUp();
$this->field = PartialFileFieldSubmission::create();
$partialForm = PartialFormSubmission::create();
$udf = UserDefinedForm::create(['Title' => 'Test'])->write();
$partialForm->UserDefinedFormID = $udf;
$partialFormID = $partialForm->write();
$this->field->SubmittedFormID = $partialFormID;
$udf = UserDefinedForm::create(['Title' => 'Test']);
$udf->write();
$udf->publishRecursive();

$partialFormID = PartialFormSubmission::create([
'UserDefinedFormID' => $udf->ID,
'UserDefinedFormClass' => $udf->ClassName,
])->write();

$this->field = PartialFileFieldSubmission::create([
'SubmittedFormID' => $partialFormID,
]);
}
}
27 changes: 16 additions & 11 deletions tests/unit/PartialSubmissionControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -191,13 +191,8 @@ public function testArrayData()
$this->assertEquals('Value1, Value2', $field3->Value);
}

/**
* @todo Remove skip test after implementation
*/
public function testSaveDataWithExpiredSession()
{
$this->markTestSkipped('Remove skip test once implementation is complete');

$values = [
'Field1' => 'Value1',
'Field2' => 'Value2',
Expand All @@ -207,14 +202,14 @@ public function testSaveDataWithExpiredSession()
$id = $this->savePartial($values);
$this->assertInternalType('int', $id);

$partial = PartialFormSubmission::get()->byID($id);
$this->assertNotNull($partial);
$sessionID = $this->session()->get(PartialSubmissionController::SESSION_KEY);
$this->assertEquals($id, $sessionID);

// Now clear session and save
// Now clear session and save, it should be 404
$this->session()->clear(PartialSubmissionController::SESSION_KEY);
$values['Field1'] = 'NEW VALUE';
$newId = $this->savePartial($values);
$this->assertEquals($id, $newId);
$response = $this->post('/partialuserform/save', $values);
$this->assertEquals(404, $response->getStatusCode());
}

/**
Expand All @@ -233,7 +228,17 @@ private function savePartial($values)
public function setUp()
{
parent::setUp();
$this->objFromFixture(UserDefinedForm::class, 'form1')->publishRecursive();
$udf = $this->objFromFixture(UserDefinedForm::class, 'form1');
$udf->publishRecursive();
$this->controller = Injector::inst()->get(PartialSubmissionController::class);

// Since parent is now created in UDF / Partial controllers, let's just set the parent here
$partialID = PartialFormSubmission::create([
'UserDefinedFormID' => $udf->ID,
'UserDefinedFormClass' => $udf->ClassName,
'ParentClass' => $udf->ClassName,
'ParentID' => $udf->ID,
])->write();
$this->session()->set(PartialSubmissionController::SESSION_KEY, $partialID);
}
}
12 changes: 6 additions & 6 deletions tests/unit/PartialUserFormControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Firesphere\PartialUserforms\Tests;

use Firesphere\PartialUserforms\Forms\PasswordForm;
use Firesphere\PartialUserforms\Models\PartialFormSubmission;
use SilverStripe\Assets\File;
use SilverStripe\Dev\FunctionalTest;
Expand Down Expand Up @@ -66,10 +67,9 @@ public function testPartialInvalidKey()
public function testDataPopulated()
{
$partial = $this->objFromFixture(PartialFormSubmission::class, 'submission1');
$token = 'q1w2e3r4t5y6u7i8';
$key = $partial->generateKey($token);
$key = $partial->generateKey($partial->Token);

$response = $this->get("/partial/{$key}/{$token}");
$response = $this->get("/partial/{$key}/{$partial->Token}");
$this->assertEquals(200, $response->getStatusCode());

$this->assertCount(1, $partial->PartialUploads());
Expand All @@ -82,16 +82,16 @@ public function testDataPopulated()

public function testPasswordProtectedPartial()
{
$token = 'q1w2e3r4t5y6u7i8';
// Partial with UserDefinedForm
$submission = $this->objFromFixture(PartialFormSubmission::class, 'submission1');
/** @var UserDefinedForm $parent */
$parent = $submission->Parent();
$parent->PasswordProtected = true;
$parent->write();
$parent->publishRecursive();
$key = $submission->generateKey($token);
$result = $this->get("partial/{$key}/{$token}");

$key = $submission->generateKey($submission->Token);
$result = $this->get("partial/{$key}/{$submission->Token}");
// Be redirected to the Password form
$formOpeningTag = '<form id="PasswordForm_getForm" action="/verify/getForm" method="post" enctype="application/x-www-form-urlencoded" class="userform">';
$this->assertContains($formOpeningTag, $result->getBody());
Expand Down

0 comments on commit d5faf40

Please sign in to comment.