#/** * @package Akismet */ /* Plugin Name: Akismet Anti-spam: Spam Protection Plugin URI: https://akismet.com/ Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam. Akismet Anti-spam keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. Version: 5.4 Requires at least: 5.8 Requires PHP: 7.2 Author: Automattic - Anti-spam Team Author URI: https://automattic.com/wordpress-plugins/ License: GPLv2 or later Text Domain: akismet */ /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Copyright 2005-2025 Automattic, Inc. */ // Make sure we don't expose any info if called directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 62.109.13.187 / Your IP : 216.73.216.11 [ Web Server : Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 OpenSSL/1.0.2k-fips PHP/8.2.28 System : Linux robothost.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : mosrembit ( 6064) PHP Version : 8.2.28 Disable Function : NONE Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/phpMyAdmin/test/libraries/ |
Upload File : |
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Tests for server_user_groups.lib.php
*
* @package PhpMyAdmin-test
*/
require_once 'libraries/php-gettext/gettext.inc';
require_once 'libraries/Util.class.php';
require_once 'libraries/Theme.class.php';
require_once 'libraries/relation.lib.php';
require_once 'libraries/database_interface.inc.php';
require_once 'libraries/url_generating.lib.php';
/*
* Include to test.
*/
require_once 'libraries/server_user_groups.lib.php';
/**
* Tests for server_user_groups.lib.php
*
* @package PhpMyAdmin-test
*/
class PMA_ServerUserGroupsTest extends PHPUnit_Framework_TestCase
{
/**
* Prepares environment for the test.
*
* @return void
*/
public function setUp()
{
$GLOBALS['cfg']['ServerDefault'] = 1;
$GLOBALS['cfg']['ActionLinksMode'] = 'both';
$GLOBALS['server'] = 1;
$_SESSION['relation'][$GLOBALS['server']] = array(
'db' => 'pmadb',
'users' => 'users',
'usergroups' => 'usergroups'
);
$GLOBALS['pmaThemeImage'] = 'image';
$_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme');
$_SESSION['PMA_Theme'] = new PMA_Theme();
}
/**
* Tests PMA_getHtmlForUserGroupsTable() function when there are no user groups
*
* @return void
* @group medium
*/
public function testGetHtmlForUserGroupsTableWithNoUserGroups()
{
$expectedQuery = "SELECT * FROM `pmadb`.`usergroups`"
. " ORDER BY `usergroup` ASC";
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('tryQuery')
->with($expectedQuery)
->will($this->returnValue(true));
$dbi->expects($this->once())
->method('numRows')
->withAnyParameters()
->will($this->returnValue(0));
$dbi->expects($this->once())
->method('freeResult');
$GLOBALS['dbi'] = $dbi;
$html = PMA_getHtmlForUserGroupsTable();
$this->assertNotContains(
'<table id="userGroupsTable">',
$html
);
$url_tag = '<a href="server_user_groups.php'
. PMA_URL_getCommon(array('addUserGroup' => 1));
$this->assertContains(
$url_tag,
$html
);
}
/**
* Tests PMA_getHtmlForUserGroupsTable() function when there are user groups
*
* @return void
*/
public function testGetHtmlForUserGroupsTableWithUserGroups()
{
$expectedQuery = "SELECT * FROM `pmadb`.`usergroups`"
. " ORDER BY `usergroup` ASC";
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('tryQuery')
->with($expectedQuery)
->will($this->returnValue(true));
$dbi->expects($this->once())
->method('numRows')
->withAnyParameters()
->will($this->returnValue(1));
$dbi->expects($this->at(2))
->method('fetchAssoc')
->withAnyParameters()
->will(
$this->returnValue(
array(
'usergroup' => 'usergroup',
'tab' => 'server_sql',
'allowed' => 'Y'
)
)
);
$dbi->expects($this->at(3))
->method('fetchAssoc')
->withAnyParameters()
->will($this->returnValue(false));
$dbi->expects($this->once())
->method('freeResult');
$GLOBALS['dbi'] = $dbi;
$html = PMA_getHtmlForUserGroupsTable();
$this->assertContains(
'<td>usergroup</td>',
$html
);
$url_tag = '<a class="" href="server_user_groups.php'
. PMA_URL_getCommon(
array(
'viewUsers'=>1, 'userGroup'=>htmlspecialchars('usergroup')
)
);
$this->assertContains(
$url_tag,
$html
);
$url_tag = '<a class="" href="server_user_groups.php'
. PMA_URL_getCommon(
array(
'editUserGroup'=>1,
'userGroup'=>htmlspecialchars('usergroup')
)
);
$this->assertContains(
$url_tag,
$html
);
$url_tag = '<a class="deleteUserGroup ajax" href="server_user_groups.php'
. PMA_URL_getCommon(
array(
'deleteUserGroup'=> 1,
'userGroup'=>htmlspecialchars('usergroup')
)
);
$this->assertContains(
$url_tag,
$html
);
}
/**
* Tests PMA_deleteUserGroup() function
*
* @return void
*/
public function testDeleteUserGroup()
{
$userDelQuery = "DELETE FROM `pmadb`.`users`"
. " WHERE `usergroup`='ug'";
$userGrpDelQuery = "DELETE FROM `pmadb`.`usergroups`"
. " WHERE `usergroup`='ug'";
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->at(0))
->method('query')
->with($userDelQuery);
$dbi->expects($this->at(1))
->method('query')
->with($userGrpDelQuery);
$GLOBALS['dbi'] = $dbi;
PMA_deleteUserGroup('ug');
}
/**
* Tests PMA_getHtmlToEditUserGroup() function
*
* @return void
*/
public function testGetHtmlToEditUserGroup()
{
// adding a user group
$html = PMA_getHtmlToEditUserGroup();
$this->assertContains(
'<input type="hidden" name="addUserGroupSubmit" value="1"',
$html
);
$this->assertContains(
'<input type="text" name="userGroup"',
$html
);
$expectedQuery = "SELECT * FROM `pmadb`.`usergroups`"
. " WHERE `usergroup`='ug'";
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->once())
->method('tryQuery')
->with($expectedQuery)
->will($this->returnValue(true));
$dbi->expects($this->at(1))
->method('fetchAssoc')
->withAnyParameters()
->will(
$this->returnValue(
array(
'usergroup' => 'ug',
'tab' => 'server_sql',
'allowed' => 'Y'
)
)
);
$dbi->expects($this->at(2))
->method('fetchAssoc')
->withAnyParameters()
->will($this->returnValue(false));
$dbi->expects($this->once())
->method('freeResult');
$GLOBALS['dbi'] = $dbi;
// editing a user group
$html = PMA_getHtmlToEditUserGroup('ug');
$this->assertContains(
'<input type="hidden" name="userGroup" value="ug"',
$html
);
$this->assertContains(
'<input type="hidden" name="editUserGroupSubmit" value="1"',
$html
);
$this->assertContains(
'<input type="hidden" name="editUserGroupSubmit" value="1"',
$html
);
$this->assertContains(
'<input type="checkbox" class="checkall" checked="checked"'
. ' name="server_sql" value="Y" />',
$html
);
$this->assertContains(
'<input type="checkbox" class="checkall"'
. ' name="server_databases" value="Y" />',
$html
);
}
}
?>