diff --git a/astrid/astrid.launch b/astrid/astrid.launch
index 72aa24a68..6b1f50845 100644
--- a/astrid/astrid.launch
+++ b/astrid/astrid.launch
@@ -4,7 +4,7 @@
-
+
diff --git a/astrid/common-src/com/todoroo/andlib/sql/DBObject.java b/astrid/common-src/com/todoroo/andlib/sql/DBObject.java
index c01b20af7..6539df6a8 100644
--- a/astrid/common-src/com/todoroo/andlib/sql/DBObject.java
+++ b/astrid/common-src/com/todoroo/andlib/sql/DBObject.java
@@ -58,6 +58,10 @@ public abstract class DBObject> implements Cloneable {
StringBuilder sb = new StringBuilder(expression);
if (hasAlias()) {
sb.append(SPACE).append(AS).append(SPACE).append(alias);
+ } else {
+ int pos = expression.indexOf('.');
+ if(pos > 0)
+ sb.append(SPACE).append(AS).append(SPACE).append(expression.substring(pos + 1));
}
return sb.toString();
}
diff --git a/astrid/src/com/todoroo/astrid/service/Astrid2To3UpgradeHelper.java b/astrid/src/com/todoroo/astrid/service/Astrid2To3UpgradeHelper.java
index b33a4f9c2..680e8246c 100644
--- a/astrid/src/com/todoroo/astrid/service/Astrid2To3UpgradeHelper.java
+++ b/astrid/src/com/todoroo/astrid/service/Astrid2To3UpgradeHelper.java
@@ -15,6 +15,7 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
+import android.text.TextUtils;
import android.util.Log;
import com.google.ical.values.Frequency;
@@ -456,6 +457,8 @@ public class Astrid2To3UpgradeHelper {
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
long task = cursor.getLong(0);
String id = cursor.getString(1);
+ if(TextUtils.isEmpty(id))
+ continue;
StringTokenizer strtok = new StringTokenizer(id, "|");
String taskId = strtok.nextToken();
diff --git a/astrid/src/com/todoroo/astrid/utility/Constants.java b/astrid/src/com/todoroo/astrid/utility/Constants.java
index 3f4035cde..b76187437 100644
--- a/astrid/src/com/todoroo/astrid/utility/Constants.java
+++ b/astrid/src/com/todoroo/astrid/utility/Constants.java
@@ -28,7 +28,7 @@ public final class Constants {
/**
* Whether to turn on debugging logging and UI
*/
- public static final boolean DEBUG = true;
+ public static final boolean DEBUG = false;
// --- notification id's
diff --git a/tests/src/com/todoroo/astrid/dao/MetadataDaoTests.java b/tests/src/com/todoroo/astrid/dao/MetadataDaoTests.java
index 00a9c37a1..da93bcf7c 100644
--- a/tests/src/com/todoroo/astrid/dao/MetadataDaoTests.java
+++ b/tests/src/com/todoroo/astrid/dao/MetadataDaoTests.java
@@ -7,7 +7,6 @@ import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.model.Metadata;
import com.todoroo.astrid.model.Task;
-import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.test.DatabaseTestCase;
public class MetadataDaoTests extends DatabaseTestCase {
@@ -26,7 +25,7 @@ public class MetadataDaoTests extends DatabaseTestCase {
*/
public void testCrud() throws Exception {
TodorooCursor cursor = metadataDao.query(
- Query.select(MetadataService.idProperty()));
+ Query.select(Metadata.ID));
assertEquals(0, cursor.getCount());
cursor.close();
@@ -35,7 +34,7 @@ public class MetadataDaoTests extends DatabaseTestCase {
metadata.setValue(Metadata.KEY, "happy");
assertTrue(metadataDao.persist(metadata));
cursor = metadataDao.query(
- Query.select(MetadataService.idProperty()));
+ Query.select(Metadata.ID));
assertEquals(1, cursor.getCount());
cursor.close();
long happyId = metadata.getId();
@@ -47,7 +46,7 @@ public class MetadataDaoTests extends DatabaseTestCase {
metadata = new Metadata();
metadata.setValue(Metadata.KEY, "sad");
assertTrue(metadataDao.persist(metadata));
- cursor = metadataDao.query(Query.select(MetadataService.idProperty()));
+ cursor = metadataDao.query(Query.select(Metadata.ID));
assertEquals(2, cursor.getCount());
cursor.close();
@@ -57,7 +56,7 @@ public class MetadataDaoTests extends DatabaseTestCase {
metadata.setValue(Metadata.KEY, "melancholy");
assertTrue(metadataDao.persist(metadata));
cursor = metadataDao.query(
- Query.select(MetadataService.idProperty()));
+ Query.select(Metadata.ID));
assertEquals(2, cursor.getCount());
cursor.close();
diff --git a/tests/src/com/todoroo/astrid/repeats/RepeatTests.java b/tests/src/com/todoroo/astrid/repeats/RepeatTests.java
index 2e0dd6172..88890c276 100644
--- a/tests/src/com/todoroo/astrid/repeats/RepeatTests.java
+++ b/tests/src/com/todoroo/astrid/repeats/RepeatTests.java
@@ -228,7 +228,7 @@ public class RepeatTests extends DatabaseTestCase {
Metadata metadata = new Metadata();
metadata.setValue(Metadata.KEY, "special");
- metadata.setValue(Metadata.VALUE, "sauce");
+ metadata.setValue(Metadata.VALUE1, "sauce");
metadata.setValue(Metadata.TASK, task.getId());
metadataDao.persist(metadata);
diff --git a/tests/src/com/todoroo/astrid/upgrade/Astrid2To3UpgradeTests.java b/tests/src/com/todoroo/astrid/upgrade/Astrid2To3UpgradeTests.java
index dec77cbb2..6fe72ec65 100644
--- a/tests/src/com/todoroo/astrid/upgrade/Astrid2To3UpgradeTests.java
+++ b/tests/src/com/todoroo/astrid/upgrade/Astrid2To3UpgradeTests.java
@@ -10,17 +10,23 @@ import com.todoroo.andlib.service.TestDependencyInjector;
import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.alarms.Alarm;
import com.todoroo.astrid.alarms.AlarmDatabase;
+import com.todoroo.astrid.dao.MetadataDao;
+import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.legacy.data.alerts.AlertController;
import com.todoroo.astrid.legacy.data.enums.Importance;
import com.todoroo.astrid.legacy.data.enums.RepeatInterval;
+import com.todoroo.astrid.legacy.data.sync.SyncDataController;
+import com.todoroo.astrid.legacy.data.sync.SyncMapping;
import com.todoroo.astrid.legacy.data.tag.TagController;
import com.todoroo.astrid.legacy.data.tag.TagIdentifier;
import com.todoroo.astrid.legacy.data.task.AbstractTaskModel.RepeatInfo;
import com.todoroo.astrid.legacy.data.task.TaskController;
import com.todoroo.astrid.legacy.data.task.TaskIdentifier;
import com.todoroo.astrid.legacy.data.task.TaskModelForEdit;
+import com.todoroo.astrid.model.Metadata;
import com.todoroo.astrid.model.Task;
+import com.todoroo.astrid.rmilk.data.MilkTask;
import com.todoroo.astrid.service.Astrid2To3UpgradeHelper;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.TagService.Tag;
@@ -43,6 +49,9 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
@Autowired
TaskDao taskDao;
+ @Autowired
+ MetadataDao metadataDao;
+
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -201,7 +210,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
// verify that data exists in our new table
database.openForReading();
- TagService tagService = new TagService();
+ TagService tagService = TagService.getInstance();
Tag[] tags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_ALPHA);
assertEquals(2, tags.length);
assertEquals("salty", tags[0].tag);
@@ -255,7 +264,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
// verify that data exists in our new table
database.openForReading();
- TagService tagService = new TagService();
+ TagService tagService = TagService.getInstance();
Tag[] tags = tagService.getGroupedTags(TagService.GROUPED_TAGS_BY_ALPHA);
assertEquals(1, tags.length);
assertEquals("attached", tags[0].tag);
@@ -291,7 +300,7 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
// assert created
assertEquals(2, alertController.getTaskAlerts(christmas.getTaskIdentifier()).size());
- // upgradeia32-sun-java6-bin
+ // upgrade
upgrade2To3();
// verify that data exists in our new table
@@ -306,9 +315,42 @@ public class Astrid2To3UpgradeTests extends DatabaseTestCase {
cursor.moveToNext();
alarm.readFromCursor(cursor);
assertDatesEqual(x2, alarm.getValue(Alarm.TIME));
+ }
+
+ /**
+ * Test basic upgrading of the sync mapping table
+ */
+ public void testSyncTableUpgrade() {
+ SyncDataController syncController = new SyncDataController(getContext());
+ syncController.open();
+ // create some ish
+ String remoteId = "123|456|789000";
+ SyncMapping mapping = new SyncMapping(new TaskIdentifier(1), 1, remoteId);
+ syncController.saveSyncMapping(mapping);
+ syncController.addToUpdatedList(new TaskIdentifier(2));
+
+ // assert created
+ assertEquals(1, syncController.getSyncMappings(1));
+
+ // upgrade
+ upgrade2To3();
+
+ // verify that data exists in our new table
+ database.openForReading();
+
+ TodorooCursor cursor = metadataDao.query(Query.select(
+ Metadata.PROPERTIES).where(MetadataCriteria.withKey(MilkTask.METADATA_KEY)));
+ assertEquals(1, cursor.getCount());
+ cursor.moveToFirst();
+ Metadata metadata = new Metadata(cursor);
+ assertEquals(123, (long)metadata.getValue(MilkTask.TASK_ID));
+ assertEquals(456, (long)metadata.getValue(MilkTask.TASK_SERIES_ID));
+ assertEquals(789000, (long)metadata.getValue(MilkTask.LIST_ID));
+ cursor.close();
}
+
}