API: Change default continuation format for action=query
[lhc/web/wiklou.git] / tests / phpunit / includes / api / query / ApiQueryTestBase.php
index 56c15b2..d5fa454 100644 (file)
@@ -56,12 +56,12 @@ STR;
         * @return array
         */
        private function validateRequestExpectedPair( $v ) {
-               $this->assertType( 'array', $v, self::PARAM_ASSERT );
+               $this->assertInternalType( 'array', $v, self::PARAM_ASSERT );
                $this->assertEquals( 2, count( $v ), self::PARAM_ASSERT );
                $this->assertArrayHasKey( 0, $v, self::PARAM_ASSERT );
                $this->assertArrayHasKey( 1, $v, self::PARAM_ASSERT );
-               $this->assertType( 'array', $v[0], self::PARAM_ASSERT );
-               $this->assertType( 'array', $v[1], self::PARAM_ASSERT );
+               $this->assertInternalType( 'array', $v[0], self::PARAM_ASSERT );
+               $this->assertInternalType( 'array', $v[1], self::PARAM_ASSERT );
 
                return $v;
        }
@@ -87,21 +87,30 @@ STR;
 
        /**
         * Checks that the request's result matches the expected results.
+        * Assumes no rawcontinue and a complete batch.
         * @param array $values Array is a two element array( request, expected_results )
-        * @throws Exception
+        * @param array $session
+        * @param bool $appendModule
+        * @param User $user
         */
-       protected function check( $values ) {
+       protected function check( $values, array $session = null,
+               $appendModule = false, User $user = null
+       ) {
                list( $req, $exp ) = $this->validateRequestExpectedPair( $values );
                if ( !array_key_exists( 'action', $req ) ) {
                        $req['action'] = 'query';
                }
+               // Silence warning
+               if ( !isset( $params['continue'] ) ) {
+                       $params['continue'] = '';
+               }
                foreach ( $req as &$val ) {
                        if ( is_array( $val ) ) {
                                $val = implode( '|', array_unique( $val ) );
                        }
                }
-               $result = $this->doApiRequest( $req );
-               $this->assertResult( array( 'query' => $exp ), $result[0], $req );
+               $result = $this->doApiRequest( $req, $session, $appendModule, $user );
+               $this->assertResult( array( 'batchcomplete' => true, 'query' => $exp ), $result[0], $req );
        }
 
        protected function assertResult( $exp, $result, $message = '' ) {
@@ -113,9 +122,16 @@ STR;
                        if ( is_array( $message ) ) {
                                $message = http_build_query( $message );
                        }
+
+                       // FIXME: once we migrate to phpunit 4.1+, hardcode ComparisonFailure exception use
+                       $compEx = 'SebastianBergmann\Comparator\ComparisonFailure';
+                       if ( !class_exists( $compEx ) ) {
+                               $compEx = 'PHPUnit_Framework_ComparisonFailure';
+                       }
+
                        throw new PHPUnit_Framework_ExpectationFailedException(
                                $e->getMessage() . "\nRequest: $message",
-                               new PHPUnit_Framework_ComparisonFailure(
+                               new $compEx(
                                        $exp,
                                        $result,
                                        print_r( $exp, true ),