fix issue with social views not loading

This commit is contained in:
Phillip Thelen 2016-06-16 12:07:58 +02:00
parent 4361c6b9c1
commit 8f048c1091
5 changed files with 118 additions and 3 deletions

View file

@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.habitrpg.android.habitica"
android:versionCode="86"
android:versionName="0.0.30.1"
android:versionCode="87"
android:versionName="0.0.31.0"
android:screenOrientation="portrait"
android:installLocation="auto" >

View file

@ -213,4 +213,9 @@ public interface ApiService {
@POST("/iap/android/verify")
Call<PurchaseValidationResult> validatePurchase(@Body PurchaseValidationRequest request);
//DEBUG: These calls only work on a local development server
@POST("debug/add-ten-gems")
Observable<Void> debugAddTenGems();
}

View file

@ -22,7 +22,7 @@ public class ChatMessageDeserializer implements JsonDeserializer<ChatMessage> {
if (obj.has("id")) {
message.id = obj.get("id").getAsString();
}
if (obj.has("text") && !obj.get("leaderMessage").isJsonNull()) {
if (obj.has("text") && !obj.get("text").isJsonNull()) {
message.text = obj.get("text").getAsString();
}
if (obj.has("timestamp")) {

View file

@ -9,6 +9,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.UserAuthResponse;
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
import com.magicmicky.habitrpgwrapper.lib.models.tasks.TaskList;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -54,4 +55,8 @@ public class BaseAPITests {
hostConfig.setUser(response.getId());
hostConfig.setApi(response.getApiToken() != null ? response.getApiToken() : response.getToken());
}
@After
public void tearDown() {
}
}

View file

@ -0,0 +1,105 @@
package com.habitrpg.android.habitica.api;
import com.habitrpg.android.habitica.BuildConfig;
import com.magicmicky.habitrpgwrapper.lib.models.ChatMessage;
import com.magicmicky.habitrpgwrapper.lib.models.Group;
import com.magicmicky.habitrpgwrapper.lib.models.PostChatMessageResult;
import com.magicmicky.habitrpgwrapper.lib.models.UserAuthResponse;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;
import android.os.Build;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import rx.observers.TestSubscriber;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
@RunWith(RobolectricGradleTestRunner.class)
public class SocialAPITests extends BaseAPITests {
List<String> messagesIDs;
String groupID;
@Override
public void setUp() {
super.setUp();
groupID = null;
messagesIDs = new ArrayList<>();
}
public void postMessage(String groupID, String messageSuffix) {
HashMap<String, String> messageObject = new HashMap<>();
messageObject.put("message", "Foo Bar"+messageSuffix);
TestSubscriber<PostChatMessageResult> testSubscriber = new TestSubscriber<>();
apiHelper.apiService.postGroupChat(groupID, messageObject).subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertCompleted();
PostChatMessageResult result = testSubscriber.getOnNextEvents().get(0);
messagesIDs.add(result.message.id);
}
@Test
public void shouldPostMessageToTavern() {
groupID = "habitrpg";
HashMap<String, String> messageObject = new HashMap<>();
messageObject.put("message", "Foo Bar");
TestSubscriber<PostChatMessageResult> testSubscriber = new TestSubscriber<>();
apiHelper.apiService.postGroupChat(groupID, messageObject).subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertCompleted();
PostChatMessageResult result = testSubscriber.getOnNextEvents().get(0);
messagesIDs.add(result.message.id);
assertEquals("Foo Bar", result.message.text);
}
@Test
public void shouldLoadTavernWithMessages() {
groupID = "habitrpg";
postMessage(groupID, "1");
TestSubscriber<Group> testSubscriber = new TestSubscriber<>();
apiHelper.apiService.getGroup(groupID).subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertCompleted();
testSubscriber.assertValueCount(1);
Group group = testSubscriber.getOnNextEvents().get(0);
assertEquals(1, group.chat.size());
}
@Test
public void shouldLoadTavernChat() {
groupID = "habitrpg";
postMessage(groupID, "1");
postMessage(groupID, "2");
TestSubscriber<List<ChatMessage>> testSubscriber = new TestSubscriber<>();
apiHelper.apiService.listGroupChat(groupID).subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertCompleted();
testSubscriber.assertValueCount(1);
List<ChatMessage> messages = testSubscriber.getOnNextEvents().get(0);
assertEquals(2, messages.size());
}
@After
public void tearDown() {
TestSubscriber<Void> testSubscriber = new TestSubscriber<>();
for (String messageID : this.messagesIDs) {
apiHelper.apiService.deleteMessage("habitrpg", messageID)
.subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertCompleted();
}
super.tearDown();
}
}