@Test public void testMultipleLazyValuesAreSeparatedByCommas() { LazyHeaderFactory first = mock(LazyHeaderFactory.class); when(first.buildHeader()).thenReturn("first"); LazyHeaderFactory second = mock(LazyHeaderFactory.class); when(second.buildHeader()).thenReturn("second"); Map<String, String> headers = new Builder() .addHeader("key", first) .addHeader("key", second) .build() .getHeaders(); assertThat(headers).containsEntry("key", "first,second"); }
@Test public void testIncludesLazyHeaders() { LazyHeaderFactory factory = mock(LazyHeaderFactory.class); when(factory.buildHeader()).thenReturn("value"); Map<String, String> headers = new Builder() .addHeader("key", factory) .build() .getHeaders(); assertThat(headers).containsEntry("key", "value"); }
@Test public void testCanAddMultipleKeys() { LazyHeaderFactory factory = mock(LazyHeaderFactory.class); when(factory.buildHeader()).thenReturn("lazy"); Map<String, String> headers = new Builder() .addHeader("first", factory) .addHeader("second", "eager") .build() .getHeaders(); assertThat(headers).containsEntry("first", "lazy"); assertThat(headers).containsEntry("second", "eager"); }
public static void downloadImage(Context context, String url, String source) { String referer = getReferer(source); LazyHeaders.Builder builder = new LazyHeaders.Builder(); builder.addHeader(REFERER, referer); if (referer.equals(URL_IKAN)) { builder.addHeader(HOST, HOST_IKAN); } GlideUrl glideUrl = new GlideUrl(url, builder.build()); Glide.with(context) .load(glideUrl) .downloadOnly(720, 1280); } }
public static void loadImage(Context context, String url, ImageView view, String source) { GlideUrl glideUrl = new GlideUrl(url, new LazyHeaders.Builder() .addHeader(REFERER, getReferer(source)) .build()); Glide.with(context) .load(glideUrl) // .placeholder(R.drawable.comic_placeholder) .diskCacheStrategy(DiskCacheStrategy.ALL) .crossFade() .into(view); }
new EqualsTester() .addEqualityGroup( new Builder().build(), new Builder().build() new Builder().addHeader("key", "value").build(), new Builder().addHeader("key", "value").build() new Builder().addHeader("key", "value").addHeader("key", "value").build() new Builder().addHeader("key", firstLazyFactory).build(), new Builder().addHeader("key", firstLazyFactory).build() .addHeader("key", firstLazyFactory) .addHeader("key", firstLazyFactory) .build() .addHeader("firstKey", "value") .addHeader("secondKey", firstLazyFactory) .build(), new Builder() .addHeader("secondKey", firstLazyFactory) .addHeader("firstKey", "value") .build() .addHeader("firstKey", "firstValue") .addHeader("secondKey", "secondValue") .build(), new Builder()
@Test public void testKeyIncludedWithOneFactoryThatReturnsNullAndOneFactoryThatDoesNotReturnNull() { Builder builder = new Builder(); builder.addHeader("test", new LazyHeaderFactory() { @Nullable @Override public String buildHeader() { return null; } }); builder.addHeader("test", new LazyHeaderFactory() { @Nullable @Override public String buildHeader() { return "value"; } }); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("test", "value"); }
@Test public void testUpdatingBuilderAfterBuildingDoesNotModifyOriginalHeaders() { Builder builder = new Builder(); builder.addHeader("key", "firstValue"); builder.addHeader("otherKey", "otherValue"); LazyHeaders first = builder.build(); LazyHeaderFactory factory = mock(LazyHeaderFactory.class); when(factory.buildHeader()).thenReturn("otherValue"); builder.addHeader("key", "secondValue"); builder.setHeader("otherKey", factory); LazyHeaders second = builder.build(); assertThat(first.getHeaders()).isNotEqualTo(second.getHeaders()); assertThat(first.getHeaders()).containsEntry("key", "firstValue"); assertThat(first.getHeaders()).containsEntry("otherKey", "otherValue"); assertThat(second.getHeaders()).containsEntry("key", "firstValue,secondValue"); assertThat(second.getHeaders()).containsEntry("otherKey", "otherValue"); }
@Test public void testMixedEagerAndLazyValuesAreIncluded() { LazyHeaderFactory factory = mock(LazyHeaderFactory.class); when(factory.buildHeader()).thenReturn("first"); Map<String, String> headers = new Builder() .addHeader("key", factory) .addHeader("key", "second") .build() .getHeaders(); assertThat(headers).containsEntry("key", "first,second"); headers = new Builder() .addHeader("key", "second") .addHeader("key", factory) .build() .getHeaders(); assertThat(headers).containsEntry("key", "second,first"); }
@Test public void testRemovingAndAddingEncodingHeaderReplacesDefaultThenAppends() { Builder builder = new Builder(); builder.setHeader("Accept-Encoding", (String) null); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).doesNotContainKey("Accept-Encoding"); builder.addHeader("Accept-Encoding", "false"); headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("Accept-Encoding", "false"); builder.addHeader("Accept-Encoding", "true"); headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("Accept-Encoding", "false,true"); }
@Test public void testKeyNotIncludedWithFactoryThatReturnsNullValue() { Builder builder = new Builder(); builder.setHeader("test", new LazyHeaderFactory() { @Nullable @Override public String buildHeader() { return null; } }); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).doesNotContainKey("test"); }
@Test public void testKeyNotIncludedWithFactoryThatReturnsEmptyValue() { Builder builder = new Builder(); builder.setHeader("test", new LazyHeaderFactory() { @Nullable @Override public String buildHeader() { return ""; } }); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).doesNotContainKey("test"); }
@Test public void testRemovingAndAddingUserAgentHeaderReplacesDefaultThenAppends() { Builder builder = new Builder(); builder.setHeader("User-Agent", (String) null); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).doesNotContainKey("User-Agent"); builder.addHeader("User-Agent", "false"); headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("User-Agent", "false"); builder.addHeader("User-Agent", "true"); headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("User-Agent", "false,true"); }
@Test public void testSetHeaderWithNullStringRemovesExistingHeader() { Builder builder = new Builder(); builder.addHeader("key", "first") .addHeader("key", "second") .setHeader("key", (String) null); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).doesNotContainKey("key"); }
@Test public void testSetHeaderReplacesExistingHeaders() { Builder builder = new Builder(); builder.addHeader("key", "first") .addHeader("key", "second") .setHeader("key", "third"); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("key", "third"); }
@Test public void testMultipleEagerValuesAreSeparatedByCommas() { Map<String, String> headers = new Builder() .addHeader("key", "first") .addHeader("key", "second") .build() .getHeaders(); assertThat(headers).containsEntry("key", "first,second"); }
@Test public void testIncludesEagerHeaders() { Map<String, String> headers = new Builder() .addHeader("key", "value") .build() .getHeaders(); assertThat(headers).containsEntry("key", "value"); }
@Test public void testSetHeaderWithNullLazyHeaderFactoryRemovesExistingHeader() { Builder builder = new Builder(); builder.addHeader("key", "first") .addHeader("key", "second") .setHeader("key", (LazyHeaderFactory) null); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).doesNotContainKey("key"); }
@Test public void testAddingEncodingHeaderReplacesDefaultThenAppends() { Builder builder = new Builder(); builder.addHeader("Accept-Encoding", "false"); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("Accept-Encoding", "false"); builder.addHeader("Accept-Encoding", "true"); headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("Accept-Encoding", "false,true"); }
@Test public void testAddingUserAgentHeaderReplacesDefaultThenAppends() { Builder builder = new Builder(); builder.addHeader("User-Agent", "false"); LazyHeaders headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("User-Agent", "false"); builder.addHeader("User-Agent", "true"); headers = builder.build(); assertThat(headers.getHeaders()).containsEntry("User-Agent", "false,true"); }