Fixed bugs and unit tests with new update message logic

pull/14/head
Sam Bosley 13 years ago
parent 99e1307333
commit 961a4a0d35

@ -92,8 +92,7 @@ public class UpdateMessageService {
displayUpdateDialog(message); displayUpdateDialog(message);
} }
private static class MessageTuple { public static class MessageTuple {
public boolean htmlMessage = false;
public String message = null; public String message = null;
public List<String> linkText = new ArrayList<String>(); public List<String> linkText = new ArrayList<String>();
public List<OnClickListener> click = new ArrayList<OnClickListener>(); public List<OnClickListener> click = new ArrayList<OnClickListener>();
@ -224,25 +223,27 @@ public class UpdateMessageService {
toReturn.click.add(click); toReturn.click.add(click);
} else { } else {
JSONArray links = update.optJSONArray("links"); JSONArray links = update.optJSONArray("links");
for (int j = 0; j < links.length(); j++) { if (links != null) {
JSONObject link = links.optJSONObject(j); for (int j = 0; j < links.length(); j++) {
if (link == null) JSONObject link = links.optJSONObject(j);
continue; if (link == null)
String linkText = link.optString("title"); continue;
if (TextUtils.isEmpty(linkText)) String linkText = link.optString("title");
continue; if (TextUtils.isEmpty(linkText))
continue;
final String url = link.optString("url");
OnClickListener click = new OnClickListener() { final String url = link.optString("url");
@Override OnClickListener click = new OnClickListener() {
public void onClick(View v) { @Override
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); public void onClick(View v) {
activity.startActivity(intent); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
} activity.startActivity(intent);
}; }
};
toReturn.linkText.add(linkText); toReturn.linkText.add(linkText);
toReturn.click.add(click); toReturn.click.add(click);
}
} }
} }

@ -12,12 +12,8 @@ import org.apache.http.HttpEntity;
import org.json.JSONArray; import org.json.JSONArray;
import org.weloveastrid.rmilk.MilkUtilities; import org.weloveastrid.rmilk.MilkUtilities;
import android.text.Spannable;
import android.text.style.ClickableSpan;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.RestClient; import com.todoroo.andlib.service.RestClient;
import com.todoroo.andlib.utility.Pair;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.StoreObjectDao.StoreObjectCriteria; import com.todoroo.astrid.dao.StoreObjectDao.StoreObjectCriteria;
import com.todoroo.astrid.test.DatabaseTestCase; import com.todoroo.astrid.test.DatabaseTestCase;
@ -33,7 +29,7 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
fail("should not have displayed updates"); fail("should not have displayed updates");
} }
@ -52,7 +48,7 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
fail("should not have displayed updates"); fail("should not have displayed updates");
} }
@ -69,8 +65,8 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertTrue(message.getLeft().toString().contains("yo")); assertTrue(message.message.toString().contains("yo"));
} }
@Override @Override
@ -86,9 +82,9 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertTrue(message.getLeft().toString().contains("yo")); assertTrue(message.message.toString().contains("yo"));
assertFalse(message.getLeft().toString().contains("cat")); // We only process the first update now assertFalse(message.message.toString().contains("cat")); // We only process the first update now
} }
@Override @Override
@ -104,8 +100,8 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertTrue(message.getLeft().toString().contains("yo")); assertTrue(message.message.toString().contains("yo"));
} }
@Override @Override
@ -117,7 +113,7 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
fail("should have not displayed again"); fail("should have not displayed again");
} }
@ -139,9 +135,8 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertTrue(message.getLeft().toString().contains("yo")); assertTrue(message.message.toString().contains("yo"));
assertTrue(message.getLeft().toString().contains("date"));
} }
@Override @Override
@ -158,8 +153,8 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertTrue(message.getLeft().toString().contains("rmilk man")); assertTrue(message.message.toString().contains("rmilk man"));
} }
@Override @Override
@ -176,7 +171,7 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
fail("displayed update"); fail("displayed update");
} }
@ -198,8 +193,8 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertTrue(message.getLeft().toString().contains("astrid man")); assertTrue(message.message.toString().contains("astrid man"));
} }
@Override @Override
@ -215,7 +210,7 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
fail("displayed update"); fail("displayed update");
} }
@ -237,9 +232,9 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertNotNull(message.getRight()); assertTrue(message.linkText.size() > 0);
assertTrue(((Spannable)message).getSpans(0, message.getRight().length(), ClickableSpan.class).length > 0); assertTrue(message.click.size() > 0);
} }
@Override @Override
@ -255,9 +250,9 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
new TestUpdateMessageService() { new TestUpdateMessageService() {
@Override @Override
void verifyMessage(Pair<String, Spannable> message) { void verifyMessage(MessageTuple message) {
assertNotNull(message.getRight()); assertTrue(message.linkText.size() > 0);
assertTrue(((Spannable)message).getSpans(0, message.getRight().length(), ClickableSpan.class).length > 0); assertTrue(message.click.size() > 0);
} }
@Override @Override
@ -290,7 +285,7 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
}; };
} }
abstract void verifyMessage(Pair<String, Spannable> message); abstract void verifyMessage(MessageTuple message);
abstract String getUpdates(String url) throws IOException; abstract String getUpdates(String url) throws IOException;
@ -299,16 +294,16 @@ public class UpdateMessageServiceTest extends DatabaseTestCase {
} }
@Override @Override
protected Pair<String, Spannable> buildUpdateMessage(JSONArray updates) { protected MessageTuple buildUpdateMessage(JSONArray updates) {
Pair<String, Spannable> message = super.buildUpdateMessage(updates); MessageTuple message = super.buildUpdateMessage(updates);
if(message == null || message.getLeft().length() == 0) if(message == null || message.message.length() == 0)
onEmptyMessage(); onEmptyMessage();
return message; return message;
} }
@Override @Override
protected void displayUpdateDialog(Pair<String, Spannable> builder) { protected void displayUpdateDialog(MessageTuple tuple) {
verifyMessage(builder); verifyMessage(tuple);
} }
} }

Loading…
Cancel
Save