private static final CommonFactory COMMON_FACTORY = CommonFactory.getInstance();
public void testBuildFromAbsoluteURL() throws Exception {
ICSParamBuilder builder = new ICSParamBuilder();
MutableParameters params = COMMON_FACTORY.createMutableParameters();
// Typical simple URL
URI external = new URI("http://myownhost/images/cj24/fluffy.jpg?v.width=320");
builder.build(external, params);
// Check if all the source url componentys were preserved
assertEquals("http", params.getParameterValue(ParameterNames.SOURCE_PROTOCOL));
assertEquals("myownhost", params.getParameterValue(ParameterNames.SOURCE_HOST));
assertEquals("images/fluffy.jpg", params.getParameterValue(ParameterNames.SOURCE_PATH));
// Check if ICS info was properly extracted
assertEquals("cj24", params.getParameterValue(ParameterNames.DESTINATION_FORMAT_RULE));
assertEquals(320, params.getInteger(ParameterNames.IMAGE_WIDTH));
// Complex URL
external = new URI("https://john:secret@myhost:8000/images/cj24/get?imageId=me%2C%20myself%20and%20I&v.width=320#whatever");
builder.build(external, params);
// Check if all the source url componentys were preserved
assertEquals("https", params.getParameterValue(ParameterNames.SOURCE_PROTOCOL));
assertEquals("john:secret", params.getParameterValue(ParameterNames.SOURCE_USER_INFO));
assertEquals("myhost", params.getParameterValue(ParameterNames.SOURCE_HOST));
assertEquals(8000, params.getInteger(ParameterNames.SOURCE_PORT));
assertEquals("images/get", params.getParameterValue(ParameterNames.SOURCE_PATH));
assertEquals("imageId=me, myself and I", params.getParameterValue(ParameterNames.SOURCE_QUERY));
assertEquals("whatever", params.getParameterValue(ParameterNames.SOURCE_FRAGMENT));
// Check if ICS info was properly extracted
assertEquals("cj24", params.getParameterValue(ParameterNames.DESTINATION_FORMAT_RULE));
assertEquals(320, params.getInteger(ParameterNames.IMAGE_WIDTH));
}