woocommerce/plugins/woocommerce-admin/tests/loader.php

82 lines
2.2 KiB
PHP

<?php
/**
* Loader tests
*
* @package WooCommerce\Admin\Tests\Loader
*/
use \Automattic\WooCommerce\Admin\Loader;
/**
* WC_Admin_Tests_Page_Loader Class
*
* @package WooCommerce\Admin\Tests\Loader
*/
class WC_Admin_Tests_Loader extends WP_UnitTestCase {
/**
* Setup
*/
public function setUp() {
add_filter( 'woocommerce_admin_features', array( $this, 'turn_on_unminified_js_feature' ), 20, 1 );
}
/**
* Tear Down
*/
public function tearDown() {
remove_filter( 'woocommerce_admin_features', array( $this, 'turn_on_unminified_js_feature' ), 20 );
}
/**
* Fitler to enable unminified-js feature.
*
* @param array $features Array of active features.
*/
public static function turn_on_unminified_js_feature( $features ) {
return array_merge( $features, array( 'unminified-js' ) );
}
/**
* Test get_url()
*/
public function test_get_url() {
$loader = Loader::get_instance();
$result = $loader->get_url( 'flavortown', 'js' );
// All we are concerned about in this test is the js filename. Pop it off the end of the asset url.
$parts = explode( '/', $result );
$final_file_name = array_pop( $parts );
// Since this can vary depending on the env the tests are running in, we will make this assertion based upon the SCRIPT_DEBUG value.
$expected_value = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? 'flavortown.js' : 'flavortown.min.js';
$this->assertEquals(
$expected_value,
$final_file_name,
'the anticipated js file name should use .min when SCRIPT_DEBUG is off, and have no .min when SCRIPT_DEBUG is on.'
);
}
/**
* Tests for should_use_minified_js_file
*/
public function test_should_use_minified_js_file() {
$loader = Loader::get_instance();
// We will simulate a call with SCRIPT_DEBUG on.
$script_debug = true;
$this->assertFalse(
$loader->should_use_minified_js_file( $script_debug ),
'Since unminifed js feature is TRUE/on, and script_debug is true, should_use_minified_js_file should return false'
);
// Now we will simulate SCRIPT_DEBUG off/false.
$script_debug = false;
$this->assertTrue(
$loader->should_use_minified_js_file( $script_debug ),
'Since unminifed js feature is TRUE/on, and script_debug is false, should_use_minified_js_file should return true'
);
}
}