Search in sources :

Example 1 with Headers

use of android.net.http.Headers in project android_frameworks_base by ParanoidAndroid.

the class HttpHeaderTest method testCacheControl.

/**
     * Tests that cache control header supports multiple instances of the header,
     * according to HTTP specification.
     *
     * The HTTP specification states the following about the fields:
     * Multiple message-header fields with the same field-name MAY be present
     * in a message if and only if the entire field-value for that header field
     * is defined as a comma-separated list [i.e., #(values)]. It MUST be
     * possible to combine the multiple header fields into one "field-name:
     * field-value" pair, without changing the semantics of the message, by
     * appending each subsequent field-value to the first, each separated by a
     * comma. The order in which header fields with the same field-name are
     * received is therefore significant to the interpretation of the combined
     * field value, and thus a proxy MUST NOT change the order of these field
     * values when a message is forwarded.
     */
public void testCacheControl() throws Exception {
    Headers h = new Headers();
    CharArrayBuffer buffer = new CharArrayBuffer(64);
    buffer.append(CACHE_CONTROL_MAX_AGE);
    h.parseHeader(buffer);
    buffer.clear();
    buffer.append(LAST_MODIFIED);
    h.parseHeader(buffer);
    assertEquals("max-age=15", h.getCacheControl());
    buffer.clear();
    buffer.append(CACHE_CONTROL_PRIVATE);
    h.parseHeader(buffer);
    assertEquals("max-age=15,private", h.getCacheControl());
}
Also used : Headers(android.net.http.Headers) CharArrayBuffer(org.apache.http.util.CharArrayBuffer)

Example 2 with Headers

use of android.net.http.Headers in project android_frameworks_base by ParanoidAndroid.

the class HttpHeaderTest method testCacheControlMultipleArguments.

// Test that cache behaves correctly when receiving a compund
// cache-control statement containing no-cache and max-age argument.
//
// If a cache control header contains both a max-age arument and
// a no-cache argument the max-age argument should be ignored.
// The resource can be cached, but a validity check must be done on
// every request. Test case checks that the expiry time is 0 for
// this item, so item will be validated on subsequent requests.
public void testCacheControlMultipleArguments() throws Exception {
    // get private method CacheManager.parseHeaders()
    Method m = CacheManager.class.getDeclaredMethod("parseHeaders", new Class[] { int.class, Headers.class, String.class });
    m.setAccessible(true);
    // create indata
    Headers h = new Headers();
    CharArrayBuffer buffer = new CharArrayBuffer(64);
    buffer.append(CACHE_CONTROL_COMPOUND);
    h.parseHeader(buffer);
    CacheResult c = (CacheResult) m.invoke(null, 200, h, "text/html");
    // Check that expires is set to 0, to ensure that no-cache has overridden
    // the max-age argument
    assertEquals(0, c.getExpires());
    // check reverse order
    buffer.clear();
    buffer.append(CACHE_CONTROL_COMPOUND2);
    h.parseHeader(buffer);
    c = (CacheResult) m.invoke(null, 200, h, "text/html");
    assertEquals(0, c.getExpires());
}
Also used : Headers(android.net.http.Headers) CharArrayBuffer(org.apache.http.util.CharArrayBuffer) CacheResult(android.webkit.CacheManager.CacheResult) Method(java.lang.reflect.Method)

Example 3 with Headers

use of android.net.http.Headers in project android_frameworks_base by DirtyUnicorns.

the class HttpHeaderTest method testCacheControl.

/**
     * Tests that cache control header supports multiple instances of the header,
     * according to HTTP specification.
     *
     * The HTTP specification states the following about the fields:
     * Multiple message-header fields with the same field-name MAY be present
     * in a message if and only if the entire field-value for that header field
     * is defined as a comma-separated list [i.e., #(values)]. It MUST be
     * possible to combine the multiple header fields into one "field-name:
     * field-value" pair, without changing the semantics of the message, by
     * appending each subsequent field-value to the first, each separated by a
     * comma. The order in which header fields with the same field-name are
     * received is therefore significant to the interpretation of the combined
     * field value, and thus a proxy MUST NOT change the order of these field
     * values when a message is forwarded.
     */
public void testCacheControl() throws Exception {
    Headers h = new Headers();
    CharArrayBuffer buffer = new CharArrayBuffer(64);
    buffer.append(CACHE_CONTROL_MAX_AGE);
    h.parseHeader(buffer);
    buffer.clear();
    buffer.append(LAST_MODIFIED);
    h.parseHeader(buffer);
    assertEquals("max-age=15", h.getCacheControl());
    buffer.clear();
    buffer.append(CACHE_CONTROL_PRIVATE);
    h.parseHeader(buffer);
    assertEquals("max-age=15,private", h.getCacheControl());
}
Also used : Headers(android.net.http.Headers) CharArrayBuffer(org.apache.http.util.CharArrayBuffer)

Example 4 with Headers

use of android.net.http.Headers in project XobotOS by xamarin.

the class StreamLoader method sendHeaders.

/**
     * Construct the headers and pass them to the EventHandler.
     */
private void sendHeaders() {
    Headers headers = new Headers();
    if (mContentLength > 0) {
        headers.setContentLength(mContentLength);
    }
    buildHeaders(headers);
    mLoadListener.headers(headers);
}
Also used : Headers(android.net.http.Headers)

Example 5 with Headers

use of android.net.http.Headers in project android_frameworks_base by crdroidandroid.

the class HttpHeaderTest method testCacheControl.

/**
     * Tests that cache control header supports multiple instances of the header,
     * according to HTTP specification.
     *
     * The HTTP specification states the following about the fields:
     * Multiple message-header fields with the same field-name MAY be present
     * in a message if and only if the entire field-value for that header field
     * is defined as a comma-separated list [i.e., #(values)]. It MUST be
     * possible to combine the multiple header fields into one "field-name:
     * field-value" pair, without changing the semantics of the message, by
     * appending each subsequent field-value to the first, each separated by a
     * comma. The order in which header fields with the same field-name are
     * received is therefore significant to the interpretation of the combined
     * field value, and thus a proxy MUST NOT change the order of these field
     * values when a message is forwarded.
     */
public void testCacheControl() throws Exception {
    Headers h = new Headers();
    CharArrayBuffer buffer = new CharArrayBuffer(64);
    buffer.append(CACHE_CONTROL_MAX_AGE);
    h.parseHeader(buffer);
    buffer.clear();
    buffer.append(LAST_MODIFIED);
    h.parseHeader(buffer);
    assertEquals("max-age=15", h.getCacheControl());
    buffer.clear();
    buffer.append(CACHE_CONTROL_PRIVATE);
    h.parseHeader(buffer);
    assertEquals("max-age=15,private", h.getCacheControl());
}
Also used : Headers(android.net.http.Headers) CharArrayBuffer(org.apache.http.util.CharArrayBuffer)

Aggregations

Headers (android.net.http.Headers)7 CharArrayBuffer (org.apache.http.util.CharArrayBuffer)6 CacheResult (android.webkit.CacheManager.CacheResult)1 Method (java.lang.reflect.Method)1