session->set( 'wc_notices', null ); } /** * Test wc_notice_count(). * * @since 2.2 */ public function test_wc_notice_count() { // No error notices. $this->assertEquals( 0, wc_notice_count( 'error' ) ); // Single notice. wc_add_notice( 'Bogus Notice', 'success' ); $this->assertEquals( 1, wc_notice_count() ); // Specific notice. wc_add_notice( 'Bogus Error Notice', 'error' ); $this->assertEquals( 1, wc_notice_count( 'error' ) ); // Multiple notices of different types. wc_clear_notices(); wc_add_notice( 'Bogus 1', 'success' ); wc_add_notice( 'Bogus 2', 'success' ); wc_add_notice( 'Bogus Notice 1', 'notice' ); wc_add_notice( 'Bogus Notice 2', 'notice' ); wc_add_notice( 'Bogus Error Notice 1', 'error' ); wc_add_notice( 'Bogus Error Notice 2', 'error' ); $this->assertEquals( 6, wc_notice_count() ); // repeat with duplicates. wc_add_notice( 'Bogus 1', 'success' ); wc_add_notice( 'Bogus 2', 'success' ); wc_add_notice( 'Bogus Notice 1', 'notice' ); wc_add_notice( 'Bogus Notice 2', 'notice' ); wc_add_notice( 'Bogus Error Notice 1', 'error' ); wc_add_notice( 'Bogus Error Notice 2', 'error' ); $this->assertEquals( 12, wc_notice_count() ); } /** * Test wc_has_notice(). * * @since 2.2 */ public function test_wc_has_notice() { // Negative. wc_add_notice( 'Bogus Notice', 'success' ); $this->assertFalse( wc_has_notice( 'Legit Notice' ) ); // Positive. wc_add_notice( 'One True Notice', 'notice' ); $this->assertTrue( wc_has_notice( 'One True Notice', 'notice' ) ); } /** * Test wc_notice_add_notice(). * * @since 2.2 */ public function test_wc_add_notice() { // Default type. wc_add_notice( 'Test Notice' ); $notices = wc_get_notices(); $this->assertArrayHasKey( 'success', $notices ); $this->assertEquals( 'Test Notice', $notices['success'][0]['notice'] ); // Clear notices. WC()->session->set( 'wc_notices', null ); // Specific type. wc_add_notice( 'Test Error Notice', 'error', array( 'id' => 'billing_postcode' ) ); $notices = wc_get_notices(); $this->assertArrayHasKey( 'error', $notices ); $this->assertEquals( 'Test Error Notice', $notices['error'][0]['notice'] ); $this->assertEquals( array( 'id' => 'billing_postcode' ), $notices['error'][0]['data'] ); } /** * Test wc_clear_notices(). * * @since 2.2 */ public function test_wc_clear_notices() { wc_add_notice( 'Test Notice' ); wc_clear_notices(); $this->assertEmpty( WC()->session->get( 'wc_notices' ) ); } /** * Test wc_print_notices(). * * @since 2.2 */ public function test_wc_print_notices() { wc_add_notice( 'One True Notice', 'notice' ); wc_add_notice( 'Second True Notice', 'notice', array( 'id' => 'second_notice' ) ); $this->expectOutputString( '