Skip to content

Commit 5cf1ec8

Browse files
committed
Refactor UtilTest to remove withConsecutive method
The PHPUnit's InvocationMocker::withConsecutive() has been deprecated. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
1 parent 193862c commit 5cf1ec8

File tree

4 files changed

+89
-148
lines changed

4 files changed

+89
-148
lines changed

phpstan-baseline.neon

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4900,11 +4900,6 @@ parameters:
49004900
count: 2
49014901
path: libraries/classes/Html/Generator.php
49024902

4903-
-
4904-
message: "#^Static method PhpMyAdmin\\\\Html\\\\Generator\\:\\:generateRowQueryOutput\\(\\) is unused\\.$#"
4905-
count: 1
4906-
path: libraries/classes/Html/Generator.php
4907-
49084903
-
49094904
message: "#^Method PhpMyAdmin\\\\Http\\\\ServerRequest\\:\\:getAttributes\\(\\) return type has no value type specified in iterable type array\\.$#"
49104905
count: 1

phpunit.xml.dist

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
verbose="true"
99
executionOrder="random"
1010
defaultTestSuite="unit"
11+
failOnIncomplete="true"
1112
>
1213
<coverage>
1314
<include>

psalm-baseline.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18445,12 +18445,6 @@
1844518445
</MixedArrayAccess>
1844618446
</file>
1844718447
<file src="test/classes/UtilTest.php">
18448-
<DeprecatedMethod>
18449-
<code>withConsecutive</code>
18450-
<code>withConsecutive</code>
18451-
<code>withConsecutive</code>
18452-
<code>withConsecutive</code>
18453-
</DeprecatedMethod>
1845418448
<InvalidArgument>
1845518449
<code>testGetMySQLDocuURL</code>
1845618450
</InvalidArgument>

test/classes/UtilTest.php

Lines changed: 88 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -1968,181 +1968,132 @@ public static function providerForwardedHeaders(): array
19681968

19691969
public function testCurrentUserHasPrivilegeSkipGrantTables(): void
19701970
{
1971-
$dbi = $this->getMockBuilder(DatabaseInterface::class)
1972-
->disableOriginalConstructor()
1973-
->getMock();
1974-
$dbi->expects($this->once())
1975-
->method('getCurrentUserAndHost')
1976-
->will($this->returnValue(['', '']));
1971+
$dbiDummy = $this->createDbiDummy();
1972+
$dbiDummy->addResult('SELECT CURRENT_USER();', []);
1973+
$GLOBALS['dbi'] = $this->createDatabaseInterface($dbiDummy);
19771974

1978-
$GLOBALS['dbi'] = $dbi;
19791975
$this->assertTrue(Util::currentUserHasPrivilege('EVENT'));
1976+
$dbiDummy->assertAllQueriesConsumed();
19801977
}
19811978

19821979
public function testCurrentUserHasUserPrivilege(): void
19831980
{
1984-
$dbi = $this->getMockBuilder(DatabaseInterface::class)
1985-
->disableOriginalConstructor()
1986-
->getMock();
1987-
$dbi->expects($this->once())
1988-
->method('getCurrentUserAndHost')
1989-
->will($this->returnValue(['groot_%', '%']));
1990-
$dbi->expects($this->once())
1991-
->method('fetchValue')
1992-
->with(
1993-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES`'
1994-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
1995-
)
1996-
->will($this->returnValue('EVENT'));
1981+
// phpcs:disable Generic.Files.LineLength.TooLong
1982+
$globalPrivilegeQuery = <<<'SQL'
1983+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'
1984+
SQL;
1985+
// phpcs:enable
1986+
$dbiDummy = $this->createDbiDummy();
1987+
$dbiDummy->addResult('SELECT CURRENT_USER();', [['groot_%@%']]);
1988+
$dbiDummy->addResult($globalPrivilegeQuery, [['EVENT']]);
1989+
$GLOBALS['dbi'] = $this->createDatabaseInterface($dbiDummy);
19971990

1998-
$GLOBALS['dbi'] = $dbi;
19991991
$this->assertTrue(Util::currentUserHasPrivilege('EVENT'));
1992+
$dbiDummy->assertAllQueriesConsumed();
20001993
}
20011994

20021995
public function testCurrentUserHasNotUserPrivilege(): void
20031996
{
2004-
$dbi = $this->getMockBuilder(DatabaseInterface::class)
2005-
->disableOriginalConstructor()
2006-
->getMock();
2007-
$dbi->expects($this->once())
2008-
->method('getCurrentUserAndHost')
2009-
->will($this->returnValue(['groot_%', '%']));
2010-
$dbi->expects($this->once())
2011-
->method('fetchValue')
2012-
->with(
2013-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES`'
2014-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
2015-
)
2016-
->will($this->returnValue(false));
1997+
// phpcs:disable Generic.Files.LineLength.TooLong
1998+
$globalPrivilegeQuery = <<<'SQL'
1999+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'
2000+
SQL;
2001+
// phpcs:enable
2002+
$dbiDummy = $this->createDbiDummy();
2003+
$dbiDummy->addResult('SELECT CURRENT_USER();', [['groot_%@%']]);
2004+
$dbiDummy->addResult($globalPrivilegeQuery, []);
2005+
$GLOBALS['dbi'] = $this->createDatabaseInterface($dbiDummy);
20172006

2018-
$GLOBALS['dbi'] = $dbi;
20192007
$this->assertFalse(Util::currentUserHasPrivilege('EVENT'));
2008+
$dbiDummy->assertAllQueriesConsumed();
20202009
}
20212010

