protected void addExtrasForTypeUrl(UriBuilder uri, Gadget gadget, String container) { Set<String> features = gadget.getViewFeatures().keySet(); String jsHost = getReqVal(container, DefaultJsUriManager.JS_HOST_PARAM); String jsPathBase = getReqVal(container, DefaultJsUriManager.JS_PATH_PARAM); UriBuilder jsuri = null; if (features.size() > 0) { // We somewhat cheat in that jsHost may contain protocol/scheme as well. jsuri = new UriBuilder(Uri.parse(jsHost)); // Add JS info to path and set it in URI. StringBuilder builder = new StringBuilder(jsPathBase); if (!jsPathBase.endsWith("/")) { builder.append('/'); } builder.append(DefaultJsUriManager.addJsLibs(features)); builder.append(DefaultJsUriManager.JS_SUFFIX); jsuri.setPath(builder.toString()); } addParam(uri, Param.LIBS.getKey(), jsuri == null ? "" : jsuri.toString(), false, false); }
public Uri makeExternJsUri(Gadget gadget, Collection<String> extern) { String container = gadget.getContext().getContainer(); String jsHost = getReqConfig(container, JS_HOST_PARAM); String jsPathBase = getReqConfig(container, JS_PATH_PARAM); jsPath.append('/'); jsPath.append(addJsLibs(extern)); jsPath.append(JS_SUFFIX); uri.setPath(jsPath.toString()); if (addGadgetUri()) { uri.addQueryParameter(Param.URL.getKey(), gadget.getSpec().getUrl().toString());
getReqConfig(container, JS_HOST_PARAM); // validate that it exists String jsPrefix = getReqConfig(container, JS_PATH_PARAM); issueUriFormatError("Unexpected: Js Uri has no host"); return INVALID_URI; issueUriFormatError("Unexpected: Js Uri has no path"); return INVALID_URI; issueUriFormatError("Js Uri path invalid, expected prefix: " + jsPrefix + ", is: " + path); return INVALID_URI; Collection<String> libs = getJsLibs(path); UriStatus status = UriStatus.VALID_UNVERSIONED; String version = uri.getQueryParameter(Param.VERSION.getKey());
issueUriFormatError("Unexpected: Js Uri has no host"); return INVALID_URI; issueUriFormatError("Unexpected: Js Uri has no path"); return INVALID_URI; Collection<String> libs = getJsLibs(splits.length >= 1 ? splits[0] : ""); Collection<String> have = getJsLibs(haveString);
@Test(expected = RuntimeException.class) public void makeMissingPathConfig() { ContainerConfig config = mockConfig("foo", null); DefaultJsUriManager manager = makeManager(config, null); JsUri ctx = mockGadgetContext(false, false, null); manager.makeExternJsUri(ctx); }
@Test public void processDefaultConfig() throws GadgetException { ContainerConfig config = mockDefaultConfig("foo", "/gadgets/js"); DefaultJsUriManager manager = makeManager(config, null); manager.processExternJsUri(Uri.parse("http://example.com?container=" + CONTAINER)); }
@Test(expected = RuntimeException.class) public void makeMissingPathConfig() { ContainerConfig config = mockConfig("foo", null); DefaultJsUriManager manager = makeManager(config, null); Gadget gadget = mockGadget(false, false); manager.makeExternJsUri(gadget, null); }
@Test(expected = RuntimeException.class) public void processMissingHostConfig() throws GadgetException { ContainerConfig config = mockConfig(null, "/gadgets/js"); DefaultJsUriManager manager = makeManager(config, null); manager.processExternJsUri(Uri.parse("http://example.com?container=" + CONTAINER)); }
@Test public void processValidUnversionedNoVersioner() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
public Uri makeExternJsUri(Gadget gadget, Collection<String> extern) { String container = gadget.getContext().getContainer(); String jsHost = getReqConfig(container, JS_HOST_PARAM); String jsPathBase = getReqConfig(container, JS_PATH_PARAM); jsPath.append('/'); jsPath.append(addJsLibs(extern)); jsPath.append(JS_SUFFIX); uri.setPath(jsPath.toString()); if (addGadgetUri()) { uri.addQueryParameter(Param.URL.getKey(), gadget.getSpec().getUrl().toString());
getReqConfig(container, JS_HOST_PARAM); // validate that it exists String jsPrefix = getReqConfig(container, JS_PATH_PARAM); issueUriFormatError("Unexpected: Js Uri has no host"); return INVALID_URI; issueUriFormatError("Unexpected: Js Uri has no path"); return INVALID_URI; issueUriFormatError("Js Uri path invalid, expected prefix: " + jsPrefix + ", is: " + path); return INVALID_URI; Collection<String> libs = getJsLibs(path); UriStatus status = UriStatus.VALID_UNVERSIONED; String version = uri.getQueryParameter(Param.VERSION.getKey());
@Test(expected = RuntimeException.class) public void makeMissingPathConfig() { ContainerConfig config = mockConfig("foo", null); DefaultJsUriManager manager = makeManager(config, null); JsUri ctx = mockGadgetContext(false, false, null); manager.makeExternJsUri(ctx); }
@Test public void processDefaultConfig() throws GadgetException { ContainerConfig config = mockDefaultConfig("foo", "/gadgets/js"); DefaultJsUriManager manager = makeManager(config, null); manager.processExternJsUri(Uri.parse("http://example.com?container=" + CONTAINER)); }
@Test public void processValidUnversionedNoVersioner() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
public Uri makeExternJsUri(JsUri ctx) { String container = ctx.getContainer(); String jsHost = getReqConfig(container, JS_HOST_PARAM); String jsPathBase = getReqConfig(container, JS_PATH_PARAM); jsPath.append('/'); jsPath.append(addJsLibs(ctx.getLibs())); jsPath.append('!').append(addJsLibs(ctx.getLoadedLibs())); if (addGadgetUri()) { uri.addQueryParameter(Param.URL.getKey(), ctx.getGadget());
@Test(expected = RuntimeException.class) public void makeMissingHostConfig() { ContainerConfig config = mockConfig(null, "/gadgets/js"); DefaultJsUriManager manager = makeManager(config, null); Gadget gadget = mockGadget(false, false); manager.makeExternJsUri(gadget, null); }
@Test public void processDefaultConfig() throws GadgetException { ContainerConfig config = mockDefaultConfig("foo", "/gadgets/js"); DefaultJsUriManager manager = makeManager(config, null); manager.processExternJsUri(Uri.parse("http://example.com?container=" + CONTAINER)); }
@Test public void processValidUnversionedNoVersioner() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test(expected = RuntimeException.class) public void makeMissingHostConfig() { ContainerConfig config = mockConfig(null, "/gadgets/js"); DefaultJsUriManager manager = makeManager(config, null); JsUri ctx = mockGadgetContext(false, false, null); manager.makeExternJsUri(ctx); }
@Test(expected = RuntimeException.class) public void processMissingPathConfig() throws GadgetException { ContainerConfig config = mockConfig("foo", null); DefaultJsUriManager manager = makeManager(config, null); manager.processExternJsUri(Uri.parse("http://example.com?container=" + CONTAINER)); }