. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 172.67.135.14 / Your IP :
216.73.216.209 [
Web Server : LiteSpeed System : Linux premium35.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : lasanffc ( 2331) PHP Version : 8.0.30 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/lasanffc/public_html/wp-content/plugins/cloudflare/src/Test/WordPress/ |
Upload File : |
<?php
namespace CF\Test\WordPress;
use CF\WordPress\Hooks;
use CF\Integration\DefaultIntegration;
use phpmock\phpunit\PHPMock;
class HooksTest extends \PHPUnit\Framework\TestCase
{
use PHPMock;
protected $hooks;
protected $mockConfig;
protected $mockDataStore;
protected $mockLogger;
protected $mockWordPressAPI;
protected $mockWordPressClientAPI;
protected $mockDefaultIntegration;
protected $mockProxy;
public function setup(): void
{
$this->mockConfig = $this->getMockBuilder('CF\Integration\DefaultConfig')
->disableOriginalConstructor()
->getMock();
$this->mockDataStore = $this->getMockBuilder('CF\WordPress\DataStore')
->disableOriginalConstructor()
->getMock();
$this->mockLogger = $this->getMockBuilder('\Psr\Log\LoggerInterface')
->disableOriginalConstructor()
->getMock();
$this->mockProxy = $this->getMockBuilder('CF\WordPress\Proxy')
->disableOriginalConstructor()
->getMock();
$this->mockWordPressAPI = $this->getMockBuilder('CF\WordPress\WordPressAPI')
->disableOriginalConstructor()
->getMock();
$this->mockWordPressClientAPI = $this->getMockBuilder('CF\WordPress\WordPressClientAPI')
->disableOriginalConstructor()
->getMock();
$this->mockDefaultIntegration = new DefaultIntegration($this->mockConfig, $this->mockWordPressAPI, $this->mockDataStore, $this->mockLogger);
$this->hooks = $this->getMockBuilder('\CF\WordPress\Hooks')
->disableOriginalConstructor()
->setMethods(array('__construct')) // This is a hack to make the tests work
->getMock();
$this->hooks->setAPI($this->mockWordPressClientAPI);
$this->hooks->setConfig($this->mockConfig);
$this->hooks->setDataStore($this->mockDataStore);
$this->hooks->setLogger($this->mockLogger);
$this->hooks->setIntegrationAPI($this->mockWordPressAPI);
$this->hooks->setIntegrationContext($this->mockDefaultIntegration);
$this->hooks->setProxy($this->mockProxy);
}
public function testCloudflareConfigPageCallsAddOptionsPageHookIfItExists()
{
$mockFunctionExists = $this->getFunctionMock('CF\WordPress', 'function_exists');
$mockFunctionExists->expects($this->once())->willReturn(true);
$mock__ = $this->getFunctionMock('CF\WordPress', '__');
$mockAddOptionsPage = $this->getFunctionMock('CF\WordPress', 'add_options_page');
$mockAddOptionsPage->expects($this->once());
$this->hooks->cloudflareConfigPage();
}
public function testPluginActionLinksGetAdminUrl()
{
$mockGetAdminUrl = $this->getFunctionMock('CF\WordPress', 'get_admin_url');
$url = 'options-general.php?page=cloudflare';
$link = '<a href="'.$url.'">Settings</a>';
$mockGetAdminUrl->expects($this->once())->with(null, $url)->willReturn($url);
$this->assertEquals(array($link), $this->hooks->pluginActionLinks(array()));
}
public function testInitProxyCallsProxyRun()
{
$this->mockWordPressAPI->method('isCurrentUserAdministrator')->willReturn(true);
$this->mockProxy->expects($this->once())->method('run');
$this->hooks->initProxy();
}
public function testActivateChecksWPVersionAndCurl()
{
define('CLOUDFLARE_MIN_WP_VERSION', '3.4');
$GLOBALS['wp_version'] = '3.5';
$this->assertTrue($this->hooks->activate());
}
public function testDeactivateCallsClearDataStore()
{
$this->mockDataStore->expects($this->once())->method('clearDataStore');
$this->hooks->deactivate();
}
public function testPurgeCacheCallsZonePurgeCache()
{
$this->mockDataStore->method('getPluginSetting')->willReturn(array('value' => 'value'));
$this->mockWordPressAPI->method('getDomainList')->willReturn(array('domain.com'));
$this->mockWordPressClientAPI->method('getZoneTag')->willReturn('zoneTag');
$this->mockWordPressClientAPI->expects($this->once())->method('zonePurgeCache');
$this->hooks->purgeCacheEverything();
}
}