package edu.harvard.iq.dataverse.util; import java.util.Arrays; import java.util.Locale; import java.util.ResourceBundle; import org.junit.Test; import static org.junit.Assert.assertEquals; public class BundleUtilTest { @Test public void testGetStringFromBundle() { assertEquals(null, BundleUtil.getStringFromBundle(null)); assertEquals(null, BundleUtil.getStringFromBundle("")); assertEquals(null, BundleUtil.getStringFromBundle("junkKeyWeDoNotExpectToFind")); assertEquals("Search", BundleUtil.getStringFromBundle("search")); assertEquals("Error validating the username, email address, or password. Please try again. If the problem persists, contact an administrator.", BundleUtil.getStringFromBundle("login.error")); } @Test public void testGetStringFromBundleWithArguments() { assertEquals(null, BundleUtil.getStringFromBundle(null, null)); String actual = BundleUtil.getStringFromBundle("dataverse.create.success", Arrays.asList("http://guides.dataverse.org/en", "4.0")); String expected = "You have successfully created your dataverse! To learn more about what you can do with your dataverse, check out the <a href=\"http://guides.dataverse.org/en/4.0/user/dataverse-management.html\" title=\"Dataverse Management - Dataverse User Guide\" target=\"_blank\">User Guide</a>."; assertEquals(expected, actual); assertEquals("Your new dataverse named " + "dvName (view at dvUrl ) " + "was created in parentDvName (view at parentDvUrl ). To learn more " + "about what you can do with your dataverse, check out " + "the Dataverse Management - Dataverse User Guide at " + "http://guides.dataverse.org/en/4.0/user/dataverse-management.html .", BundleUtil.getStringFromBundle("notification.email.createDataverse", Arrays.asList("dvName", "dvUrl", "parentDvName", "parentDvUrl", "http://guides.dataverse.org/en", "4.0"))); assertEquals("Your new dataset named dsName (view at dsUrl ) " + "was created in parentDvName (view at parentDvUrl ). " + "To learn more about what you can do with a dataset, " + "check out the Dataset Management - Dataset User Guide at " + "http://guides.dataverse.org/en/4.0/user/dataset-management.html .", BundleUtil.getStringFromBundle("notification.email.createDataset", Arrays.asList("dsName", "dsUrl", "parentDvName", "parentDvUrl", "http://guides.dataverse.org/en", "4.0"))); assertEquals("There are no dataverses, datasets, or files that match your search. " + "Please try a new search by using other or broader terms. You can also check out " + "the <a href=\"http://guides.dataverse.org/en/4.2/user/find-use-data.html\" title=\"Finding & Using " + "Data - Dataverse User Guide\" target=\"_blank\">search guide</a> for tips.", BundleUtil.getStringFromBundle("dataverse.results.empty.zero", Arrays.asList("http://guides.dataverse.org/en", "4.2"))); assertEquals("There are no search results based on how you have narrowed your search. You can check out " + "the <a href=\"http://guides.dataverse.org/en/4.2/user/find-use-data.html\" title=\"Finding & Using " + "Data - Dataverse User Guide\" target=\"_blank\">search guide</a> for tips.", BundleUtil.getStringFromBundle("dataverse.results.empty.hidden", Arrays.asList("http://guides.dataverse.org/en", "4.2"))); assertEquals("The saved search has been successfully linked to " + "<a href=\"/dataverse/dvAlias\" title=\"DV Name\">DV Name</a>.", BundleUtil.getStringFromBundle("dataverse.saved.search.success", Arrays.asList("<a href=\"/dataverse/dvAlias\" title=\"DV Name\">DV Name</a>"))); assertEquals("Your institutional log in for TestShib Test IdP matches an email address already being used for a Dataverse " + "account. By entering your current Dataverse password below, your existing Dataverse account can be " + "converted to use your institutional log in. After converting, you will only need to use your institutional log in.", BundleUtil.getStringFromBundle("shib.welcomeExistingUserMessage", Arrays.asList("TestShib Test IdP"))); assertEquals("Your institutional log in for your institution matches an email address already being used for a Dataverse " + "account. By entering your current Dataverse password below, your existing Dataverse account can be " + "converted to use your institutional log in. After converting, you will only need to use your institutional log in.", BundleUtil.getStringFromBundle("shib.welcomeExistingUserMessage", Arrays.asList(BundleUtil.getStringFromBundle("shib.welcomeExistingUserMessageDefaultInstitution")))); assertEquals("Welcome to Root Dataverse! Get started by adding or finding data. " + "Have questions? Check out the <a href=\"http://guides.dataverse.org/en/4.3/user/index.html\">User Guide</a>." + " Want to test out Dataverse features? Use our <a href=\"https://demo.dataverse.org\">Demo Site</a>." + " Also, check for your welcome email to verify your address.", BundleUtil.getStringFromBundle("notification.welcome", Arrays.asList("Root", "<a href=\"http://guides.dataverse.org/en/4.3/user/index.html\">User Guide</a>", "<a href=\"https://demo.dataverse.org\">Demo Site</a>"))); } @Test public void testGetStringFromBundleWithArgumentsAndSpecificBundle() { assertEquals(null, BundleUtil.getStringFromBundle(null, null, null)); assertEquals("Search", BundleUtil.getStringFromBundle("search", null, ResourceBundle.getBundle("Bundle", Locale.US))); } }