From c88b373c73ffa84d9c11bb2d47503d7aa89235dd Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Sun, 19 Apr 2026 10:26:34 +0200 Subject: [PATCH 1/2] Add Playwright tests for live site authentication and race page loading - Introduced `auth.setup.js` to handle authentication against the live site and store the session state. - Created `live-race.spec.js` to test loading a live race page with an authenticated session, including cookie validation. - Added utility functions in `live-site-test-utils.js` for managing authentication, dismissing cookie banners, and checking UI states. - Included a temporary JSON file for live state inspection. - Updated deployment manifest to reflect new and modified files. - Implemented `_inc_faceai_identity.jsp` for managing FaceAI identity cookies and included it in relevant JSP files. - Added language management JavaScript in `lang.js`. - Adjusted `fotoCR-en.jsp` and `fotoCR.jsp` to include the FaceAI identity logic. - Created a tarball for staging deployment. --- .../instructions/instructions.instructions.md | 1 + ...lamiunsorriso-83-149-164-4.instructions.md | 28 + faceai/.env.example | 5 + faceai/.gitignore | 1 + faceai/README.md | 29 + faceai/anonymous_output.html | 1116 ++++++++++++++++ faceai/authenticated_output.html | 1120 +++++++++++++++++ faceai/headers.txt | 0 faceai/login_response.html | 359 ++++++ faceai/package.json | 5 +- faceai/playwright.live.config.js | 38 + faceai/probe.js | 47 + faceai/response.html | 1100 ++++++++++++++++ faceai/tests/live-site/auth.setup.js | 12 + faceai/tests/live-site/live-race.spec.js | 33 + .../tests/live-site/live-site-test-utils.js | 92 ++ faceai/tmp-live-state-inspection.json | 45 + sync/www-deploy-manifest.md | 13 +- www/_inc_faceai_identity.jsp | 260 ++++ www/_js/lang.js | 55 + www/fotoCR-en.jsp | 5 +- www/fotoCR.jsp | 5 +- www_staged.tar | Bin 0 -> 49152 bytes 23 files changed, 4358 insertions(+), 11 deletions(-) create mode 100644 faceai/anonymous_output.html create mode 100644 faceai/authenticated_output.html create mode 100644 faceai/headers.txt create mode 100644 faceai/login_response.html create mode 100644 faceai/playwright.live.config.js create mode 100644 faceai/probe.js create mode 100644 faceai/response.html create mode 100644 faceai/tests/live-site/auth.setup.js create mode 100644 faceai/tests/live-site/live-race.spec.js create mode 100644 faceai/tests/live-site/live-site-test-utils.js create mode 100644 faceai/tmp-live-state-inspection.json create mode 100644 www/_inc_faceai_identity.jsp create mode 100644 www/_js/lang.js create mode 100644 www_staged.tar diff --git a/.github/instructions/instructions.instructions.md b/.github/instructions/instructions.instructions.md index c72cb2c4..7a744482 100644 --- a/.github/instructions/instructions.instructions.md +++ b/.github/instructions/instructions.instructions.md @@ -102,6 +102,7 @@ code example here - **Include Examples**: Real code snippets are more effective than descriptions - **Stay Current**: Reference current versions and best practices - **Link Resources**: Include official documentation and authoritative sources +- **Capture validated shell quirks**: For environment-specific instruction files, record proven terminal behaviors, quoting pitfalls, failing command patterns, and the known-good command form that replaced them ### Instruction Altitude (Goldilocks Zone) diff --git a/.github/instructions/regalamiunsorriso-83-149-164-4.instructions.md b/.github/instructions/regalamiunsorriso-83-149-164-4.instructions.md index 1259fa34..7b153171 100644 --- a/.github/instructions/regalamiunsorriso-83-149-164-4.instructions.md +++ b/.github/instructions/regalamiunsorriso-83-149-164-4.instructions.md @@ -35,6 +35,12 @@ If you need a single elevated command: ssh -tt -i C:\Users\Maddo\.ssh\id_rsa -p 410 marco@83.149.164.4 "sudo tcsh -c 'command here'" ``` +From PowerShell on Windows, prefer invoking the SSH binary directly instead of wrapping it in `cmd /c`: + +```powershell +& 'C:\Windows\System32\OpenSSH\ssh.exe' -tt -i 'C:\Users\Maddo\.ssh\id_rsa' -p 410 'marco@83.149.164.4' +``` + ## Shell Behavior On This Host - The remote login shell behaves as `tcsh`. @@ -42,11 +48,15 @@ ssh -tt -i C:\Users\Maddo\.ssh\id_rsa -p 410 marco@83.149.164.4 "sudo tcsh -c 'c - The server `sh` does not support `-l`, so use `sh -c`, not `sh -lc`. - `tcsh` treats redirection and pipelines differently from POSIX shells; commands like `find ... 2>/dev/null | head` can fail with `Ambiguous output redirect` unless the whole payload runs under `sh -c`. - Prefer one remote command per SSH invocation when doing reconnaissance. Complex commands with pipes, grouped expressions, or escaped parentheses are much more likely to break under PowerShell-to-SSH-to-`tcsh` quoting. +- On Windows PowerShell, avoid `cmd /c "ssh ..."` and `cmd /c "scp ..."` wrappers for anything nontrivial. Nested quoting can collapse before SSH runs and spill later tokens into the local PowerShell session, which leads to misleading local errors such as `sudo: The term 'sudo' is not recognized` or local attempts to run `cksum`. +- Prefer the PowerShell call operator form `& 'C:\Windows\System32\OpenSSH\ssh.exe' ...` and pass the remote command as a single argument when you must stay non-interactive. - If PowerShell shows the continuation prompt `? >`, the command was malformed locally before SSH executed it. Cancel it and rerun a simpler command instead of trying to answer the prompt. - If `sudo` reports that a terminal is required, reconnect with `-tt`. - When running remote commands from PowerShell, quoting can break if the command contains both nested quotes and file paths with spaces. - For read-only verification commands from PowerShell, prefer `ssh ... --% ` so the remote command is passed verbatim. - For `promote-file.sh` calls that target paths with spaces, prefer a local PowerShell loop that passes the full remote command as a single SSH argument instead of building one long nested quoted command. +- For multi-step privileged work, prefer opening one interactive SSH session, then running `sudo tcsh`, then issuing commands sequentially inside that shell. This is more reliable than trying to encode several `sudo tcsh -c 'a ; b ; c'` operations through PowerShell quoting. +- In an interactive `tcsh` root shell, do not re-send a password or any other text starting with `!` after the password prompt has already succeeded. `tcsh` interprets `!` as history expansion and will emit `Event not found`. - If repeated SSH commands start cancelling or interleaving poorly in the same terminal, rerun them sequentially instead of in parallel. ## Mail Template Runtime Notes @@ -88,6 +98,14 @@ ssh -tt -i C:\Users\Maddo\.ssh\id_rsa -p 410 marco@83.149.164.4 "sudo tcsh -c 'c - Incoming staging root: `/home/marco/regalamiunsorriso/incoming/www` - Live site root: `/home/sites/regalamiunsorriso/www` +## Tomcat Logs And Runtime Clues + +- The active Tomcat installation on this host is under `/usr/local/apache-tomcat-9.0`. +- The most useful live runtime log is `/usr/local/apache-tomcat-9.0/logs/catalina.out`. +- Rotated Tomcat logs are under `/usr/local/apache-tomcat-9.0/logs/`, including files such as `catalina.YYYY-MM-DD.log` and `localhost.YYYY-MM-DD.log`. +- Access to generated JSP work files under `/usr/local/apache-tomcat-9.0/work` may require root. +- A broken JSP on this host can still return `HTTP 200` with a visibly truncated HTML body instead of a clean 500 response; when that happens, fetch part of the page body with `curl -L | head -n ...` and compare the cutoff point with recent `catalina.out` output. + ## Staging Workflow When `www/**` files need deployment: @@ -103,6 +121,9 @@ Example staging command pattern: tar -cf - -C K:\various\regalamiunsorriso | ssh -i C:\Users\Maddo\.ssh\id_rsa -p 410 marco@83.149.164.4 "tar -xf - -C /home/marco/regalamiunsorriso/incoming" ``` +- The streamed tar extraction into `/home/marco/regalamiunsorriso/incoming` works as the unprivileged `marco` user and avoids the permission problems seen when uploading an archive and trying to unpack it with `sudo tar`. +- Do not rely on `sudo tar` for staging on this host. `marco` is not permitted to run that extraction as root. + ## Promotion Rules - Promotion to the live site must happen through `sudo tcsh`. @@ -136,6 +157,13 @@ $remote = "sudo tcsh -c \"/home/marco/promote-file.sh '' ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Regalami Un Sorriso ETS - Competitions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+

Running // Running // 42 HALF MARATHON FIRENZE

+
+
+ + +
+
+ +
+
+ +
+ + + + + + + + +
+ + + +
+

Search your photos

+
+
+
+ + +
+
+
+
+ + +
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+

They have been found 35389 photo + + +

+

+
+
+ +
+
+
+ + + go to page + + +
+
+ + +
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ +
+
+
+ +

ATTENTION! GOOGLE ADVERTISING + + + +

+ + + + + +
+ + + + + + + + + + + + + + +
+ +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/faceai/authenticated_output.html b/faceai/authenticated_output.html new file mode 100644 index 00000000..e14e1696 --- /dev/null +++ b/faceai/authenticated_output.html @@ -0,0 +1,1120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Regalami Un Sorriso ETS - Competitions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+

Running // Running // 42 HALF MARATHON FIRENZE

+
+
+ + +
+
+ +
+
+ +
+ + + + + + + + +
+ + + +
+

Search your photos

+
+
+
+ + +
+
+
+
+ + +
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+

They have been found 35389 photo + + +

+

+
+
+ +
+
+
+ + + go to page + + +
+
+ + +
+
+ + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + +
+
+
+ +

ATTENTION! GOOGLE ADVERTISING + + + +

+ + + + + +
+ + + + + + + + + + + + + + +
+ +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/faceai/headers.txt b/faceai/headers.txt new file mode 100644 index 00000000..e69de29b diff --git a/faceai/login_response.html b/faceai/login_response.html new file mode 100644 index 00000000..ebb9936e --- /dev/null +++ b/faceai/login_response.html @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Regalami Un Sorriso ETS - User Area + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

User Area

+ +

HI Giacomelli Piero
+ Address: Fosso del Masi n. 24, Prato 59100 (PO)
+ Company belonging to: REGALAMI UN SORRISO ONLUS
+ Telephone: 3487258208
+ E-mail: [email protected]
+ Tax ID code: GCMPRI58H25G999U
+ Expiration Date: 15/06/2030
+ No. of photos displayed/No. of photos max: 37045/0
+ Number of photos viewed today: 0

+

Please verify that the information is correct. For changes, please write to [email protected] or go to Edit Data
+ Please note that tacit consent to the accuracy of the member personal data is required.

+ +

.Mancano. 1518 .giorni alla scadenza..
+

+ + +
+
+ +
+
Login ok
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/faceai/package.json b/faceai/package.json index 4a363e79..473af682 100644 --- a/faceai/package.json +++ b/faceai/package.json @@ -16,7 +16,10 @@ "start:processor": "npm run start --workspace @regalami/faceai-processor", "test:e2e": "playwright test", "test:e2e:headed": "playwright test --headed", - "test:e2e:install": "playwright install chromium" + "test:e2e:install": "playwright install chromium", + "test:live": "playwright test -c playwright.live.config.js", + "test:live:headed": "playwright test -c playwright.live.config.js --headed", + "test:live:install": "playwright install chromium" }, "devDependencies": { "@playwright/test": "^1.59.1", diff --git a/faceai/playwright.live.config.js b/faceai/playwright.live.config.js new file mode 100644 index 00000000..4795474a --- /dev/null +++ b/faceai/playwright.live.config.js @@ -0,0 +1,38 @@ +const path = require('path'); +const { defineConfig } = require('@playwright/test'); + +const authFile = path.join(__dirname, 'tests/live-site/.auth/user.json'); + +module.exports = defineConfig({ + testDir: './tests/live-site', + timeout: 2 * 60 * 1000, + expect: { + timeout: 20 * 1000 + }, + fullyParallel: false, + workers: 1, + reporter: [['list'], ['html', { open: 'never', outputFolder: 'playwright-report/live-site' }]], + outputDir: 'test-results/live-site', + use: { + baseURL: process.env.LIVE_SITE_BASE_URL || 'https://www.regalamiunsorriso.it', + browserName: 'chromium', + headless: true, + trace: 'retain-on-failure', + screenshot: 'only-on-failure', + video: 'retain-on-failure' + }, + projects: [ + { + name: 'setup', + testMatch: /.*\.setup\.js/ + }, + { + name: 'live-chromium', + dependencies: ['setup'], + testIgnore: /.*\.setup\.js/, + use: { + storageState: authFile + } + } + ] +}); \ No newline at end of file diff --git a/faceai/probe.js b/faceai/probe.js new file mode 100644 index 00000000..e20ca7bb --- /dev/null +++ b/faceai/probe.js @@ -0,0 +1,47 @@ +const { chromium } = require('playwright'); +const fs = require('fs'); + +async function run() { + const browser = await chromium.launch(); + const context = await browser.newContext(); + const page = await context.newPage(); + + try { + const loginUrl = process.env.LIVE_SITE_LOGIN_URL; + const raceUrl = process.env.LIVE_SITE_RACE_URL; + + console.log('--- Step 1: Navigating to Login ---'); + await page.goto(loginUrl, { waitUntil: 'load' }); + + console.log('--- Step 2: Filling credentials ---'); + await page.type('#login', process.env.LIVE_SITE_USERNAME); + await page.type('#pwd', process.env.LIVE_SITE_PASSWORD); + + console.log('--- Step 3: Clicking Accedi ---'); + await page.click('button:has-text("Accedi")'); + await page.waitForTimeout(5000); // Give it time to process and redirect + + console.log('--- Step 4: Navigating to Race Page ---'); + const response = await page.goto(raceUrl, { waitUntil: 'load' }); + + console.log('Race Page URL:', page.url()); + console.log('HTTP Status:', response.status()); + + const cookies = await context.cookies(); + const cookieNames = cookies.map(c => c.name); + console.log('Cookies:', cookieNames.join(', ')); + console.log('rus_faceai_identity:', cookieNames.includes('rus_faceai_identity')); + console.log('JSESSIONID:', cookieNames.includes('JSESSIONID')); + + const logoutCount = await page.locator('a[href*="logout"]').count(); + const loginCount = await page.locator('a[href*="login"]').count(); + console.log('Logout Link Count:', logoutCount); + console.log('Login Link Count:', loginCount); + + } catch (err) { + console.error('Error occurred:', err.message); + } finally { + await browser.close(); + } +} +run(); diff --git a/faceai/response.html b/faceai/response.html new file mode 100644 index 00000000..0d0514e7 --- /dev/null +++ b/faceai/response.html @@ -0,0 +1,1100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Regalami Un Sorriso ETS - Gare + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+

Podismo // Podismo // 42 HALF MARATHON FIRENZE

+
+
+ + +
+
+ +
+
+ +
+ + + + + + + + +
+ + + +
+

Cerca le tue foto

+
+
+
+ + +
+
+
+
+ + +
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+

Sono state trovate 35389 foto + + +

+

+
+
+ +
+
+
+ + + vai a pag. + + +
+
+ + +
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ + + +
Hits: 0 -
+
+ +
+
+
+ +

ATTENZIONE ! PUBBLICITA' GOOGLE + + + +

+ + + + + +
+ + + + + + + + + + + + + + +
+ +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/faceai/tests/live-site/auth.setup.js b/faceai/tests/live-site/auth.setup.js new file mode 100644 index 00000000..c0d47555 --- /dev/null +++ b/faceai/tests/live-site/auth.setup.js @@ -0,0 +1,12 @@ +const { test } = require('@playwright/test'); +const { + AUTH_FILE, + ensureAuthDirectory, + performLiveLogin +} = require('./live-site-test-utils'); + +test('authenticate against the live site', async ({ page }) => { + ensureAuthDirectory(); + await performLiveLogin(page); + await page.context().storageState({ path: AUTH_FILE }); +}); \ No newline at end of file diff --git a/faceai/tests/live-site/live-race.spec.js b/faceai/tests/live-site/live-race.spec.js new file mode 100644 index 00000000..1ae3a2d0 --- /dev/null +++ b/faceai/tests/live-site/live-race.spec.js @@ -0,0 +1,33 @@ +const { test, expect } = require('@playwright/test'); +const { + LIVE_SITE_RACE_URL, + dismissCookieBanner, + expectRacePageLoaded, + performLiveLogin, + waitForLoggedInUi +} = require('./live-site-test-utils'); + +test('loads a live race page with an authenticated session', async ({ page }) => { + await page.goto(LIVE_SITE_RACE_URL, { waitUntil: 'domcontentloaded' }); + await dismissCookieBanner(page); + + try { + await waitForLoggedInUi(page); + } catch (error) { + await performLiveLogin(page); + await page.goto(LIVE_SITE_RACE_URL, { waitUntil: 'domcontentloaded' }); + await dismissCookieBanner(page); + await waitForLoggedInUi(page); + } + + await expectRacePageLoaded(page); + await expect(page.locator('h1')).toContainText(/HALF MARATHON FIRENZE|Competitions|Gare/i); + + const cookies = await page.context().cookies(LIVE_SITE_RACE_URL); + const faceAiIdentityCookie = cookies.find((cookie) => cookie.name === 'rus_faceai_identity'); + + expect(faceAiIdentityCookie, 'Expected the race page to mint the FaceAI identity cookie for the authenticated session.').toBeTruthy(); + expect(faceAiIdentityCookie.httpOnly).toBe(true); + expect(faceAiIdentityCookie.secure).toBe(true); + expect(faceAiIdentityCookie.value).toMatch(/\./); +}); \ No newline at end of file diff --git a/faceai/tests/live-site/live-site-test-utils.js b/faceai/tests/live-site/live-site-test-utils.js new file mode 100644 index 00000000..f7f99061 --- /dev/null +++ b/faceai/tests/live-site/live-site-test-utils.js @@ -0,0 +1,92 @@ +const fs = require('fs'); +const path = require('path'); +const { expect } = require('@playwright/test'); + +const LIVE_SITE_BASE_URL = process.env.LIVE_SITE_BASE_URL || 'https://www.regalamiunsorriso.it'; +const LIVE_SITE_LOGIN_URL = process.env.LIVE_SITE_LOGIN_URL || `${LIVE_SITE_BASE_URL}/login_clienti-it.html`; +const LIVE_SITE_RACE_URL = process.env.LIVE_SITE_RACE_URL || `${LIVE_SITE_BASE_URL}/42%20HALF%20MARATHON%20FIRENZE_gara-1018545---96-1.html`; +const LIVE_SITE_USERNAME = process.env.LIVE_SITE_USERNAME || ''; +const LIVE_SITE_PASSWORD = process.env.LIVE_SITE_PASSWORD || ''; +const AUTH_FILE = path.join(__dirname, '.auth', 'user.json'); + +function ensureAuthDirectory() { + fs.mkdirSync(path.dirname(AUTH_FILE), { recursive: true }); +} + +function requireCredentials() { + if (!LIVE_SITE_USERNAME || !LIVE_SITE_PASSWORD) { + throw new Error('LIVE_SITE_USERNAME and LIVE_SITE_PASSWORD must be set before running the live-site Playwright suite.'); + } +} + +async function dismissCookieBanner(page) { + const cookieButton = page.getByRole('button', { name: /^(Accetto|Accept)$/i }); + if (await cookieButton.count()) { + await cookieButton.first().click({ timeout: 5000 }).catch(() => {}); + return; + } + + const fallbackButton = page.locator('.cc-btn, .cc-dismiss, .cc-allow').filter({ hasText: /Accetto|Accept/i }); + if (await fallbackButton.count()) { + await fallbackButton.first().click({ timeout: 5000 }).catch(() => {}); + } +} + +function loginSubmitLocator(page) { + return page.locator('a.btn').filter({ hasText: /Accedi|Sign in/i }).first(); +} + +async function performLiveLogin(page) { + requireCredentials(); + + await page.goto(LIVE_SITE_LOGIN_URL, { waitUntil: 'domcontentloaded' }); + await dismissCookieBanner(page); + await page.locator('#login').fill(LIVE_SITE_USERNAME); + await page.locator('#pwd').fill(LIVE_SITE_PASSWORD); + await loginSubmitLocator(page).click(); + await waitForLoggedInUi(page); +} + +async function waitForLoggedInUi(page) { + const accountMenu = page.locator('#navbarDropdownMenuLink'); + const accountLink = page.locator('a[href*="dettaglio_clienti"]'); + const logoutLink = page.locator('a[href*="user_logout"]'); + + await expect.poll(async () => { + if (await accountMenu.count() && await accountMenu.first().isVisible().catch(() => false)) { + return 'account-menu'; + } + if (await accountLink.count() && await accountLink.first().isVisible().catch(() => false)) { + return 'account-link'; + } + if (await logoutLink.count() && await logoutLink.first().isVisible().catch(() => false)) { + return 'logout-link'; + } + return ''; + }, { + timeout: 30 * 1000, + message: 'Expected the logged-in account UI to appear after authenticating.' + }).not.toBe(''); +} + +async function expectRacePageLoaded(page) { + await expect(page.locator('form[onsubmit="return searching()"]')).toBeVisible(); + await expect(page.locator('#id_gara')).toHaveValue(/\d+/); + await expect(page.locator('script[src*="_js/rus-ecom-240621.js"]')).toHaveCount(1); +} + +module.exports = { + AUTH_FILE, + LIVE_SITE_BASE_URL, + LIVE_SITE_LOGIN_URL, + LIVE_SITE_PASSWORD, + LIVE_SITE_RACE_URL, + LIVE_SITE_USERNAME, + dismissCookieBanner, + ensureAuthDirectory, + expectRacePageLoaded, + loginSubmitLocator, + performLiveLogin, + requireCredentials, + waitForLoggedInUi +}; \ No newline at end of file diff --git a/faceai/tmp-live-state-inspection.json b/faceai/tmp-live-state-inspection.json new file mode 100644 index 00000000..31a25038 --- /dev/null +++ b/faceai/tmp-live-state-inspection.json @@ -0,0 +1,45 @@ +{ + "cookies": [ + { + "name": "JSESSIONID", + "value": "C78CCBD1771ACB52852817531958E96D", + "domain": "www.regalamiunsorriso.it", + "path": "/", + "expires": -1, + "httpOnly": true, + "secure": false, + "sameSite": "Lax" + }, + { + "name": "_pk_id.6.42c1", + "value": "5710c1018f76b02c.1776585670.", + "domain": "www.regalamiunsorriso.it", + "path": "/", + "expires": 1810540870, + "httpOnly": false, + "secure": false, + "sameSite": "Lax" + }, + { + "name": "_pk_ses.6.42c1", + "value": "1", + "domain": "www.regalamiunsorriso.it", + "path": "/", + "expires": 1776587471, + "httpOnly": false, + "secure": false, + "sameSite": "Lax" + }, + { + "name": "g_state", + "value": "{\"i_l\":0,\"i_ll\":1776585670175,\"i_b\":\"TwramoDGp33YsAyHyO2OJCLtRobG3bzu5wR3/nYmZ0E\",\"i_e\":{\"enable_itp_optimization\":0},\"i_et\":1776585670056}", + "domain": "www.regalamiunsorriso.it", + "path": "/", + "expires": 1792137670, + "httpOnly": false, + "secure": false, + "sameSite": "Lax" + } + ], + "origins": [] +} \ No newline at end of file diff --git a/sync/www-deploy-manifest.md b/sync/www-deploy-manifest.md index b1e6ae06..dc174365 100644 --- a/sync/www-deploy-manifest.md +++ b/sync/www-deploy-manifest.md @@ -10,20 +10,17 @@ All files in this rollout are deployed from the current working tree. ## New Files -- None in this rollout. +- `www/_inc_faceai_identity.jsp` +- `www/_js/lang.js` ## Updated Files -- `www/faceai_config.php` -- `www/faceai_handoff.php` -- `www/faceai_return.php` -- `www/fotoCR.jsp` - `www/fotoCR-en.jsp` +- `www/fotoCR.jsp` ## Excluded Files -- `www/faceai_simulator.php` -- `www/faceai_simulator_view.php` +- None in this rollout. ## Remote Copy Target @@ -31,7 +28,7 @@ All files in this rollout are deployed from the current working tree. - Remote host: `marco@83.149.164.4:410` - Remote staging path: `/home/marco/regalamiunsorriso/incoming/www` - Remote live path: `/home/sites/regalamiunsorriso/www` -- Total files in this manifest: `5` +- Total files in this manifest: `4` ## Transfer Method diff --git a/www/_inc_faceai_identity.jsp b/www/_inc_faceai_identity.jsp new file mode 100644 index 00000000..7d3cb783 --- /dev/null +++ b/www/_inc_faceai_identity.jsp @@ -0,0 +1,260 @@ +<%@ page language="java" import="java.nio.charset.StandardCharsets" %> +<%@ page language="java" import="java.util.Base64" %> +<%@ page language="java" import="java.lang.reflect.Method" %> +<%@ page language="java" import="javax.crypto.Mac" %> +<%@ page language="java" import="javax.crypto.spec.SecretKeySpec" %> +<%! +private String faceAiCookieEnv(String key, String defaultValue) { + String value = System.getenv(key); + if (value == null || value.trim().length() == 0) { + value = System.getProperty(key, defaultValue); + } + if (value == null) { + return defaultValue; + } + value = value.trim(); + return value.length() == 0 ? defaultValue : value; +} + +private String faceAiBase64Url(byte[] value) { + return Base64.getUrlEncoder().withoutPadding().encodeToString(value); +} + +private String faceAiJsonEscape(String value) { + if (value == null) { + return ""; + } + + StringBuilder builder = new StringBuilder(value.length() + 16); + for (int index = 0; index < value.length(); index++) { + char current = value.charAt(index); + switch (current) { + case '\\': + builder.append("\\\\"); + break; + case '"': + builder.append("\\\""); + break; + case '\b': + builder.append("\\b"); + break; + case '\f': + builder.append("\\f"); + break; + case '\n': + builder.append("\\n"); + break; + case '\r': + builder.append("\\r"); + break; + case '\t': + builder.append("\\t"); + break; + default: + if (current < 0x20) { + String hex = Integer.toHexString(current); + builder.append("\\u"); + for (int padding = hex.length(); padding < 4; padding++) { + builder.append('0'); + } + builder.append(hex); + } else { + builder.append(current); + } + break; + } + } + return builder.toString(); +} + +private Object faceAiInvoke(Object bean, String methodName) { + if (bean == null || methodName == null || methodName.length() == 0) { + return null; + } + + try { + Method method = bean.getClass().getMethod(methodName, new Class[0]); + return method.invoke(bean, new Object[0]); + } catch (Exception ignored) { + return null; + } +} + +private long faceAiUserId(Object user) { + Object value = faceAiInvoke(user, "getId_users"); + if (value instanceof Number) { + return ((Number) value).longValue(); + } + if (value != null) { + try { + return Long.parseLong(String.valueOf(value)); + } catch (NumberFormatException ignored) { + return 0L; + } + } + return 0L; +} + +private String faceAiUserString(Object user, String methodName) { + Object value = faceAiInvoke(user, methodName); + return value == null ? "" : String.valueOf(value).trim(); +} + +private boolean faceAiUserDaRinnovare(Object user) { + Object value = faceAiInvoke(user, "isDaRinnovare"); + return value instanceof Boolean ? ((Boolean) value).booleanValue() : false; +} + +private String faceAiCookieDisplayName(Object user) { + String nome = faceAiUserString(user, "getNome"); + String cognome = faceAiUserString(user, "getCognome"); + String displayName = (nome + " " + cognome).trim(); + if (displayName.length() > 0) { + return displayName; + } + + String email = faceAiUserString(user, "getEMail"); + if (email.length() > 0) { + return email; + } + + return String.valueOf(faceAiUserId(user)); +} + +private String faceAiIdentityToken(Object user, String secret, long expiresAt) throws Exception { + String email = faceAiUserString(user, "getEMail"); + String membershipStatus = faceAiUserDaRinnovare(user) ? "inactive" : "active"; + String payload = "{" + + "\"type\":\"legacy-identity\"," + + "\"userId\":\"" + faceAiJsonEscape(String.valueOf(faceAiUserId(user))) + "\"," + + "\"displayName\":\"" + faceAiJsonEscape(faceAiCookieDisplayName(user)) + "\"," + + "\"email\":\"" + faceAiJsonEscape(email) + "\"," + + "\"membershipStatus\":\"" + membershipStatus + "\"," + + "\"expiresAt\":" + expiresAt + + "}"; + + String body = faceAiBase64Url(payload.getBytes(StandardCharsets.UTF_8)); + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); + String signature = faceAiBase64Url(mac.doFinal(body.getBytes(StandardCharsets.UTF_8))); + return body + "." + signature; +} + +private boolean faceAiRequestIsSecure(javax.servlet.http.HttpServletRequest request) { + if (request == null) { + return false; + } + if (request.isSecure()) { + return true; + } + + String forwardedProto = request.getHeader("X-Forwarded-Proto"); + if (forwardedProto != null && "https".equalsIgnoreCase(forwardedProto.trim())) { + return true; + } + + String frontEndHttps = request.getHeader("Front-End-Https"); + return frontEndHttps != null && "on".equalsIgnoreCase(frontEndHttps.trim()); +} + +private void faceAiWriteCookieHeader(javax.servlet.http.HttpServletResponse response, String cookieName, String cookieValue, int maxAgeSeconds, boolean secureCookie) { + StringBuilder headerValue = new StringBuilder(); + headerValue.append(cookieName).append('=').append(cookieValue == null ? "" : cookieValue); + headerValue.append("; Max-Age=").append(maxAgeSeconds); + headerValue.append("; Path=/; HttpOnly; SameSite=Lax"); + if (secureCookie) { + headerValue.append("; Secure"); + } + response.addHeader("Set-Cookie", headerValue.toString()); +} + +private Object faceAiResolveUser(javax.servlet.jsp.PageContext pageContext) { + if (pageContext == null) { + return null; + } + + Object[] candidates = new Object[] { + pageContext.findAttribute("user"), + pageContext.findAttribute("utenteLogon") + }; + + for (int index = 0; index < candidates.length; index++) { + Object candidate = candidates[index]; + if (candidate != null && faceAiUserId(candidate) > 0L) { + return candidate; + } + } + + return null; +} + +private Object faceAiResolveUserFromSession(javax.servlet.jsp.PageContext pageContext) { + if (pageContext == null || pageContext.getSession() == null) { + return null; + } + + Object loginUserId = pageContext.getSession().getAttribute("loginUser_id"); + long resolvedLoginUserId = 0L; + if (loginUserId instanceof Number) { + resolvedLoginUserId = ((Number) loginUserId).longValue(); + } else if (loginUserId != null) { + try { + resolvedLoginUserId = Long.parseLong(String.valueOf(loginUserId)); + } catch (NumberFormatException ignored) { + resolvedLoginUserId = 0L; + } + } + + if (resolvedLoginUserId <= 0L) { + return null; + } + + Object sessionUser = pageContext.findAttribute("utenteLogon"); + if (sessionUser == null) { + return null; + } + + if (faceAiUserId(sessionUser) == resolvedLoginUserId) { + return sessionUser; + } + + try { + Method findByPrimaryKey = sessionUser.getClass().getMethod("findByPrimaryKey", long.class); + findByPrimaryKey.invoke(sessionUser, Long.valueOf(resolvedLoginUserId)); + } catch (NoSuchMethodException missingPrimitiveOverload) { + try { + Method findByPrimaryKey = sessionUser.getClass().getMethod("findByPrimaryKey", Long.class); + findByPrimaryKey.invoke(sessionUser, new Long(resolvedLoginUserId)); + } catch (Exception ignored) { + return null; + } + } catch (Exception ignored) { + return null; + } + + return faceAiUserId(sessionUser) > 0L ? sessionUser : null; +} +%> +<% +String faceAiCookieName = faceAiCookieEnv("FACEAI_IDENTITY_COOKIE", "rus_faceai_identity"); +String faceAiCookieSecret = faceAiCookieEnv("FACEAI_SHARED_SECRET", "disagio-spaghetti-science-lol-boh"); +Object faceAiRequestUser = pageContext.findAttribute("user"); +Object faceAiSessionUser = pageContext.findAttribute("utenteLogon"); +long faceAiRequestUserId = faceAiUserId(faceAiRequestUser); +long faceAiSessionUserId = faceAiUserId(faceAiSessionUser); +Object faceAiCookieUser = faceAiRequestUserId > 0L ? faceAiRequestUser : (faceAiSessionUserId > 0L ? faceAiSessionUser : faceAiResolveUserFromSession(pageContext)); +boolean faceAiSecureCookie = faceAiRequestIsSecure(request); + +if (faceAiFeatureEnabled && faceAiCookieUser != null && faceAiUserId(faceAiCookieUser) > 0L) { + long faceAiExpiresAt = System.currentTimeMillis() + (30L * 60L * 1000L); + try { + String faceAiToken = faceAiIdentityToken(faceAiCookieUser, faceAiCookieSecret, faceAiExpiresAt); + faceAiWriteCookieHeader(response, faceAiCookieName, faceAiToken, 30 * 60, faceAiSecureCookie); + } catch (Exception faceAiIdentityError) { + faceAiWriteCookieHeader(response, faceAiCookieName, "", 0, faceAiSecureCookie); + log("Unable to mint FaceAI identity cookie", faceAiIdentityError); + } +} else { + faceAiWriteCookieHeader(response, faceAiCookieName, "", 0, faceAiSecureCookie); +} +%> \ No newline at end of file diff --git a/www/_js/lang.js b/www/_js/lang.js new file mode 100644 index 00000000..f6cb59e0 --- /dev/null +++ b/www/_js/lang.js @@ -0,0 +1,55 @@ +// JavaScript Document +//////////////////////////////////////////// +// gestione cambio lingua +//////////////////////////////////////////// +var userLang = navigator.language || navigator.userLanguage; +console.log(userLang); + +function changeLang(lang) { + var page = window.location.href; + var idx = page.lastIndexOf("."); + + if (idx > 0) { + var ext = page.substring(idx, page.length); + + if (ext.indexOf("eu") >= 0 || ext.indexOf("com") >= 0 || ext.indexOf("net") >= 0 || ext.indexOf("it") >= 0) { + ext = ""; + var page1 = page; + } + else + + var page1 = page.substring(0, idx); + } + else { + // caso di pagina root www.xxxx.com/ + var ext = ""; + var page1 = page; + } + // 1 se ho pagine del tipo xxx.html --> aggiungo -lang.html + // 2 se ho pagine del tipo xxx_xxx-xxx-xxx-.html --> sostituisco l'ultima parte con xxx-lang.html + // 3 se ho pagine del tipo xxx_xxx-xx-xx-lang.html --> sostituisco l'ultima parte + // 4 se non ho estensione sono nella root e finisce con /(www.xxxx.com/) --> vado su index-lang + // 5 altrimenti vado su index-lang.jsp + // 6 caso Ordine.abl --> ritorno alla home + + if (ext == ".abl") { + theSvlt = "index-" + lang + ".html"; + } + else if (ext == "") { + theSvlt = page1 + "index-" + lang + ".html"; + } + else if (page1.lastIndexOf("-") == (page1.length - 1)) { + theSvlt = page1 + lang + ext; + } + else if (page1.lastIndexOf("-") == (page1.length - 3)) { + theSvlt = page1.substring(0, page1.length - 2) + lang + ext; + } + else if (page1.substring(page1.length - 1, page1.length) != "-") { + theSvlt = page1 + "-" + lang + ext; + } + else { + theSvlt = "index-" + lang + ".jsp"; + } + + location.href = theSvlt; +} \ No newline at end of file diff --git a/www/fotoCR-en.jsp b/www/fotoCR-en.jsp index 17ad6e47..f275b270 100644 --- a/www/fotoCR-en.jsp +++ b/www/fotoCR-en.jsp @@ -8,7 +8,6 @@ <%@ taglib uri="/WEB-INF/cc.tld" prefix="cc" %> - @@ -57,6 +56,10 @@ if (faceAiFeatureEnabledValue == null || faceAiFeatureEnabledValue.trim().length } String faceAiFeatureEnabledNormalized = faceAiFeatureEnabledValue != null ? faceAiFeatureEnabledValue.trim() : ""; boolean faceAiFeatureEnabled = !("0".equals(faceAiFeatureEnabledNormalized) || "false".equalsIgnoreCase(faceAiFeatureEnabledNormalized) || "no".equalsIgnoreCase(faceAiFeatureEnabledNormalized) || "off".equalsIgnoreCase(faceAiFeatureEnabledNormalized)); +%> +<%@ include file="_inc_faceai_identity.jsp" %> + +<% java.util.Date faceAiRaceDate = CR.getGara().getDataGaraInizio(); String faceAiRacePathBase = CR.getGara().getPathBase() != null ? CR.getGara().getPathBase().trim() : ""; String faceAiRaceYear = ""; diff --git a/www/fotoCR.jsp b/www/fotoCR.jsp index 76b6aaf7..596c240f 100644 --- a/www/fotoCR.jsp +++ b/www/fotoCR.jsp @@ -8,7 +8,6 @@ <%@ taglib uri="/WEB-INF/cc.tld" prefix="cc" %> - @@ -57,6 +56,10 @@ if (faceAiFeatureEnabledValue == null || faceAiFeatureEnabledValue.trim().length } String faceAiFeatureEnabledNormalized = faceAiFeatureEnabledValue != null ? faceAiFeatureEnabledValue.trim() : ""; boolean faceAiFeatureEnabled = !("0".equals(faceAiFeatureEnabledNormalized) || "false".equalsIgnoreCase(faceAiFeatureEnabledNormalized) || "no".equalsIgnoreCase(faceAiFeatureEnabledNormalized) || "off".equalsIgnoreCase(faceAiFeatureEnabledNormalized)); +%> +<%@ include file="_inc_faceai_identity.jsp" %> + +<% java.util.Date faceAiRaceDate = CR.getGara().getDataGaraInizio(); String faceAiRacePathBase = CR.getGara().getPathBase() != null ? CR.getGara().getPathBase().trim() : ""; String faceAiRaceYear = ""; diff --git a/www_staged.tar b/www_staged.tar new file mode 100644 index 0000000000000000000000000000000000000000..4e6853edd0e41b435e91b7ad30b0d6ce8996e381 GIT binary patch literal 49152 zcmeHQ>2lmglJ;NgDN2wvB11xV^Uz_MO$|knGIwQ}K~kDITI(-Xd-v|k9}mudIyq$HEDZK`K><6{)PLbS5#wIp3Y=(UF*k71v~Rt4E}ag& z>6~Q=r-JNe;y1ld-IxkeKTUZYS#0mlZrA7|FGd`PW&O#_=6< z$4-*^S$~=h?PnIdFIuq783p`;O%vX?x_>)-VIRLa>N@T!=X|0iFGeyjA05T(=Cxb!C0R z3L_AGYxjPie%#-)_IB^uHam_$!jX$L8}W!`emDu748!Q2tDk8%nWi1@3KMi=&;N0n zrQGwsKmXzNar!!TKloVZp%bLO#cUgh9{Y}m|7g8<C?fcdh_p)){^DnvU+v4F7 z;}Ore6WFQi1b%-njh@JS}fE$_Kf$(d&3I58koIpOf{ zLkGa)=x25zuqf~l03J*H0CbF2nLEuG)zMVXLm;JlZOeCKP#zYW-lbjDTL(oJ(6U?f z^a&jhVk?96BTp_Bjr~8)PUM5J!NlGj1RRv{8nm*X5xV6jF6eQZ@u2h0ce82eCr(C) zk^6aWmCDw}*eW}_I*ci8aQ}5YBGlCe;Y7};^EUO9v<}@YtAK6bC{?&&`Y&*<#Q(?C zPl2_?^Yexc(-OEn0}lxNm)MO*aS}S{P0b?jy%FEFW{bz*I<%pxI1;@x#ta@r6*~u_ zc5Nw)vgIJ2WllE5x-FVj-mz{l8?>&mcmM~divfdY9|`5AVTFvcIxyGWak7kG^30*# zS0yc7*3c~&ICh(8StsaHVP&=IgQzk0Ll5J*2z(|vDG6!CvhV-3SvE%gRazD(^hS!5 z>ZC4tv6Q*smIPWC{Ava31@&oE;bd_}i}K1zocapR?03dM7K008&k4YN{s>saaA(4q z%T*g0L5Vjnp6P|4heewabT3g~+k|<^Vo*>KNsLw{3VN8q%8Qcf`0Bv!-;wGi8#=DP z&yRd?nZ!Sgi1fX8PB8UZpPk*LP<1*ZAJXM=%{tmYINU!T93AeTzdb!19KP9q@%r$k zwf@~5K4fciI_k4%8U*aO-)2MWK-mq~);ob8jk59DI_vjYZ=L;m2O7{)BRol<4JX;n z%waxa)&`CBGgtet>R0K8gd+pIK#o=^6Av=(49i4io&+f5~+}w4d%uS}|wa;pt&G0gbQAogqi` z_n#F?Y367CD1<7Q=Hy#ypH2dvtyx{#2aFZ#vY#Z*&1*1L)l)%kMt_iMO-*Qhuu0>D zt?@{Apqd>=o_~#@^uALam)`F-j9W2)ruq*b%2_j3S_#!$Me)iRjmaE8T$x4(%*ucHZ)GboIu)pnmcMZw9blH z*Cc+{XO94zY^^7tE)Q=*W51xw@&;HA?8b^YO|=}vO$m|tIDIdP+lINW2z2J+ ztM#*)M#M)$dg?_i$cg>sFKQX7OfXEv)g)euJ$!&OeB^;!NznOY-`KSJC2?78(op+X zY?QnlW}$N)YI&kT3q%&nugFbOTj!FLh98HDvh$vZ)arxm{B*c~x{m&;vzKTt<}YVi zz|5DS0=3HEkG;W22$UR#!B1)6vq3a+ zu+8m|No()aA31>&a`rZ2XK|A7G-ikAXUt}h_x>)K8D&M--{gv(^NBdcD9u0^pr8~) z;DPt|cDoY5{6Wjo7jc}WS>jA!5=(q`a0aMkh!bWbX;`|%{)v+=bTwJC>!xY()Cqai z!5d4NtFoKGPshHWY5Ud@)PemgKaE459m9r|8UUn)t7yU`L;^5GGux5vau{kIPU8!l z;u!U8bSB%5vuu*?bVd8LGm7I8G|UN4J8m4($e#~^=-{R=``Fp)^&a6bf3%Gs_{$$X z#Si@DGbeNayL}w8R18~4_-xG6-1=D?5zWRGZEVqIF18NRlo30da2Q9ET3?Wnz+l(Q zYm^tmE($uZzk%-spotuPO-m#ex>msCN<45pEN^%4Zo506X*lnl>({a4!2nOQcu?6F zO{7m2U1cetT|)DFI3G8UF*N$E$y=p9cF;&1}X2Q=Y+ ze}l}=*#0JsD!jZ0n)#6Xo{bGfFa&z?w+iqX&N9KwRS>(44>2_w8cD~03D^rRP}N9H z0+fU>pTCeDqro2T#_VrcL`ILQY;0|hH?bOtLlNKVWSRg7Me_=<%W_G3Y9|kVXY^pMpjyE)Pz}$v|B%R=7tLzlyUb0g`;7)R5?Ok8zth_kjm6^JJI&r)NY+alH z4L(nT1H7JfyKL7{d~;!+FY6uHKJ+6u9{6DM8Mhm{fXgK+x+e;gR9Qyv_PFjkSUAYEuu zz%@um45Cgx3r9&bqmC0RjnNx+U<-gFX057{L)w?jIv6x zCyt%?SrRubLymK1n9}EspoH=Yb2SEImJq=ZVnETKOI~n ze~{*KNr|~k!h$J_TYkbKR#1>$Q|CgE>CWXtsq;Cl=@3U8QjV>7Dz(=F)8JMHS0zsU zJ(xGFCi6#HKI2J<)pxVt8izM=EM69panh>-EEO#Q*QmerMCI|X3R%Bh0;sIIG(57k zk=?cmv3S1(OkH_tsP#j46@F8VB}P(j)-Wc6`9h3Two1Me%h2S$q==9=)9`})K(sZ@ zXQd;8XSH+GdYJJ zhtxI|Q=#Y#&HCj3CL1MQXpfS3I$`0py~QS(z0D>U_6F&+JvOstXT+N zEvMK}6LkaU!Vl<#jzdG}6}oS(DW!=WM*;Nl!WLt2$kG%=U-j_-N(v3yHDtzQ8f7sN zhFn_+4&zN6A-pW2h^AZ!og6_7X{n_R1+q`EhIE)oVlj`(lTz+KWS(~_cN42 zoSsRG6s9F(*2Z)i(S@l{vseT&UHUGA!a9vSEXy>6&Q+cV^{Yz^7$?Qt(L)~HgJ3@F zMu$qd#7sfrQXhiY%&{c*X)y;J+C)njd|>slZDS(xXFlY{_36q5s+W~?6HTSfFAZj8 z?5o>ExOBubR*(2<H>RC~@R+`vqga#36$u7Px47JR4sV}fJM z7b0PK)|_o)|B@I7*s}FDliV_W;dopSj5ghk)faX8Tpfg zk{!J}gPoW3|A}s?)QsX$*m3(7j;n}!MO^4)hdrHKle>U1^)m2>*$(>_Z(&t{bFyze zworC0BRTpOPSl#`FXHmOgz> z{BMXlvUF&j)=&peVN^^!p%6;>EyVt?tfA$o5khq}b9;}JW^H18u;?uL&=MB11KWC- zTgbG}@u7vcP2%1tsBlxGg!JCi_-bvv@=oja;x$cv;@q$qd2K~bZ^KW3^)2tY)T z5&z{EM|jb&Y|`Ig;9nE11HzTO)F38$Aq@GeBI@u9BI=9oBbOdxVDrQuMpdvQ|a z5rvxf42mBmCM{oy7r_qg2xM3N$UHpRsXR+pJ800(;4Skyg~W zNwL-`vgLqw{F)U==NSTx0vIU?P)E2ezgZ(6B5Gz?vS!gMt7e)a8p9=%OH$3rYu8_P zGyc9Lb}!%5hIq+0qe)||u3SL|rm5nF0*5p)nEw9fzrewb3762`4S4C9>Y;0DPYiMk z_C0bTVVV0@r_-@+5w;>>_K1fxSKNx)!rd2*K(bC;LNv?&3&eVG+xIQHO;D1L4YbSd z9lYK@I~(jDoFBhCyeGJRZEcjR>E6lytHZ(T<2V0#@3WG;?Dx&vA6^`u-UA7M15{R9 zkcGM2=ET0hmW<%0__x@S|E;#9ns5p2rA6B9P6J)K+XWAn5A(TpVeB!_1jb=o{FJH` zn;>r5PK0$|0|GlP8DeOMKwVI(yMAam!+r+iOECtFLK-8q?R|6GVuQg2xc!I0lP810 z-sbjhS5}$RYU_#7>M2@nJz1jFHf}5Cu%4mS_Oog$;YT6$xI9WYItxeIi9{Bi{GRll z!%ju!E#I?tEDQeTy(hhDr$VBaJAAs?+~L#BdWTOpm+0^r@Ce;gYLCVUpKaGWe6|dV zzXgh$I{fxYy~A${?3X-FyV|r=xT@wT*bT}%O$4g@o(O3vI>GvoOcR>?rNfy+mmoWa zZe_4?bz+rva&nm#6fZU7SFl4??dJ4OQ_9ocU{IV;Ynn0QA$wElxG1#)sq+=B*_)%V)+!@7$2LxO~@Xt6#LJZJ> zv95cYOrbbX%?UO$r;ZOV$Xj2t?I6YapWlR zF+>?q1Y@5V)((5z>rG69yJ$(uu;+)S6J1fk)fnLgBw%2w zrz4e;$izj$3$42_qeW%CJ(cS{Mtqx*nD+=q7rig_-J#pNH&JDW6gJRxQ@Jb zYZ&mq=UHk{-wy3^6KDvE6<5P)9tg2Sap7w>Dw1FRZIIzwE#l8`I25k-x?MpqKMpA2++OE2tSB5`Pp2xJ!>?Fe>2gdlX+%+W;^BF^zG}9*5c3<#avAG3CRdR*z%lyHCn;8C_5_vq zg&-Cc%^n0V%BdorOmKk_Ct?<1HB+C{1aU~FcmKEgZ-32$s>!A=o=;wk67!AWsn z`GV6GtiEM$ATSqq5Fvb#@qupYia0Z2E<$kN#ZBKT8V0Y)pRB5sL($Z9Ol~3uVC!xb zkl2L=6;W)w+#zKKB%6?nw_K;GmW-k`Iue3t{8*c^WM4v^lNw=d9?+-8kBfnb_7_t) zOOVM!~mhz?fL;TL+?E%>pZ%3q=lFQ1)#?FA;(mOm#JF zGN;L~zy@m^kTfy*;hE1ar!i-RX_xpQd=r8XaxgLq68ztPvXB!qL80c0Iaf5PxXjrW zBI_cH82;K5+}}mSFS)_C<p;FETf5&KAw zKxl#S(xdTU{H*RdF^+t<$aj&-B!W$8uFR1mC_nU&BhQ|J=@6F$Hqlpz# z3}f!X-Lfr6RvOKM2)`l8SlLqiSfwRE9lyNHnRRl#7NZ6q8?@fWd|II53jcCU5M!6DX`#@RP1Q--&9N zOTlI5OshG$0x`+<>m!(%v;0Ts7jP^<~pFhuh%G zE*bhuo-G-C1^OiWX8-4$+H(N?KbG=Oo+Iq7o*z5NRF!`L`Y`RuVNfL(2EtWHN z+UdDELcghIw*xN&oua7}DJ+GyBC|1cai3G)T&4=5zRpNe%{n2Q93d?OOqfD~%(7Mw zMV;nb-*frtm?i8(`&3 zYV0{vsauf;Oyz&QzxN%Gp$Ah8>+5gU9^8YaM5RQq#l^n|>z(4&+OHT06Devb3og3k znRVwQQk+!V%1h46Hvam~*TsOoF0DmVrUOKHWoOwG*}&xDD#Xgm!!r{UyidFDk?%9P z=~UAch_nswQz*(gR)lm|EqpU~Ef?!dXtC}IZ{vCmD%`L_6VWh>^qo*gkRhaqrF-%YNMgzRL5z6KDE;@PX9mbMwD%ZEaWczxR6EZT|P)XEn;bw)x+6 z#`re>JB*>E!L<3`WgZ%t+NjO{UP%$ZFl{wOYao=10+xiOrp^D}=6_d7=g(Ba_*(c} zEkium(1OnjwE5p@hbflb=6{zAM^SGiykpYy#ofdu7W-(1tbTJ$^ z^5Zx8M;>a_{z)I+SPY#4Q|r*Bf3p;+O1F%2Us^-SVo(&S+uQ>=HR-aN2wo}mtxBrc zsRL{Czc<=ziiFE~KIyVS=bcE6UnCZnCZvWs<*d!85IfN=a+Q`0FWz(x?Wj8t_P;LHq{biUU#SmQqYV*Ih`QMW^|9hMNy(wpWoB#d) zL;iOJMpQ2rQ|6;02b+Gnec9j1+$Drmn*kn@T835>Y1mZ+ptvd5W`J)qz|Tz?-)4Ys zGr-FWH53|6iAJ^cTVHJ|l9iH$o(vpDI#QB0Z3cKV<9~6S)w$m38c+Rg`QlcAWMw?3 z51+Le;1P;x8VhQ<*UbPvgb3EJfXS69<67OOLfE6Y~zj9Le`Xr2$pERB}13cY6H!{}NmQ_Tt8kZp3 z4DjY{&qj19JT~L0G;E&7yzAT!)NdEVQ zXlk>*%N$&7*7xey7EaX{7?!`3i*rQfJ5Y$;Y?HoA#F8^)VT%0rntXdrKK}q!?fWOc z>yG@Kx8#lFO)AsrEzbF#J9x=hCzhz+->l^-Up^arQ-52vROQR(iErv}`&l*hc|!(y zVGJoJdvCMH=S#dOdpx4n@@4m< zOm@^JmZ!iR1l-tdV)-_){1V@BXcNo-slV+&4(2woe4ALlO)TFgmWK(g_=tL&SiVgx z|L6abQJYx4{YW}Kuls;CCQ4t@U;giySiUK|pmmtH4)a^!FmKb!%bQm+6MdUjzD+Cd iy~5W@kt<(h{KuWKHm!U)rFQ$&VxYx9i-A7{2L2Cjc_BFf literal 0 HcmV?d00001 From bb60201ad47d94da062e91f55bdce70600fb6f2f Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Sun, 19 Apr 2026 10:38:32 +0200 Subject: [PATCH 2/2] Enhance FaceAI integration with live checks and metadata handling - Added optional live FaceAI checks in README.md - Implemented relative storage segment parsing in race-storage.js - Updated server.js to include relative directory in race storage - Refactored legacyAssets.js to resolve asset base URL dynamically - Expanded live race tests to validate FaceAI app launch and metadata - Introduced portrait image handling for live upload flow - Updated faceai_handoff.php to process race storage relative directory --- faceai/README.md | 15 +++ faceai/apps/backend/src/race-storage.js | 27 +++- faceai/apps/backend/src/server.js | 3 +- faceai/apps/frontend/src/legacyAssets.js | 31 ++++- faceai/tests/live-site/live-race.spec.js | 120 +++++++++++++++--- .../tests/live-site/live-site-test-utils.js | 31 +++++ test_pkl/live/test_portrait_1.png | Bin 0 -> 169565 bytes www/_js/rus-ecom-240621.js | 2 + www/faceai_handoff.php | 6 +- 9 files changed, 212 insertions(+), 23 deletions(-) create mode 100644 test_pkl/live/test_portrait_1.png diff --git a/faceai/README.md b/faceai/README.md index bdc44c46..ec5ea4d8 100644 --- a/faceai/README.md +++ b/faceai/README.md @@ -201,6 +201,21 @@ What it does: - opens the configured live race URL - verifies the account UI is present and the race search form renders correctly +Optional live FaceAI checks can also be enabled with: + +```bash +LIVE_FACEAI_BASE_URL=https://ai.regalamiunsorriso.it +LIVE_SITE_PORTRAIT_PATH=../test_pkl/live/test_portrait_1.png +LIVE_SITE_RUN_UPLOAD_FLOW=1 +``` + +When enabled, the live suite also: + +- validates that the legacy Face ID handoff URL includes the race storage metadata expected by FaceAI +- opens the real FaceAI app and asserts that the legacy header stylesheets load from the live legacy site +- confirms the app does not emit the `MISSING_RACE_STORAGE` invalid-race error on launch +- uploads the supplied portrait image and verifies that search creation succeeds + ## Optional Backend And Frontend Dev Loop If you only want to iterate on the app without the PHP simulator, you can still run the public site and the processor separately. The queue-backed flow now requires Redis and the processor, so `npm run dev` alone is no longer the full stack. diff --git a/faceai/apps/backend/src/race-storage.js b/faceai/apps/backend/src/race-storage.js index 0a8ee4f7..0b150995 100644 --- a/faceai/apps/backend/src/race-storage.js +++ b/faceai/apps/backend/src/race-storage.js @@ -30,6 +30,20 @@ function sanitizePathSegment(value) { return normalized; } +function parseRelativeStorageSegments(value) { + const normalized = String(value || '').trim().replace(/\\/g, '/'); + + if (!normalized) { + return []; + } + + return normalized + .split('/') + .map((segment) => segment.trim()) + .filter(Boolean) + .map((segment) => sanitizePathSegment(segment)); +} + export function normalizeRaceFolderName(value) { return String(value || '') .trim() @@ -49,9 +63,16 @@ export function buildMonthFolder(year, monthIndex) { } export function buildRaceStorage(storageInput = {}) { - const year = sanitizePathSegment(storageInput.year); - const monthFolder = sanitizePathSegment(storageInput.monthFolder); - const raceFolder = sanitizePathSegment(normalizeRaceFolderName(storageInput.raceFolder)); + const relativeSegments = parseRelativeStorageSegments(storageInput.relativeDir); + const relativeYear = relativeSegments[0] || ''; + const relativeMonthFolder = relativeSegments.length >= 3 ? relativeSegments[1] : ''; + const relativeRaceFolder = relativeSegments.length >= 3 + ? relativeSegments[2] + : (relativeSegments.length >= 2 ? relativeSegments[1] : ''); + + const year = sanitizePathSegment(storageInput.year || relativeYear); + const monthFolder = sanitizePathSegment(storageInput.monthFolder || relativeMonthFolder); + const raceFolder = sanitizePathSegment(normalizeRaceFolderName(storageInput.raceFolder || relativeRaceFolder)); if (!year || !monthFolder || !raceFolder) { return null; diff --git a/faceai/apps/backend/src/server.js b/faceai/apps/backend/src/server.js index da9f901f..e503def3 100644 --- a/faceai/apps/backend/src/server.js +++ b/faceai/apps/backend/src/server.js @@ -262,7 +262,8 @@ app.get('/dev/legacy/launch', (req, res) => { raceStorage: { year: String(req.query.raceYear || mockCatalog[raceId]?.storage?.year || ''), monthFolder: String(req.query.raceMonthFolder || mockCatalog[raceId]?.storage?.monthFolder || ''), - raceFolder: String(req.query.raceFolder || mockCatalog[raceId]?.storage?.raceFolder || '') + raceFolder: String(req.query.raceFolder || mockCatalog[raceId]?.storage?.raceFolder || ''), + relativeDir: String(req.query.raceStorageRelativeDir || '') }, lang, returnUrl diff --git a/faceai/apps/frontend/src/legacyAssets.js b/faceai/apps/frontend/src/legacyAssets.js index 07e8a100..4c6e46ba 100644 --- a/faceai/apps/frontend/src/legacyAssets.js +++ b/faceai/apps/frontend/src/legacyAssets.js @@ -1,4 +1,33 @@ -const legacyAssetBaseUrl = (import.meta.env.VITE_LEGACY_ASSET_BASE_URL || '/legacy-static').replace(/\/$/, ''); +import { getLegacyBaseUrl } from './legacyUrls.js'; + +const localHostnames = new Set(['localhost', '127.0.0.1', '::1']); + +function trimTrailingSlash(value) { + return String(value || '').replace(/\/$/, ''); +} + +function currentHostname() { + if (typeof window === 'undefined' || !window.location || !window.location.hostname) { + return ''; + } + + return window.location.hostname.toLowerCase(); +} + +function resolveLegacyAssetBaseUrl() { + const configuredAssetBaseUrl = trimTrailingSlash(import.meta.env.VITE_LEGACY_ASSET_BASE_URL || ''); + if (configuredAssetBaseUrl) { + return configuredAssetBaseUrl; + } + + if (localHostnames.has(currentHostname())) { + return '/legacy-static'; + } + + return getLegacyBaseUrl(); +} + +const legacyAssetBaseUrl = resolveLegacyAssetBaseUrl(); export function legacyAsset(path) { return `${legacyAssetBaseUrl}${path.startsWith('/') ? path : `/${path}`}`; diff --git a/faceai/tests/live-site/live-race.spec.js b/faceai/tests/live-site/live-race.spec.js index 1ae3a2d0..c98f9ecb 100644 --- a/faceai/tests/live-site/live-race.spec.js +++ b/faceai/tests/live-site/live-race.spec.js @@ -1,28 +1,59 @@ const { test, expect } = require('@playwright/test'); const { + LIVE_FACEAI_BASE_URL, + LIVE_SITE_BASE_URL, + LIVE_SITE_PORTRAIT_PATH, LIVE_SITE_RACE_URL, - dismissCookieBanner, - expectRacePageLoaded, - performLiveLogin, - waitForLoggedInUi + LIVE_SITE_RUN_UPLOAD_FLOW, + ensureLiveAuthenticatedRacePage, + requirePortraitFixture } = require('./live-site-test-utils'); -test('loads a live race page with an authenticated session', async ({ page }) => { - await page.goto(LIVE_SITE_RACE_URL, { waitUntil: 'domcontentloaded' }); - await dismissCookieBanner(page); +function escapeRegExp(value) { + return String(value).replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); +} - try { - await waitForLoggedInUi(page); - } catch (error) { - await performLiveLogin(page); - await page.goto(LIVE_SITE_RACE_URL, { waitUntil: 'domcontentloaded' }); - await dismissCookieBanner(page); - await waitForLoggedInUi(page); - } +async function openLiveFaceAi(page) { + const consoleErrors = []; - await expectRacePageLoaded(page); + page.on('console', (message) => { + if (message.type() === 'error') { + consoleErrors.push(message.text()); + } + }); + + await ensureLiveAuthenticatedRacePage(page); await expect(page.locator('h1')).toContainText(/HALF MARATHON FIRENZE|Competitions|Gare/i); + const launchUrl = await page.evaluate(() => { + return typeof buildFaceAiLaunchUrl === 'function' ? buildFaceAiLaunchUrl() : ''; + }); + + expect(launchUrl, 'Expected the legacy race page script to expose a FaceAI handoff URL builder.').toBeTruthy(); + + const parsedLaunchUrl = new URL(launchUrl, LIVE_SITE_BASE_URL); + expect(parsedLaunchUrl.searchParams.get('raceYear')).toBeTruthy(); + expect(parsedLaunchUrl.searchParams.get('raceMonthFolder')).toBeTruthy(); + expect(parsedLaunchUrl.searchParams.get('raceFolder')).toBeTruthy(); + expect(parsedLaunchUrl.searchParams.get('raceStorageRelativeDir')).toBeTruthy(); + + await expect(page.locator('#faceaiLaunchButton')).toBeVisible(); + await page.locator('#faceaiLaunchButton').click(); + + await page.waitForURL(new RegExp(`^${escapeRegExp(LIVE_FACEAI_BASE_URL)}/`), { + timeout: 60 * 1000 + }); + await expect(page.getByRole('heading', { name: /Trova le tue foto con un selfie|Find your photos with a selfie/i })).toBeVisible(); + + return { + consoleErrors, + launchUrl: parsedLaunchUrl + }; +} + +test('loads a live race page with an authenticated session', async ({ page }) => { + await ensureLiveAuthenticatedRacePage(page); + const cookies = await page.context().cookies(LIVE_SITE_RACE_URL); const faceAiIdentityCookie = cookies.find((cookie) => cookie.name === 'rus_faceai_identity'); @@ -30,4 +61,61 @@ test('loads a live race page with an authenticated session', async ({ page }) => expect(faceAiIdentityCookie.httpOnly).toBe(true); expect(faceAiIdentityCookie.secure).toBe(true); expect(faceAiIdentityCookie.value).toMatch(/\./); +}); + +test('launches the live FaceAI app with race storage metadata and a styled header', async ({ page }) => { + const { consoleErrors, launchUrl } = await openLiveFaceAi(page); + + expect(launchUrl.searchParams.get('raceStorageRelativeDir')).toContain('/'); + await expect(page.locator('nav.navbar')).toBeVisible(); + await expect(page.locator('link[data-legacy-href*="bootstrap.min.css"]')).toHaveCount(1); + await expect(page.locator('link[data-legacy-href*="custom-style.css"]')).toHaveCount(1); + + const legacyStylesheetHrefs = await page.locator('link[data-legacy-href]').evaluateAll((elements) => { + return elements.map((element) => element.getAttribute('href') || ''); + }); + + expect(legacyStylesheetHrefs.some((href) => href.startsWith(`${LIVE_SITE_BASE_URL}/`))).toBe(true); + + const navComputedStyles = await page.locator('nav.navbar').evaluate((element) => { + const styles = window.getComputedStyle(element); + return { + position: styles.position, + display: styles.display + }; + }); + + expect(navComputedStyles.position).toBe('fixed'); + expect(navComputedStyles.display).not.toBe('block'); + expect(consoleErrors.find((entry) => entry.includes('MISSING_RACE_STORAGE')) || '').toBe(''); + expect(consoleErrors.find((entry) => entry.includes('[FaceAI] Invalid race data:')) || '').toBe(''); +}); + +test.skip(!LIVE_SITE_RUN_UPLOAD_FLOW, 'Set LIVE_SITE_RUN_UPLOAD_FLOW=1 to exercise the live upload flow.'); + +test('accepts the supplied portrait image for the live upload flow', async ({ page }) => { + requirePortraitFixture(); + + await openLiveFaceAi(page); + + const fileInput = page.locator('input[type="file"]'); + await expect(fileInput).toBeEnabled(); + await fileInput.setInputFiles(LIVE_SITE_PORTRAIT_PATH); + + await expect(page.locator('.faceai-file-name')).toContainText('test_portrait_1.png'); + + const searchResponsePromise = page.waitForResponse((response) => { + return response.request().method() === 'POST' && response.url().includes('/api/searches'); + }, { + timeout: 60 * 1000 + }); + + await page.getByRole('button', { name: /Avvia ricerca Face ID|Start Face ID search/i }).click(); + + const searchResponse = await searchResponsePromise; + expect(searchResponse.ok(), 'Expected the live upload flow to create a FaceAI search successfully.').toBe(true); + + const searchPayload = await searchResponse.json(); + expect(searchPayload.id || searchPayload.searchId, 'Expected the search creation response to include a search identifier.').toBeTruthy(); + await expect(page.locator('.faceai-feedback')).not.toContainText(/Impossibile|Unable|Errore|Error/i); }); \ No newline at end of file diff --git a/faceai/tests/live-site/live-site-test-utils.js b/faceai/tests/live-site/live-site-test-utils.js index f7f99061..c98819d7 100644 --- a/faceai/tests/live-site/live-site-test-utils.js +++ b/faceai/tests/live-site/live-site-test-utils.js @@ -2,11 +2,15 @@ const fs = require('fs'); const path = require('path'); const { expect } = require('@playwright/test'); +const WORKSPACE_ROOT = path.resolve(__dirname, '..', '..', '..'); const LIVE_SITE_BASE_URL = process.env.LIVE_SITE_BASE_URL || 'https://www.regalamiunsorriso.it'; const LIVE_SITE_LOGIN_URL = process.env.LIVE_SITE_LOGIN_URL || `${LIVE_SITE_BASE_URL}/login_clienti-it.html`; const LIVE_SITE_RACE_URL = process.env.LIVE_SITE_RACE_URL || `${LIVE_SITE_BASE_URL}/42%20HALF%20MARATHON%20FIRENZE_gara-1018545---96-1.html`; +const LIVE_FACEAI_BASE_URL = process.env.LIVE_FACEAI_BASE_URL || 'https://ai.regalamiunsorriso.it'; const LIVE_SITE_USERNAME = process.env.LIVE_SITE_USERNAME || ''; const LIVE_SITE_PASSWORD = process.env.LIVE_SITE_PASSWORD || ''; +const LIVE_SITE_PORTRAIT_PATH = process.env.LIVE_SITE_PORTRAIT_PATH || path.join(WORKSPACE_ROOT, 'test_pkl', 'live', 'test_portrait_1.png'); +const LIVE_SITE_RUN_UPLOAD_FLOW = process.env.LIVE_SITE_RUN_UPLOAD_FLOW === '1'; const AUTH_FILE = path.join(__dirname, '.auth', 'user.json'); function ensureAuthDirectory() { @@ -75,18 +79,45 @@ async function expectRacePageLoaded(page) { await expect(page.locator('script[src*="_js/rus-ecom-240621.js"]')).toHaveCount(1); } +async function ensureLiveAuthenticatedRacePage(page) { + await page.goto(LIVE_SITE_RACE_URL, { waitUntil: 'domcontentloaded' }); + await dismissCookieBanner(page); + + try { + await waitForLoggedInUi(page); + } catch (error) { + await performLiveLogin(page); + await page.goto(LIVE_SITE_RACE_URL, { waitUntil: 'domcontentloaded' }); + await dismissCookieBanner(page); + await waitForLoggedInUi(page); + } + + await expectRacePageLoaded(page); +} + +function requirePortraitFixture() { + if (!fs.existsSync(LIVE_SITE_PORTRAIT_PATH)) { + throw new Error(`LIVE_SITE_PORTRAIT_PATH does not exist: ${LIVE_SITE_PORTRAIT_PATH}`); + } +} + module.exports = { AUTH_FILE, + LIVE_FACEAI_BASE_URL, LIVE_SITE_BASE_URL, LIVE_SITE_LOGIN_URL, LIVE_SITE_PASSWORD, + LIVE_SITE_PORTRAIT_PATH, LIVE_SITE_RACE_URL, + LIVE_SITE_RUN_UPLOAD_FLOW, LIVE_SITE_USERNAME, dismissCookieBanner, + ensureLiveAuthenticatedRacePage, ensureAuthDirectory, expectRacePageLoaded, loginSubmitLocator, performLiveLogin, + requirePortraitFixture, requireCredentials, waitForLoggedInUi }; \ No newline at end of file diff --git a/test_pkl/live/test_portrait_1.png b/test_pkl/live/test_portrait_1.png new file mode 100644 index 0000000000000000000000000000000000000000..48e5c58ca40291b1cd5247dd7744b8ee0c68b1fd GIT binary patch literal 169565 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

%9n87|R)!$2kE9y2DWLG&N|8X8qpvv%^ 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 UWUhQ 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�%h$$t-rg%ztr(V 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