// Test library for Marionette-based extension verification // This JavaScript code runs in the browser context via Marionette /** * Test that background script performs computation correctly * @param {number} testValue - Input value for computation * @returns {Promise} - Computed result or null on failure */ function testBackgroundComputation(testValue) { // Check if content script loaded if (!document.body.getAttribute('data-rentgen-injected')) { return -1; // Content script not loaded } // Dispatch test request to content script document.dispatchEvent(new CustomEvent('rentgen_test_request', { detail: { value: testValue, timestamp: Date.now() } })); // Wait for background response return new Promise((resolve) => { let attempts = 0; const checkInterval = setInterval(() => { attempts++; const computed = document.body.getAttribute('data-rentgen-computed'); if (computed) { clearInterval(checkInterval); resolve(parseInt(computed)); } else if (attempts > 50) { clearInterval(checkInterval); resolve(null); } }, 100); }); }