'Takes a single L{H2Connection} object and connects it to a
L{StringTransport} using a brand new L{FrameFactory}.
@param connection: The L{H2Connection} object to connect.
@type connection: L{H2Connection}
@param headers: The headers to send on the first request.
@type headers: L{Iterable} of L{tuple} of C{(bytes, bytes)}
@param body: Chunks of body to send, if any.
@type body: L{Iterable} of L{bytes}
@return: A tuple of L{FrameFactory}, L{StringTransport}'

def connectAndReceive(self, connection, headers, body):

    frameFactory = FrameFactory()
    transport = StringTransport()
    requestBytes = frameFactory.clientConnectionPreface()
    requestBytes += buildRequestBytes(headers, body, frameFactory)
    connection.makeConnection(transport)
    for byte in iterbytes(requestBytes):
        connection.dataReceived(byte)
    return (frameFactory, transport)
