Files
obsidian-vault/work/projects/CPM Breakage Testing Steps.md
T

2.2 KiB
Raw Blame History

Testing Steps

Run each case with fresh app data so daily pixel deduplication does not hide results. In Xcodes console, filter by PixelKit Category.

Healthy navigation

  1. Open http://privacy-test-pages.site/features/autoconsent/.
  2. Wait at least 5 seconds → no debug_web_extension_cpm_* pixel is sent.

Failure, stuck, and recovery

  1. Open Debug → Web Extensions → Simulate CPM Messaging Breakage (On).
  2. Load the Autoconsent test page and wait 5 seconds → debug_web_extension_cpm_initialization_failed_after_other is sent; no stuck pixel is sent.
  3. Navigate to another HTTP(S) page and wait 5 seconds → debug_web_extension_cpm_messaging_stuck_other is sent.
  4. Select Simulate CPM Messaging Breakage (Off).
  5. Reload the page → debug_web_extension_cpm_messaging_recovered_without_extension_reload is sent.
  6. Navigate again → no additional CPM failure or recovery pixel is sent.

Concurrent navigations

  1. Select Simulate CPM Messaging Breakage (On).
  2. Load HTTP(S) pages in two tabs before either 4-second timeout expires.
  3. Wait 5 seconds → initialization failures are observed, but no debug_web_extension_cpm_messaging_stuck_* pixel is sent.
  4. Start another navigation after those failures and wait 5 seconds → debug_web_extension_cpm_messaging_stuck_other is sent.

Extension reload

  1. Start with Simulate CPM Messaging Breakage (Off) and use the Fire button to trigger extension reloading.
  2. After data clearing completes, select Simulate CPM Messaging Breakage (On).
  3. Load the Autoconsent test page and wait 5 seconds → these pixels are sent:
    • debug_web_extension_cpm_initialization_failed_after_extension_reload
    • debug_web_extension_cpm_messaging_extension_reload_failed
  4. Navigate again and wait 5 seconds → debug_web_extension_cpm_messaging_stuck_extension_reload is sent.
  5. Select Simulate CPM Messaging Breakage (Off) and reload → debug_web_extension_cpm_messaging_recovered_after_extension_reload is sent.

Session-restoration and tab-crash attribution are covered by unit tests because the in-memory Debug-menu toggle does not survive app restart and does not itself crash a tab.