<?php class Test_Basic_Requirement_Checker_Factory extends PHPUnit\Framework\TestCase { public function test_can_create_checker_withn_valid_requirements() { $existing_locale = 'pl_PL'; $requirements = array( 'php' => '5.6', 'wp' => '4.5', 'plugins' => array( array( 'name' => 'woocommerce/woocommerce.php', 'nice_name' => 'WooCommerce', ), ), 'repo_plugins' => array( array( 'name' => 'flexible-checkout-fields/flexible-checkout-fields.php', 'version' => '1.0', 'nice_name' => 'Flexible Checkout Fields', ), ), ); WP_Mock::wpFunction( 'get_locale' ) ->andReturn( $existing_locale ); $factory = new WPDesk_Basic_Requirement_Checker_Factory(); $checker = $factory->create_from_requirement_array( 'whatever', 'whatever', $requirements ); WP_Mock::wpFunction( 'get_plugins' ) ->andReturn( array() ); WP_Mock::wpFunction( 'get_option' ) ->withArgs( array( 'active_plugins', array() ) ) ->andReturn( array() ); WP_Mock::passthruFunction( 'self_admin_url' ); WP_Mock::passthruFunction( 'wp_kses' ); WP_Mock::passthruFunction( 'wp_nonce_url' ); WP_Mock::passthruFunction( 'wp_create_nonce' ); WP_Mock::passthruFunction( 'admin_url' ); $this->assertFalse( $checker->are_requirements_met(), '2 plugins required and there should be none activated' ); $this->expectOutputRegex( '/Flexible Checkout Fields/' ); $this->expectOutputRegex( '/WooCommerce/' ); $checker->handle_render_notices_action(); } }