Skip to content

Commit

Permalink
unit test for WPMessageDismissListener
Browse files Browse the repository at this point in the history
  • Loading branch information
vraja-pro committed Jul 27, 2023
1 parent c50aec2 commit 75dfc00
Showing 1 changed file with 86 additions and 0 deletions.
86 changes: 86 additions & 0 deletions tests/WPMessageDismissListenerTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<?php
/**
* WHIP libary test file.
*
* @package Yoast\WHIP
*/

/**
* Message Dismiss Listener unit tests.
*
* @coversDefaultClass Whip_WPMessageDismissListener
*/
class WPMessageDismissListener extends Whip_TestCase {

/**
* Tests the listen method.
*
* @covers ::listen
*
* @dataProvider listenProvider
*
* @param string $action The action to test.
* @param string $nonce The nonce to test.
* @param int $verifyNonceTimes The times to call wp_verify_nonce.
* @param bool $isCorrectNonce Whether the nonce is correct.
* @param bool $dismissTimes The times to call dismiss.
*/
public function testDismiss( $action, $nonce, $verifyNonceTimes, $isCorrectNonce, $dismissTimes ) {
$dismisser = $this->getMockBuilder( 'Whip_MessageDismisser' )
->disableOriginalConstructor()
->getMock();

$instance = new Whip_WPMessageDismissListener( $dismisser );

$_GET['action'] = $action;
$_GET['nonce'] = $nonce;

$dismisser->expects( $this->exactly( $verifyNonceTimes ) )
->method( 'verify_nonce' )
->with( $nonce, $action )
->willReturn( $isCorrectNonce );

$dismisser->expects( $this->exactly( $dismissTimes ) )
->method( 'dismiss' );

$instance->listen();
}

/**
* Data provider for testDismiss.
*
* @return array
*/
public function listenProvider() {
return array(
'correct action and nonce' => array(
'action' => Whip_WPMessageDismissListener::ACTION_NAME,
'nonce' => 'the_right_nonce',
'verifyNonceTimes' => 1,
'isCorrectNonce' => true,
'dismissTimes' => 1,
),
'incorrect action correct nonce' => array(
'action' => 'wrong_action',
'nonce' => 'the_right_nonce',
'verifyNonceTimes' => 0,
'isCorrectNonce' => false,
'dismissTimes' => 0,
),
'correct action incorrect nonce' => array(
'action' => Whip_WPMessageDismissListener::ACTION_NAME,
'nonce' => 'wrong_nonce',
'verifyNonceTimes' => 1,
'isCorrectNonce' => false,
'dismissTimes' => 0,
),
'incorrect action and nonce' => array(
'action' => 'wrong_action',
'nonce' => 'wrong_nonce',
'verifyNonceTimes' => 0,
'isCorrectNonce' => false,
'dismissTimes' => 0,
),
);
}
}

0 comments on commit 75dfc00

Please sign in to comment.