for (Uri uri : concatUri.getUris()) { Element elemConcat = (Element)firstElem.cloneNode(true); elemConcat.setAttribute(type.getSrcAttrib(), uri.toString());
@Test public void typeJsMissingSplitTokenConfig() throws Exception { Gadget gadget = mockGadget(false, false); DefaultConcatUriManager manager = makeManager("host.com", "/foo", null, null); List<List<Uri>> resourceUris = ImmutableList.<List<Uri>>of(ImmutableList.of(RESOURCE_1)); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, ConcatUriManager.Type.JS), false); assertEquals(1, concatUris.size()); assertEquals(1, concatUris.get(0).getUris().size()); assertNull(concatUris.get(0).getUris().get(0).getQueryParameter(Param.JSON.getKey())); }
@Test public void typeJsMissingSplitTokenConfig() throws Exception { Gadget gadget = mockGadget(false, false); DefaultConcatUriManager manager = makeManager("host.com", "/foo", null, null); List<List<Uri>> resourceUris = ImmutableList.<List<Uri>>of(ImmutableList.of(RESOURCE_1)); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, ConcatUriManager.Type.JS), false); assertEquals(1, concatUris.size()); assertEquals(1, concatUris.get(0).getUris().size()); assertNull(concatUris.get(0).getUris().get(0).getQueryParameter(Param.JSON.getKey())); }
assertEquals(1, uri.getUris().size()); String json = uri.getUris().get(0).getQueryParameter( (Param.JSON.toString().toLowerCase())); assertTrue(json.startsWith(splitParam)); String currentUri = uri.getUris().get(0).toString(); if (jsonParams.keySet().contains(currentUri)) { assertEquals(jsonParams.get(currentUri), json); assertEquals(DefaultConcatUriManager.getJsSnippet(json, RESOURCE_3_HTTP), uri.getSnippet(RESOURCE_3_HTTP)); checkBasicUriParameters(uri.getUris().get(0), host, path, 10, type, "0", "0", versions[0]); List<Uri> resList = (i % 2 == 0) ? RESOURCES_ONE : RESOURCES_TWO; assertEquals(resList.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(resList.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(resList.get(2).toString(), uri.getUris().get(0).getQueryParameter("3"));
assertEquals(1, uri.getUris().size()); String json = uri.getUris().get(0).getQueryParameter( (Param.JSON.toString().toLowerCase())); assertTrue(json.startsWith(splitParam)); String currentUri = uri.getUris().get(0).toString(); if (jsonParams.keySet().contains(currentUri)) { assertEquals(jsonParams.get(currentUri), json); assertEquals(DefaultConcatUriManager.getJsSnippet(json, RESOURCE_3_HTTP), uri.getSnippet(RESOURCE_3_HTTP)); checkBasicUriParameters(uri.getUris().get(0), host, path, 10, type, "0", "0", versions[0]); List<Uri> resList = (i % 2 == 0) ? RESOURCES_ONE : RESOURCES_TWO; assertEquals(resList.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(resList.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(resList.get(2).toString(), uri.getUris().get(0).getQueryParameter("3"));
manager.make(fromList(gadget, resourceUris, type), false); assertEquals(2, concatUris.get(0).getUris().size()); String jsonFirst = concatUris.get(0).getUris().get(0).getQueryParameter( (Param.JSON.toString().toLowerCase())); checkBasicUriParameters(concatUris.get(0).getUris().get(0), host, path, 9, type, "1", "1", versions[0]); assertEquals(urlA.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("1")); assertEquals(DefaultConcatUriManager.getJsSnippet(jsonFirst, urlA), concatUris.get(0).getSnippet(urlA)); assertEquals(urlB.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("2")); assertEquals(DefaultConcatUriManager.getJsSnippet(jsonFirst, urlB), concatUris.get(0).getSnippet(urlB)); assertNull(concatUris.get(0).getUris().get(0).getQueryParameter("3")); String jsonSecond = concatUris.get(0).getUris().get(1).getQueryParameter( (Param.JSON.toString().toLowerCase())); checkBasicUriParameters(concatUris.get(0).getUris().get(1), host, path, 8, type, "1", "1", versions[0]); assertEquals(urlC.toString(), concatUris.get(0).getUris().get(1).getQueryParameter("1")); assertEquals(DefaultConcatUriManager.getJsSnippet(jsonSecond, urlC), concatUris.get(0).getSnippet(urlC)); assertNull(concatUris.get(0).getUris().get(1).getQueryParameter("2"));
manager.make(fromList(gadget, resourceUris, type), false); assertEquals(2, concatUris.get(0).getUris().size()); String jsonFirst = concatUris.get(0).getUris().get(0).getQueryParameter( (Param.JSON.toString().toLowerCase())); checkBasicUriParameters(concatUris.get(0).getUris().get(0), host, path, 9, type, "1", "1", versions[0]); assertEquals(urlA.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("1")); assertEquals(DefaultConcatUriManager.getJsSnippet(jsonFirst, urlA), concatUris.get(0).getSnippet(urlA)); assertEquals(urlB.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("2")); assertEquals(DefaultConcatUriManager.getJsSnippet(jsonFirst, urlB), concatUris.get(0).getSnippet(urlB)); assertNull(concatUris.get(0).getUris().get(0).getQueryParameter("3")); String jsonSecond = concatUris.get(0).getUris().get(1).getQueryParameter( (Param.JSON.toString().toLowerCase())); checkBasicUriParameters(concatUris.get(0).getUris().get(1), host, path, 8, type, "1", "1", versions[0]); assertEquals(urlC.toString(), concatUris.get(0).getUris().get(1).getQueryParameter("1")); assertEquals(DefaultConcatUriManager.getJsSnippet(jsonSecond, urlC), concatUris.get(0).getSnippet(urlC)); assertNull(concatUris.get(0).getUris().get(1).getQueryParameter("2"));
@Test public void dontConcatMultipleResourceBeyoundUrlLimitAdjacentBatched() throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; ConcatUriManager.Type type = ConcatUriManager.Type.JS; String[] versions = new String[] { "v1" }; ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, null, versioner); Uri urlA = Uri.parse(generateUrl(manager.getUrlMaxLength() / 4)); Uri urlB = Uri.parse(generateUrl(manager.getUrlMaxLength() / 4)); Uri urlC = Uri.parse(generateUrl(manager.getUrlMaxLength() / 2)); List<Uri> urlList = ImmutableList.of(urlA, urlB, urlC); List<List<Uri>> resourceUris = ImmutableList.of(urlList); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(2, concatUris.get(0).getUris().size()); checkBasicUriParameters(concatUris.get(0).getUris().get(0), host, path, 8, type, "1", "1", versions[0]); assertEquals(urlA.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("1")); assertNull(concatUris.get(0).getSnippet(urlA)); assertEquals(urlB.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("2")); assertNull(concatUris.get(0).getSnippet(urlB)); assertNull(concatUris.get(0).getUris().get(0).getQueryParameter("3")); checkBasicUriParameters(concatUris.get(0).getUris().get(1), host, path, 7, type, "1", "1", versions[0]); assertEquals(urlC.toString(), concatUris.get(0).getUris().get(1).getQueryParameter("1")); assertNull(concatUris.get(0).getSnippet(urlC)); assertNull(concatUris.get(0).getUris().get(1).getQueryParameter("2")); }
@Test public void dontConcatMultipleResourceBeyoundUrlLimitAdjacentBatched() throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; ConcatUriManager.Type type = ConcatUriManager.Type.JS; String[] versions = new String[] { "v1" }; ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, null, versioner); Uri urlA = Uri.parse(generateUrl(manager.getUrlMaxLength() / 4)); Uri urlB = Uri.parse(generateUrl(manager.getUrlMaxLength() / 4)); Uri urlC = Uri.parse(generateUrl(manager.getUrlMaxLength() / 2)); List<Uri> urlList = ImmutableList.of(urlA, urlB, urlC); List<List<Uri>> resourceUris = ImmutableList.of(urlList); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(2, concatUris.get(0).getUris().size()); checkBasicUriParameters(concatUris.get(0).getUris().get(0), host, path, 8, type, "1", "1", versions[0]); assertEquals(urlA.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("1")); assertNull(concatUris.get(0).getSnippet(urlA)); assertEquals(urlB.toString(), concatUris.get(0).getUris().get(0).getQueryParameter("2")); assertNull(concatUris.get(0).getSnippet(urlB)); assertNull(concatUris.get(0).getUris().get(0).getQueryParameter("3")); checkBasicUriParameters(concatUris.get(0).getUris().get(1), host, path, 7, type, "1", "1", versions[0]); assertEquals(urlC.toString(), concatUris.get(0).getUris().get(1).getQueryParameter("1")); assertNull(concatUris.get(0).getSnippet(urlC)); assertNull(concatUris.get(0).getUris().get(1).getQueryParameter("2")); }
private void checkValidatedBatchAdjacent(ConcatUriManager.Type type) throws Exception { // This is essentially the "integration" test ensuring that a // DefaultConcatUriManager's created Uris can be validated by it in turn. Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String[] versions = new String[] { "version1"}; ConcatUriManager.Versioner versioner = makeVersioner(UriStatus.VALID_VERSIONED, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE, RESOURCES_TWO, RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(3, concatUris.size()); for (int i = 0; i < 3; ++i) { ConcatUriManager.ConcatUri validated = manager.process(concatUris.get(i).getUris().get(0)); assertEquals(UriStatus.VALID_VERSIONED, validated.getStatus()); List<Uri> resList = (i % 2 == 0) ? RESOURCES_ONE : RESOURCES_TWO; assertEquals(resList, validated.getBatch()); assertEquals(type, validated.getType()); } }
private void checkBatchAdjacent(ConcatUriManager.Type type) throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String[] versions = new String[] { "version1"}; ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE, RESOURCES_TWO, RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(3, concatUris.size()); for (int i = 0; i < 3; ++i) { ConcatData uri = concatUris.get(i); assertNull(uri.getSnippet(RESOURCE_1)); assertNull(uri.getSnippet(RESOURCE_2)); assertNull(uri.getSnippet(RESOURCE_3_NOSCHEMA)); assertEquals(1, uri.getUris().size()); checkBasicUriParameters(uri.getUris().get(0), host, path, 9, type, "1", "1", versions[0]); List<Uri> resList = (i % 2 == 0) ? RESOURCES_ONE : RESOURCES_TWO; assertEquals(resList.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(resList.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(resList.get(2).toString(), uri.getUris().get(0).getQueryParameter("3")); } }
private void checkValidatedBatchAdjacent(ConcatUriManager.Type type) throws Exception { // This is essentially the "integration" test ensuring that a // DefaultConcatUriManager's created Uris can be validated by it in turn. Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String[] versions = new String[] { "version1"}; ConcatUriManager.Versioner versioner = makeVersioner(UriStatus.VALID_VERSIONED, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE, RESOURCES_TWO, RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(3, concatUris.size()); for (int i = 0; i < 3; ++i) { ConcatUriManager.ConcatUri validated = manager.process(concatUris.get(i).getUris().get(0)); assertEquals(UriStatus.VALID_VERSIONED, validated.getStatus()); List<Uri> resList = (i % 2 == 0) ? RESOURCES_ONE : RESOURCES_TWO; assertEquals(resList, validated.getBatch()); assertEquals(type, validated.getType()); } }
private void checkAltParams(ConcatUriManager.Type type) throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String version = "version"; ConcatUriManager.Versioner versioner = makeVersioner(null, version); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(1, concatUris.size()); ConcatData uri = concatUris.get(0); assertNull(uri.getSnippet(RESOURCE_1)); assertNull(uri.getSnippet(RESOURCE_2)); assertNull(uri.getSnippet(RESOURCE_3_NOSCHEMA)); assertEquals(1, uri.getUris().size()); checkBasicUriParameters(uri.getUris().get(0), host, path, 9, type, "1", "1", version); assertEquals(RESOURCES_ONE.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(RESOURCES_ONE.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(RESOURCES_ONE.get(2).toString(), uri.getUris().get(0).getQueryParameter("3")); }
private void checkBatchAdjacent(ConcatUriManager.Type type) throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String[] versions = new String[] { "version1"}; ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE, RESOURCES_TWO, RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(3, concatUris.size()); for (int i = 0; i < 3; ++i) { ConcatData uri = concatUris.get(i); assertNull(uri.getSnippet(RESOURCE_1)); assertNull(uri.getSnippet(RESOURCE_2)); assertNull(uri.getSnippet(RESOURCE_3_NOSCHEMA)); assertEquals(1, uri.getUris().size()); checkBasicUriParameters(uri.getUris().get(0), host, path, 9, type, "1", "1", versions[0]); List<Uri> resList = (i % 2 == 0) ? RESOURCES_ONE : RESOURCES_TWO; assertEquals(resList.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(resList.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(resList.get(2).toString(), uri.getUris().get(0).getQueryParameter("3")); } }
private void checkBasicParams(ConcatUriManager.Type type) throws Exception { Gadget gadget = mockGadget(false, false); String host = "host.com"; String path = "/concat/path"; DefaultConcatUriManager manager = makeManager(host, path, "token", null); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(1, concatUris.size()); ConcatData uri = concatUris.get(0); assertNull(uri.getSnippet(RESOURCE_1)); assertNull(uri.getSnippet(RESOURCE_2)); assertNull(uri.getSnippet(RESOURCE_3_NOSCHEMA)); assertEquals(1, uri.getUris().size()); checkBasicUriParameters(uri.getUris().get(0), host, path, 8, type, "0", "0"); assertEquals(RESOURCES_ONE.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(RESOURCES_ONE.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(RESOURCES_ONE.get(2).toString(), uri.getUris().get(0).getQueryParameter("3")); }
private void checkBasicParams(ConcatUriManager.Type type) throws Exception { Gadget gadget = mockGadget(false, false); String host = "host.com"; String path = "/concat/path"; DefaultConcatUriManager manager = makeManager(host, path, "token", null); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(1, concatUris.size()); ConcatData uri = concatUris.get(0); assertNull(uri.getSnippet(RESOURCE_1)); assertNull(uri.getSnippet(RESOURCE_2)); assertNull(uri.getSnippet(RESOURCE_3_NOSCHEMA)); assertEquals(1, uri.getUris().size()); checkBasicUriParameters(uri.getUris().get(0), host, path, 8, type, "0", "0"); assertEquals(RESOURCES_ONE.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(RESOURCES_ONE.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(RESOURCES_ONE.get(2).toString(), uri.getUris().get(0).getQueryParameter("3")); }
private void checkAltParams(ConcatUriManager.Type type) throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String version = "version"; ConcatUriManager.Versioner versioner = makeVersioner(null, version); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.of(RESOURCES_ONE); List<ConcatData> concatUris = manager.make(fromList(gadget, resourceUris, type), true); assertEquals(1, concatUris.size()); ConcatData uri = concatUris.get(0); assertNull(uri.getSnippet(RESOURCE_1)); assertNull(uri.getSnippet(RESOURCE_2)); assertNull(uri.getSnippet(RESOURCE_3_NOSCHEMA)); assertEquals(1, uri.getUris().size()); checkBasicUriParameters(uri.getUris().get(0), host, path, 9, type, "1", "1", version); assertEquals(RESOURCES_ONE.get(0).toString(), uri.getUris().get(0).getQueryParameter("1")); assertEquals(RESOURCES_ONE.get(1).toString(), uri.getUris().get(0).getQueryParameter("2")); assertEquals(RESOURCES_ONE.get(2).toString(), uri.getUris().get(0).getQueryParameter("3")); }