Package io.apigee.trireme.net

Examples of io.apigee.trireme.net.HTTPParsingMachine


    }

    @Test
    public void testCompleteResponseNophraseSpace()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.RESPONSE);
        HTTPParsingMachine.Result r =
            parser.parse(Utils.stringToBuffer(COMPLETE_RESPONSE_NOPHRASE_SPACE, Charsets.ASCII));
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertTrue(r.hasHeaders());
        assertTrue(r.hasBody());
        assertEquals(1, r.getMajor());
        assertEquals(1, r.getMinor());
        assertEquals(200, r.getStatusCode());
        assertEquals("Myself", getFirstHeader(r, "Server"));
        assertEquals("Hello, World!", Utils.bufferToString(r.getBody(), Charsets.ASCII));
        parser.parse(null);
    }
View Full Code Here


    }

    @Test
    public void testCompleteResponseHead()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.RESPONSE);
        ByteBuffer buf = Utils.stringToBuffer(COMPLETE_RESPONSE_HEAD, Charsets.ASCII);
        HTTPParsingMachine.Result r = parser.parse(buf);
        assertFalse(r.isError());
        assertFalse(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertTrue(r.hasHeaders());
        assertEquals(1, r.getMajor());
        assertEquals(1, r.getMinor());
        assertEquals(200, r.getStatusCode());
        assertFalse(r.hasBody());
        assertEquals("Myself", getFirstHeader(r, "Server"));

        parser.setIgnoreBody(true);
        r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        parser.parse(null);
    }
View Full Code Here

    }

    @Test
    public void testCompleteResponseEmpty()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.RESPONSE);
        HTTPParsingMachine.Result r =
            parser.parse(Utils.stringToBuffer(COMPLETE_RESPONSE_EMPTY, Charsets.ASCII));
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertTrue(r.hasHeaders());
        assertFalse(r.hasBody());
        assertEquals(200, r.getStatusCode());
        assertEquals("Myself", getFirstHeader(r, "Server"));
        assertNull(r.getBody());
        parser.parse(null);
    }
View Full Code Here

    }

    @Test
    public void testCompleteResponseEmptiest()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.RESPONSE);
        HTTPParsingMachine.Result r =
            parser.parse(Utils.stringToBuffer(COMPLETE_RESPONSE_EMPTIEST, Charsets.ASCII));
        assertFalse(r.isError());
        assertFalse(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertFalse(r.hasHeaders());
        assertFalse(r.hasBody());
        assertEquals(200, r.getStatusCode());
        assertNull(r.getBody());

        parser.parse(null);
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertFalse(r.hasHeaders());
        assertFalse(r.hasBody());
View Full Code Here

    }

    @Test
    public void testCompleteChunked()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.REQUEST);
        ByteBuffer buf = Utils.stringToBuffer(COMPLETE_CHUNKED, Charsets.ASCII);
        HTTPParsingMachine.Result r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isHeadersComplete());
        assertTrue(r.hasHeaders());
        assertTrue(r.hasBody());
        assertEquals("GET", r.getMethod());
        assertEquals("/foo/bar/baz", r.getUri());
        assertEquals("Myself", getFirstHeader(r, "User-Agent"));
        assertEquals("Hello, World!", Utils.bufferToString(r.getBody(), Charsets.ASCII));

        // With chunking we may not be done yet
        r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        parser.parse(null);
    }
View Full Code Here

    }

    @Test
    public void testCompleteChunkedResponse()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.RESPONSE);
        ByteBuffer buf = Utils.stringToBuffer(COMPLETE_CHUNKED_RESPONSE, Charsets.ASCII);
        HTTPParsingMachine.Result r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isHeadersComplete());
        assertTrue(r.hasHeaders());
        assertTrue(r.hasBody());
        assertEquals(200, r.getStatusCode());
        assertEquals("ok", Utils.bufferToString(r.getBody(), Charsets.ASCII));

        // With chunking we have to keep looping
        r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        parser.parse(null);
    }
View Full Code Here

    }

    @Test
    public void testCompleteChunkedResponseTrailers()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.RESPONSE);
        ByteBuffer buf = Utils.stringToBuffer(COMPLETE_CHUNKED_RESPONSE_TRAILERS, Charsets.ASCII);
        HTTPParsingMachine.Result r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isHeadersComplete());
        assertTrue(r.hasHeaders());
        assertTrue(r.hasBody());
        assertEquals(200, r.getStatusCode());
        assertEquals("ok", Utils.bufferToString(r.getBody(), Charsets.ASCII));

        // With chunking we have to keep looping
        r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        assertTrue(r.hasTrailers());
        assertEquals("Foo", getFirstTrailer(r, "Trailer1"));
        assertEquals("Bar", getFirstTrailer(r, "Trailer2"));
        parser.parse(null);
    }
View Full Code Here

    }

    @Test
    public void testCompleteChunkedChunks()
    {
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.REQUEST);
        ByteBuffer buf = Utils.stringToBuffer(COMPLETE_CHUNKED_CHUNKS, Charsets.ASCII);
        HTTPParsingMachine.Result r = parser.parse(buf);
        assertFalse(r.isError());
        assertFalse(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertTrue(r.hasBody());
        assertEquals("GET", r.getMethod());
        assertEquals("/foo/bar/baz", r.getUri());
        assertEquals("Myself", getFirstHeader(r, "User-Agent"));

        StringBuilder str = new StringBuilder();
        str.append(Utils.bufferToString(r.getBody(), Charsets.ASCII));

        r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.hasBody());
        str.append(Utils.bufferToString(r.getBody(), Charsets.ASCII));

        // With chunking we may not be done yet
        r = parser.parse(buf);
        assertFalse(r.isError());
        assertTrue(r.isComplete());

        assertEquals("Hello, World! This is some chunked data.", str.toString());
        parser.parse(null);
    }
View Full Code Here

    @Test
    public void testCompleteRequestLengthSplit1()
    {
        ByteBuffer whole = Utils.stringToBuffer(COMPLETE_REQUEST_LENGTH, Charsets.ASCII);
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.REQUEST);

        // Split right down the middle of one header, after Host
        ByteBuffer split = splitBuffer(whole, 48);
        HTTPParsingMachine.Result r = parser.parse(split);
        assertFalse(r.isError());
        assertFalse(r.isComplete());
        assertFalse(r.isHeadersComplete());
        assertEquals("GET", r.getMethod());
        assertEquals("/foo/bar/baz", r.getUri());
        assertEquals("mybox", getFirstHeader(r, "Host"));

        // Process the rest of the message
        r = parser.parse(whole);
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertEquals("GET", r.getMethod());
        assertEquals("Myself", getFirstHeader(r, "User-Agent"));
        assertEquals("Hello, World!", Utils.bufferToString(r.getBody(), Charsets.ASCII));
        parser.parse(null);
    }
View Full Code Here

    @Test
    public void testCompleteRequestLengthSplit2()
    {
        ByteBuffer whole = Utils.stringToBuffer(COMPLETE_REQUEST_LENGTH, Charsets.ASCII);
        HTTPParsingMachine parser = new HTTPParsingMachine(HTTPParsingMachine.ParsingMode.REQUEST);

        // Split right down the middle of the request line
        ByteBuffer split = splitBuffer(whole, 8);
        HTTPParsingMachine.Result r = parser.parse(split);
        assertFalse(r.isError());
        assertFalse(r.isComplete());
        assertFalse(r.isHeadersComplete());

        // Process the rest of the message
        r = parser.parse(whole);
        assertFalse(r.isError());
        assertTrue(r.isComplete());
        assertTrue(r.isHeadersComplete());
        assertEquals("GET", r.getMethod());
        assertEquals("/foo/bar/baz", r.getUri());
        assertEquals("Myself", getFirstHeader(r, "User-Agent"));
        assertEquals("Hello, World!", Utils.bufferToString(r.getBody(), Charsets.ASCII));
        parser.parse(null);
    }
View Full Code Here

TOP

Related Classes of io.apigee.trireme.net.HTTPParsingMachine

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.