Commit Graph

1343 Commits

Author SHA1 Message Date
Mike Jolley 5feed3e0cc Merge branch 'master' into update/add-ext-object-cache-to-system-status 2018-02-19 14:39:31 +00:00
Steve Grunwell 7878a9582f Merge branch 'master' into tests/api-system-status 2018-02-15 23:16:58 +00:00
Steve Grunwell 19a35d630a Merge branch 'master' into tests/reports 2018-02-15 23:12:10 +00:00
Gerhard Potgieter 780905cd0e Merge branch 'master' into feature/product-custom-tables-supporting-changes 2018-02-08 10:11:27 +02:00
Rodrigo Primo 5be9d1b118 Remove all WC tables when uninstalling the plugin
There were two outdated lists of WC tables. One used to drop tables when WC is uninstalled and another one to drop tables when a site is deleted in a multi site environment. This commit creates a new unified list of WC tables, adds the missing tables to this list and introduces a unit test that will fail if the list gets outdated.
2018-02-06 11:19:40 -02:00
Mike Jolley 8fb8039b23
Merge pull request #18818 from woocommerce/fix/prevent-unsupported-downgrade
Don't call WC_Install::install() on downgrades
2018-02-06 12:46:42 +00:00
Rodrigo Primo 13f703fd32 Don't call WC_Install::install() on downgrades
WC doesn't support downgrades but the if condition that decides whether or not to call WC_Install::install() and apply database schema changes was checking if the WC version stored in the database is equal to the WC version in the code. This commit changes the check performed inside the if condition to verify if the WC version stored in the database is smaller than the version in the code. This way `dbDelta()` won't be called automatically by WC and revert database schema changes. This is particulary important for clustered providers where the version of the WC code running in one of the containers could be outdated and trigger a database downgrade.
2018-02-05 14:40:51 -02:00
Rodrigo Primo 16a44964f1 Remove unused code from WC_Tests_Install::test_check_version()
To test the method WC_Install::check_version() it is not necessary to update the of the option 'woocoommerce_db_version' as this method uses only 'woocommerce_version'.
2018-02-05 14:40:43 -02:00
Rodrigo Primo 13351b3d75 phpcs fixes
Removed the print_r() call as phpcs was complaining about it and there is no need to output the version values as phpunit will do that if the test fails.
2018-02-05 14:40:36 -02:00
Claudio Sanches 0755038e8d
Merge pull request #18505 from liquidweb/feature/post-system-status-tool-hook
Add a hook after executing a REST system status tool
2018-02-02 14:19:03 -02:00
Mike Jolley db54911443
Merge pull request #18752 from woocommerce/refactor/background-processing
Introduced new WC_Background_Process abstract class
2018-02-01 16:18:56 +00:00
Claudio Sanches b811dbbaec Applied new WC_Background_Process class 2018-02-01 11:42:34 -02:00
Mike Jolley 2ed9691c14 Fix shop on homepage with unsupported themes 2018-02-01 11:15:46 +00:00
Mike Jolley c8b14b6f76 Increase precision from 4 to 6 2018-01-30 15:00:53 +00:00
Rodrigo Primo 2feacfb47a Display whether or not external object cache is enabled
This commit adds a new line to the section "WordPress environment" of the system status page to indicate whether or not WP external object cache is enabled.
2018-01-29 15:56:01 -02:00
Rodrigo Primo 75fc594013 Manually fix coding standard violations that can't be fixed with phpcbf 2018-01-29 15:55:43 -02:00
Rodrigo Primo a15ecc1601 Automatically fix coding standard violations using phpcbf 2018-01-29 15:53:54 -02:00
Rodrigo Primo 9c4c006baa Fix: set orderby and order when calling WC_Customer_Download_Data_Store::get_downloads()
This commit fixes a bug in WC_Customer_Download_Data_Store::get_downloads() that made impossible to change the order in which the query returned the results. This method accepts the arguments `order_by` and `order` but it was ignoring them and always using the default values ('permission_id' and 'ASC' respectively).

One of the assertions of the WC_Customer_Download_Data_Store::get_downloads() test method was modified to make sure the code now works.

This bug was introduced by commit a443419.
2018-01-26 15:55:13 -02:00
Rodrigo Primo 07d00fc58e Make WC_Customer_Download() tests a bit faster
This commit simplifies WC_Customer_Download() tests by using hardcoded values for customer ID and e-mail instead of touching the database and creating a real customer for each test.
2018-01-26 15:44:23 -02:00
Steve Grunwell 16b59b60a0 Merge branch 'master' into feature/post-system-status-tool-hook 2018-01-24 01:45:44 +00:00
Rodrigo Primo 1195cf9eee Improve WC_Customer_Download_Data_Store::get_downloads() performance
This commit improves WC_Customer_Download_Data_Store::get_downloads() performance by changing the way the SQL query is built. Before this change, this method would get all table fields even when just the permission_id field is returned. Now the method will get from the database only the fields that will be returned. The fields retrieved from the database can be controlled using the parameter `$args['return']`:

