Skip to content

Commit

Permalink
Add tests for data populate
Browse files Browse the repository at this point in the history
  • Loading branch information
lhalaa committed Sep 2, 2019
1 parent 16f6152 commit fdb9d81
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 25 deletions.
5 changes: 3 additions & 2 deletions src/controllers/PartialSubmissionController.php
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,9 @@ protected function uploadFile($formData, $field, $partialFileSubmission)
$foldername = $field->getFormField()->getFolderName();

if (!$partialFileSubmission->UploadedFileID) {
$file = File::create();
$file->ShowInSearch = 0;
$file = File::create([
'ShowInSearch' => 0
]);
} else {
// Allow overwrite existing uploads
$file = $partialFileSubmission->UploadedFile();
Expand Down
5 changes: 3 additions & 2 deletions src/controllers/PartialUserFormController.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,9 @@ public function partial(HTTPRequest $request)
return $this->httpError(404);
}

// Set the session if the last session has expired
if (!$request->getSession()->get(PartialSubmissionController::SESSION_KEY)) {
// Set the session if the last session has expired or from another submission
$session = $request->getSession()->get(PartialSubmissionController::SESSION_KEY);
if (!$session || $session !== $partial->ID) {
$request->getSession()->set(PartialSubmissionController::SESSION_KEY, $partial->ID);
}

Expand Down
7 changes: 0 additions & 7 deletions src/models/PartialFileFieldSubmission.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,4 @@ public function canDelete($member = null)
return parent::canDelete($member);
}

/**
* @return string
*/
public function getFilename()
{
return $this->UploadedFileID ? $this->UploadedFile()->Name : '';
}
}
4 changes: 2 additions & 2 deletions src/models/PartialFormSubmission.php
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@ public function generateKey($token)
public function getFields()
{
$formFields = $this->PartialFields()->map('Name', 'Value')->toArray();
$fileFields = $this->PartialUploads()->map('Name', 'Filename')->toArray();
$fileFields = $this->PartialUploads()->map('Name', 'FileName')->toArray();

return $formFields + $fileFields;
return array_merge($formFields, $fileFields);
}
}
32 changes: 25 additions & 7 deletions tests/fixtures/partialformtest.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,39 @@
SilverStripe\UserForms\Model\UserDefinedForm:
form1:
Title: Form 1
Firesphere\PartialUserforms\Models\PartialFormSubmission:
submission1:
UserDefinedForm: =>SilverStripe\UserForms\Model\UserDefinedForm.form1
Parent: =>SilverStripe\UserForms\Model\UserDefinedForm.form1
TokenSalt: aa11ss22dd33ff44
Token: q1w2e3r4t5y6u7i8
Firesphere\PartialUserForms\Models\PartialFieldSubmission:
field1:
Name: 'fullname'
Value: 'Test'
Title: 'Full name'
SubmittedForm: =>Firesphere\PartialUserforms\Models\PartialFormSubmission.submission1
field2:
Name: 'email'
Value: 'test@test.com'
Title: 'Email address'
SubmittedForm: =>Firesphere\PartialUserforms\Models\PartialFormSubmission.submission1
field3:
Name: 'question'
Value: 'I have a question, what''s the ultimate question of life, the universe, and everything'
Title: 'Question'
Firesphere\PartialUserforms\Models\PartialFormSubmission:
submission1:
UserDefinedForm: =>SilverStripe\UserForms\Model\UserDefinedForm.form1
Parent: =>SilverStripe\UserForms\Model\UserDefinedForm.form1
PartialFields: =>Firesphere\PartialUserForms\Models\PartialFieldSubmission.field1,=>Firesphere\PartialUserForms\Models\PartialFieldSubmission.field2,=>Firesphere\PartialUserForms\Models\PartialFieldSubmission.field3
TokenSalt: aa11ss22dd33ff44
Token: q1w2e3r4t5y6u7i8
SubmittedForm: =>Firesphere\PartialUserforms\Models\PartialFormSubmission.submission1
SilverStripe\Assets\File:
file1:
Name: 'Hans.png'
Title: 'Hans Image'
Filename: partialuserforms/tests/fixtures/Hans-fullsize-sqr.png
Firesphere\PartialUserForms\Models\PartialFileFieldSubmission:
field1:
Name: 'File'
UploadedFile: =>SilverStripe\Assets\File.file1
SubmittedForm: =>Firesphere\PartialUserforms\Models\PartialFormSubmission.submission1
Parent: =>Firesphere\PartialUserforms\Models\PartialFormSubmission.submission1
SilverStripe\UserForms\Model\EditableFormField\EditableTextField:
textfield1:
Name: 'Field1'
Expand All @@ -37,6 +50,11 @@ SilverStripe\UserForms\Model\EditableFormField\EditableTextField:
Title: 'Field 3'
ParentClass: SilverStripe\UserForms\Model\UserDefinedForm
Parent: =>SilverStripe\UserForms\Model\UserDefinedForm.form1
textfield4:
Name: 'question'
Title: 'Question'
ParentClass: SilverStripe\UserForms\Model\UserDefinedForm
Parent: =>SilverStripe\UserForms\Model\UserDefinedForm.form1
SilverStripe\UserForms\Model\EditableFormField\EditableFileField:
filefield1:
Name: 'File'
Expand Down
7 changes: 7 additions & 0 deletions tests/templates/Page.ss
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!DOCTYPE html>
<html>
<head></head>
<body>
$Layout
</body>
</html>
1 change: 1 addition & 0 deletions tests/unit/PartialFileFieldSubmissionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Firesphere\PartialUserforms\Models\PartialFileFieldSubmission;
use Firesphere\PartialUserforms\Models\PartialFormSubmission;
use SilverStripe\Assets\File;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Security\DefaultAdminService;
use SilverStripe\Security\Security;
Expand Down
24 changes: 19 additions & 5 deletions tests/unit/PartialUserFormControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace Firesphere\PartialUserforms\Tests;

use Firesphere\PartialUserforms\Models\PartialFormSubmission;
use SilverStripe\Assets\File;
use SilverStripe\Dev\FunctionalTest;
use SilverStripe\UserForms\Model\UserDefinedForm;

Expand All @@ -23,13 +24,8 @@ public function testPartialPage()
$this->assertEquals(404, $result->getStatusCode());
}

/**
* @todo
*/
public function testPartialValidKeyToken()
{
$this->markTestSkipped('Revisit and set up themes for testing');

$token = 'q1w2e3r4t5y6u7i8';
// No Parent
$key = singleton(PartialFormSubmission::class)->generateKey($token);
Expand Down Expand Up @@ -67,9 +63,27 @@ public function testPartialInvalidKey()
$this->assertEquals(404, $result->getStatusCode());
}

public function testDataPopulated()
{
$partial = $this->objFromFixture(PartialFormSubmission::class, 'submission1');
$token = 'q1w2e3r4t5y6u7i8';
$key = $partial->generateKey($token);

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

$this->assertCount(1, $partial->PartialUploads());
$this->assertCount(3, $partial->PartialFields());

$content = $response->getBody();
$this->assertContains('I have a question', $content);
$this->assertContains('Hans-fullsize-sqr.png', $content);
}

public function setUp()
{
parent::setUp();
$this->objFromFixture(UserDefinedForm::class, 'form1')->publishRecursive();
$this->objFromFixture(File::class, 'file1')->publishRecursive();
}
}

0 comments on commit fdb9d81

Please sign in to comment.