JS test: Home carries only Library's desktop background ticket

Offen Anfängerfreundlich
#427 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Feature
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
javascript, node.js
Bereich
frontend, testing

Rechercherichtung

Lies capsules/home/browser/home-shell-host.js und capsules/library/browser/src/api.js und sieh dir anschließend die bestehende Node-Testkonfiguration an. Stubbe fetch, postMessage und den Frame-Kontext, um die Weiterleitung des Tickets, die Ablehnung anderer Apps, zusätzliche Schlüssel und ungültige Tickets sowie die fehlgeschlagene Ticketanfrage von Library abzudecken. Fertig, wenn diese Browser-Verhaltensweisen abgedeckt sind und Home das Start-Token niemals sendet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Found in the review of #67 (Set as Desktop Background from Library).

Runtime's side is tested in elastos/crates/elastos-server/src/api/gateway_tests/home_system.rs (test_home_background_from_object_ticket_is_single_use_and_short_lived). The browser side has no test:

  • capsules/library/browser/src/api.js setDesktopBackground asks /api/apps/library/desktop-background-ticket with Library's own token, then posts home:set-desktop-background with { uri, requestId, ticket }.
  • capsules/home/browser/home-shell-host.js handleSetDesktopBackgroundMessage accepts the message only from a launched Library app frame, with exactly those keys and a 43-character base64url ticket, and posts { source_uri, library_ticket }. It must never send the frame's launch token (context.homeToken).

What to do: a node test (stubbed fetch, postMessage and frame context) that proves Home sends the ticket and not the launch token, refuses the message from any other app or with extra keys or a bad ticket, and that Library sends no message when the ticket request fails.

Vorherrschende Sprache
Rust
Sterne
6
Forks
2
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
42

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus elastos/elastos-runtime

Alle Issues in elastos/elastos-runtime

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.