- 'objects' (default): all fields are retrieved from the database and an array of WC_Customer_Download objects is returned.
- 'ids': gets and return only permision_ids
- comma separated list of fields (new option added by this commit): gets and return only the required fields. Examples: 'user_email,download_id,order_id' or 'order_id,download_count'.
2018-01-22 17:25:26 -02:00
Claudiu Lodromanean 1e2cdb67ad
Merge pull request #18535 from woocommerce/update/disable-all-payment-gateways-by-default
Disable all payment gateways by default
2018-01-22 11:04:21 -08:00
Rodrigo Primo 656356530a Use setUp() method in WC_Customer_Download() tests to remove code duplication 2018-01-22 14:43:28 -02:00
Rodrigo Primo 9eeb4cd0bd Add assertion to check WC_Customer_Download_Data_Store::get_downloads() when called with the 'return' param set to 'ids' 2018-01-22 11:01:00 -02:00
Rodrigo Primo 6bb79681b9 Fix PHPCS violations in class-wc-tests-customer-download.php 2018-01-22 10:59:09 -02:00
Steve Grunwell 183c1e9f9f Add 'public' visibility declarations to coupon test methods 2018-01-22 04:13:13 +00:00
Steve Grunwell 553aede081 Use strict comparison in test_wc_coupons_enabled() 2018-01-22 04:11:02 +00:00
Steve Grunwell 031469f643 Remove an unused variable in the test 2018-01-22 04:10:38 +00:00
Steve Grunwell 21771ebbd3 Ensure that WP_Coupon instances are instantiated with parentheses 2018-01-22 04:10:14 +00:00
Steve Grunwell 7cb8f46b0a *WHITESPACE ONLY* Equal sign and arrow alignment 2018-01-22 04:06:42 +00:00
Steve Grunwell 0766ed6ff7 Fix (or whitelist) coding standards violations in the test bootstrap file 2018-01-22 03:34:13 +00:00
Steve Grunwell bb5417c102 require_once is a language construct, not a function, and thus doesn't require parentheses. 2018-01-22 03:24:52 +00:00
Paul Dechov 0eebd2b72a Update payment gateway default enabled state in tests 2018-01-19 17:42:17 -05:00
Steve Grunwell 4d6a0ecb82 Merge branch 'master' into feature/post-system-status-tool-hook 2018-01-18 21:54:47 +00:00
Brent Sessions a01270f392 Rearranging some variables 2018-01-18 12:36:22 -08:00
Brent Sessions 45bf9d6805 Update install script to account for forked branch 2018-01-18 12:26:46 -08:00
Steve Grunwell 6aeba1d72a Instead of testing the output of the message, verify that the postmeta fields are being re-created. 2018-01-18 18:52:57 +00:00
Brent Sessions e372d55a3c Run e2e tests on Travis builds (#18374) 2018-01-18 16:42:19 -02:00
Steve Grunwell 90c1a310f1 For consistency with the other endpoints, rename the 'woocommerce_rest_system_status_tool_executed' hook to 'woocommerce_rest_insert_system_status_tool'.
Reference: https://github.com/woocommerce/woocommerce/pull/18505#pullrequestreview-89828432
2018-01-18 16:59:47 +00:00
Mike Jolley e905a009d0 CRUD tests 2018-01-18 15:07:05 +00:00
Mike Jolley 6fd40d7e37 Remove transaction tests 2018-01-18 14:48:43 +00:00
Mike Jolley 778ccf0606 Update unit test helpers to use CRUD methods 2018-01-18 10:48:26 +00:00
Steve Grunwell 86c449accf Add missing hard-stops and parentheses for new objects being instantiated, enabling tests/unit-tests/api/system-status.php to pass coding standard checks 2018-01-17 22:13:57 +00:00
Steve Grunwell fa42eb0edf Temporarily disable the WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar sniff at the end of the test_get_system_status_info_theme() method.
The wp_get_theme() function returns a WP_Theme object, which uses uppercase property names, which goes against typical WordPress conventions.

This uses the more modern (read: PHP_CodeSniffer 3.2.0+) syntax for temporarily disabling sniffs. For more details, please see https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-parts-of-a-file.
2018-01-17 22:11:32 +00:00
Steve Grunwell 6b79619983 Add a file-level docblock for the WC_Tests_REST_System_Status class 2018-01-17 22:10:55 +00:00
Steve Grunwell 1a0fd86de5 *WHITESPACE ONLY* Fix alignment of code to satisfy PHP_CodeSniffer 2018-01-17 21:50:26 +00:00
Steve Grunwell ff0e200ae5 Introduce the woocommerce_rest_system_status_tool_executed action, which fires after one of the WooCommerce REST system status tools is executed. 2018-01-17 21:48:23 +00:00
Steve Grunwell be05a55b9d Add missing documentation within the WC_Unit_Test_Case class that was causing CI to fail. 2018-01-15 17:38:13 +00:00
Steve Grunwell 6261ea6cbb Temporarily disable the WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar sniff at the end of the test_get_system_status_info_theme() method.
The wp_get_theme() function returns a WP_Theme object, which uses uppercase property names, which goes against typical WordPress conventions.

This uses the more modern (read: PHP_CodeSniffer 3.2.0+) syntax for temporarily disabling sniffs. For more details, please see https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-parts-of-a-file.
2018-01-15 17:21:35 +00:00
Steve Grunwell 00268c0fa2 Add a file-level docblock for the WC_Tests_REST_System_Status class 2018-01-15 17:06:42 +00:00
Steve Grunwell 477245c693 The WordPress coding standards dictate that new object instantiation should always use parenthesis 2018-01-15 17:05:01 +00:00
Steve Grunwell b4f14b4958 Add missing hard-stops at the end of comments, and a missing method comment for test_execute_system_tool_add_order_indexes() 2018-01-15 17:04:27 +00:00
Steve Grunwell 1843a05ea6 *WHITESPACE ONLY* Fix alignment of code to satisfy PHP_CodeSniffer 2018-01-15 17:03:36 +00:00
Steve Grunwell 8484991f99 Add tests around the add_order_indexes system status tool.
This test ensures that indexes are created within postmeta for any orders that are missing billing_address_index and/or shipping_address_index values.
2018-01-15 16:56:44 +00:00
Steve Grunwell d4ca2d87e8 It's only a single scenario, but start writing tests around how WC_Report_Sales_By_Date generates reports 2018-01-12 23:39:55 +00:00
Steve Grunwell e68084d7b8 Add a method by which testcases can load necessary files via include_once.
There are a number of files that are only loaded when another function is called (for example, load a reporting class when displaying a widget). An autoloader would be the ideal way to handle this (both in production and for tests), but until PHP compatibility is sorted out this commit adds an easy fix:

Testcases can now populate the protected, static $includes property with filepaths relative to the project root; when the testcase boots up, these files will automatically be included.
2018-01-12 21:33:20 +00:00
Steve Grunwell d0efd7251e Introduce some basic tests around getting data out of WC_Admin_Report.
The real value of these tests will be ensuring that data is being sourced correctly in the specific implementations of this class.
2018-01-12 19:55:33 +00:00
Mike Jolley dbdc3af9e5 Tests 2018-01-12 14:20:39 +00:00
Mike Jolley 97673e2de8 Fix wc_notice_count logic and add test 2018-01-10 12:43:48 +00:00
claudiulodro 1e0dbbf544 Better whitespace 2018-01-04 10:31:28 -08:00
claudiulodro 431c9b5766 Unit tests for order error handling 2018-01-04 10:28:52 -08:00
Mike Jolley 73d0c1062c Allow transactions to be forced on 2018-01-03 16:13:08 +00:00
Mike Jolley 7f18e15ff6 Transactions break unit tests 2018-01-03 15:47:55 +00:00
Mike Jolley 13602cd987
Merge pull request #18236 from woocommerce/fix/rest-api-add-coupons-order
REST API: Adding + removing coupons via API doesn't recalculate totals correctly
2018-01-03 11:37:23 +00:00
Mike Jolley ea090f849d
Merge pull request #18148 from woocommerce/update/e2e
Update e2e testing
2018-01-03 11:17:50 +00:00
claudiulodro 09ef2195be Manual set order tests 2017-12-22 11:35:52 -08:00
Claudiu Lodromanean 20f698db2b
Merge pull request #18219 from woocommerce/fix/18197
Compare the date modified when loading session data.
2017-12-22 08:17:14 -08:00
Mike Jolley e9105bd37d Fix tests 2017-12-21 19:00:55 +00:00
claudiulodro 1c8dd6acbb Proposed fix for api coupon recalculating 2017-12-20 11:37:35 -08:00
Kelly Dwan 70455b79a3 Add failing tests to demonstrate problem adding & removing coupons 2017-12-19 16:46:26 -05:00
claudiulodro b7c659ca07 Fix php <=5.6 errors 2017-12-19 11:37:37 -08:00
claudiulodro cff662ac47 phpcs 2017-12-19 09:30:02 -08:00
claudiulodro 3461fd2a3a Array access tests 2017-12-19 09:22:17 -08:00
claudiulodro 2c884c0003 Progress on order item tests 2017-12-18 14:45:39 -08:00
Claudio Sanches e68c28589b
Merge pull request #18216 from woocommerce/update/phpcs-ruleset-file-name
Use default name for PHPCS configuration file
2017-12-18 12:56:25 -02:00
Claudiu Lodromanean df2aded066 WC_Query unit tests (#18180)
* Begin WC_Query tests

* Some tests

* WC_Query unit tests
2017-12-18 12:01:27 -02:00
Gerhard Potgieter 25c4a84491 Add more core-functions unit tests (#18190)
* Pass through additional args to wc_create_order in test

* Pass extra args to wc_create_order to improve coverage, test WP_Error check of wc_create_order

* wc_get_template_part test

* wc_enqueue_js test

* wc_get_log_file_name test

* wc_get_page_children test

* hash_equals test

* wc_rand_hash test

* wc_transaction_query test

* Fix script test and phpcs stuff

* Fix widget tests

* Move tests to correct file and fix phpcs
2017-12-18 11:58:40 -02:00
Rodrigo Primo bf052c14c7 Use default name for PHPCS configuration file
This commit renames PHPCS configutarion file to `phpcs.xml`. With the default name, it is not necessary to use the argument `--standard=phpcs.ruleset.xml` anymore when calling `phpcs`.
2017-12-18 11:49:44 -02:00
Gerhard Potgieter d512421fa1 Make the test work on any test platform 2017-12-15 14:51:47 +02:00
Gerhard Potgieter 58457dab3a Unit tests for wc_is_active_theme 2017-12-15 14:43:56 +02:00
Claudiu Lodromanean 650faf6450
Merge pull request #18169 from woocommerce/add/unit-tests
Widget unit tests
2017-12-14 13:19:21 -08:00
Mike Jolley 1555507756
Merge pull request #18123 from woocommerce/update/setup-wizard-omit-paypal-standard
Setup wizard: Omit PayPal Standard unless plugins cannot be installed
2017-12-14 16:42:03 +00:00
Gerhard Potgieter 549b4bfa1a Widget unit tests 2017-12-14 13:57:53 +02:00
Gerhard Potgieter 276bff133f Improve unit test coverage (#18136)
* 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
2017-12-14 08:45:00 -02:00
Gerhard Potgieter 2f477887fb Merge branch 'master' of github.com:woocommerce/woocommerce into add/unit-tests 2017-12-14 10:56:01 +02:00
Gerhard Potgieter 89d0aa0a2f WC_Customer_Download_Data_Store tests 2017-12-14 10:12:56 +02:00
claudiulodro da5eb4abd4 Update e2e sql db 2017-12-13 12:58:18 -08:00
claudiulodro f6f8c93e26 Update e2e tests and library 2017-12-13 12:14:53 -08:00
Claudiu Lodromanean b0189363c2
Merge pull request #18137 from woocommerce/fix/failing-get-billing-email-test
Add exception message to fix failing test
2017-12-13 09:51:44 -08:00
Gerhard Potgieter b39ab218dd Cart get_tax_totals test 2017-12-13 16:42:09 +02:00
Paul Dechov 8f3de46637
Merge branch 'master' into update/setup-wizard-omit-paypal-standard 2017-12-13 09:41:25 -05:00
Paul Dechov f4c557a9be Add test verifying that the correct list of payment gateways is returned per country 2017-12-13 09:35:43 -05:00
Gerhard Potgieter deb2ad8f40 Cart get_cross_sells test 2017-12-13 16:33:17 +02:00
Gerhard Potgieter 2f239311f2 Check_cart_item_stock test 2017-12-13 16:30:47 +02:00
Rodrigo Primo 2329e4f526 Add exception message to fix failing test
This commit adds the exception message thrown when WC_Order::set_billing_email() is called with an invalid message to a test to fix it.

I couldn't find what change in WC codebase broke the test and I'm not sure why it is failing only when running using PHP 5.6:

https://travis-ci.org/woocommerce/woocommerce/jobs/315750242#L600
2017-12-13 12:28:48 -02:00
Gerhard Potgieter 2e7a47d9df check_cart_items test 2017-12-13 16:22:11 +02:00
Rodrigo Primo ddc2d926fc PHPCS: fix violations manually 2017-12-13 12:19:51 -02:00
Gerhard Potgieter 6560dd42ab get_cart_item_quantities & get_cart_contents_weight tests 2017-12-13 16:17:09 +02:00
Rodrigo Primo c4665bff46 Automatic PHPCS fixes using phpcbf 2017-12-13 12:11:47 -02:00
Gerhard Potgieter 4eb971e81d get_cart_item_quantities test 2017-12-13 16:10:25 +02:00