ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTermsOfServiceDocumentFormGUITest Class Reference

Class ilTermsOfServiceAcceptanceHistoryCriteriaBagTest. More...

+ Inheritance diagram for ilTermsOfServiceDocumentFormGUITest:
+ Collaboration diagram for ilTermsOfServiceDocumentFormGUITest:

Public Member Functions

 testDocumentFormIsProperlyBuiltForNewDocuments ()
 
 testFormForNewDocumentsCanBeSavedForValidInput ()
 
 testDocumentFormIsProperlyBuiltForExistingDocuments ()
 
 testFormForExistingDocumentsCanBeSavedForValidInput ()
 
 testUploadIssuesAreHandledWhenDocumentFormIsSaved ()
 

Additional Inherited Members

- Protected Member Functions inherited from ilTermsOfServiceBaseTest
 setUp ()
 
 getLanguageMock ()
 
 getUiFactoryMock ()
 
 setGlobalVariable (string $name, $value)
 
 getCriterionConfig ($value=null)
 
- Protected Attributes inherited from ilTermsOfServiceBaseTest
Container $dic
 

Detailed Description

Member Function Documentation

◆ testDocumentFormIsProperlyBuiltForExistingDocuments()

ilTermsOfServiceDocumentFormGUITest::testDocumentFormIsProperlyBuiltForExistingDocuments ( )

Definition at line 345 of file ilTermsOfServiceDocumentFormGUITest.php.

345  : void
346  {
347  $document = $this
348  ->getMockBuilder(ilTermsOfServiceDocument::class)
349  ->disableOriginalConstructor()
350  ->addMethods(['getId'])
351  ->getMock();
352 
353  $document
354  ->method('getId')
355  ->willReturn(1);
356 
357  $purifier = $this
358  ->getMockBuilder(ilHtmlPurifierInterface::class)
359  ->getMock();
360 
361  $user = $this
362  ->getMockBuilder(ilObjUser::class)
363  ->disableOriginalConstructor()
364  ->onlyMethods(['getId'])
365  ->getMock();
366 
367  $fs = $this
368  ->getMockBuilder(Filesystem::class)
369  ->getMock();
370 
371  $fu = $this
372  ->getMockBuilder(FileUpload::class)
373  ->getMock();
374 
376  $document,
377  $purifier,
378  $user,
379  $fs,
380  $fu,
381  'action',
382  'save',
383  'cancel',
384  true
385  );
386 
387  $this->assertFalse(
388  $form->getItemByPostVar('document')->getRequired(),
389  'Failed asserting document upload is not required for existing documents'
390  );
391  }
Class ilTermsOfServiceDocumentFormGUI.

◆ testDocumentFormIsProperlyBuiltForNewDocuments()

ilTermsOfServiceDocumentFormGUITest::testDocumentFormIsProperlyBuiltForNewDocuments ( )

Definition at line 34 of file ilTermsOfServiceDocumentFormGUITest.php.

