Skip to content
Snippets Groups Projects
Commit 17eff47c authored by Grzegorz Rola's avatar Grzegorz Rola
Browse files

More functions

parent 5af8936b
No related branches found
No related tags found
1 merge request!9Feature/wpdesk notices action
Pipeline #8442 passed
This commit is part of merge request !9. Comments created here will be created in the context of that merge request.
......@@ -12,6 +12,7 @@
<directory suffix=".php">src</directory>
<exclude>
<file>src/init.php</file>
<directory>src/assets</directory>
<directory suffix=".php">tests</directory>
<directory suffix=".php">vendor</directory>
</exclude>
......
......@@ -16,6 +16,8 @@ class Notice
const NOTICE_TYPE_SUCCESS = 'success';
const NOTICE_TYPE_INFO = 'info';
const ADMIN_FOOTER_BASE_PRIORITY = 9999999;
/**
* Notice type.
*
......@@ -156,7 +158,11 @@ class Notice
{
if (!$this->actionAdded) {
add_action('admin_notices', [$this, 'showNotice'], $this->priority);
add_action('admin_footer', [$this, 'showNotice'], $this->priority);
add_action(
'admin_footer',
[$this, 'showNotice'],
self::ADMIN_FOOTER_BASE_PRIORITY + intval($this->priority)
);
$this->actionAdded = true;
}
}
......@@ -165,7 +171,11 @@ class Notice
{
if ($this->actionAdded) {
remove_action('admin_notices', [$this, 'showNotice'], $this->priority);
remove_action('admin_footer', [$this, 'showNotice'], $this->priority);
remove_action(
'admin_footer',
[$this, 'showNotice'],
self::ADMIN_FOOTER_BASE_PRIORITY + intval($this->priority)
);
$this->actionAdded = false;
}
}
......
......@@ -32,6 +32,146 @@ function wpdesk_notice($noticeContent, $noticeType = 'info', $dismissible = fals
return WPDeskNotice($noticeContent, $noticeType, $dismissible, $priority);
}
/**
* Creates Notice Info.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function WPDeskNoticeInfo($noticeContent, $dismissible = false, $priority = 10)
{
return \WPDesk\Notice\Factory::notice(
$noticeContent,
\WPDesk\Notice\Notice::NOTICE_TYPE_INFO,
$dismissible,
$priority
);
}
/**
* Creates Notice Info.
*
* Alias for {@see WPDeskNoticeInfo()} function.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function wpdesk_notice_info($noticeContent, $dismissible = false, $priority = 10)
{
return WPDeskNoticeInfo($noticeContent, $dismissible, $priority);
}
/**
* Creates Notice Error.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function WPDeskNoticeError($noticeContent, $dismissible = false, $priority = 10)
{
return \WPDesk\Notice\Factory::notice(
$noticeContent,
\WPDesk\Notice\Notice::NOTICE_TYPE_ERROR,
$dismissible,
$priority
);
}
/**
* Creates Notice Error.
*
* Alias for {@see WPDeskNoticeError()} function.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function wpdesk_notice_error($noticeContent, $dismissible = false, $priority = 10)
{
return WPDeskNoticeError($noticeContent, $dismissible, $priority);
}
/**
* Creates Notice Warning.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function WPDeskNoticeWarning($noticeContent, $dismissible = false, $priority = 10)
{
return \WPDesk\Notice\Factory::notice(
$noticeContent,
\WPDesk\Notice\Notice::NOTICE_TYPE_WARNING,
$dismissible,
$priority
);
}
/**
* Creates Notice Warning.
*
* Alias for {@see WPDeskNoticeWarning()} function.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function wpdesk_notice_warning($noticeContent, $dismissible = false, $priority = 10)
{
return WPDeskNoticeWarning($noticeContent, $dismissible, $priority);
}
/**
* Creates Notice Success.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function WPDeskNoticeSuccess($noticeContent, $dismissible = false, $priority = 10)
{
return \WPDesk\Notice\Factory::notice(
$noticeContent,
\WPDesk\Notice\Notice::NOTICE_TYPE_SUCCESS,
$dismissible,
$priority
);
}
/**
* Creates Notice Success.
*
* Alias for {@see WPDeskNoticeSuccess()} function.
*
* @param string $noticeContent Notice content.
* @param bool $dismissible Dismissible notice.
* @param int $priority Notice priority,
*
* @return \WPDesk\Notice\Notice
*/
function wpdesk_notice_success($noticeContent, $dismissible = false, $priority = 10)
{
return WPDeskNoticeSuccess($noticeContent, $dismissible, $priority);
}
/**
* Creates Permanent Dismissible Notice.
*
......
<?php
include './WPDesk/Notice/AjaxHandler.php';
include './WPDesk/Notice/Notice.php';
include './WPDesk/Notice/PermanentDismissibleNotice.php';
require_once './WPDesk/Notice/AjaxHandler.php';
require_once './WPDesk/Notice/Notice.php';
require_once './WPDesk/Notice/PermanentDismissibleNotice.php';
require_once './WPDesk/Notice/Factory.php';
version: '2.0'
services:
wordpress:
image: wpdesknet/phpunit-woocommerce:0-0
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql0
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql0
wordpress-0-1:
image: wpdesknet/phpunit-woocommerce:0-1
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql1
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql1
wordpress-0-2:
image: wpdesknet/phpunit-woocommerce:0-2
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql2
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql2
wordpress-0-3:
image: wpdesknet/phpunit-woocommerce:0-3
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql3
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql3
wordpress-0-4:
image: wpdesknet/phpunit-woocommerce:0-4
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql4
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql4
wordpress-0-5:
image: wpdesknet/phpunit-woocommerce:0-5
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql5
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql5
wordpress-1-0:
image: wpdesknet/phpunit-woocommerce:1-0
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql0
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql0
wordpress-2-0:
image: wpdesknet/phpunit-woocommerce:2-0
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql0
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql0
wordpress-3-0:
image: wpdesknet/phpunit-woocommerce:3-0
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql0
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql0
wordpress-4-0:
image: wpdesknet/phpunit-woocommerce:4-0
volumes:
- .././:/opt/project
- ../.././:/tmp/plugins
depends_on:
- mysql0
environment:
WORDPRESS_DB_NAME: wptest
WORDPRESS_DB_USER: mysql
WORDPRESS_DB_PASSWORD: mysql
WORDPRESS_DB_HOST: mysql0
mysql0:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: wptest
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
mysql1:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: wptest
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
mysql2:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: wptest
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
mysql3:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: wptest
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
mysql4:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: wptest
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
mysql5:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_DATABASE: wptest
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
......@@ -23,6 +23,62 @@ class TestFunctions extends WP_UnitTestCase
$notice->showNotice();
}
/**
* Test WPDeskNoticeInfo function.
*/
public function testWPDeskNoticeInfo()
{
$notice = wpdesk_notice_info('test function');
$this->assertInstanceOf(Notice::class, $notice);
$this->expectOutputString('<div class="notice notice-info"><p>test function</p></div>');
$notice->showNotice();
}
/**
* Test WPDeskNoticeError function.
*/
public function testWPDeskNoticeError()
{
$notice = wpdesk_notice_error('test function');
$this->assertInstanceOf(Notice::class, $notice);
$this->expectOutputString('<div class="notice notice-error"><p>test function</p></div>');
$notice->showNotice();
}
/**
* Test WPDeskNoticeWarning function.
*/
public function testWPDeskNoticeWarning()
{
$notice = wpdesk_notice_warning('test function');
$this->assertInstanceOf(Notice::class, $notice);
$this->expectOutputString('<div class="notice notice-warning"><p>test function</p></div>');
$notice->showNotice();
}
/**
* Test WPDeskNoticeSuccess function.
*/
public function testWPDeskNoticeSuccess()
{
$notice = wpdesk_notice_success('test function');
$this->assertInstanceOf(Notice::class, $notice);
$this->expectOutputString('<div class="notice notice-success"><p>test function</p></div>');
$notice->showNotice();
}
/**
* Test WPDeskPermanentDismissibleNotice function.
*/
......
......@@ -13,7 +13,14 @@ class TestNotice extends WP_UnitTestCase
$this->assertEquals($notice_priority, has_action('admin_notices', [$notice, 'showNotice'], $notice_priority));
$this->assertEquals($notice_priority, has_action('admin_footer', [$notice, 'showNotice'], $notice_priority));
$this->assertEquals(
Notice::ADMIN_FOOTER_BASE_PRIORITY + intval($notice_priority),
has_action(
'admin_footer',
[$notice, 'showNotice'],
Notice::ADMIN_FOOTER_BASE_PRIORITY + intval($notice_priority)
)
);
}
public function testShowNotice()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment