package fr.prcaen.externalresources.url; import java.util.Locale; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import static junit.framework.Assert.assertTrue; import static org.hamcrest.CoreMatchers.containsString; import static org.junit.Assert.assertThat; @RunWith(RobolectricTestRunner.class) @Config(manifest = Config.NONE) public final class DefaultUrlTest { private static final String BASE_URL = "http://test.com"; private DefaultUrl url; @Test public void testFontScale() throws Exception { url = new DefaultUrl(BASE_URL); url.fontScale(2.0f); assertTrue("font_scale key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_FONT_SCALE)); assertTrue("font_scale value exists", url.parameters.containsValue("2.0")); } @Test public void testHardKeyboardHidden() throws Exception { url = new DefaultUrl(BASE_URL); url.hardKeyboardHidden(1); assertTrue("hard_keyboard_hidden key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_HARD_KEYBOARD_HIDDEN)); assertTrue("hard_keyboard_hidden value exists", url.parameters.containsValue("1")); } @Test public void testKeyboard() throws Exception { url = new DefaultUrl(BASE_URL); url.keyboard(2); assertTrue("keyboard key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_KEYBOARD)); assertTrue("keyboard value exists", url.parameters.containsValue("2")); } @Test public void testKeyboardHidden() throws Exception { url = new DefaultUrl(BASE_URL); url.keyboardHidden(3); assertTrue("keyboard hidden key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_KEYBOARD_HIDDEN)); assertTrue("keyboard hidden value exists", url.parameters.containsValue("3")); } @Test public void testLocale() throws Exception { url = new DefaultUrl(BASE_URL); url.locale(Locale.FRANCE); assertTrue("locale key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_LOCALE)); assertTrue("locale value exists", url.parameters.containsValue("fr_FR")); } @Test public void testMcc() throws Exception { url = new DefaultUrl(BASE_URL); url.mcc(1); assertTrue("mcc key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_MCC)); assertTrue("mcc value exists", url.parameters.containsValue("1")); } @Test public void testMnc() throws Exception { url = new DefaultUrl(BASE_URL); url.mnc(2); assertTrue("mnc key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_MNC)); assertTrue("mnc value exists", url.parameters.containsValue("2")); } @Test public void testNavigation() throws Exception { url = new DefaultUrl(BASE_URL); url.navigation(3); assertTrue("navigation key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_NAVIGATION)); assertTrue("navigation value exists", url.parameters.containsValue("3")); } @Test public void testNavigationHidden() throws Exception { url = new DefaultUrl(BASE_URL); url.navigationHidden(0); assertTrue("navigation_hidden key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_NAVIGATION_HIDDEN)); assertTrue("navigation_hidden value exists", url.parameters.containsValue("0")); } @Test public void testOrientation() throws Exception { url = new DefaultUrl(BASE_URL); url.orientation(1); assertTrue("orientation key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_ORIENTATION)); assertTrue("orientation value exists", url.parameters.containsValue("1")); } @Test public void testScreenLayout() throws Exception { url = new DefaultUrl(BASE_URL); url.screenLayout(2); assertTrue("screen_layout key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_SCREEN_LAYOUT)); assertTrue("screen_layout value exists", url.parameters.containsValue("2")); } @Test public void testTouchscreen() throws Exception { url = new DefaultUrl(BASE_URL); url.touchscreen(3); assertTrue("touchscreen key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_TOUCHSCREEN)); assertTrue("touchscreen value exists", url.parameters.containsValue("3")); } @Test public void testUiMode() throws Exception { url = new DefaultUrl(BASE_URL); url.uiMode(4); assertTrue("ui_mode key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_UI_MODE)); assertTrue("ui_mode value exists", url.parameters.containsValue("4")); } @Test public void testDensityDpi() throws Exception { url = new DefaultUrl(BASE_URL); url.densityDpi(5); assertTrue("density_dpi key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_DENSITY_DPI)); assertTrue("density_dpi value exists", url.parameters.containsValue("5")); } @Test public void testScreenWidthDp() throws Exception { url = new DefaultUrl(BASE_URL); url.screenWidthDp(6); assertTrue("screen_width_dp key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_SCREEN_WIDTH_DP)); assertTrue("screen_width_dp value exists", url.parameters.containsValue("6")); } @Test public void testScreenHeightDp() throws Exception { url = new DefaultUrl(BASE_URL); url.screenHeightDp(7); assertTrue("screen_height_dp key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_SCREEN_HEIGHT_DP)); assertTrue("screen_height_dp value exists", url.parameters.containsValue("7")); } @Test public void testSmallestScreenWidthDp() throws Exception { url = new DefaultUrl(BASE_URL); url.smallestScreenWidthDp(8); assertTrue("smallest_screen_width_dp key exists", url.parameters.containsKey(DefaultUrl.QUERY_PARAMETER_SMALLEST_SCREEN_WIDTH_DP)); assertTrue("smallest_screen_width_dp value exists", url.parameters.containsValue("8")); } @Test public void testBuild() throws Exception { url = new DefaultUrl(BASE_URL); url.screenHeightDp(7); url.densityDpi(5); String urlString = url.build(); assertThat("Contains density_dpi", urlString, containsString("density_dpi=5")); assertThat("Contains screen_height_dp", urlString, containsString("screen_height_dp=7")); } }