Commit Graph

150 Commits

Author SHA1 Message Date
Nestor Soriano 9c6c0d73d8 Record attribute terms for product variations in wp_term_relationships.
Product attributes are currently recorded as terms in
wp_term_relationships (product attributes are actually taxonomies).
In the case of variable products this is true for the main product,
but not for the variations. The attributes used to define variations
are stored as post meta, but nothing is recorded in the term
relationships table.

This is a problem when using the layered nav filtering plugin,
since the attribute counters displayed are calculated based solely
on the contents of the term relationships table. Adding meta queries
would be really messy (especially when the widget is configured
with AND operator) and would probably also hurt performance.

This commit adds a change to store the attributes for variations
as term relationships, additionally to storing them as post meta.
Terms are stored on variation creation, and updated/deleted together
with the variation as appropriate. "Any" variations (stored in meta
as empty values) are not stored as terms.

Additionally, a database upgrade is included in order to backfill
terms for already existing products.
2020-07-28 08:55:55 +02:00
Christopher Allford b5bd8225e8 Moved PHPUnit suite into tests/legacy 2020-04-24 13:53:40 -07:00
Claudio Sanches e43dc9b8a2 Use assertContains 2020-04-16 18:06:18 -03:00
Claudio Sanches 02e3ec7e97 Use assertStringContainsString to compare images 2020-04-16 17:52:22 -03:00
Claudio Sanches a5bc29e26c Fixed unit test on WP 5.5 alpha 2020-04-16 00:25:32 -03:00
Christopher Allford 874be93c14 Removed the lowercase conversion of product search terms
When searched in a case sensitive manner, the conversion to lowercase causes uppercase matches that would have been found to be lost. This change increases the tolerance of the OR search format while also removing this unintended side-effect.
2019-12-24 15:00:40 -08:00
Claudio Sanches 523c72f265 Fix WordPress nightly unit tests (#25198)
* Remove images after uploaded in WC_Tests_Product_Data

* Remove attachment after test

* Fixed image_id
2019-12-10 13:57:52 -03:00
Rodrigo Primo 27915dd696 Exception when WC_Product_Variation is instantiated with the wrong type
This commits changes WC_Product_Variation to raise an exception when the
class is instantiated with an ID that belongs to a post object that is
not a product variation.

This is necessary to avoid problems like the one described in #24956
where passing a variable product ID to WC_Product_Variation would result
in transparently modifying the variable product title and excerpt.
2019-12-05 15:45:48 -03:00
Claudio Sanches 5fdb880831
Merge branch 'master' into feature/24956 2019-12-04 16:18:39 -03:00
Claudio Sanches 8033d5751e Changed wc_get_product_classname function name to wc_get_product_object 2019-12-04 16:15:16 -03:00
Claudio Sanches e95dcfb68a Added unit tests for wc_get_product_classname() 2019-11-13 15:30:03 -03:00
Ian Jenkins 2340f269cf Add support for custom attributes to wc_placeholder_img().
When displaying a list of images you often want a specific class to be
attached to each image, therefore you pass through a custom class using
the attr parameter. Unfortunately this doesn't get passed through to a
placeholder image should one be needed. This means that, for example, if
you're custom class center an image or something, it won't be honoured
for placeholders, which can lead to some wonky image listings.

You can work around this currently by leverging the
`woocommerce_product_get_image` filter, but it's a bit gnarly as you
need to do some regexing or string splitting or something and checking
class names and what not. This provides a much easier way, by
supporting custom attrs on placeholder images as is the case for non
placehodler images.
2019-10-30 15:08:19 +00:00
Peter Fabian 7ea9fdec62 Added unit test for special case of attribute value 0. 2019-10-02 15:06:22 +02:00
Peter Fabian e45fe949c1 Added unit test & updated other affected tests. 2019-10-02 14:59:42 +02:00
Gerhard aad5b2863a Add more tests to test more expected combinations as well as test the negatives. 2019-07-12 15:10:20 +02:00
Claudio Sanches 2fa5396cfc Fixed coding standards 2019-07-09 12:43:03 -03:00
Claudio Sanches 32996d2fdd Merge branch 'master' into pr/23043 2019-07-09 12:39:40 -03:00
Gerhard 29bb165aca Apply unit tests 2019-07-04 11:50:33 +02:00
Rodrigo Primo 18ee70918b Fix PHPCS violations in tests/ using PHPCBF
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.
2019-05-01 19:05:00 -03:00
Timmy Crawford e12e4aaa25
Merge pull request #23304 from woocommerce/fix/link-all-variations
[3.6] Fix logic in link all variations
2019-04-15 11:16:22 -07:00
Mike Jolley d0c6c54989 Moved link/create code to data store with new unit test
This code was not testable within ajax code, so moved to the data stores.
2019-04-15 11:59:57 +01:00
Manos Psychogyiopoulos 2fbb7bda5c Check coding stds 2019-04-10 13:02:52 +03:00
Manos Psychogyiopoulos c1b7c55768 Add exclude param tests 2019-04-10 12:47:31 +03:00
Manos Psychogyiopoulos a9f86ef202 Add include param tests 2019-04-10 12:47:19 +03:00
Manos Psychogyiopoulos e6f25b04d8 Add limit param tests 2019-04-10 12:47:06 +03:00
Mike Jolley e2e124f365
Merge pull request #22083 from woocommerce/feature/variation-search
Added storing attribute values as post_excerpt for variations.
2019-03-13 15:09:19 +00:00
Peter Fabian 2b8d2cf3dd PHPCS on test file. 2019-03-13 13:30:59 +01:00
Peter Fabian 0aa9a09d18 Enforced attribute order to make result unambiguous. 2019-03-13 12:36:46 +01:00
Peter Fabian 918ea3c5aa Added test for attribute_summary. 2019-03-12 18:40:04 +01:00
Gerhard 5ce0ea762a Missed PHPCS fix 2019-03-05 14:33:10 +02:00
Mike Jolley 5af9d968e5 Update from master 2019-03-01 10:29:17 +00:00
Rodrigo Primo 25f0023d38 Fix PHPCS violations automatically using phpcbf 2019-02-27 18:09:11 -03:00
nishitlangaliya ee621eec8a fix: filter prefix changed and unit test added for fn:wc_get_product_stock_status_options 2019-02-25 19:03:57 +05:30
Mike Jolley 519b29d734 Tests 2019-02-15 12:25:04 +00:00
Mike Jolley 08e8c76eab Update tests 2019-02-15 12:16:59 +00:00
Mike Jolley 72314f9dbc Contains was backwards 2019-02-05 14:21:06 +00:00
Mike Jolley cafe8b6b57 Tests check the image URL is contained rather than exact string 2019-02-05 14:11:07 +00:00
Rodrigo Primo f7bc3fb851
Merge pull request #21366 from birgire/unit-tests-count-asserting-21365
Use assertCount instead of assertEquals
2018-12-05 11:15:52 -02:00
Gerhard 0bb4ef713b Add tests to make sure draft parent products are not included in the get_on_sale_products results 2018-11-01 12:13:47 +02:00
Rodrigo Primo 05aa357b98 Add unit tests for WC_Product::get_image() 2018-10-17 19:40:57 -03:00
Rodrigo Primo bbf6282d07 Simplify WC_Product_Simple tests
Use setUp() method to define a product object that is used in all the tests instead of duplicating code and creating a product object in every test.
2018-10-17 19:22:16 -03:00
claudiulodro 441fe32f0b Add filetype checking for all files located on the server 2018-10-11 13:31:18 -07:00
Birgir E 62e3418267 init 2018-09-16 12:09:50 +00:00
Claudiu Lodromanean 0cc137be1e
Merge pull request #20848 from woocommerce/fix/20844
Make wc_get_attachment_image_attributes do what it is suppose to.
2018-09-07 12:08:34 -07:00
claudiulodro 08a76e1eea Add srcset handling 2018-09-07 11:36:03 -07:00
Rodrigo Primo f830c3e3dc Remove more unnecessary cleanup code from unit tests
See #21150 for more details.
2018-08-27 18:37:33 -03:00
Claudiu Lodromanean 1b405c2c12
Merge pull request #21162 from wackywombaat12/Fix/20987
Fix/20987
2018-08-24 09:51:23 -07:00
Jack Boyle 63b84ef407 Fix Requested Changes
Changed to check if field exists and the field is not blank.
2018-08-24 13:03:09 +10:00
Rodrigo Primo 5f6c729107 Remove unnecessary clean up code from unit tests
This commit removes unnecessary clean up code form some unit tests. All database changes done during a test are automatically reverted after the test finishes, so it is not necessary to write code to manually remove them. This change simplifies the test code and make it run a bit faster.
2018-08-23 15:15:17 -03:00
Rodrigo Primo b7507ca8b3 Automatically fix phpcs violations using phpcbf 2018-08-23 15:15:11 -03:00