20222011
public function testCurrentUserHasNotUserPrivilegeButDbPrivilege(): void
20232012
{
2024-
$dbi = $this->getMockBuilder(DatabaseInterface::class)
2025-
->onlyMethods(['getCurrentUserAndHost', 'fetchValue'])
2026-
->disableOriginalConstructor()
2027-
->getMock();
2028-
2029-
$dbi->expects($this->once())
2030-
->method('getCurrentUserAndHost')
2031-
->will($this->returnValue(['groot_%', '%']));
2032-
$dbi->expects($this->exactly(2))
2033-
->method('fetchValue')
2034-
->withConsecutive(
2035-
[
2036-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES`'
2037-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'",
2038-
],
2039-
[
2040-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES`'
2041-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
2042-
. " AND 'my_data_base' LIKE `TABLE_SCHEMA`",
2043-
]
2044-
)
2045-
->willReturnOnConsecutiveCalls(false, 'EVENT');
2013+
// phpcs:disable Generic.Files.LineLength.TooLong
2014+
$globalPrivilegeQuery = <<<'SQL'
2015+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'
2016+
SQL;
2017+
$databasePrivilegeQuery = <<<'SQL'
2018+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT' AND 'my_data_base' LIKE `TABLE_SCHEMA`
2019+
SQL;
2020+
// phpcs:enable
2021+
$dbiDummy = $this->createDbiDummy();
2022+
$dbiDummy->addResult('SELECT CURRENT_USER();', [['groot_%@%']]);
2023+
$dbiDummy->addResult($globalPrivilegeQuery, []);
2024+
$dbiDummy->addResult($databasePrivilegeQuery, [['EVENT']]);
2025+
$GLOBALS['dbi'] = $this->createDatabaseInterface($dbiDummy);
20462026

2047-
$GLOBALS['dbi'] = $dbi;
20482027
$this->assertTrue(Util::currentUserHasPrivilege('EVENT', 'my_data_base'));
2028+
$dbiDummy->assertAllQueriesConsumed();
20492029
}
20502030

20512031
public function testCurrentUserHasNotUserPrivilegeAndNotDbPrivilege(): void
20522032
{
2053-
$dbi = $this->getMockBuilder(DatabaseInterface::class)
2054-
->onlyMethods(['getCurrentUserAndHost', 'fetchValue'])
2055-
->disableOriginalConstructor()
2056-
->getMock();
2057-
2058-
$dbi->expects($this->once())
2059-
->method('getCurrentUserAndHost')
2060-
->will($this->returnValue(['groot_%', '%']));
2061-
$dbi->expects($this->exactly(2))
2062-
->method('fetchValue')
2063-
->withConsecutive(
2064-
[
2065-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES`'
2066-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'",
2067-
],
2068-
[
2069-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES`'
2070-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
2071-
. " AND 'my_data_base' LIKE `TABLE_SCHEMA`",
2072-
]
2073-
)
2074-
->willReturnOnConsecutiveCalls(false, false);
2033+
// phpcs:disable Generic.Files.LineLength.TooLong
2034+
$globalPrivilegeQuery = <<<'SQL'
2035+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'
2036+
SQL;
2037+
$databasePrivilegeQuery = <<<'SQL'
2038+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT' AND 'my_data_base' LIKE `TABLE_SCHEMA`
2039+
SQL;
2040+
// phpcs:enable
2041+
$dbiDummy = $this->createDbiDummy();
2042+
$dbiDummy->addResult('SELECT CURRENT_USER();', [['groot_%@%']]);
2043+
$dbiDummy->addResult($globalPrivilegeQuery, []);
2044+
$dbiDummy->addResult($databasePrivilegeQuery, []);
2045+
$GLOBALS['dbi'] = $this->createDatabaseInterface($dbiDummy);
20752046

2076-
$GLOBALS['dbi'] = $dbi;
20772047
$this->assertFalse(Util::currentUserHasPrivilege('EVENT', 'my_data_base'));
2048+
$dbiDummy->assertAllQueriesConsumed();
20782049
}
20792050

20802051
public function testCurrentUserHasNotUserPrivilegeAndNotDbPrivilegeButTablePrivilege(): void
20812052
{
2082-
$dbi = $this->getMockBuilder(DatabaseInterface::class)
2083-
->onlyMethods(['getCurrentUserAndHost', 'fetchValue'])
2084-
->disableOriginalConstructor()
2085-
->getMock();
2086-
2087-
$dbi->expects($this->once())
2088-
->method('getCurrentUserAndHost')
2089-
->will($this->returnValue(['groot_%', '%']));
2090-
$dbi->expects($this->exactly(3))
2091-
->method('fetchValue')
2092-
->withConsecutive(
2093-
[
2094-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES`'
2095-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'",
2096-
],
2097-
[
2098-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES`'
2099-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
2100-
. " AND 'my_data_base' LIKE `TABLE_SCHEMA`",
2101-
],
2102-
[
2103-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`TABLE_PRIVILEGES`'
2104-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
2105-
. " AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my_data_table'",
2106-
]
2107-
)
2108-
->willReturnOnConsecutiveCalls(false, false, 'EVENT');
2053+
// phpcs:disable Generic.Files.LineLength.TooLong
2054+
$globalPrivilegeQuery = <<<'SQL'
2055+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'
2056+
SQL;
2057+
$databasePrivilegeQuery = <<<'SQL'
2058+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT' AND 'my_data_base' LIKE `TABLE_SCHEMA`
2059+
SQL;
2060+
$tablePrivilegeQuery = <<<'SQL'
2061+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`TABLE_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT' AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my_data_table'
2062+
SQL;
2063+
// phpcs:enable
2064+
$dbiDummy = $this->createDbiDummy();
2065+
$dbiDummy->addResult('SELECT CURRENT_USER();', [['groot_%@%']]);
2066+
$dbiDummy->addResult($globalPrivilegeQuery, []);
2067+
$dbiDummy->addResult($databasePrivilegeQuery, []);
2068+
$dbiDummy->addResult($tablePrivilegeQuery, [['EVENT']]);
2069+
$GLOBALS['dbi'] = $this->createDatabaseInterface($dbiDummy);
21092070

2110-
$GLOBALS['dbi'] = $dbi;
21112071
$this->assertTrue(Util::currentUserHasPrivilege('EVENT', 'my_data_base', 'my_data_table'));
2072+
$dbiDummy->assertAllQueriesConsumed();
21122073
}
21132074

21142075
public function testCurrentUserHasNotUserPrivilegeAndNotDbPrivilegeAndNotTablePrivilege(): void
21152076
{
2116-
$dbi = $this->getMockBuilder(DatabaseInterface::class)
2117-
->onlyMethods(['getCurrentUserAndHost', 'fetchValue'])
2118-
->disableOriginalConstructor()
2119-
->getMock();
2120-
2121-
$dbi->expects($this->once())
2122-
->method('getCurrentUserAndHost')
2123-
->will($this->returnValue(['groot_%', '%']));
2124-
$dbi->expects($this->exactly(3))
2125-
->method('fetchValue')
2126-
->withConsecutive(
2127-
[
2128-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES`'
2129-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'",
2130-
],
2131-
[
2132-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES`'
2133-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
2134-
. " AND 'my_data_base' LIKE `TABLE_SCHEMA`",
2135-
],
2136-
[
2137-
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`TABLE_PRIVILEGES`'
2138-
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
2139-
. " AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my_data_table'",
2140-
]
2141-
)
2142-
->willReturnOnConsecutiveCalls(false, false, false);
2077+
// phpcs:disable Generic.Files.LineLength.TooLong
2078+
$globalPrivilegeQuery = <<<'SQL'
2079+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`USER_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'
2080+
SQL;
2081+
$databasePrivilegeQuery = <<<'SQL'
2082+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`SCHEMA_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT' AND 'my_data_base' LIKE `TABLE_SCHEMA`
2083+
SQL;
2084+
$tablePrivilegeQuery = <<<'SQL'
2085+
SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`TABLE_PRIVILEGES` WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT' AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my_data_table'
2086+
SQL;
2087+
// phpcs:enable
2088+
$dbiDummy = $this->createDbiDummy();
2089+
$dbiDummy->addResult('SELECT CURRENT_USER();', [['groot_%@%']]);
2090+
$dbiDummy->addResult($globalPrivilegeQuery, []);
2091+
$dbiDummy->addResult($databasePrivilegeQuery, []);
2092+
$dbiDummy->addResult($tablePrivilegeQuery, []);
2093+
$GLOBALS['dbi'] = $this->createDatabaseInterface($dbiDummy);
21432094

2144-
$GLOBALS['dbi'] = $dbi;
21452095
$this->assertFalse(Util::currentUserHasPrivilege('EVENT', 'my_data_base', 'my_data_table'));
2096+
$dbiDummy->assertAllQueriesConsumed();
21462097
}
21472098

21482099
/**

0 commit comments

Comments
 (0)