Merge "RCFilters: Don't reload the list if the change was highlights-only"
[lhc/web/wiklou.git] / tests / phpunit / includes / filebackend / SwiftFileBackendTest.php
index 38000f6..9cd2b10 100644 (file)
@@ -1,19 +1,26 @@
 <?php
 
+use Wikimedia\TestingAccessWrapper;
+
 /**
  * @group FileRepo
  * @group FileBackend
  * @group medium
+ *
+ * @covers SwiftFileBackend
+ * @covers SwiftFileBackendDirList
+ * @covers SwiftFileBackendFileList
+ * @covers SwiftFileBackendList
  */
 class SwiftFileBackendTest extends MediaWikiTestCase {
-       /** @var SwiftFileBackend */
+       /** @var TestingAccessWrapper Proxy to SwiftFileBackend */
        private $backend;
 
        protected function setUp() {
                parent::setUp();
 
                $this->backend = TestingAccessWrapper::newFromObject(
-                       new SwiftFileBackend( array(
+                       new SwiftFileBackend( [
                                'name'             => 'local-swift-testing',
                                'class'            => 'SwiftFileBackend',
                                'wikiId'           => 'unit-testing',
@@ -22,70 +29,123 @@ class SwiftFileBackendTest extends MediaWikiTestCase {
                                'swiftUser'        => 'test:tester',
                                'swiftKey'         => 'testing',
                                'swiftTempUrlKey'  => 'b3968d0207b54ece87cccc06515a89d4' // unused
-                       ) )
+                       ] )
                );
        }
 
        /**
-        * @dataProvider provider_testSanitzeHdrs
-        * @covers SwiftFileBackend::sanitzeHdrs
+        * @dataProvider provider_testSanitizeHdrs
         */
-       public function testSanitzeHdrs( $raw, $sanitized ) {
-               $hdrs = $this->backend->sanitizeHdrs( array( 'headers' => $raw ) );
+       public function testSanitizeHdrs( $raw, $sanitized ) {
+               $hdrs = $this->backend->sanitizeHdrs( [ 'headers' => $raw ] );
 
                $this->assertEquals( $hdrs, $sanitized, 'sanitizeHdrs() has expected result' );
        }
 
-       public static function provider_testSanitzeHdrs() {
-               return array(
-                       array(
-                               array(
+       public static function provider_testSanitizeHdrs() {
+               return [
+                       [
+                               [
                                        'content-length' => 345,
                                        'content-type'   => 'image+bitmap/jpeg',
                                        'content-disposition' => 'inline',
                                        'content-duration' => 35.6363,
-                                       'content-custom' => 'hello',
+                                       'content-Custom' => 'hello',
                                        'x-content-custom' => 'hello'
-                               ),
-                               array(
+                               ],
+                               [
                                        'content-disposition' => 'inline',
                                        'content-duration' => 35.6363,
                                        'content-custom' => 'hello',
                                        'x-content-custom' => 'hello'
-                               )
-                       ),
-                       array(
-                               array(
+                               ]
+                       ],
+                       [
+                               [
                                        'content-length' => 345,
                                        'content-type'   => 'image+bitmap/jpeg',
-                                       'content-disposition' => 'inline; filename=xxx; ' . str_repeat( 'o', 1024 ),
+                                       'content-Disposition' => 'inline; filename=xxx; ' . str_repeat( 'o', 1024 ),
                                        'content-duration' => 35.6363,
                                        'content-custom' => 'hello',
                                        'x-content-custom' => 'hello'
-                               ),
-                               array(
+                               ],
+                               [
                                        'content-disposition' => 'inline;filename=xxx',
                                        'content-duration' => 35.6363,
                                        'content-custom' => 'hello',
                                        'x-content-custom' => 'hello'
-                               )
-                       ),
-                       array(
-                               array(
+                               ]
+                       ],
+                       [
+                               [
                                        'content-length' => 345,
                                        'content-type'   => 'image+bitmap/jpeg',
-                                       'content-disposition' => 'filename='. str_repeat( 'o', 1024 ) . ';inline',
+                                       'content-disposition' => 'filename=' . str_repeat( 'o', 1024 ) . ';inline',
                                        'content-duration' => 35.6363,
                                        'content-custom' => 'hello',
                                        'x-content-custom' => 'hello'
-                               ),
-                               array(
+                               ],
+                               [
                                        'content-disposition' => '',
                                        'content-duration' => 35.6363,
                                        'content-custom' => 'hello',
                                        'x-content-custom' => 'hello'
-                               )
-                       )
-               );
+                               ]
+                       ]
+               ];
+       }
+
+       /**
+        * @dataProvider provider_testGetMetadataHeaders
+        */
+       public function testGetMetadataHeaders( $raw, $sanitized ) {
+               $hdrs = $this->backend->getMetadataHeaders( $raw );
+
+               $this->assertEquals( $hdrs, $sanitized, 'getMetadataHeaders() has expected result' );
+       }
+
+       public static function provider_testGetMetadataHeaders() {
+               return [
+                       [
+                               [
+                                       'content-length' => 345,
+                                       'content-custom' => 'hello',
+                                       'x-content-custom' => 'hello',
+                                       'x-object-meta-custom' => 5,
+                                       'x-object-meta-sha1Base36' => 'a3deadfg...',
+                               ],
+                               [
+                                       'x-object-meta-custom' => 5,
+                                       'x-object-meta-sha1base36' => 'a3deadfg...',
+                               ]
+                       ]
+               ];
+       }
+
+       /**
+        * @dataProvider provider_testGetMetadata
+        */
+       public function testGetMetadata( $raw, $sanitized ) {
+               $hdrs = $this->backend->getMetadata( $raw );
+
+               $this->assertEquals( $hdrs, $sanitized, 'getMetadata() has expected result' );
+       }
+
+       public static function provider_testGetMetadata() {
+               return [
+                       [
+                               [
+                                       'content-length' => 345,
+                                       'content-custom' => 'hello',
+                                       'x-content-custom' => 'hello',
+                                       'x-object-meta-custom' => 5,
+                                       'x-object-meta-sha1Base36' => 'a3deadfg...',
+                               ],
+                               [
+                                       'custom' => 5,
+                                       'sha1base36' => 'a3deadfg...',
+                               ]
+                       ]
+               ];
        }
-}
\ No newline at end of file
+}