Merge "rdbms: avoid LoadBalancer::getConnection waste when using $groups"
[lhc/web/wiklou.git] / tests / phpunit / includes / libs / EasyDeflateTest.php
1 <?php
2 /**
3 * Copyright (C) 2018 Kunal Mehta <legoktm@member.fsf.org>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 */
20
21 /**
22 * @covers EasyDeflate
23 */
24 class EasyDeflateTest extends PHPUnit\Framework\TestCase {
25
26 public function provideIsDeflated() {
27 return [
28 [ 'rawdeflate,S8vPT0osAgA=', true ],
29 [ 'abcdefghijklmnopqrstuvwxyz', false ],
30 ];
31 }
32
33 /**
34 * @dataProvider provideIsDeflated
35 */
36 public function testIsDeflated( $data, $expected ) {
37 $actual = EasyDeflate::isDeflated( $data );
38 $this->assertSame( $expected, $actual );
39 }
40
41 public function provideInflate() {
42 return [
43 [ 'rawdeflate,S8vPT0osAgA=', true, 'foobar' ],
44 // Fails base64_decode
45 [ 'rawdeflate,🌻', false, 'easydeflate-invaliddeflate' ],
46 // Fails gzinflate
47 [ 'rawdeflate,S8vPT0dfdAgB=', false, 'easydeflate-invaliddeflate' ],
48 ];
49 }
50
51 /**
52 * @dataProvider provideInflate
53 */
54 public function testInflate( $data, $ok, $value ) {
55 $actual = EasyDeflate::inflate( $data );
56 if ( $ok ) {
57 $this->assertTrue( $actual->isOK() );
58 $this->assertSame( $value, $actual->getValue() );
59 } else {
60 $this->assertFalse( $actual->isOK() );
61 $this->assertTrue( $actual->hasMessage( $value ) );
62 }
63 }
64 }