UploadedFileTest::provideSimpleTypes()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace Fracture\Http;
4
5
use Exception;
6
use ReflectionClass;
7
use PHPUnit_Framework_TestCase;
8
9
class UploadedFileTest extends PHPUnit_Framework_TestCase
10
{
11
12
    /**
13
     * @dataProvider provideSimpleTypes
14
     *
15
     * @covers Fracture\Http\UploadedFile::__construct
16
     * @covers Fracture\Http\UploadedFile::getMimeType
17
     * @covers Fracture\Http\UploadedFile::prepare
18
     * @covers Fracture\Http\UploadedFile::hasProperExtension
19
     * @covers Fracture\Http\UploadedFile::isDubious
20
     * @covers Fracture\Http\UploadedFile::getPath
21
     */
22
    public function testUploadTypes($params, $type, $validity)
23
    {
24
25
        $instance = $this->getMock('Fracture\Http\UploadedFile', ['seemsTampered'], [$params]);
26
        $instance->expects($this->once())
27
                 ->method('seemsTampered')
28
                 ->will($this->returnValue(false));
29
30
        $instance->prepare();
31
        $this->assertEquals($type, $instance->getMimeType());
32
        $this->assertEquals($validity, $instance->hasProperExtension());
33
    }
34
35
    public function provideSimpleTypes()
36
    {
37
        return include FIXTURE_PATH . '/uploads-type.php';
38
    }
39
40
    /**
41
     * @dataProvider provideSimpleValidationList
42
     *
43
     * @covers Fracture\Http\UploadedFile::__construct
44
     * @covers Fracture\Http\UploadedFile::isValid
45
     * @covers Fracture\Http\UploadedFile::prepare
46
     * @covers Fracture\Http\UploadedFile::isDubious
47
     * @covers Fracture\Http\UploadedFile::getPath
48
     */
49
    public function testUploadValidity($params, $result)
50
    {
51
        $instance = $this->getMock('Fracture\Http\UploadedFile', ['seemsTampered'], [$params]);
52
        $instance->expects($this->any())
53
                 ->method('seemsTampered')
54
                 ->will($this->returnValue(false));
55
56
57
        $instance->prepare();
58
        $this->assertEquals($result, $instance->isValid());
59
    }
60
61
62
    public function provideSimpleValidationList()
63
    {
64
        return include FIXTURE_PATH . '/uploads-validity.php';
65
    }
66
67
68
    /**
69
     * @dataProvider provideUploadExtensions
70
     *
71
     * @covers Fracture\Http\UploadedFile::__construct
72
     * @covers Fracture\Http\UploadedFile::getExtension
73
     */
74
    public function testUploadExtensions($params, $result)
75
    {
76
        $instance = new UploadedFile($params);
77
        $this->assertEquals($result, $instance->getExtension());
78
    }
79
80
81
    public function provideUploadExtensions()
82
    {
83
        return include FIXTURE_PATH . '/uploads-extensions.php';
84
    }
85
86
    /**
87
     * @covers Fracture\Http\UploadedFile::__construct
88
     * @covers Fracture\Http\UploadedFile::getName
89
     * @covers Fracture\Http\UploadedFile::getMimeType
90
     * @covers Fracture\Http\UploadedFile::getSize
91
     */
92
    public function testSimpleGetters()
93
    {
94
        $params = [
95
            'name'      => 'simple.png',
96
            'type'      => 'image/png',
97
            'tmp_name'  => FIXTURE_PATH . '/files/simple.png',
98
            'error'     => UPLOAD_ERR_OK,
99
            'size'      => 74,
100
        ];
101
102
        $instance = new UploadedFile($params);
103
104
        $this->assertEquals($params['name'], $instance->getName());
105
        $this->assertEquals($params['type'], $instance->getMimeType());
106
        $this->assertEquals($params['size'], $instance->getSize());
107
    }
108
}
109