You are here

public function FileTest::testFile_validateFile in One Click Upload 7.2

* @covers ::validateFile

File

flowphp/test/Unit/FileTest.php, line 154

Class

FileTest
File unit tests

Namespace

Unit

Code

public function testFile_validateFile() {
  $this->requestArr['flowTotalSize'] = 10;
  $this->requestArr['flowTotalChunks'] = 3;
  $request = new Request($this->requestArr);
  $file = new File($this->config, $request);
  $chunkPrefix = sha1($request
    ->getIdentifier()) . '_';

  // No chunks uploaded yet
  $this
    ->assertFalse($file
    ->validateFile());

  // First chunk
  $firstChunk = vfsStream::newFile($chunkPrefix . '1');
  $firstChunk
    ->setContent('123');
  $this->vfs
    ->addChild($firstChunk);

  // Uploaded not yet complete
  $this
    ->assertFalse($file
    ->validateFile());

  // Second chunk
  $secondChunk = vfsStream::newFile($chunkPrefix . '2');
  $secondChunk
    ->setContent('456');
  $this->vfs
    ->addChild($secondChunk);

  // Uploaded not yet complete
  $this
    ->assertFalse($file
    ->validateFile());

  // Third chunk
  $lastChunk = vfsStream::newFile($chunkPrefix . '3');
  $lastChunk
    ->setContent('7890');
  $this->vfs
    ->addChild($lastChunk);

  // All chunks uploaded
  $this
    ->assertTrue($file
    ->validateFile());

  //// Test false values

  // File size doesn't match
  $lastChunk
    ->setContent('789');
  $this
    ->assertFalse($file
    ->validateFile());

  // Correct file size and expect true
  $this->requestArr['flowTotalSize'] = 9;
  $this
    ->assertTrue($file
    ->validateFile());
}