'The L{IProtocol} provider passed to L{Response.deliverBody} has its
C{connectionLost} method called with a L{Failure} wrapping
L{ResponseDone} when the response\'s C{_bodyDataFinished} method is
called.'

def test_connectionLost(self):

    lost = []
    class ListConsumer(Protocol, ):
        def connectionLost(self, reason):
            lost.append(reason)
    consumer = ListConsumer()
    response = justTransportResponse(StringTransport())
    response.deliverBody(consumer)
    response._bodyDataFinished()
    lost[0].trap(ResponseDone)
    self.assertEqual(len(lost), 1)
    self.assertIdentical(response._bodyProtocol, None)
