---
title: "Verify iOS prepared share handoff retains source content"
description: "Inspect an iOS app after an externally prepared share handoff, checking source URL, title, draft editing, and a single persisted bookmark."
canonical_url: "https://vostride.com/agent-library/ios-flows/share-extension-draft-handoff.md"
md_url: "https://vostride.com/agent-library/ios-flows/share-extension-draft-handoff.md"
content_kind: "recipe"
topic: "ios-flows"
---

# Verify iOS prepared share handoff retains source content

Inspect an iOS app after an externally prepared share handoff, checking source URL, title, draft editing, and a single persisted bookmark.

## Risk

Shared content can be partially delivered or associated with an old draft. Treat extension invocation as an external fixture and verify the app-owned handoff result using exact source values and a persistent record oracle.

## Fixtures

- An iOS sandbox app supporting bookmark sharing, with a native target and explicit preserve policy for the prepared handoff session.
- An external device workflow that shares an owned sandbox page into the app and reports its exact URL, title, and handoff completion.
- A disposable bookmark account, a unique collection, and an independent bookmark endpoint that exposes saved URLs and record identifiers.

## Steps

1. Verify the external share fixture completed, then inspect the app-owned incoming draft and verify its title and complete source URL match the shared page.
2. Change the draft title to a unique annotated title, choose the fixture collection, and verify the URL remains unchanged.
3. Cancel once using the product-supported keep-draft path, reopen the incoming draft, and verify the annotation and collection are retained according to the product contract.
4. Save the bookmark and verify its detail shows the annotated title, source URL, and chosen collection after reopening.
5. Inspect the independent bookmark endpoint and verify exactly one record for the source URL in that collection with the edited title.

## Expected results

- The incoming draft is derived from the reported share payload and retains the full URL.
- Editing the title does not mutate or truncate the source address.
- One persisted bookmark carries the final title and intended collection identifier.

## False-pass traps

- A web-page title can match even when a tracking redirect or stale URL was saved.
- The extension closing successfully does not prove the host app received its payload.

## Cleanup

- Delete the test bookmark and clear the external share fixture and retained incoming draft.

## Use with agent-qa

Adapt this test design to your application's acceptance criteria and configured target using the [recipe execution guide](/agent-library/software-factory/turn-a-recipe-into-an-agent-qa-test.md). External fixture setup and non-UI checks require your own supported hooks or test tooling. Validate the authored test, execute it, and inspect the completed evidence; this recipe is not a recorded test result.

## References

- [agent-qa mobile testing](/docs/agent-qa/guides/mobile-testing.md)
- [agent-qa test](/docs/agent-qa/configuration/test.md)
- [agent-qa hooks](/docs/agent-qa/guides/hooks.md)

- [iOS application QA recipes](/agent-library/ios-flows.md)
- [Software factory QA library](/agent-library.md)
