woocommerce/plugins/woocommerce-blocks/tests/php/Domain/Package.php

50 lines
1.2 KiB
PHP
Raw Normal View History

Implement PHP DI container and refactor. Also implements new Asset data interface for extendable settings passed to js. (https://github.com/woocommerce/woocommerce-blocks/pull/956) * Add dependency injection container for blocks * Add new Pacakge and Bootstrap classes. - Bootstrap for bootstrapping the plugin. - Package will replace `src/Package` and added as a dependency for any classes needing package info. * Introduce AssetsDataRegistry for managing asset data * refactor existing classes to use new DIC and Asset Data Registry - this is the bare minimum needed to make this pull viable. - further refactors will be done in more atomic smaller pulls for easier review. * add new settings handling and export `@woocommerce/settings` as an alias to wc.wcSettings - the export is exposed php side on the `wc-settings` handle. * Remove unnecessary concatenation * Fix typos and improve doc blocks * fix php linting issue * Use better escaping function. * improve jsdoc spacing * improve test assertion * use fully qualified class names in bootstrap * improve comment block to account for dynamic version string replace on build * handle exceptions a bit differently * correct dependency reference in webpack config * remove blank lines * fix doc block comment alignment * Various doc/grammar/spacing fixes from code review. Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com> * improve naming, documentation and logic of filter callbacks While this is intended for sanitization/validation, the callback ultimately provides flexibility for filtering the value before returning or setting in state so `filter` is a better name for this.
2019-09-23 18:07:13 +00:00
<?php
namespace Automattic\WooCommerce\Blocks\Tests\Domain\Package;
use \WP_UnitTestCase;
use Automattic\WooCommerce\Blocks\Domain\Package as TestedPackage;
/**
* Tests the Package class
*
* @since $VID:$
*/
class Package extends WP_UnitTestCase {
private function get_package() {
return new TestedPackage( '1.0.0', __FILE__ );
}
public function test_get_version() {
$this->assertEquals( '1.0.0', $this->get_package()->get_version() );
}
public function test_get_plugin_file() {
$this->assertEquals( __FILE__, $this->get_package()->get_plugin_file() );
}
public function test_get_path() {
$package = $this->get_package();
// test without relative
$this->assertEquals( dirname( __FILE__ ) . '/', $package->get_path() );
//test with relative
$expect = dirname( __FILE__ ) . '/build/test';
$this->assertEquals( $expect, $package->get_path( 'build/test') );
}
public function test_get_url() {
$package = $this->get_package();
$test_url = plugin_dir_url( __FILE__ );
// test without relative
$this->assertEquals( $test_url, $package->get_url() );
//test with relative
$this->assertEquals(
$test_url . 'build/test',
$package->get_url( 'build/test' )
);
}
}