corona-warn-app / cwa-website

Corona-Warn-App website. The CWA development ended on May 31, 2023. You still can warn other users until April 30, 2023. More information:
https://coronawarn.app/en/faq/#ramp_down
Apache License 2.0
521 stars 224 forks source link

Testing of web links from app #3028

Closed MikeMcC399 closed 2 years ago

MikeMcC399 commented 2 years ago

Where to find the issue

Describe the issue

In https://github.com/corona-warn-app/cwa-website/pull/2968#issuecomment-1182824526 @svengabr wrote:

"The app developers are unhappy with our current (live) tests since the tests are missing links that simply are not included in our static link list.

They wanted our cypress tests to read their link configuration files from the iOS and Android repository:

Findings

  1. All links from the app link files to https://www.coronawarn.app are tested by the current Cypress test cypress/integration/app_to_web.js, except the main FAQ landing page https://www.coronawarn.app/en/faq/ and https://www.coronawarn.app/de/faq/.
  2. The Android German-language link file https://github.com/corona-warn-app/cwa-app-android/blob/main/Corona-Warn-App/src/main/res/values-de/links.xml is inconsistently formatted. Some link targets are enclosed in double quotes e.g. <string name="nm_faq_link">"https://www.coronawarn.app/de/faq/#notification_settings"</string> whilst other link targets do not use double quotes, e.g. <string name="dcc_ticketing_result_faq_link">https://www.coronawarn.app/de/faq/#val_service_result</string>. The Android English-language link file is consistently formatted with double quotes.
  3. The link to the blog article in Android <string name="statistics_explanation_blog_url" tools:ignore="TypographyDashes">"https://www.coronawarn.app/en/blog/2021-08-05-statistictiles"</string> and <string name="statistics_explanation_blog_url" tools:ignore="TypographyDashes">"https://www.coronawarn.app/de/blog/2021-08-05-statistictiles"</string> are missing a trailing slash "/" character. This causes the web site to redirect. The corresponding link in the iOS link files include a trailing slash e.g. "Statistics_Info_Blog_Link" = "https://www.coronawarn.app/en/blog/2021-08-05-statistictiles/";

Web Suggestions

  1. Add a simple test to cypress/integration/app_to_web.js to check the ability of the FAQ landing page https://www.coronawarn.app/en/faq/ and https://www.coronawarn.app/de/faq/ to access the detailed FAQ page faq/results.
  2. Add the alternate blog link 2021-08-05-statistictiles/ to cypress/fixtures/appToWebLinks.json

Android App Suggestions

Consider the following changes for consistency and alignment:

  1. Use double quotes to surround the URLs on all link strings.
  2. Add a trailing slash to the link https://www.coronawarn.app/en/blog/2021-08-05-statistictiles.

Internal Tracking ID: EXPOSUREAPP-13626 Website Internal Tracking ID: EXPOSUREAPP-13627 Android

MikeMcC399 commented 2 years ago

This is a summary of the web links defined in the respective iOS and Android app main branches and how each of these links is tested in cypress/integration/app_to_web.js:

