Bug 1388396 - review: Add TestMinimumSizeProcessor. r=mcomella

MozReview-Commit-ID: ADaJL88YZLg

--HG--
extra : rebase_source : 586e6986b2ee7256a62651504acead18bc030fac
This commit is contained in:
Michael Comella 2017-09-12 11:33:33 -07:00
Родитель 148e06a804
Коммит 409089d342
1 изменённых файлов: 85 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,85 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
package org.mozilla.gecko.icons.processing;
import android.graphics.Bitmap;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mozilla.gecko.background.testhelpers.TestRunner;
import org.mozilla.gecko.icons.IconRequest;
import org.mozilla.gecko.icons.IconResponse;
import org.robolectric.RuntimeEnvironment;
import static org.mockito.Mockito.*;
@RunWith(TestRunner.class)
public class TestMinimumSizeProcessor {
private MinimumSizeProcessor processor;
@Before
public void setUp() {
processor = new MinimumSizeProcessor();
}
@Test
public void testProcessMinimumSizeZeroDoesNotReplaceSmallBitmap() throws Exception {
final IconResponse responseMock = getMockResponse(1);
processor.process(getMockRequest(0), responseMock);
verify(responseMock, never()).updateBitmap(any(Bitmap.class));
verify(responseMock, never()).updateColor(anyInt());
}
@Test
public void testProcessMinimumSizeZeroDoesNotReplaceLargeBitmap() throws Exception {
final IconResponse responseMock = getMockResponse(1000);
processor.process(getMockRequest(0), responseMock);
verify(responseMock, never()).updateBitmap(any(Bitmap.class));
verify(responseMock, never()).updateColor(anyInt());
}
@Test
public void testProcessMinimumSizeFiftyReplacesSmallerBitmap() throws Exception {
final IconResponse responseMock = getMockResponse(25);
processor.process(getMockRequest(50), responseMock);
verify(responseMock, atLeastOnce()).updateBitmap(any(Bitmap.class));
verify(responseMock, atLeastOnce()).updateColor(anyInt());
}
@Test
public void testProcessMinimumSizeFiftyDoesNotReplaceLargerBitmap() throws Exception {
final IconResponse responseMock = getMockResponse(1000);
processor.process(getMockRequest(50), responseMock);
verify(responseMock, never()).updateBitmap(any(Bitmap.class));
verify(responseMock, never()).updateColor(anyInt());
}
private IconRequest getMockRequest(final int minimumSizePx) {
final IconRequest requestMock = mock(IconRequest.class);
// Under testing.
when(requestMock.getMinimumSizePxAfterScaling()).thenReturn(minimumSizePx);
// Happened to be called.
when(requestMock.getPageUrl()).thenReturn("https://mozilla.org");
when(requestMock.getContext()).thenReturn(RuntimeEnvironment.application);
return requestMock;
}
private IconResponse getMockResponse(final int bitmapWidth) {
final Bitmap bitmapMock = mock(Bitmap.class);
when(bitmapMock.getWidth()).thenReturn(bitmapWidth);
when(bitmapMock.getHeight()).thenReturn(bitmapWidth); // not strictly necessary with the current impl.
final IconResponse responseMock = mock(IconResponse.class);
when(responseMock.getBitmap()).thenReturn(bitmapMock);
return responseMock;
}
}