Commit Graph

34943 Commits

Author SHA1 Message Date
Ron Rennick 1215844b05 update timezone unit tests to support WP 5.3/5.4 2020-05-29 08:29:35 -03:00
Ron Rennick 7fbe912e19 use wp_timezone_string when available 2020-05-29 07:54:43 -03:00
Peter Fabian 2394da73b4 Merge branch 'master' into refactor/23783 2020-05-28 11:19:03 +02:00
Peter Fabian 30fe1cde72 Moved unit tests to the new location. 2020-05-28 11:18:47 +02:00
Peter Fabian fabebd9c6a
Merge pull request #26614 from spacedmonkey/patch-1
Add requires headers in plugin
2020-05-28 09:55:51 +02:00
Jonny Harris 3a9f8875c5
Update woocommerce.php 2020-05-27 23:44:30 +01:00
Christopher Allford efebb4058d Marked all of the feature plugin packages as ignored in the renovate config
Since we're going to require package updates to follow a specific PR template, it doesn't make much sense to automatically submit a PR for this through renovate.
2020-05-27 13:49:54 -07:00
vedanshujain bbb7600f87 Add unit test for calculation based on rounding pref 2020-05-27 23:55:46 +05:30
vedanshujain d904db815d Disable flaky test which was causing many calculation tests to fail. 2020-05-27 23:53:20 +05:30
vedanshujain 3dc7df7af9 Use common code and round in subtotal.
We round in `get_subtotal` because its a front-end method. If more precision is required then `get_cart_subtotal_for_order` needs to be called. Also use same `get_cart_subtotal_for_order` method here as well for consistency.
2020-05-27 23:48:47 +05:30
Peter Fabian 137cc4f150
Merge pull request #26615 from woocommerce/update/readme-sync-pre4.2
Updated readme: stable version to 4.1.1 and changelog for 4.2
2020-05-27 19:10:14 +02:00
Peter Fabian d71f223bb2 Readme bumped to 4.3
As it's past the point of creating release/4.2 branch.
2020-05-27 16:58:11 +02:00
Peter Fabian bd2130c425 Merge branch 'update/readme-sync-pre4.2' of https://github.com/woocommerce/woocommerce into update/readme-sync-pre4.2 2020-05-27 16:55:28 +02:00
Peter Fabian 70cfd12f0e Updated readme: stable version to 4.1.1 and changelog for 4.2 2020-05-27 19:42:56 +05:30
vedanshujain 8f9bf9042d Update changelog till 4.1.1 2020-05-27 19:38:23 +05:30
vedanshujain d1052621a3 Update stable tag 2020-05-27 19:38:09 +05:30
Peter Fabian 73138440ce Updated readme: stable version to 4.1.1 and changelog for 4.2 2020-05-27 15:57:05 +02:00
Jonny Harris 34163a613b
Add requires headers in plugin 2020-05-27 13:58:41 +01:00
Christopher Allford 69e3835041
Merge pull request #26600 from woocommerce/fix/26599
Don't allow redirection while checking for uploads directory
2020-05-26 14:39:35 -07:00
Claudio Sanches 2acc24f489 Added missing trailing slash 2020-05-26 17:23:37 -03:00
vedanshujain 440f40a976 Changed back method to private because we figured a workaround in earlier test 2020-05-26 23:59:28 +05:30
vedanshujain af942a131a Add test to ensure that verify_base_table also creates table if needed. 2020-05-26 23:46:58 +05:30
vedanshujain e89ee25f36 Better option names to properly describe their intention.
Additionally, allow an option in `verify_base_tables` to call `create_table` method. This will be useful if someone wants to fix the their database.
2020-05-26 23:26:45 +05:30
Julia Amosova 55c29af44d
Merge pull request #26596 from woocommerce/fix/26511
Add asterisk to star rating if 'Star ratings should be required, not optional' checkbox is enabled
2020-05-26 13:45:30 -04:00
Peter Fabian fdb0ac35f2
Merge pull request #26485 from woocommerce/renovate/woocommerce-woocommerce-admin-1.x
Update dependency woocommerce/woocommerce-admin to v1.2.3
2020-05-26 19:39:54 +02:00
Claudio Sanches a240798362 Don't allow redirection while checking for uploads directory 2020-05-25 10:31:58 -03:00
Julia Amosova 4756d4c911 Add asterisk to star ratings if required checkbox is enabled 2020-05-24 18:27:08 -04:00
Renovate Bot 4d4e327df6
Update dependency woocommerce/woocommerce-admin to v1.2.3 2020-05-22 19:24:14 +00:00
vedanshujain 57d336433a Fix regression caused by merging #25092 conflicting with #24828 2020-05-22 22:08:42 +05:30
Christopher Allford 1d216d3a98
Merge pull request #26559 from woocommerce/fix/update-jp-autoloader
Updated the Jetpack Autoloader
2020-05-22 07:13:26 -07:00
vedanshujain 418741a0b2 Add unit test for verify_base_tables function 2020-05-22 18:32:04 +05:30
vedanshujain fafa44bde0 Modified notice to also handle when REST API does not have verify tool. 2020-05-22 18:32:03 +05:30
vedanshujain f5afddd4c9 Add support for notices 2020-05-22 18:32:03 +05:30
vedanshujain 3acc03c804 Add `verify_base_db` method to check if all base tables are present.
Optionally, also adds a notice in case all db tables are not present. Returns list of tables.

