mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
c3649d3efd
18 changed files with 309 additions and 210 deletions
|
|
@ -27,7 +27,7 @@ import static org.junit.Assert.assertFalse;
|
|||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(constants = BuildConfig.class)
|
||||
@Config(constants = BuildConfig.class, sdk = 21)
|
||||
public class ApacheHttpClientMediaWikiApiTest {
|
||||
|
||||
private ApacheHttpClientMediaWikiApi testObject;
|
||||
|
|
@ -36,7 +36,7 @@ public class ApacheHttpClientMediaWikiApiTest {
|
|||
@Before
|
||||
public void setUp() throws Exception {
|
||||
server = new MockWebServer();
|
||||
testObject = new ApacheHttpClientMediaWikiApi("http://localhost:" + server.getPort() + "/");
|
||||
testObject = new ApacheHttpClientMediaWikiApi("http://" + server.getHostName() + ":" + server.getPort() + "/");
|
||||
}
|
||||
|
||||
@After
|
||||
|
|
@ -163,7 +163,7 @@ public class ApacheHttpClientMediaWikiApiTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void editToken() throws Exception{
|
||||
public void editToken() throws Exception {
|
||||
server.enqueue(new MockResponse().setBody("<?xml version=\"1.0\"?><api><tokens edittoken=\"baz\" /></api>"));
|
||||
|
||||
String result = testObject.getEditToken();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,139 @@
|
|||
package fr.free.nrw.commons.nearby;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.pedrogomez.renderers.RVRendererAdapter;
|
||||
import com.pedrogomez.renderers.RendererViewHolder;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowDrawable;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import fr.free.nrw.commons.BuildConfig;
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.location.LatLng;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(constants = BuildConfig.class)
|
||||
public class NearbyAdapterFactoryTest {
|
||||
|
||||
private static final Place PLACE = new Place("name", Place.Description.AIRPORT,
|
||||
"desc", null, new LatLng(38.6270, -90.1994, 0), null);
|
||||
private static final Place UNKNOWN_PLACE = new Place("name", Place.Description.UNKNOWN,
|
||||
"desc", null, new LatLng(39.7392, -104.9903, 0), null);
|
||||
private Place clickedPlace;
|
||||
|
||||
@Test
|
||||
public void factoryHandlesNullListAndNullListener() {
|
||||
NearbyAdapterFactory testObject = new NearbyAdapterFactory(null);
|
||||
RVRendererAdapter<Place> result = testObject.create(null);
|
||||
assertNotNull(result);
|
||||
assertEquals(0, result.getItemCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void factoryHandlesEmptyListAndNullListener() {
|
||||
NearbyAdapterFactory testObject = new NearbyAdapterFactory(null);
|
||||
RVRendererAdapter<Place> result = testObject.create(Collections.<Place>emptyList());
|
||||
assertNotNull(result);
|
||||
assertEquals(0, result.getItemCount());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void factoryHandlesNonEmptyListAndNullListener() {
|
||||
NearbyAdapterFactory testObject = new NearbyAdapterFactory(null);
|
||||
RVRendererAdapter<Place> result = testObject.create(Collections.singletonList(PLACE));
|
||||
assertNotNull(result);
|
||||
assertEquals(1, result.getItemCount());
|
||||
assertEquals(PLACE, result.getItem(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rendererCorrectlyBound() {
|
||||
NearbyAdapterFactory testObject = new NearbyAdapterFactory(null);
|
||||
RVRendererAdapter<Place> result = testObject.create(Collections.singletonList(PLACE));
|
||||
|
||||
RendererViewHolder viewHolder = renderComponent(result);
|
||||
|
||||
assertNotNull(viewHolder.itemView.findViewById(R.id.tvName));
|
||||
assertEquals("name",
|
||||
((TextView) viewHolder.itemView.findViewById(R.id.tvName)).getText().toString());
|
||||
|
||||
assertNotNull(viewHolder.itemView.findViewById(R.id.tvDesc));
|
||||
assertEquals("airport",
|
||||
((TextView) viewHolder.itemView.findViewById(R.id.tvDesc)).getText().toString());
|
||||
|
||||
assertNotNull(viewHolder.itemView.findViewById(R.id.distance));
|
||||
assertEquals("",
|
||||
((TextView) viewHolder.itemView.findViewById(R.id.distance)).getText().toString());
|
||||
|
||||
assertNotNull(viewHolder.itemView.findViewById(R.id.icon));
|
||||
ImageView imageView = (ImageView) viewHolder.itemView.findViewById(R.id.icon);
|
||||
ShadowDrawable shadow = Shadows.shadowOf(imageView.getDrawable());
|
||||
assertEquals(R.drawable.round_icon_airport, shadow.getCreatedFromResId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rendererCorrectlyBoundForUnknownPlace() {
|
||||
NearbyAdapterFactory testObject = new NearbyAdapterFactory(null);
|
||||
RVRendererAdapter<Place> result = testObject.create(Collections.singletonList(UNKNOWN_PLACE));
|
||||
|
||||
RendererViewHolder viewHolder = renderComponent(result);
|
||||
|
||||
assertNotNull(viewHolder.itemView.findViewById(R.id.tvDesc));
|
||||
assertEquals("no description found",
|
||||
((TextView) viewHolder.itemView.findViewById(R.id.tvDesc)).getText().toString());
|
||||
|
||||
assertNotNull(viewHolder.itemView.findViewById(R.id.icon));
|
||||
ImageView imageView = (ImageView) viewHolder.itemView.findViewById(R.id.icon);
|
||||
ShadowDrawable shadow = Shadows.shadowOf(imageView.getDrawable());
|
||||
assertEquals(R.drawable.round_icon_unknown, shadow.getCreatedFromResId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clickView() {
|
||||
NearbyAdapterFactory testObject = new NearbyAdapterFactory(new MockPlaceClickedListener());
|
||||
RVRendererAdapter<Place> result = testObject.create(Collections.singletonList(PLACE));
|
||||
RendererViewHolder viewHolder = renderComponent(result);
|
||||
|
||||
viewHolder.itemView.performClick();
|
||||
|
||||
assertEquals(PLACE, clickedPlace);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clickViewHandlesMisconfiguredListener() {
|
||||
NearbyAdapterFactory testObject = new NearbyAdapterFactory(null);
|
||||
RVRendererAdapter<Place> result = testObject.create(Collections.singletonList(PLACE));
|
||||
RendererViewHolder viewHolder = renderComponent(result);
|
||||
viewHolder.itemView.performClick();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private RendererViewHolder renderComponent(RVRendererAdapter<Place> result) {
|
||||
FrameLayout viewGroup = new FrameLayout(RuntimeEnvironment.application);
|
||||
int itemViewType = result.getItemViewType(0);
|
||||
RendererViewHolder viewHolder = result.onCreateViewHolder(viewGroup, itemViewType);
|
||||
assertNotNull(viewHolder);
|
||||
result.bindViewHolder(viewHolder, 0);
|
||||
return viewHolder;
|
||||
}
|
||||
|
||||
private class MockPlaceClickedListener implements PlaceRenderer.PlaceClickedListener {
|
||||
@Override
|
||||
public void placeClicked(Place place) {
|
||||
clickedPlace = place;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue