Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Compat Testing] WooCommerce 8.1 #2085

Closed
wants to merge 2 commits into from
Closed

[Compat Testing] WooCommerce 8.1 #2085

wants to merge 2 commits into from

Conversation

puntope
Copy link
Contributor

@puntope puntope commented Sep 6, 2023

GLA Manual Smoke Tests

Use this guide to smoke-test the plugin (for compatibility or other reasons). If there's a common use case or cause of errors not included, please add it!

After each step during testing, be sure to check the debug logs and the browser console for errors, warnings, or notices.

  • Prerequisites: Wordpress.com and Google accounts, WooCommerce store with existing products and categories. (For example, see Importing WooCommerce Sample Data ).

  • Install extension / Uninstall extension

Onboarding Wizard

Set up your accounts

  • Connect wordpress.com
  • Connect Google account
  • Connect Google Account. Then change the URL and connect that account. You should be able to claim the website.
  • Set up Google Merchant Center (Connect existing account).
  • Set up Google Merchant Center (Create a new account).
  • The "next" button should not be enabled until all accounts are connected.
  • Verify the UI: FAQ can expand; check that doc links and tooltips are working.
  • Onboarding: Verify that you can navigate back using the menu at the top.

Choose your audience and product listings

  • The default language is preselected
  • Select countries.
  • Checking the "All countries" option hides the country select textbook.
  • If United States is not selected, the card "Tax rate (required for U.S. only)" at the bottom is not displayed.
  • If the "My shipping settings are simple. I can manually estimate flat shipping rates" option is checked
    • The "Estimated shipping rates" field is displayed
    • If the "Estimated shipping rates" field is 0, the "Free shipping for all orders" tag is displayed
    • If the "Estimated shipping rates" field is >0, the "I offer free shipping for orders over a certain price" field is displayed
    • If the "I offer free shipping for orders over a certain price" field is "Yes", the "Minimum order to qualify for free shipping" field is displayed
  • If the "My shipping settings are complex. I will enter my shipping rates and times manually in Google Merchant Center" option is selected; both the shipping rate and Shipping time are hidden, and the "Continue" button is enabled
  • The "Continue" button is disabled if no shipping time is entered on a simple shipping setup

Confirm store requirements

  • Verify phone number
  • Confirm Pre-Launch Checklist
  • The "Continue" button is disabled until the Pre-Launch Checklist is checked and the Store address is valid

Complete your campaign

  • The number of syncable products in the Product feed status section is shown
  • The ad previews automatically rotate and the bestselling product, shop name, shop URL, and shop logo are composited with the reviews if applicable
  • Verify the UI: FAQ can expand
  • Complete onboarding without setting up paid ads
  • Clicking on "Create a paid ad campaign" can show Google Ads, Ads audience, and Set your budget sections; The audience and budget sections should be shown in disabled
  • Connect an existing Google Ads account
  • Disconnect Google Ads account
  • Create a new Google Ads account and connect it
  • After a Google Ads account is connected, the audience and budget sections should be shown in enabled, and the countries selected in step 2 should be preselected in ads audience
  • Ads audience selector only allows selecting the same set of the countries selected in step 2
  • Changing ads audience should also display the suggested budget range below according to the selected countries
  • Setting different budget values lower or higher than the suggestion should also display or hide the corresponding tip below
  • Before setting up the billing method, there should be a billing information card for opening Google's billing setting page by a button or an alternative link
    • Button should open the billing setting page via a pop-up window aligned to the center of the current browser window
    • Alternative link should open the billing setting page via a new browser tab
  • After completing the billing setting and waiting for a while, the billing information card should change to a setup successful message.
  • The "Complete setup" button is disabled if any paid ads setup is not yet completed
  • Complete onboarding with paid ads

After onboarding is complete:

  • Navigate all Google Listings & Ads tabs (Reports, Product Feed, Settings) - The content loads with no errors or warnings

Google Listings & Ads > Dashboard

  • Navigate to Marketing -> Google Listing & Ads -> Dashboard
  • Edit free listings and make sure it can save successfully.
  • Go into Edit free listings page and click on the top left back button. It should bring you back to the Dashboard page.
  • Create a campaign by clicking the "Add paid campaign" button and ensure the journey works.
    • The "Select country/s" field works; you can search and select countries.
    • The FAQ display and expand/collapse correctly.
    • The "Continue" button is disabled until the "Select country/s" and "Daily average cost" fields have been filled.
  • Create an Ads campaign without adding assets and confirm that the data is in Google Ads
  • Edit an Ads campaign without adding assets and confirm that the data is in Google Ads
  • Disable a campaign from the "Programs" table and ensure the campaign has been paused in Google ads.
  • Remove a campaign from the "Programs" table and ensure the campaign has been removed in Google ads.
  • Filter dashboard by date range
  • Campaign Assets tour on the Dashboard page
     # SQL to reset the checked flag of tours
     DELETE FROM wp_options WHERE option_name = 'gla_tours';
    • The tour floats upon the Edit button of the first campaign after having at least one campaign.
    • The tour won't appear again after clicking on the [X] button to close it.
  • Campaign Assets
     // If the test environment is a local site, it may need to add this code snippet to
     // the end of the ./google-listings-and-ads.php file to pass the Final URL matching
     // and the SSL verification in the `wp_remote_get` calls.
    
     function replace_with_gmc_domain( $url ) {
        return str_replace( get_home_url(), 'https://domain-name-of-the-associated-google-mc-account', $url );
     }
     
     add_filter( 'page_link', 'replace_with_gmc_domain' );
     add_filter( 'term_link', 'replace_with_gmc_domain' );
     add_filter( 'post_type_link', 'replace_with_gmc_domain' );
     
     add_filter( 'https_ssl_verify', '__return_false' );
     add_filter( 'https_local_ssl_verify', '__return_false' );
    • In the Final URL card, it lists the homepage and shop pages by default and can search pages/posts/categories(taxonomies) by keywords.
    • Create a campaign with assets. All asset fields should be successfully saved.
    • Add assets to an existing campaign. All asset fields should be successfully saved.
    • Edit assets of a campaign. All asset fields should be successfully edited.
    • Should be able to remove the optional assets of a campaign.
    • An empty asset group is created first when saving assets to a campaign that doesn't have any (empty) asset groups:
      1. In GLA, create a campaign without assets.
      2. Go to Google Ads to delete the empty asset group for the newly created campaign.
      3. Back to GLA, refresh the web page, and go to edit the newly created campaign.
      4. Add assets and save changes.
    • Campaigns that already have assets are not allowed to change the Final URL.
    • All asset fields are disabled and collapsed if no selected Final URL and the "Launch paid campaign" button is disabled as well.
    • All asset fields are enabled and expanded after a Final URL is selected and the "Launch paid campaign" button is enabled as well.
    • Asset fields are filled in with asset suggestion data after a Final URL is selected.
    • When the number of values in each asset text field reaches its maximum limit, the add button is disabled.
    • The values in each asset text field that exceeds the minimum number requirement can be deleted.
    • After toggling the asset field, the edited values are kept. After going to step 1 and back to step 2, the edited values in asset fields are kept.
    • The "n/N characters" label below text inputs is turned to red color when exceeding its character count limit.
    • Landscape, Square and Portrait images share the maximum total number of 20.
    • Images are cropped to the required aspect ratios.
    • Images that already fit with the required aspect ratios can skip cropping.
    • Images that don't meet the required size are not allowed to be selected.
    • Before clicking on the submit button, there are no issue labels nor lists of invalid reasons except for the character count exceeding errors.
    • After clicking on the submit button without fulfilling all required asset fields, the form won't be submitted, the web page should be scrolled to the first incomplete field, and all incomplete fields show the number of issues in a label and a list of invalid reasons.
      assets-form-validation

Google Listings & Ads > Reports

  • Filter reports by data range.

Programs tab

  • Try some values in the "Show" field:
    • "Single program"
    • "Comparison" between 2 or more programs

Products tab

  • Try some values in the "Show" field:
    • Single product
    • Comparison view between 2 or more products

Google Listings & Ads > Product Feed

  • Select a product in the "Product Feed" table and update the channel visibility
  • Click on the pagination link on the Product table to ensure this works
  • Click on the pagination link on the "Issues to resolve" table to ensure this works

Google Listings & Ads > Settings

  • Perform Phone number update
  • Disconnect Google Ads only
  • Disconnect all google accounts.
  • Reconnect by going through the onboarding steps

Sync Products with Google Merchant Center

Note that the following operations with Google MC can take some minutes.

The Mismatched URL will block product synchronization. To test this part in a local environment, please try making the following adjustments to the local env first:

  1. Add this code snippet to google-listings-and-ads.php for skipping the URL matching check.
    add_filter( 'woocommerce_gla_ready_for_syncing', '__return_true' );
  2. Clear related transients from DB.
    DELETE FROM wp_options where option_name LIKE '%gla_url_matches%';
  • Visit wp-admin/admin.php?page=connection-test-admin-page.
  • Go to the "Product Sync" section (at bottom of the page) and tick the option async for Sync All Products and Delete All Synced Products.
  • If you have products in Google MC try to delete them using Delete All Synced Products.
  • Check that they are deleted in the Google MC.
  • Sync the products again using Sync All Products.
  • Check that the products have been synced again.
  • Edit any synced product (change the title) and confirm that the changes are reflected in the Merchant Center.

