X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Furls%2FCustomUrlProviderTest.java;h=58b273161556f491d383df6b105119ab44aa630e;hb=57738a1f3c19b1c3a00bd3ac5108f8cd0af32f99;hp=b536566cf181d3901942948931a10acc76ca924f;hpb=a2f83ec9e48dc2c9ebe46cf46d9d58ab8cc61b42;p=jalview.git diff --git a/test/jalview/urls/CustomUrlProviderTest.java b/test/jalview/urls/CustomUrlProviderTest.java index b536566..58b2731 100644 --- a/test/jalview/urls/CustomUrlProviderTest.java +++ b/test/jalview/urls/CustomUrlProviderTest.java @@ -24,6 +24,9 @@ import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertTrue; +import jalview.urls.api.UrlProviderI; +import jalview.util.UrlConstants; + import java.util.Arrays; import java.util.HashMap; import java.util.Vector; @@ -38,26 +41,43 @@ public class CustomUrlProviderTest + "TEST2|http://address/$SEQUENCE_ID$|SRS|" + "http://theSRSlink/$SEQUENCE_ID$"; + private static final String unselectedList = "NON1|http://x/y/$DB_ACCESSION$|" + + "NON2|http://a/b/c/$DB_ACCESSION"; + private static final HashMap urlMap = new HashMap() { { - put("TEST","http://someurl.blah/$DB_ACCESSION$"); - put("ANOTHER","http://test/t$SEQUENCE_ID$"); + put("TEST", "http://someurl.blah/$DB_ACCESSION$"); + put("ANOTHER", "http://test/t$SEQUENCE_ID$"); put("TEST2", "http://address/$SEQUENCE_ID$"); put("SRS", "http://theSRSlink/$SEQUENCE_ID$"); } }; - + + private static final HashMap unselUrlMap = new HashMap() + { + { + put("NON1", "http://x/y/$DB_ACCESSION$"); + put("NON2", "http://a/b/c/$DB_ACCESSION"); + } + }; + private static final String[] dlinks = { "TEST|http://someurl.blah/$DB_ACCESSION$", "ANOTHER|http://test/t$SEQUENCE_ID$", - "TEST2|http://address/$SEQUENCE_ID$", - UrlProviderI.DEFAULT_STRING }; + "TEST2|http://address/$SEQUENCE_ID$", UrlConstants.DEFAULT_STRING }; + + private static final String[] unselDlinks = { + "NON1|http://x/y/$DB_ACCESSION$", "NON2|http://a/b/c/$DB_ACCESSION" }; private static final Vector displayLinks = new Vector( Arrays.asList(dlinks)); - private static final String[] dlinks2 = { "a|http://x.y.z/$SEQUENCE_ID$" }; + private static final Vector unselDisplayLinks = new Vector( + Arrays.asList(unselDlinks)); + + private static final String[] dlinks2 = { + "a|http://x.y.z/$SEQUENCE_ID$" }; private static final Vector displayLinks2 = new Vector( Arrays.asList(dlinks2)); @@ -78,29 +98,30 @@ public class CustomUrlProviderTest @Test(groups = { "Functional" }) public void testDefaultUrl() { - UrlProviderI customProv = new CustomUrlProvider(cachedList); - + UrlProviderI customProv = new CustomUrlProvider(cachedList, + unselectedList); + // default url can be set - assertTrue(customProv.setDefaultUrl("ANOTHER")); - String result = customProv.getDefaultUrl(); - assertEquals("ANOTHER", result); + assertTrue(customProv.setPrimaryUrl("ANOTHER")); + + // supplied replacement id must be more than 4 chars + String result = customProv.getPrimaryUrl("123"); + assertEquals(null, result); // default url can be retrieved given a sequence id - result = customProv.getDefaultUrl("seqid"); + result = customProv.getPrimaryUrl("seqid"); assertEquals("http://test/tseqid", result); // if there is no default url it sets the default to null - assertFalse(customProv.setDefaultUrl("No default")); - result = customProv.getDefaultUrl(); + assertFalse(customProv.setPrimaryUrl("No default")); + result = customProv.getPrimaryUrl("testid"); assertEquals(null, result); - + // choosing the default picks the DEFAULT_STRING option - customProv.chooseDefaultUrl(); - result = customProv.getDefaultUrl("seqid"); - assertEquals( - UrlProviderI.DEFAULT_STRING.split("\\|")[1].split("\\$")[0] - + "seqid", - result); + customProv.choosePrimaryUrl(); + result = customProv.getPrimaryUrl("seqid"); + assertEquals(UrlConstants.DEFAULT_STRING.split("\\|")[1].split("\\$")[0] + + "seqid", result); } /* @@ -110,27 +131,31 @@ public class CustomUrlProviderTest public void testUrlLinks() { // creation from cached url list works + old links upgraded - UrlProviderI customProv = new CustomUrlProvider(cachedList); - assertTrue(displayLinks.containsAll(customProv.getLinksForDisplay())); + UrlProviderI customProv = new CustomUrlProvider(cachedList, + unselectedList); + assertTrue(displayLinks.containsAll(customProv.getLinksForMenu())); // creation from map works + old links upgraded - UrlProviderI customProv2 = new CustomUrlProvider(urlMap); - assertTrue(displayLinks.containsAll(customProv2.getLinksForDisplay())); + UrlProviderI customProv2 = new CustomUrlProvider(urlMap, unselUrlMap); + assertTrue(displayLinks.containsAll(customProv2.getLinksForMenu())); // writing url links as a string works - String result = customProv.writeUrlsAsString(); - UrlProviderI up = new CustomUrlProvider(result); - assertTrue(displayLinks.containsAll(up.getLinksForDisplay())); - - result = customProv2.writeUrlsAsString(); - UrlProviderI up2 = new CustomUrlProvider(result); - assertTrue(displayLinks.containsAll(up2.getLinksForDisplay())); - - // resetting urls from a pair of lists works - customProv.setUrlLinks(names, urls); - assertTrue(displayLinks2.containsAll(customProv.getLinksForDisplay())); - - customProv2.setUrlLinks(names, urls); - assertTrue(displayLinks2.containsAll(customProv2.getLinksForDisplay())); + // because UrlProvider does not guarantee order of links, we can't just + // compare the output of writeUrlsAsString to a string, hence the hoops here + String result = customProv.writeUrlsAsString(true); + UrlProviderI up = new CustomUrlProvider(result, ""); + assertTrue(displayLinks.containsAll(up.getLinksForMenu())); + + result = customProv.writeUrlsAsString(false); + up = new CustomUrlProvider("", result); + assertTrue(unselDisplayLinks.containsAll(up.getLinksForMenu())); + + result = customProv2.writeUrlsAsString(true); + UrlProviderI up2 = new CustomUrlProvider(result, ""); + assertTrue(displayLinks.containsAll(up2.getLinksForMenu())); + + result = customProv2.writeUrlsAsString(false); + up2 = new CustomUrlProvider("", result); + assertTrue(displayLinks.containsAll(up2.getLinksForMenu())); } }