Combined Images
Annotation and manifest fixtures spanning all images.
Baseline
A small set of normal resources that should load cleanly.
All annotations
A CORS-enabled annotation page with all georeference annotations.
All annotations, no-CORS route
The same baseline annotation page served without CORS headers.
Manifest with embedded annotations
Each canvas contains its annotation page.
Manifest with linked annotations
Each canvas links to an external annotation page.
Manifest with manifest-level annotations
The combined annotation page is embedded in the top-level manifest annotations property.
Manifest with manifest-level and canvas-level annotations
Some georeference annotations are embedded at the manifest level, while others are embedded on their canvas.
Mixed CORS And Errors
A few intentionally awkward resources for viewer failure handling.
Mixed image CORS
Some annotations point at CORS-enabled image services, others at no-CORS image services.
Mixed CORS and incorrect annotations
A single annotation page combines CORS modes and valid/invalid annotations.
Manifest with incorrect embedded annotations
Some canvases embed valid annotation pages and others embed broken ones.
Manifest with all maps embedded and some incorrect
Every canvas embeds its annotation page, while individual map annotations alternate between valid and intentionally broken.
Loading Behavior
Variants for testing successful metadata fetches with failing or slow follow-up resources.
Info.jsons load, image requests return 500
The annotation page and image service info.jsons load, but every image request fails with a 500 response.
Some image requests return 500
The annotation page loads normally, but only some referenced image requests fail with a 500 response.
Annotation page loads, image services return 500
The annotation page loads normally, but every referenced image service info.json and image request fails with a 500 response.
Some image services return 500
The annotation page loads normally, but only some referenced image service info.jsons and image requests fail with a 500 response.
Browser-only manifest and image services
The manifest, canvas JSON, image service info.jsons, and image requests require browser request headers and reject plain server-side fetches.
Annotation page returns 401
The combined annotation page request itself fails with a 401 response.
Annotation page returns 403
The combined annotation page request itself fails with a 403 response.
Annotation page returns 404
The combined annotation page request itself fails with a 404 response.
Annotation page returns 429
The combined annotation page request itself fails with a 429 response.
Annotation page returns 500
The combined annotation page request itself fails with a 500 response.
Annotation page returns 503
The combined annotation page request itself fails with a 503 response.
Slow manifest and resources
The manifest, linked annotation pages, image service info.jsons, and image requests all respond slowly.
Some slow, some fast images
The annotation page loads normally, but some image services respond slowly while others stay fast.
Image services return 429 after 20 seconds
The annotation page loads normally and points at image services that serve info.json and tiles for 20 seconds, then return 429 responses.
Some image services return 429 after 20 seconds
Only some image services in the annotation page become rate limited, while the others continue responding normally.
Partial And Mixed Structure
Resources where canvases differ in annotation placement or image service shape.
Some embedded, some linked annotations
Some canvases embed annotations while others link to annotation pages.
All annotations with mixed hierarchy
Some annotation targets include manifest and canvas hierarchy, some omit the manifest, and some omit the canvas hierarchy.
Annotation page with mixed image services
Annotation image bodies use both IIIF 2.1 level0 and IIIF 3.0 level2 services.
Manifest with mixed image services
Canvases use a mix of IIIF 3.0 level0 and level2 image services.