Gtag events

  • Successfully run e2e tests in local env.

(Optional) Test Gtag events manually

  • Complete the onboarding of a Merchant and an Ads account.
  • Check in the page source code to confirm that the events are being output on the page.
    • Visit a frontend page and confirm the global Gtag snippet is present (with comment "Global site tag").
    • Visit a frontend page and confirm the page_view event is present.
    • Visit a single product page and confirm the view_item event is present.
    • Visit the cart page (containing products) and confirm the page_view event is present with additional cart details.
    • Visit the order completed page and confirm the conversion and purchase events are present.
  • Check if a request is sent to https://www.google.com/pagead with the add_to_cart event.
    • Check the request when adding to cart from a single product page.
    • Check the request when adding a related product to cart from a single product page.
    • Check the request when adding to cart from a regular shop page.
    • Check the request when adding to cart from a block shop page (All Products Block).
  • Confirm tracking parameters show up in Google Ads account (can be delayed up to 24 hours).
    • Go to the Ads dashboard.
    • Go to Settings > Audience Manager
    • In the left sidebar go to "Your data sources" and then click "Details" on the "Google Ads tag" card.
      image
    • Confirm the parameters are included and there are no issues showing up.

Google connection between multiple sites

Note that this test requires to set up one local WooCommerce Connect Server and two WP sites that using the same Google account in GLA plugin.

Individual refresh tokens

  • Set up one WC Connect Server and two WP sites locally
    • Note that the two sites should be using public domains.
  • Connect GLA using the same Google account in both sites.
    • The consent screen should appears on both sites. Like this:
    • Screenshot 2023-01-17 at 16 27 27
    • Note the slight difference of the consent screen for the second site which connects to Google. But we will get the individual refresh token anyway.
  • Check the table wcc_token, each site should have their own refresh token in refresh_token column.
  • In table wcc_token, modify the token_expires column for both sites to make the access token expired.
  • Go to both sites' GLA settings page and reload the page, it's showing connected.
  • In table wcc_token, the columns access_token and token_expires have been updated.

Disconnect one site does not affect the other site

  • Disconnect site A from its GLA settings page. (Or using connection test page to disconnect Google)
  • From the database site A's record should be removed in wcc_token table.
  • Site B should be still connected and functioning normally.
  • Reconnect site A and site A should work normally, its tokens should be stored in wcc_token table again.

Composer package conflicts with other plugins

This is a tricky one to test as we found a few conflicting plugins but we don’t have a clear set of “other” plugins that use the same libraries. In this test we pick Flexible Shipping UPS and BackWPUp as both had conflicts with GLA in the past, but there might be more plugins that use the same packages would have conflicts. The issue #1976 is an example for fixing a conflict with another plugin. This test may only be required when we are releasing GLA with updated composer packages.

  • Install Flexible Shipping UPS and BackWPUp. You can also use your best guess to install any popular plugin that has higher chance to conflict with GLA.
  • Activate BackWPUp and the site should still work normally.
  • Activate Flexible Shipping UPS, go to wp-admin/admin.php?page=wc-settings&tab=shipping, add UPS Live Rates shipping method to the shipping zone you're testing.
  • Go to cart/checkout page, there shouldn't be fatal errors.

@github-actions github-actions bot added the changelog: tweak Small change, that isn't actually very important. label Sep 6, 2023
@puntope puntope self-assigned this Sep 8, 2023
@codecov
Copy link

codecov bot commented Sep 8, 2023

Codecov Report

Merging #2085 (57e7ca4) into develop (48ac6ce) will not change coverage.
Report is 18 commits behind head on develop.
The diff coverage is n/a.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##             develop   #2085   +/-   ##
=========================================
  Coverage       58.3%   58.3%           
  Complexity      4118    4118           
=========================================
  Files            454     454           
  Lines          17683   17683           
=========================================
  Hits           10304   10304           
  Misses          7379    7379           
Flag Coverage Δ
php-unit-tests 58.3% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

📢 Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=woocommerce).

@puntope puntope closed this Sep 8, 2023
@eason9487 eason9487 deleted the tweak/wc-8-1-bump branch November 16, 2023 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog: tweak Small change, that isn't actually very important.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant