package http_parser.lolevel;
import http_parser.FieldData; import http_parser.HTTPParserUrl;
import static http_parser.HTTPParserUrl.*; import static http_parser.lolevel.HTTPParser.*;
/**
*/
public class Url {
public static Url[] URL_TESTS = new Url[]{
new Url("proxy request", "http://hostname/", false,
new HTTPParserUrl(
(1 << UrlFields.UF_SCHEMA.getIndex()) | (1 << UrlFields.UF_HOST.getIndex()) | (1 << UrlFields.UF_PATH.getIndex()),
0,
new FieldData[]{
new FieldData(0,4),
new FieldData(7,8),
new FieldData(0,0),
new FieldData(15,1),
new FieldData(0,0),
new FieldData(0,0)
}),
0),
new Url("CONNECT request", "hostname:443", true,
new HTTPParserUrl(
(1 << UrlFields.UF_HOST.getIndex()) | (1 << UrlFields.UF_PORT.getIndex()),
443,
new FieldData[]{
new FieldData(0,0),
new FieldData(0,8),
new FieldData(9,3),
new FieldData(0,0),
new FieldData(0,0),
new FieldData(0,0)
}),
0),
new Url("proxy ipv6 request", "http://[1:2::3:4]/", false,
new HTTPParserUrl(
(1 << UrlFields.UF_SCHEMA.getIndex()) | (1 << UrlFields.UF_HOST.getIndex()) | (1 << UrlFields.UF_PATH.getIndex()),
0,
new FieldData[]{
new FieldData(0,4),
new FieldData(8,8),
new FieldData(0,0),
new FieldData(17,1),
new FieldData(0,0),
new FieldData(0,0)
}),
0),
new Url("CONNECT ipv6 address", "[1:2::3:4]:443", true,
new HTTPParserUrl(
(1 << UrlFields.UF_HOST.getIndex()) | (1 << UrlFields.UF_PORT.getIndex()),
443,
new FieldData[]{
new FieldData(0,0),
new FieldData(1,8),
new FieldData(11,3),
new FieldData(0,0),
new FieldData(0,0),
new FieldData(0,0)
}),
0),
new Url("extra ? in query string",
"http://a.tbcdn.cn/p/fp/2010c/??fp-header-min.css,fp-base-min.css,fp-channel-min.css,fp-product-min.css,fp-mall-min.css,fp-category-min.css,fp-sub-min.css,fp-gdp4p-min.css,fp-css3-min.css,fp-misc-min.css?t=20101022.css",
false,
new HTTPParserUrl(
(1 << UrlFields.UF_SCHEMA.getIndex()) |
(1 << UrlFields.UF_HOST.getIndex()) |
(1 << UrlFields.UF_PATH.getIndex()) |
(1 << UrlFields.UF_QUERY.getIndex()),
0,
new FieldData[]{
new FieldData(0,4),
new FieldData(7,10),
new FieldData(0,0),
new FieldData(17,12),
new FieldData(30,187),
new FieldData(0,0)
}),
0),
new Url("proxy empty host",
"http://:443/",
false,
null,
1),
new Url("proxy empty port",
"http://hostname:/",
false,
null,
1),
new Url("CONNECT empty host",
":443",
true,
null,
1),
new Url("CONNECT empty port",
"hostname:",
true,
null,
1),
new Url("CONNECT with extra bits",
"hostname:443/",
true,
null,
1),
};
String name;
String url;
boolean is_connect;
HTTPParserUrl u;
int rv;
public Url(String name, String url, boolean is_connect, HTTPParserUrl u, int rv) {
this.name = name;
this.url = url;
this.is_connect = is_connect;
this.u = u;
this.rv = rv;
}
}