     expect(act).to.be.an 'object'
 
     _expectStringMatching act.id, /\w+/
-    _expectURL act.url
+    _expectAbsoluteURL act.url
 
     for prop in ['ready', 'failed']
         expect(act[prop]).to.be.a 'boolean'
 
-    expect(act.progress).to.be.a 'number'
-    expect(act.progress).to.be.within 0, 1
+    _expectNumberWithin act.progress, 0, 1
 
     # TODO: Do we want to test the actual makeup of these properties?
     # E.g. that the share URL is to the website with the same ID, etc.
-    _expectURL act.shareUrl
+    _expectAbsoluteURL act.shareUrl
     _expectStringMatching act.embedHtml, /// ^<script .+></script>$ ///
 
     if act.ready or act.dzi
-        expectDZI act.dzi
+        expectDZI act.dzi, exp.dzi
+        delete exp.dzi  # so it's not deep-equaled below
 
     _expectPartial act, exp
 

                .expect 'Content-Type', TYPE_TEXT
                .expect /No content/i
                .end _

#

app = (require 'supertest')(require '../app')
{AssertionError, expect} = require 'chai'
urls = require './fixtures/urls'
VM = require 'vm'


## Helpers

TYPE_JS = 'text/javascript; charset=utf-8'
TYPE_JSON = 'application/json; charset=utf-8'
TYPE_TEXT = 'text/plain; charset=utf-8'

# Matches e.g. '/v1/content/Abc123' and captures the ID:
