ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
ilCertificateBackgroundImageUploadTest.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
10 
15 {
16  public function testFileCanBeUploaded()
17  {
18  $fileUpload = $this->getMockBuilder(FileUpload::class)
19  ->getMock();
20 
21  $fileUpload->method('hasBeenProcessed')
22  ->willReturn(false);
23 
24  $fileUpload->expects($this->once())
25  ->method('process');
26 
27  $fileUpload->method('hasUploads')
28  ->willReturn(true);
29 
30  $uploadResult = new UploadResult(
31  'phpunit',
32  1024,
33  'text/xml',
34  $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
35  new ProcessingStatus(ProcessingStatus::OK, 'uploaded'),
36  '/tmp'
37  );
38 
39  $fileUpload->method('getResults')
40  ->willReturn(["some/where/temporary" => $uploadResult]);
41 
42  $fileUpload->expects($this->once())
43  ->method('moveOneFileTo');
44 
45  $language = $this->getMockBuilder(ilLanguage::class)
46  ->disableOriginalConstructor()
47  ->getMock();
48 
49  $logger = $this->getMockBuilder(ilLogger::class)
50  ->disableOriginalConstructor()
51  ->getMock();
52 
53  $fileSystem = $this->getMockBuilder(Filesystem::class)
54  ->getMock();
55 
56  $fileSystem->method('hasDir')
57  ->willReturn(true);
58 
59  $fileSystem->method('has')
60  ->willReturn(true);
61 
62  $fileSystem->expects($this->once())
63  ->method('delete');
64 
65  $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
66  ->getMock();
67 
68  $utilHelper->expects($this->exactly(2))
69  ->method('convertImage');
70 
71  $fileUtilsHelper = $this->getMockBuilder(ilCertificateFileUtilsHelper::class)
72  ->getMock();
73 
74  $legacyPathHelper = $this->getMockBuilder(LegacyPathHelperHelper::class)
75  ->getMock();
76 
77  $legacyPathHelper->method('createRelativePath')
78  ->willReturn('the/relative/path');
79 
81  $fileUpload,
82  'certifcate/path/to/some/where',
83  $language,
84  $logger,
85  $fileSystem,
86  $utilHelper,
87  $fileUtilsHelper,
88  $legacyPathHelper,
89  'Some Root Directory',
90  'someclient',
91  $fileSystem
92  );
93 
94  $upload->uploadBackgroundImage('some/where/temporary', '3');
95  }
96 
100  public function testPendingFilesCanBeUploaded() : void
101  {
102  $fileUpload = $this->getMockBuilder(FileUpload::class)
103  ->getMock();
104 
105  $fileUpload->method('hasBeenProcessed')
106  ->willReturn(false);
107 
108  $fileUpload->expects($this->once())
109  ->method('process');
110 
111  $fileUpload->method('hasUploads')
112  ->willReturn(true);
113 
114  $uploadResult = new UploadResult(
115  '',
116  0,
117  '',
118  $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
119  new ProcessingStatus(ProcessingStatus::REJECTED, 'rejected'),
120  ''
121  );
122 
123  $fileUpload->method('getResults')
124  ->willReturn([0 => $uploadResult]);
125 
126  $fileUpload->expects($this->never())
127  ->method('moveOneFileTo');
128 
129  $language = $this->getMockBuilder(ilLanguage::class)
130  ->disableOriginalConstructor()
131  ->getMock();
132 
133  $logger = $this->getMockBuilder(ilLogger::class)
134  ->disableOriginalConstructor()
135  ->getMock();
136 
137  $fileSystem = $this->getMockBuilder(Filesystem::class)
138  ->getMock();
139 
140  $fileSystem->method('hasDir')
141  ->willReturn(true);
142 
143  $fileSystem->method('has')
144  ->willReturn(true);
145 
146  $fileSystem->expects($this->once())
147  ->method('delete');
148 
149  $fileSystem->expects($this->once())
150  ->method('writeStream');
151 
152  $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
153  ->getMock();
154 
155  $utilHelper->expects($this->exactly(2))
156  ->method('convertImage');
157 
158  $fileUtilsHelper = $this->getMockBuilder(ilCertificateFileUtilsHelper::class)
159  ->getMock();
160 
161  $legacyPathHelper = $this->getMockBuilder(LegacyPathHelperHelper::class)
162  ->getMock();
163 
164  $legacyPathHelper->method('createRelativePath')
165  ->willReturn('the/relative/path');
166 
167  $tmp_file_system = $this->getMockBuilder(Filesystem::class)
168  ->getMock();
169  $tmp_file_system->expects($this->once())
170  ->method('readStream')
171  ->willReturn($this->getMockBuilder(FileStream::class)->getMock());
172 
174  $fileUpload,
175  'certifcate/path/to/some/where',
176  $language,
177  $logger,
178  $fileSystem,
179  $utilHelper,
180  $fileUtilsHelper,
181  $legacyPathHelper,
182  'Some Root Directory',
183  'someclient',
184  $tmp_file_system
185  );
186 
187  $upload->uploadBackgroundImage('some/where/temporary', '3', [
188  'tmp_name' => 'pending_file'
189  ]);
190  }
191 }
Class ilCertificateBaseTestCase.
testPendingFilesCanBeUploaded()
This test ensures the workaround for https://mantis.ilias.de/view.php?id=28219 works as expected...