]> source.dussan.org Git - nextcloud-server.git/commitdiff
use dataProvider for txt blacklist test
authorGeorg Ehrke <developer@georgehrke.com>
Fri, 27 Sep 2013 07:59:04 +0000 (09:59 +0200)
committerGeorg Ehrke <developer@georgehrke.com>
Fri, 27 Sep 2013 07:59:04 +0000 (09:59 +0200)
tests/lib/preview.php

index c40b2d03ef9c0c1e7bc3a021db5f6ae2352e7ce8..5dc4a93acc5ccd33d8eec6ec93470f0918b37e28 100644 (file)
@@ -95,9 +95,6 @@ class Preview extends \PHPUnit_Framework_TestCase {
        public function testTxtBlacklist() {
                $user = $this->initFS();
 
-               $x = 32;
-               $y = 32;
-
                $txt = 'random text file';
                $ics = file_get_contents(__DIR__ . '/../data/testcal.ics');
                $vcf = file_get_contents(__DIR__ . '/../data/testcontact.vcf');
@@ -106,28 +103,34 @@ class Preview extends \PHPUnit_Framework_TestCase {
                $rootView->mkdir('/'.$user);
                $rootView->mkdir('/'.$user.'/files');
 
-               $toTest = array('txt',
-                                               'ics',
-                                               'vcf');
-
-               foreach($toTest as $test) {
-                       $sample = '/'.$user.'/files/test.'.$test;
-                       $rootView->file_put_contents($sample, ${$test});
-                       $preview = new \OC\Preview($user, 'files/', 'test.'.$test, $x, $y);
-                       $image = $preview->getPreview();
-                       $resource = $image->resource();
-
-                       //http://stackoverflow.com/questions/5702953/imagecolorat-and-transparency
-                       $colorIndex = imagecolorat($resource, 1, 1);
-                       $colorInfo = imagecolorsforindex($resource, $colorIndex);
-                       $isTransparent = ($colorInfo['alpha'] === 127);
-
-                       if($test === 'txt') {
-                               $this->assertEquals($isTransparent, false);
-                       } else {
-                               $this->assertEquals($isTransparent, true);
-                       }
-               }
+               return array(
+                       array('txt', $txt, $user, $rootView, false),
+                       array('ics', $ics, $user, $rootView, true),
+                       array('vcf', $vcf, $user, $rootView, true),
+               );
+       }
+
+       /**
+        * @dataProvider testTxtBlacklist
+        */
+       public function testIsTransparent($test, $data, $user, $rootView, $expectedResult) {
+               $x = 32;
+               $y = 32;
+
+               $sample = '/'.$user.'/files/test.'.$test;
+               $rootView->file_put_contents($sample, $data);
+               $preview = new \OC\Preview($user, 'files/', 'test.'.$test, $x, $y);
+               $image = $preview->getPreview();
+               $resource = $image->resource();
+
+               //http://stackoverflow.com/questions/5702953/imagecolorat-and-transparency
+               $colorIndex = imagecolorat($resource, 1, 1);
+               $colorInfo = imagecolorsforindex($resource, $colorIndex);
+               $this->assertEquals(
+                       $expectedResult,
+                       $colorInfo['alpha'] === 127,
+                       'Failed asserting that only previews for text files are transparent.'
+               );
        }
 
        private function initFS() {