iOS -EN iOS - DE Android - EN Android - DE Cypress test
'/en/accessibility/#android', '/de/accessibility/#android', accessibilityTab
'/en/accessibility/#ios', '/de/accessibility/#ios', accessibilityTab
'/en/blog/2021-08-05-statistictiles/', '/de/blog/2021-08-05-statistictiles/', add to blogEntry
'/en/blog/2021-08-05-statistictiles', '/de/blog/2021-08-05-statistictiles', blogEntry
'/en/community/#socialmedia', '/de/community/#socialmedia', '/en/community/#socialmedia', '/de/community/#socialmedia', in app
'/en/faq/', '/de/faq/', '/en/faq/', '/de/faq/', add to app
'/en/faq/#ENError11', '/de/faq/#ENError11', faqEntry
'/en/faq/#ENError13', '/de/faq/#ENError13', faqEntry
'/en/faq/#ENError5', '/de/faq/#ENError5', faqEntry
'/en/faq/#admission_policy', '/de/faq/#admission_policy', faqEntry
'/en/faq/#android_location', '/de/faq/#android_location', faqEntry
'/en/faq/#cause9002_recovery', '/de/faq/#cause9002_recovery', faqEntry
'/en/faq/#cert_eu_travel', '/de/faq/#cert_eu_travel', '/en/faq/#cert_eu_travel', '/de/faq/#cert_eu_travel', faqEntry
'/en/faq/#encounter_but_green', '/de/faq/#encounter_but_green', '/en/faq/#encounter_but_green', '/de/faq/#encounter_but_green', faqEntry
'/en/faq/#error_log', '/de/faq/#error_log', '/en/faq/#error_log', '/de/faq/#error_log', faqEntry
'/en/faq/#eu_dcc', '/de/faq/#eu_dcc', faqSection
'/en/faq/#eu_dcc_check', '/de/faq/#eu_dcc_check', '/en/faq/#eu_dcc_check', '/de/faq/#eu_dcc_check', faqEntry
'/en/faq/#eu_dcc_export', '/de/faq/#eu_dcc_export', '/en/faq/#eu_dcc_export', '/de/faq/#eu_dcc_export', faqEntry
'/en/faq/#eu_dcc_export_error', '/de/faq/#eu_dcc_export_error', '/en/faq/#eu_dcc_export_error', '/de/faq/#eu_dcc_export_error', faqEntry
'/en/faq/#full_incompat', '/de/faq/#full_incompat', faqEntry
'/en/faq/#further_details', '/de/faq/#further_details', '/en/faq/#further_details', '/de/faq/#further_details', faqEntry
'/en/faq/#hc_prefix_invalid', '/de/faq/#hc_prefix_invalid', '/en/faq/#hc_prefix_invalid', '/de/faq/#hc_prefix_invalid', faqRedirect
'/en/faq/#hc_signature_invalid', '/de/faq/#hc_signature_invalid', '/en/faq/#hc_signature_invalid', '/de/faq/#hc_signature_invalid', faqEntry
'/en/faq/#notification_settings', '/de/faq/#notification_settings', '/en/faq/#notification_settings', '/de/faq/#notification_settings', faqEntry
'/en/faq/#part_incompat', '/de/faq/#part_incompat', faqEntry
'/en/faq/#quarantine_measures', '/de/faq/#quarantine_measures', '/en/faq/#quarantine_measures', '/de/faq/#quarantine_measures', faqEntry
'/en/faq/#red_card_how_to_test', '/de/faq/#red_card_how_to_test', '/en/faq/#red_card_how_to_test', '/de/faq/#red_card_how_to_test', faqEntry
'/en/faq/#root_detection_android', '/de/faq/#root_detection_android', faqEntry
'/en/faq/#test_cert', '/de/faq/#test_cert', '/en/faq/#test_cert', '/de/faq/#test_cert', faqSection
'/en/faq/#vac_booster', '/de/faq/#vac_booster', faqRedirect
'/en/faq/#val_service_no_valid_dcc', '/de/faq/#val_service_no_valid_dcc', '/en/faq/#val_service_no_valid_dcc', '/de/faq/#val_service_no_valid_dcc', faqRedirect
'/en/faq/#val_service_result', '/de/faq/#val_service_result', '/en/faq/#val_service_result', '/de/faq/#val_service_result', faqRedirect
'/en/faq/#voluntary_self_quarantine', '/de/faq/#voluntary_self_quarantine', '/en/faq/#voluntary_self_quarantine', '/de/faq/#voluntary_self_quarantine', faqEntry
'/en/faq/#where_can_i_get_tested' '/de/faq/#where_can_i_get_tested' '/en/faq/#where_can_i_get_tested' '/de/faq/#where_can_i_get_tested' faqEntry
MikeMcC399 commented 2 years ago
dsarkar commented 2 years ago

@MikeMcC399 Thanks for the detailed analysis. Your PR was merged, we will create a separate internal ticket for your suggestions regarding Android.

MikeMcC399 commented 2 years ago

Good morning @dsarkar!

Your PR was merged

Thank you for merging the PR!

we will create a separate internal ticket for your suggestions regarding Android.

That is a good idea. It's about having clean source code, however I don't know whether any changes should be made to the app, since it will not benefit the user directly and any changes need to be tested. I'll be happy to let the Android developers decide if they want to take action or not.

Since the website issues have been resolved, I will now close this issue.