                 .expect 'Content-Type', TYPE_TEXT
                 .expect /No content/i
                 .end _
+
+    describe 'Non-RESTful', ->
+
+        # TODO: Need reliable existing image across local dev envs.
+        it.skip 'should properly wrap 200 success responses', (_) ->
+            {body} = app.get "/v1/content/#{EXISTING_ID}?format=json"
+                .expect 200
+                .expect 'Content-Type', TYPE_JSON
+                .end _
+
+            expectResponse body,
+                status: 200
+                statusText: /OK/i
+                content:
+                    id: EXISTING_ID
+
+        # TODO: Need reliable existing image across local dev envs.
+        it.skip 'should properly wrap 301 redirect responses', (_) ->
+            {body} = app.get "/v1/content\
+                    ?url=#{encodeURIComponent urls.IMAGE}&format=json"
+                .expect 200
+                .expect 'Content-Type', TYPE_JSON
+                .end _
+
+            expectResponse body,
+                status: 301
+                statusText: /Moved Permanently/i
+                redirectLocation: CONTENT_BY_ID_REGEX
+                content:
+                    url: urls.IMAGE
+
+        it 'should properly wrap 400 error responses', (_) ->
+            {body} = app.get '/v1/content?url=&format=json'
+                .expect 200
+                .expect 'Content-Type', TYPE_JSON
+                .end _
+
+            expectResponse body,
+                status: 400
+                statusText: /Bad Request/i
+                error: /Missing/i
+
+    describe 'JSONP', ->
+
+        it 'should properly return callback JS', (_) ->
+            rand = "#{Math.random()}"[2..]
+            callback = "_#{rand}"
+
+            {text} = app.get "/v1/content?url=&callback=#{callback}"
+                .expect 200
+                .expect 'Content-Type', TYPE_JS
+                .end _
+
+            expectJSONP text, callback,
+                status: 400
+                statusText: /Bad Request/i
+                error: /Missing/i

EXISTING_ID = null

#
# Asserts that the given actual object is a valid Content info object,
# optionally matching the given expected object (which may be partial).
#

    expect(act).to.be.an 'object'

    _expectStringMatching act.id, /\w+/
    _expectAbsoluteURL act.url

    for prop in ['ready', 'failed']
        expect(act[prop]).to.be.a 'boolean'

    _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.
    _expectAbsoluteURL act.shareUrl
    _expectStringMatching act.embedHtml, /// ^<script .+></script>$ ///

    if act.ready or act.dzi
        expectDZI act.dzi, exp.dzi
        delete exp.dzi  # so it's not deep-equaled below

    _expectPartial act, exp

