We were earlier rounding different tax rate values while they are merged, even if rounding at subtotal setting is enabled. This increases the rounding error, especially when prices are inclusive of taxes, and thus there is a chance that the total will be slightly different from when add the original values. For egs: https://github.com/woocommerce/woocommerce/issues/23917 .
This commit changes this behavior to round *after* we have summed all the precise unround values. Similar for items prices, we now round as late as possible, if rounding at subtotal is enabled.
This commit fixes all 1533 PHPCS errors that PHPCBF can fix automatically in the tests/ directory. Before this change there was a total of 3106 PHPCS errors in the WooCommerce repository and now there is 1573 errors.
This commit removes a bunch of unnecessary cleanup code from cart tests. All database changes are automatically reverted after each test, so it is not necessary to write code inside the test to manually revert the changes that were made. One test method was split into three different methods for clarity and to avoid having to revert database changes manually between each part of the test.
This change makes the tests easier to read but also reduced the execution time of the cart tests in about 15%.
* Test for main WooCommerce class
* Check all class instances created from main class.
* Test all constants
* Test for deprecated hook handler classes as well
* Test template path constant
* Check static class instances
* get_cart_item_quantities test
* get_cart_item_quantities & get_cart_contents_weight tests
* check_cart_items test
* Check_cart_item_stock test
* Cart get_cross_sells test
* Cart get_tax_totals test
* WC_Customer_Download_Data_Store tests
* Add unit tests to compare cloned cart objects to original
* Don't use reflection for fees test
* Skip test using ReflectionProperty::setAccessible() below PHP 5.3