private void checkBatchInsufficientVersions(ConcatUriManager.Type type) throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String[] versions = new String[] { "v1" }; // Only one for three resources. ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.<List<Uri>>of(RESOURCES_ONE, RESOURCES_ONE); manager.make(fromList(gadget, resourceUris, type), true); }
@Test(expected=NoSuchElementException.class) public void typeJsBatchInsufficientVersions() throws Exception { Gadget gadget = mockGadget(true, true); String host = "bar.com"; String path = "/other/path"; String[] versions = new String[] { "v1" }; // Only one for three resources. ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.<List<Uri>>of(RESOURCES_ONE, RESOURCES_ONE); manager.make(fromList(gadget, resourceUris, ConcatUriManager.Type.JS), true); }
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 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 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 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")); } }
@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")); }
ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner);
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", "v2", "v3" }; ConcatUriManager.Versioner versioner = makeVersioner(UriStatus.VALID_VERSIONED, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris = ImmutableList.<List<Uri>>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).getUri()); 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 checkUnversionedUri(ConcatUriManager.Type type, boolean hasSplit) { // Returns VALID_VERSIONED, but no version is present. ConcatUriManager.Versioner versioner = makeVersioner(UriStatus.VALID_VERSIONED); DefaultConcatUriManager manager = makeManager("host.com", "/path", null, versioner); ConcatUriManager.ConcatUri validated = manager.process( Uri.parse("http://host.com/path?" + Param.CONTAINER.getKey() + '=' + CONTAINER + "&1=http://legit.com/1.dat&2=http://another.com/2.dat&" + Param.TYPE.getKey() + '=' + type.getType() + '&' + Param.JSON.getKey() + "=split&" + Param.GADGET.getKey() + "=http://www.gadget.com/g.xml&" + Param.REFRESH.getKey() + "=123")); assertEquals(UriStatus.VALID_UNVERSIONED, validated.getStatus()); assertEquals(type, validated.getType()); assertEquals(CONTAINER, validated.getContainer()); assertEquals("http://www.gadget.com/g.xml", validated.getGadget()); assertEquals(2, validated.getBatch().size()); assertEquals("http://legit.com/1.dat", validated.getBatch().get(0).toString()); assertEquals("http://another.com/2.dat", validated.getBatch().get(1).toString()); assertEquals(123, validated.getRefresh().intValue()); assertEquals(hasSplit ? "split" : null, validated.getSplitParam()); }
private void checkUnversionedUri(ConcatUriManager.Type type, boolean hasSplit) { // Returns VALID_VERSIONED, but no version is present. ConcatUriManager.Versioner versioner = makeVersioner(UriStatus.VALID_VERSIONED); DefaultConcatUriManager manager = makeManager("host.com", "/path", null, versioner); ConcatUriManager.ConcatUri validated = manager.process( Uri.parse("http://host.com/path?" + Param.CONTAINER.getKey() + '=' + CONTAINER + "&1=http://legit.com/1.dat&2=http://another.com/2.dat&" + Param.TYPE.getKey() + '=' + type.getType() + '&' + Param.JSON.getKey() + "=split&" + Param.GADGET.getKey() + "=http://www.gadget.com/g.xml&" + Param.REFRESH.getKey() + "=123")); assertEquals(UriStatus.VALID_UNVERSIONED, validated.getStatus()); assertEquals(type, validated.getType()); assertEquals(CONTAINER, validated.getContainer()); assertEquals("http://www.gadget.com/g.xml", validated.getGadget()); assertEquals(2, validated.getBatch().size()); assertEquals("http://legit.com/1.dat", validated.getBatch().get(0).toString()); assertEquals("http://another.com/2.dat", validated.getBatch().get(1).toString()); assertEquals(123, validated.getRefresh().intValue()); assertEquals(hasSplit ? "split" : null, validated.getSplitParam()); }
private void checkValidateUri(UriStatus status, ConcatUriManager.Type type, boolean hasSplit) { ConcatUriManager.Versioner versioner = makeVersioner(status); DefaultConcatUriManager manager = makeManager("host.com", "/path", null, versioner); ConcatUriManager.ConcatUri validated = manager.process( Uri.parse("http://host.com/path?" + Param.CONTAINER.getKey() + '=' + CONTAINER + "&1=http://legit.com/1.dat&2=http://another.com/2.dat&" + Param.TYPE.getKey() + '=' + type.getType() + '&' + Param.VERSION.getKey() + "=something&" + Param.JSON.getKey() + "=split&" + Param.GADGET.getKey() + "=http://www.gadget.com/g.xml&" + Param.REFRESH.getKey() + "=123")); assertEquals(status, validated.getStatus()); assertEquals(type, validated.getType()); assertEquals(CONTAINER, validated.getContainer()); assertEquals("http://www.gadget.com/g.xml", validated.getGadget()); assertEquals(2, validated.getBatch().size()); assertEquals("http://legit.com/1.dat", validated.getBatch().get(0).toString()); assertEquals("http://another.com/2.dat", validated.getBatch().get(1).toString()); assertEquals(123, validated.getRefresh().intValue()); assertEquals(hasSplit ? "split" : null, validated.getSplitParam()); }
private void checkUnversionedUri(ConcatUriManager.Type type, boolean hasSplit) { // Returns VALID_VERSIONED, but no version is present. ConcatUriManager.Versioner versioner = makeVersioner(UriStatus.VALID_VERSIONED); DefaultConcatUriManager manager = makeManager("host.com", "/path", null, versioner); ConcatUriManager.ConcatUri validated = manager.process( Uri.parse("http://host.com/path?" + Param.CONTAINER.getKey() + '=' + CONTAINER + "&1=http://legit.com/1.dat&2=http://another.com/2.dat&" + Param.TYPE.getKey() + '=' + type.getType() + '&' + Param.JSON.getKey() + "=split&" + Param.GADGET.getKey() + "=http://www.gadget.com/g.xml&" + Param.REFRESH.getKey() + "=123")); assertEquals(UriStatus.VALID_UNVERSIONED, validated.getStatus()); assertEquals(type, validated.getType()); assertEquals(CONTAINER, validated.getContainer()); assertEquals("http://www.gadget.com/g.xml", validated.getGadget()); assertEquals(2, validated.getBatch().size()); assertEquals("http://legit.com/1.dat", validated.getBatch().get(0).toString()); assertEquals("http://another.com/2.dat", validated.getBatch().get(1).toString()); assertEquals(123, validated.getRefresh().intValue()); assertEquals(hasSplit ? "split" : null, validated.getSplitParam()); }
private void checkValidateUri(UriStatus status, ConcatUriManager.Type type, boolean hasSplit) { ConcatUriManager.Versioner versioner = makeVersioner(status); DefaultConcatUriManager manager = makeManager("host.com", "/path", null, versioner); ConcatUriManager.ConcatUri validated = manager.process( Uri.parse("http://host.com/path?" + Param.CONTAINER.getKey() + '=' + CONTAINER + "&1=http://legit.com/1.dat&2=http://another.com/2.dat&" + Param.TYPE.getKey() + '=' + type.getType() + '&' + Param.VERSION.getKey() + "=something&" + Param.JSON.getKey() + "=split&" + Param.GADGET.getKey() + "=http://www.gadget.com/g.xml&" + Param.REFRESH.getKey() + "=123")); assertEquals(status, validated.getStatus()); assertEquals(type, validated.getType()); assertEquals(CONTAINER, validated.getContainer()); assertEquals("http://www.gadget.com/g.xml", validated.getGadget()); assertEquals(2, validated.getBatch().size()); assertEquals("http://legit.com/1.dat", validated.getBatch().get(0).toString()); assertEquals("http://another.com/2.dat", validated.getBatch().get(1).toString()); assertEquals(123, validated.getRefresh().intValue()); assertEquals(hasSplit ? "split" : null, validated.getSplitParam()); }
private void checkValidateUri(UriStatus status, ConcatUriManager.Type type, boolean hasSplit) { ConcatUriManager.Versioner versioner = makeVersioner(status); DefaultConcatUriManager manager = makeManager("host.com", "/path", null, versioner); ConcatUriManager.ConcatUri validated = manager.process( Uri.parse("http://host.com/path?" + Param.CONTAINER.getKey() + '=' + CONTAINER + "&1=http://legit.com/1.dat&2=http://another.com/2.dat&" + Param.TYPE.getKey() + '=' + type.getType() + '&' + Param.VERSION.getKey() + "=something&" + Param.JSON.getKey() + "=split&" + Param.GADGET.getKey() + "=http://www.gadget.com/g.xml&" + Param.REFRESH.getKey() + "=123")); assertEquals(status, validated.getStatus()); assertEquals(type, validated.getType()); assertEquals(CONTAINER, validated.getContainer()); assertEquals("http://www.gadget.com/g.xml", validated.getGadget()); assertEquals(2, validated.getBatch().size()); assertEquals("http://legit.com/1.dat", validated.getBatch().get(0).toString()); assertEquals("http://another.com/2.dat", validated.getBatch().get(1).toString()); assertEquals(123, validated.getRefresh().intValue()); assertEquals(hasSplit ? "split" : null, validated.getSplitParam()); }
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.<List<Uri>>of(RESOURCES_ONE);
String path = "/other/path"; String[] versions = new String[] { "version1", "v2", "v3" }; ConcatUriManager.Versioner versioner = makeVersioner(null, versions); DefaultConcatUriManager manager = makeManager(host, path, "token", versioner); List<List<Uri>> resourceUris =