Note that we only check missing tables and don't care about exact table structure because many time tables are modified by merchants to better suit their needs (indexes, collations etc).
2020-05-22 18:30:11 +05:30
Christopher Allford 93811e0a56
Merge pull request #25753 from woocommerce/fix/25752-wc_get_shipping_method_count-check-enabled
Add is_enabled=1 check in wc_get_shipping_method_count()
2020-05-21 11:44:36 -07:00
Christopher Allford 2953df2c5d
Merge pull request #26529 from woocommerce/fix/e2e-403-errors
use nonced logout link for store owner logout
2020-05-21 10:44:10 -07:00
Ron Rennick 47aab8c56b
Merge pull request #26522 from woocommerce/tweak/e2e-tests-suite
Tweaks to e2e tests suite README
2020-05-21 13:15:04 -03:00
Nestor Soriano 2a68bb018d Move testing tools to the tests/Tools directory
The testing tools (only the code hacker at this time) have been moved
from 'src' to 'tests/Tools', since many opcode cache plugins
load the whole src folder in production.

Also, an extra autoloader is set in the tests bootstrap so that
the 'tests/Tools' directory corresponds, using PSR4, to the
'Automattic\WooCommerce\Testing\Tools' namespace.
2020-05-20 09:57:39 +02:00
Nestor Soriano 0726f71aac Small improvements in the code hacker
- Convert a hardcoded number to a constant
- Add more information to an exception message
- Remove unnecessary PHPCS disabling
- Throw exception on PHP<7.0
2020-05-20 09:56:26 +02:00
Nestor Soriano 8a7d955253 Improvements on the code hacker.
- Add methods to temporarily disable and reenable the code hacker.

The code hacker is causing issues in some tests that perform
write operations to the local filesystem. Since this happens only
in a few cases, the easiest fix is to temporarily disable the
code hacker when that happens. This commit adds two new methods
for that in `WC_Unit_Test_Case`: `disable_code_hacker` and
`reenable_code_hacker`.

These methods use a disabling requests count so that the hacker
isn't enabled before it should. E.g. you call `disable`, then
a helper method that does `disable` and `enable`, then `enable` -
then only the last `enable` will have effect.

- `CodeHacker::add_hack` has now a boolean `persistent` parameter.
Persistent hacks won't be cleared by `clear_hacks`.

- `CodeHackerTestHook::executeAfterTest` will now disable the hacker
only if no persistent hacks are registered.

- The existing `file_copy` method is made static for consistency.

- `CodeHacker::restore` method renamed to `disable` for clarity.
2020-05-20 09:56:26 +02:00
Nestor Soriano 6f2e0bf694 Improve error messaging in WC_Tests_MaxMind_Database::test_download_database_works 2020-05-20 09:56:25 +02:00
Nestor Soriano f04089d572 Add function docs to the CodeHacker class. 2020-05-20 09:56:25 +02:00
Nestor Soriano 884fd08462 Add a workaround for code hacking static methods on already loaded files.
The unit testing bootstrap loads and initializes WooCommerce, this
loads a bunch of code files that can't then be hacked in the test hooks.

A workaround is provided in this commit for the case of hacking
static methods. A new StaticWrapper class is created that allows
defining mock methods after the code file has been loaded.
This is applied to all classes from a fixed list in the bootstrap,
before WooCommerce is initialized. The list should be kept up to date
with the list of classes that require such workaround.
2020-05-20 09:56:25 +02:00
Nestor Soriano c7cf39bef4 Add a README file for the code hacker. 2020-05-20 09:56:25 +02:00
Nestor Soriano f0b0822c1c Fix code sniffer errors in CodeHacker and related classes. 2020-05-20 09:56:25 +02:00
Nestor Soriano 57845ef8b8 All code hacking files moved to src\Testing folder. 2020-05-20 09:56:25 +02:00
Nestor Soriano 1a68abbc28 Miscellaneous code hacking fixes:
- Fix how CodeHackerTestHook::executeBeforeTest parses the test name,
  to account for warnings and tests with data sets.

- CodeHackerTestHook now includes a executeAfterTest hook that
  disables the code hacker (needed to prevent it from inadvertently
  altering further tests). Also, clear_hacks is executed in
  executeBeforeTest for the same reason.

- CodeHacker gets restore, clear_hacks and is_enabled methods
  to support the changes in CodeHackerTestHook.

- FunctionsMockerHack fixed so that it doesn't modify strings
  that are class method definitions.

- Added the WC_Unit_Test_Case::file_copy method, it must be used
  instead of the PHP built-in "copy" in tests, otherwise tests
  that run with the code hacker active will fail.
  This is something to investigate.
2020-05-20 09:56:25 +02:00
Nestor Soriano 9a5b3b353d Add the @hack code annotation for tests.
Now @hack class and method annotations can be used to register
code hacks as an alternative to using before_ methods.
The syntax is /* @hack HackClassName param1 param2 */
where parameters will be passed to the class constructor.
If the class name ends with "Hack", then that suffix can be
omitted (e.g. "Foo" can be specified instead of "FooHack").
2020-05-20 09:56:25 +02:00
Nestor Soriano db58b51de3 Barebones implementation of a code hacker for unit tests.
The "code hacker" is a class that hooks on filesystem events
(using stream_wrapper_unregister) in order to allow for dynamically
modifying the content of PHP code files while they are loaded.
The code hacker class allows registering hacks, which are
functions that take source code as input and return the modified code.
A hack can be a standalone function or a class with a "hack" method.

A few hacks are provided off the shelf. One allows mocking standalone
PHP functions (WP, WOO or not), another one allows mocking static
methods, and there's the one that removes the "final" qualifier
from a class definition. This helps unit testing stuff that would
otherwise be quite hard to test.
2020-05-20 09:56:25 +02:00
Christopher Allford 326d8feb92 Updated the Jetpack Autoloader
Jetpack made a change that requires some extra ignore entries from the latest release of the autoloader, otherwise debug logging warnings are thrown.
2020-05-19 16:16:50 -07:00