34  : void
35  {
36  $document = $this
37  ->getMockBuilder(ilTermsOfServiceDocument::class)
38  ->disableOriginalConstructor()
39  ->addMethods(['getId'])
40  ->getMock();
41 
42  $purifier = $this
43  ->getMockBuilder(ilHtmlPurifierInterface::class)
44  ->getMock();
45 
46  $user = $this
47  ->getMockBuilder(ilObjUser::class)
48  ->disableOriginalConstructor()
49  ->getMock();
50 
51  $fs = $this
52  ->getMockBuilder(Filesystem::class)
53  ->getMock();
54 
55  $fu = $this
56  ->getMockBuilder(FileUpload::class)
57  ->getMock();
58 
60  $document,
61  $purifier,
62  $user,
63  $fs,
64  $fu,
65  'action',
66  'save',
67  'cancel',
68  true
69  );
70 
71  $this->assertTrue(
72  $form->getItemByPostVar('document')->getRequired(),
73  'Failed asserting document upload is required for new documents'
74  );
75 
76  $this->assertCount(
77  2,
78  $form->getCommandButtons(),
79  'Failed asserting save and cancel buttons are given if form is editable'
80  );
81  $this->assertArrayHasKey(
82  0,
83  $form->getCommandButtons(),
84  'Failed asserting save and cancel buttons are given if form is editable'
85  );
86  $this->assertArrayHasKey(
87  1,
88  $form->getCommandButtons(),
89  'Failed asserting save and cancel buttons are given if form is editable'
90  );
91  $this->assertSame(
92  'save',
93  $form->getCommandButtons()[0]['cmd'],
94  'Failed asserting save and cancel buttons are given if form is editable'
95  );
96  $this->assertSame(
97  'cancel',
98  $form->getCommandButtons()[1]['cmd'],
99  'Failed asserting save and cancel buttons are given if form is editable'
100  );
101 
103  $document,
104  $purifier,
105  $user,
106  $fs,
107  $fu,
108  'action',
109  'save',
110  'cancel',
111  false
112  );
113 
114  $this->assertCount(
115  1,
116  $form->getCommandButtons(),
117  'Failed asserting only cancel button is given if form is not editable'
118  );
119  $this->assertArrayHasKey(
120  0,
121  $form->getCommandButtons(),
122  'Failed asserting only cancel button is given if form is not editable'
123  );
124  $this->assertSame(
125  'cancel',
126  $form->getCommandButtons()[0]['cmd'],
127  'Failed asserting only cancel button is given if form is not editable'
128  );
129  }
Class ilTermsOfServiceDocumentFormGUI.

◆ testFormForExistingDocumentsCanBeSavedForValidInput()

ilTermsOfServiceDocumentFormGUITest::testFormForExistingDocumentsCanBeSavedForValidInput ( )

Definition at line 393 of file ilTermsOfServiceDocumentFormGUITest.php.

References arConnectorMap\register(), and ilTermsOfServiceBaseTest\setGlobalVariable().

393  : void
394  {
395  $expectedSorting = 10;
396 
397  $document = $this
398  ->getMockBuilder(ilTermsOfServiceDocument::class)
399  ->disableOriginalConstructor()
400  ->onlyMethods(['fetchAllCriterionAssignments'])
401  ->getMock();
402 
403  $document->setId(4711);
404  $document->setTitle('phpunit');
405  $document->setSorting($expectedSorting);
406 
407  $purifier = $this
408  ->getMockBuilder(ilHtmlPurifierInterface::class)
409  ->getMock();
410 
411  $user = $this
412  ->getMockBuilder(ilObjUser::class)
413  ->disableOriginalConstructor()
414  ->onlyMethods(['getId'])
415  ->getMock();
416 
417  $user
418  ->expects($this->once())
419  ->method('getId')
420  ->willReturn(6);
421 
422  $fs = $this
423  ->getMockBuilder(Filesystem::class)
424  ->getMock();
425 
426  $fu = $this
427  ->getMockBuilder(FileUpload::class)
428  ->onlyMethods([
429  'moveFilesTo',
430  'uploadSizeLimit',
431  'register',
432  'hasBeenProcessed',
433  'hasUploads',
434  'process',
435  'getResults',
436  'moveOneFileTo'
437  ])
438  ->getMock();
439 
440  $fu
441  ->method('hasUploads')
442  ->willReturn(false);
443 
444  $this->setGlobalVariable('upload', $fu);
445 
446  $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
447  $documentConnector->method('affectedRows')->willReturn(0);
448 
449  arConnectorMap::register(new ilTermsOfServiceDocument(), $documentConnector);
450  arConnectorMap::register($document, $documentConnector);
451 
452  $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
453  ->setConstructorArgs([
454  $document,
455  $purifier,
456  $user,
457  $fs,
458  $fu,
459  'action',
460  'save',
461  'cancel',
462  true
463  ])
464  ->onlyMethods(['checkInput'])
465  ->getMock();
466 
467  $form
468  ->expects($this->once())
469  ->method('checkInput')
470  ->willReturn(true);
471 
472  $form->setCheckInputCalled(true);
473 
474  $this->assertTrue($form->saveObject());
475  $this->assertFalse($form->hasTranslatedError());
476  $this->assertEmpty($form->getTranslatedError());
477  $this->assertSame(
478  $expectedSorting,
479  $document->getSorting(),
480  'Failed asserting that the sorting of the existing document has not been changed'
481  );
482  }
setGlobalVariable(string $name, $value)
static register(ActiveRecord $ar, arConnector $connector)
Class ilTermsOfServiceDocument.
+ Here is the call graph for this function:

◆ testFormForNewDocumentsCanBeSavedForValidInput()

ilTermsOfServiceDocumentFormGUITest::testFormForNewDocumentsCanBeSavedForValidInput ( )

Definition at line 131 of file ilTermsOfServiceDocumentFormGUITest.php.

References arConnectorMap\register(), and ilTermsOfServiceBaseTest\setGlobalVariable().

131  : void
132  {
133  $document = $this
134  ->getMockBuilder(ilTermsOfServiceDocument::class)
135  ->disableOriginalConstructor()
136  ->onlyMethods(['fetchAllCriterionAssignments'])
137  ->addMethods(['getId'])
138  ->getMock();
139 
140  $document
141  ->method('fetchAllCriterionAssignments');
142 
143  $purifier = $this
144  ->getMockBuilder(ilHtmlPurifierInterface::class)
145  ->getMock();
146 
147  $uploadResult = new UploadResult(
148  'phpunit',
149  1024,
150  'text/xml',
151  $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
152  new ProcessingStatus(ProcessingStatus::OK, 'uploaded'),
153  '/tmp'
154  );
155 
156  $user = $this
157  ->getMockBuilder(ilObjUser::class)
158  ->disableOriginalConstructor()
159  ->onlyMethods(['getId'])
160  ->getMock();
161 
162  $user
163  ->expects($this->exactly(2))
164  ->method('getId')
165  ->willReturn(6);
166 
167  $fs = $this
168  ->getMockBuilder(Filesystem::class)
169  ->getMock();
170 
171  $fs
172  ->expects($this->exactly(2))
173  ->method('has')
174  ->with('/agreements/' . $uploadResult->getName())
175  ->willReturn(true);
176 
177  $fs
178  ->expects($this->exactly(2))
179  ->method('read')
180  ->with('/agreements/' . $uploadResult->getName())
181  ->willReturn('phpunit');
182 
183  $purifier
184  ->expects($this->atLeast(1))
185  ->method('purify')
186  ->with('phpunit')
187  ->willReturnArgument(0);
188 
189  $fs
190  ->expects($this->exactly(2))
191  ->method('delete')
192  ->with('/agreements/' . $uploadResult->getName());
193 
194  $fu = $this
195  ->getMockBuilder(FileUpload::class)
196  ->onlyMethods([
197  'moveFilesTo',
198  'uploadSizeLimit',
199  'register',
200  'hasBeenProcessed',
201  'hasUploads',
202  'process',
203  'getResults',
204  'moveOneFileTo'
205  ])
206  ->getMock();
207 
208  $fu
209  ->method('hasUploads')
210  ->willReturn(true);
211 
212  $fu
213  ->expects($this->exactly(2))
214  ->method('hasBeenProcessed')
215  ->willReturn(false);
216 
217  $fu
218  ->expects($this->exactly(2))
219  ->method('process');
220 
221  $fu
222  ->expects($this->exactly(2))
223  ->method('getResults')
224  ->willReturn([
225  0 => $uploadResult
226  ]);
227 
228  $fu
229  ->expects($this->exactly(2))
230  ->method('moveOneFileTo')
231  ->with(
232  $uploadResult,
233  '/agreements',
234  Location::TEMPORARY,
235  $this->isEmpty(),
236  $this->isTrue()
237  );
238 
239  $this->setGlobalVariable('upload', $fu);
240 
241  $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
242  $criterionConnector = $this->getMockBuilder(arConnector::class)->getMock();
243 
244  $expectedSortingValueExistingDocuments = 10;
245 
246  $documentConnector
247  ->expects($this->once())
248  ->method('readSet')
249  ->willReturnCallback(function () use ($expectedSortingValueExistingDocuments) {
250  return [
251  [
252  'id' => 666,
253  'title' => 'another',
254  'sorting' => $expectedSortingValueExistingDocuments - 1,
255  ]
256  ];
257  });
258  $documentConnector->method('affectedRows')->willReturn(1);
259 
260  $criterionConnector
261  ->expects($this->once())
262  ->method('readSet')
263  ->willReturn([]);
264 
265  arConnectorMap::register(new ilTermsOfServiceDocument(), $documentConnector);
267  arConnectorMap::register($document, $documentConnector);
268 
269  $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
270  ->setConstructorArgs([
271  $document,
272  $purifier,
273  $user,
274  $fs,
275  $fu,
276  'action',
277  'save',
278  'cancel',
279  true
280  ])
281  ->onlyMethods(['checkInput'])
282  ->getMock();
283 
284  $form
285  ->expects($this->once())
286  ->method('checkInput')
287  ->willReturn(true);
288 
289  $_FILES['document'] = [];
290 
291  $form->setCheckInputCalled(true);
292 
293  $this->assertTrue($form->saveObject());
294  $this->assertFalse($form->hasTranslatedError());
295  $this->assertEmpty($form->getTranslatedError());
296  $this->assertSame(
297  $expectedSortingValueExistingDocuments,
298  $document->getSorting(),
299  'Failed asserting that the sorting of the new document equals the maximum incremented by one when other documents exist'
300  );
301 
302  $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
303 
304  $documentConnector
305  ->expects($this->once())
306  ->method('readSet')
307  ->willReturnCallback(function () {
308  return [];
309  });
310 
311  arConnectorMap::register(new ilTermsOfServiceDocument(), $documentConnector);
312 
313  $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
314  ->setConstructorArgs([
315  $document,
316  $purifier,
317  $user,
318  $fs,
319  $fu,
320  'action',
321  'save',
322  'cancel',
323  true
324  ])
325  ->onlyMethods(['checkInput'])
326  ->getMock();
327 
328  $form
329  ->expects($this->once())
330  ->method('checkInput')
331  ->willReturn(true);
332 
333  $form->setCheckInputCalled(true);
334 
335  $this->assertTrue($form->saveObject());
336  $this->assertFalse($form->hasTranslatedError());
337  $this->assertEmpty($form->getTranslatedError());
338  $this->assertSame(
339  1,
340  $document->getSorting(),
341  'Failed asserting that the sorting of the new document equals 1 when no other document exists'
342  );
343  }
setGlobalVariable(string $name, $value)
static register(ActiveRecord $ar, arConnector $connector)
Class ilTermsOfServiceDocument.
+ Here is the call graph for this function:

◆ testUploadIssuesAreHandledWhenDocumentFormIsSaved()

ilTermsOfServiceDocumentFormGUITest::testUploadIssuesAreHandledWhenDocumentFormIsSaved ( )

Definition at line 484 of file ilTermsOfServiceDocumentFormGUITest.php.

References $lng, ilTermsOfServiceBaseTest\getLanguageMock(), arConnectorMap\register(), and ilTermsOfServiceBaseTest\setGlobalVariable().

484  : void
485  {
486  $lng = $this->getLanguageMock();
487 
488  $lng
489  ->method('txt')
490  ->willReturn('translation');
491 
492  $this->setGlobalVariable('lng', $lng);
493 
494  $document = $this
495  ->getMockBuilder(ilTermsOfServiceDocument::class)
496  ->disableOriginalConstructor()
497  ->onlyMethods(['fetchAllCriterionAssignments'])
498  ->addMethods(['getId'])
499  ->getMock();
500 
501  $purifier = $this
502  ->getMockBuilder(ilHtmlPurifierInterface::class)
503  ->getMock();
504 
505  $user = $this
506  ->getMockBuilder(ilObjUser::class)
507  ->disableOriginalConstructor()
508  ->getMock();
509 
510  $fu = $this
511  ->getMockBuilder(FileUpload::class)
512  ->onlyMethods([
513  'moveFilesTo',
514  'uploadSizeLimit',
515  'register',
516  'hasBeenProcessed',
517  'hasUploads',
518  'process',
519  'getResults',
520  'moveOneFileTo'
521  ])
522  ->getMock();
523 
524  $fu
525  ->expects($this->atLeast(3))
526  ->method('hasUploads')
527  ->willReturn(true);
528 
529  $fu
530  ->expects($this->atLeast(3))
531  ->method('hasBeenProcessed')
532  ->willReturn(false);
533 
534  $fu
535  ->expects($this->exactly(3))
536  ->method('process');
537 
538  $uploadResult = new UploadResult(
539  'phpunit',
540  1024,
541  'text/xml',
542  $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
543  new ProcessingStatus(ProcessingStatus::OK, 'uploaded'),
544  '/tmp'
545  );
546 
547  $uploadFailingResult = new UploadResult(
548  'phpunit',
549  1024,
550  'text/xml',
551  $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
552  new ProcessingStatus(ProcessingStatus::REJECTED, 'not uploaded'),
553  '/tmp'
554  );
555 
556  $fu
557  ->expects($this->exactly(3))
558  ->method('getResults')
559  ->willReturnOnConsecutiveCalls(
560  [false],
561  [0 => $uploadFailingResult],
562  [0 => $uploadResult]
563  );
564 
565  $fs = $this
566  ->getMockBuilder(Filesystem::class)
567  ->getMock();
568 
569  $fs
570  ->expects($this->once())
571  ->method('has')
572  ->with('/agreements/' . $uploadResult->getName())
573  ->willReturn(false);
574 
575  $this->setGlobalVariable('upload', $fu);
576 
577  $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
578 
579  arConnectorMap::register(new ilTermsOfServiceDocument(), $documentConnector);
580  arConnectorMap::register($document, $documentConnector);
581 
582  $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
583  ->setConstructorArgs([
584  $document,
585  $purifier,
586  $user,
587  $fs,
588  $fu,
589  'action',
590  'save',
591  'cancel',
592  true
593  ])
594  ->onlyMethods(['checkInput'])
595  ->getMock();
596 
597  $form
598  ->expects($this->once())
599  ->method('checkInput')
600  ->willReturn(true);
601 
602  $form->setCheckInputCalled(true);
603 
604  $this->assertFalse($form->saveObject());
605  $this->assertTrue($form->hasTranslatedError());
606  $this->assertNotEmpty($form->getTranslatedError());
607 
608  $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
609  ->setConstructorArgs([
610  $document,
611  $purifier,
612  $user,
613  $fs,
614  $fu,
615  'action',
616  'save',
617  'cancel',
618  true
619  ])
620  ->onlyMethods(['checkInput'])
621  ->getMock();
622 
623  $form
624  ->expects($this->once())
625  ->method('checkInput')
626  ->willReturn(true);
627 
628  $form->setCheckInputCalled(true);
629 
630  $this->assertFalse($form->saveObject());
631  $this->assertTrue($form->hasTranslatedError());
632  $this->assertNotEmpty($form->getTranslatedError());
633 
634  $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
635  ->setConstructorArgs([
636  $document,
637  $purifier,
638  $user,
639  $fs,
640  $fu,
641  'action',
642  'save',
643  'cancel',
644  true
645  ])
646  ->onlyMethods(['checkInput'])
647  ->getMock();
648 
649  $form
650  ->expects($this->once())
651  ->method('checkInput')
652  ->willReturn(true);
653 
654  $form->setCheckInputCalled(true);
655 
656  $this->assertFalse($form->saveObject());
657  $this->assertTrue($form->hasTranslatedError());
658  $this->assertNotEmpty($form->getTranslatedError());
659  }
setGlobalVariable(string $name, $value)
$lng
static register(ActiveRecord $ar, arConnector $connector)
Class ilTermsOfServiceDocument.
+ Here is the call graph for this function:

The documentation for this class was generated from the following file: