forked from upstream-mirrors/OpenTracks
Upgraded some test cases.
This commit is contained in:
+27
-18
@@ -15,14 +15,20 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingService;
|
|
||||||
|
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.ActivityManager.RunningServiceInfo;
|
import android.app.ActivityManager.RunningServiceInfo;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.test.AndroidTestCase;
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.services.TrackRecordingService;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -31,41 +37,45 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author Youtao Liu
|
* @author Youtao Liu
|
||||||
*/
|
*/
|
||||||
public class BootReceiverTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class BootReceiverTest {
|
||||||
private static final String SERVICE_NAME = "com.google.android.apps.mytracks.services.TrackRecordingService";
|
private static final String SERVICE_NAME = "com.google.android.apps.mytracks.services.TrackRecordingService";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests the behavior when receive notification which is the phone boot.
|
* Tests the behavior when receive notification which is the phone boot.
|
||||||
*/
|
*/
|
||||||
|
@Test
|
||||||
public void testOnReceive_startService() {
|
public void testOnReceive_startService() {
|
||||||
// Make sure no TrackRecordingService
|
// Make sure no TrackRecordingService
|
||||||
Intent stopIntent = new Intent(getContext(), TrackRecordingService.class);
|
Intent stopIntent = new Intent(InstrumentationRegistry.getInstrumentation().getContext(), TrackRecordingService.class);
|
||||||
getContext().stopService(stopIntent);
|
InstrumentationRegistry.getInstrumentation().getContext().stopService(stopIntent);
|
||||||
assertFalse(isServiceExisted(getContext(), SERVICE_NAME));
|
Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME));
|
||||||
|
|
||||||
BootReceiver bootReceiver = new BootReceiver();
|
BootReceiver bootReceiver = new BootReceiver();
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.setAction(Intent.ACTION_BOOT_COMPLETED);
|
intent.setAction(Intent.ACTION_BOOT_COMPLETED);
|
||||||
bootReceiver.onReceive(getContext(), intent);
|
bootReceiver.onReceive(InstrumentationRegistry.getInstrumentation().getContext(), intent);
|
||||||
// Check if the service is started
|
// Check if the service is started
|
||||||
assertTrue(isServiceExisted(getContext(), SERVICE_NAME));
|
Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests the behavior when receive notification which is not the phone boot.
|
* Tests the behavior when receive notification which is not the phone boot.
|
||||||
*/
|
*/
|
||||||
|
@Test
|
||||||
public void testOnReceive_noStartService() {
|
public void testOnReceive_noStartService() {
|
||||||
// Make sure no TrackRecordingService
|
// Make sure no TrackRecordingService
|
||||||
Intent stopIntent = new Intent(getContext(), TrackRecordingService.class);
|
Intent stopIntent = new Intent(InstrumentationRegistry.getInstrumentation().getContext(), TrackRecordingService.class);
|
||||||
getContext().stopService(stopIntent);
|
InstrumentationRegistry.getInstrumentation().getContext().stopService(stopIntent);
|
||||||
assertFalse(isServiceExisted(getContext(), SERVICE_NAME));
|
Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME));
|
||||||
|
|
||||||
BootReceiver bootReceiver = new BootReceiver();
|
BootReceiver bootReceiver = new BootReceiver();
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.setAction(Intent.ACTION_BUG_REPORT);
|
intent.setAction(Intent.ACTION_BUG_REPORT);
|
||||||
bootReceiver.onReceive(getContext(), intent);
|
bootReceiver.onReceive(InstrumentationRegistry.getInstrumentation().getContext(), intent);
|
||||||
|
|
||||||
// Check if the service is not started
|
// Check if the service is not started
|
||||||
assertFalse(isServiceExisted(getContext(), SERVICE_NAME));
|
Assert.assertFalse(isServiceExisted(InstrumentationRegistry.getInstrumentation().getContext(), SERVICE_NAME));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,10 +85,9 @@ public class BootReceiverTest extends AndroidTestCase {
|
|||||||
* @param serviceName the service name to find if existed
|
* @param serviceName the service name to find if existed
|
||||||
*/
|
*/
|
||||||
private boolean isServiceExisted(Context context, String serviceName) {
|
private boolean isServiceExisted(Context context, String serviceName) {
|
||||||
ActivityManager activityManager = (ActivityManager) context
|
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
|
||||||
.getSystemService(Context.ACTIVITY_SERVICE);
|
List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(Integer.MAX_VALUE);
|
||||||
List<ActivityManager.RunningServiceInfo> serviceList = activityManager
|
|
||||||
.getRunningServices(Integer.MAX_VALUE);
|
|
||||||
for (int i = 0; i < serviceList.size(); i++) {
|
for (int i = 0; i < serviceList.size(); i++) {
|
||||||
RunningServiceInfo serviceInfo = serviceList.get(i);
|
RunningServiceInfo serviceInfo = serviceList.get(i);
|
||||||
ComponentName componentName = serviceInfo.service;
|
ComponentName componentName = serviceInfo.service;
|
||||||
|
|||||||
+26
-19
@@ -15,21 +15,28 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.test.AndroidTestCase;
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link ChartValueSeries}.
|
* Tests {@link ChartValueSeries}.
|
||||||
*
|
*
|
||||||
* @author Sandor Dornbush
|
* @author Sandor Dornbush
|
||||||
*/
|
*/
|
||||||
public class ChartValueSeriesTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class ChartValueSeriesTest {
|
||||||
private ChartValueSeries series;
|
private ChartValueSeries series;
|
||||||
|
|
||||||
@Override
|
@Before
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() {
|
||||||
series = new ChartValueSeries(getContext(),
|
series = new ChartValueSeries(
|
||||||
|
InstrumentationRegistry.getInstrumentation().getContext(),
|
||||||
Integer.MIN_VALUE,
|
Integer.MIN_VALUE,
|
||||||
Integer.MAX_VALUE,
|
Integer.MAX_VALUE,
|
||||||
new int[] {100, 1000 },
|
new int[] {100, 1000 },
|
||||||
@@ -40,41 +47,41 @@ public class ChartValueSeriesTest extends AndroidTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testInitialConditions() {
|
public void testInitialConditions() {
|
||||||
assertEquals(1, series.getInterval());
|
Assert.assertEquals(1, series.getInterval());
|
||||||
assertEquals(0, series.getMinMarkerValue());
|
Assert.assertEquals(0, series.getMinMarkerValue());
|
||||||
assertEquals(5, series.getMaxMarkerValue());
|
Assert.assertEquals(5, series.getMaxMarkerValue());
|
||||||
assertTrue(series.isEnabled());
|
Assert.assertTrue(series.isEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testEnabled() {
|
public void testEnabled() {
|
||||||
series.setEnabled(false);
|
series.setEnabled(false);
|
||||||
assertFalse(series.isEnabled());
|
Assert.assertFalse(series.isEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSmallUpdates() {
|
public void testSmallUpdates() {
|
||||||
series.update(0);
|
series.update(0);
|
||||||
series.update(10);
|
series.update(10);
|
||||||
series.updateDimension();
|
series.updateDimension();
|
||||||
assertEquals(100, series.getInterval());
|
Assert.assertEquals(100, series.getInterval());
|
||||||
assertEquals(0, series.getMinMarkerValue());
|
Assert.assertEquals(0, series.getMinMarkerValue());
|
||||||
assertEquals(500, series.getMaxMarkerValue());
|
Assert.assertEquals(500, series.getMaxMarkerValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testBigUpdates() {
|
public void testBigUpdates() {
|
||||||
series.update(0);
|
series.update(0);
|
||||||
series.update(901);
|
series.update(901);
|
||||||
series.updateDimension();
|
series.updateDimension();
|
||||||
assertEquals(1000, series.getInterval());
|
Assert.assertEquals(1000, series.getInterval());
|
||||||
assertEquals(0, series.getMinMarkerValue());
|
Assert.assertEquals(0, series.getMinMarkerValue());
|
||||||
assertEquals(5000, series.getMaxMarkerValue());
|
Assert.assertEquals(5000, series.getMaxMarkerValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNotZeroBasedUpdates() {
|
public void testNotZeroBasedUpdates() {
|
||||||
series.update(220);
|
series.update(220);
|
||||||
series.update(250);
|
series.update(250);
|
||||||
series.updateDimension();
|
series.updateDimension();
|
||||||
assertEquals(100, series.getInterval());
|
Assert.assertEquals(100, series.getInterval());
|
||||||
assertEquals(200, series.getMinMarkerValue());
|
Assert.assertEquals(200, series.getMinMarkerValue());
|
||||||
assertEquals(700, series.getMaxMarkerValue());
|
Assert.assertEquals(700, series.getMaxMarkerValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-16
@@ -16,25 +16,31 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.content;
|
package com.google.android.apps.mytracks.content;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.test.AndroidTestCase;
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link DescriptionGeneratorImpl}.
|
* Tests for {@link DescriptionGeneratorImpl}.
|
||||||
*
|
*
|
||||||
* @author Jimmy Shih
|
* @author Jimmy Shih
|
||||||
*/
|
*/
|
||||||
public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class DescriptionGeneratorImplTest {
|
||||||
|
|
||||||
private static final long START_TIME = 1288721514000L;
|
private static final long START_TIME = 1288721514000L;
|
||||||
private DescriptionGeneratorImpl descriptionGenerator;
|
private DescriptionGeneratorImpl descriptionGenerator;
|
||||||
|
|
||||||
@Override
|
@Before
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
descriptionGenerator = new DescriptionGeneratorImpl(getContext());
|
descriptionGenerator = new DescriptionGeneratorImpl(InstrumentationRegistry.getInstrumentation().getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,8 +81,8 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
+ "Elevation gain: 6000 m (19685 ft)<br>"
|
+ "Elevation gain: 6000 m (19685 ft)<br>"
|
||||||
+ "Max grade: 42 %<br>"
|
+ "Max grade: 42 %<br>"
|
||||||
+ "Min grade: 11 %<br>"
|
+ "Min grade: 11 %<br>"
|
||||||
+ "Recorded: " + StringUtils.formatDateTime(getContext(), START_TIME) + "<br>";
|
+ "Recorded: " + StringUtils.formatDateTime(InstrumentationRegistry.getInstrumentation().getContext(), START_TIME) + "<br>";
|
||||||
assertEquals(expected, descriptionGenerator.generateTrackDescription(track, null, null, true));
|
Assert.assertEquals(expected, descriptionGenerator.generateTrackDescription(track, null, null, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -110,8 +116,8 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
+ "Elevation gain: 6000 m (19685 ft)\n"
|
+ "Elevation gain: 6000 m (19685 ft)\n"
|
||||||
+ "Max grade: 42 %\n"
|
+ "Max grade: 42 %\n"
|
||||||
+ "Min grade: 11 %\n"
|
+ "Min grade: 11 %\n"
|
||||||
+ "Recorded: " + StringUtils.formatDateTime(getContext(), START_TIME) + "\n";
|
+ "Recorded: " + StringUtils.formatDateTime(InstrumentationRegistry.getInstrumentation().getContext(), START_TIME) + "\n";
|
||||||
assertEquals(
|
Assert.assertEquals(
|
||||||
expected, descriptionGenerator.generateWaypointDescription(waypoint.getTripStatistics()));
|
expected, descriptionGenerator.generateWaypointDescription(waypoint.getTripStatistics()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +128,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWriteDistance() {
|
public void testWriteDistance() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writeDistance(1100, builder, R.string.description_total_distance, "<br>");
|
descriptionGenerator.writeDistance(1100, builder, R.string.description_total_distance, "<br>");
|
||||||
assertEquals("Total distance: 1.10 km (0.7 mi)<br>", builder.toString());
|
Assert.assertEquals("Total distance: 1.10 km (0.7 mi)<br>", builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -132,7 +138,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWriteTime() {
|
public void testWriteTime() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writeTime(1000, builder, R.string.description_total_time, "<br>");
|
descriptionGenerator.writeTime(1000, builder, R.string.description_total_time, "<br>");
|
||||||
assertEquals("Total time: 00:01<br>", builder.toString());
|
Assert.assertEquals("Total time: 00:01<br>", builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -142,7 +148,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWriteSpeed() {
|
public void testWriteSpeed() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writeSpeed(1.1, builder, R.string.description_average_speed, "\n");
|
descriptionGenerator.writeSpeed(1.1, builder, R.string.description_average_speed, "\n");
|
||||||
assertEquals("Average speed: 3.96 km/h (2.5 mi/h)\n", builder.toString());
|
Assert.assertEquals("Average speed: 3.96 km/h (2.5 mi/h)\n", builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -152,7 +158,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWriteElevation() {
|
public void testWriteElevation() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writeElevation(4.2, builder, R.string.description_min_elevation, "<br>");
|
descriptionGenerator.writeElevation(4.2, builder, R.string.description_min_elevation, "<br>");
|
||||||
assertEquals("Min elevation: 4 m (14 ft)<br>", builder.toString());
|
Assert.assertEquals("Min elevation: 4 m (14 ft)<br>", builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -162,7 +168,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWritePace() {
|
public void testWritePace() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writePace(1.1, builder, R.string.description_average_pace_in_minute, "\n");
|
descriptionGenerator.writePace(1.1, builder, R.string.description_average_pace_in_minute, "\n");
|
||||||
assertEquals("Average pace: 15:09 min/km (24:23 min/mi)\n", builder.toString());
|
Assert.assertEquals("Average pace: 15:09 min/km (24:23 min/mi)\n", builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -172,7 +178,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWriteGrade() {
|
public void testWriteGrade() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writeGrade(.042, builder, R.string.description_max_grade, "<br>");
|
descriptionGenerator.writeGrade(.042, builder, R.string.description_max_grade, "<br>");
|
||||||
assertEquals("Max grade: 4 %<br>", builder.toString());
|
Assert.assertEquals("Max grade: 4 %<br>", builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -182,7 +188,7 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
public void testWriteGrade_nan() {
|
public void testWriteGrade_nan() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writeGrade(Double.NaN, builder, R.string.description_max_grade, "<br>");
|
descriptionGenerator.writeGrade(Double.NaN, builder, R.string.description_max_grade, "<br>");
|
||||||
assertEquals("Max grade: 0 %<br>", builder.toString());
|
Assert.assertEquals("Max grade: 0 %<br>", builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -193,6 +199,6 @@ public class DescriptionGeneratorImplTest extends AndroidTestCase {
|
|||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
descriptionGenerator.writeGrade(
|
descriptionGenerator.writeGrade(
|
||||||
Double.POSITIVE_INFINITY, builder, R.string.description_max_grade, "<br>");
|
Double.POSITIVE_INFINITY, builder, R.string.description_max_grade, "<br>");
|
||||||
assertEquals("Max grade: 0 %<br>", builder.toString());
|
Assert.assertEquals("Max grade: 0 %<br>", builder.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+23
-143
@@ -16,29 +16,35 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.content;
|
package com.google.android.apps.mytracks.content;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProvider.DatabaseHelper;
|
|
||||||
|
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.test.AndroidTestCase;
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.content.MyTracksProvider.DatabaseHelper;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link MyTracksProvider}.
|
* Tests {@link MyTracksProvider}.
|
||||||
*
|
*
|
||||||
* @author Youtao Liu
|
* @author Youtao Liu
|
||||||
*/
|
*/
|
||||||
public class MyTracksProviderTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class MyTracksProviderTest {
|
||||||
|
|
||||||
private static final String DATABASE_NAME = "mytrackstest.db";
|
private static final String DATABASE_NAME = "mytrackstest.db";
|
||||||
|
|
||||||
private SQLiteDatabase db;
|
private SQLiteDatabase db;
|
||||||
private MyTracksProvider myTracksProvider;
|
private MyTracksProvider myTracksProvider;
|
||||||
|
|
||||||
@Override
|
@Before
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() {
|
||||||
super.setUp();
|
InstrumentationRegistry.getInstrumentation().getContext().deleteDatabase(DATABASE_NAME);
|
||||||
getContext().deleteDatabase(DATABASE_NAME);
|
db = (new DatabaseHelper(InstrumentationRegistry.getInstrumentation().getContext(), DATABASE_NAME)).getWritableDatabase();
|
||||||
db = (new DatabaseHelper(getContext(), DATABASE_NAME)).getWritableDatabase();
|
|
||||||
myTracksProvider = new MyTracksProvider();
|
myTracksProvider = new MyTracksProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,152 +52,26 @@ public class MyTracksProviderTest extends AndroidTestCase {
|
|||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onCreate(SQLiteDatabase)}.
|
* Tests {@link MyTracksProvider.DatabaseHelper#onCreate(SQLiteDatabase)}.
|
||||||
*/
|
*/
|
||||||
public void testDatabaseHelper_OnCreate() {
|
public void testDatabaseHelper_OnCreate() {
|
||||||
assertTrue(hasTable(TracksColumns.TABLE_NAME));
|
Assert.assertTrue(hasTable(TracksColumns.TABLE_NAME));
|
||||||
assertTrue(hasTable(TrackPointsColumns.TABLE_NAME));
|
Assert.assertTrue(hasTable(TrackPointsColumns.TABLE_NAME));
|
||||||
assertTrue(hasTable(WaypointsColumns.TABLE_NAME));
|
Assert.assertTrue(hasTable(WaypointsColumns.TABLE_NAME));
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
|
|
||||||
* int)} when version is less than 17.
|
|
||||||
*/
|
|
||||||
public void testDatabaseHelper_onUpgrade_Version16() {
|
|
||||||
dropTable(TracksColumns.TABLE_NAME);
|
|
||||||
dropTable(TrackPointsColumns.TABLE_NAME);
|
|
||||||
dropTable(WaypointsColumns.TABLE_NAME);
|
|
||||||
|
|
||||||
int oldVersion = 16;
|
|
||||||
DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
|
|
||||||
databaseHelper.onUpgrade(db, oldVersion, MyTracksProvider.DATABASE_VERSION);
|
|
||||||
|
|
||||||
assertTrue(hasTable(TracksColumns.TABLE_NAME));
|
|
||||||
assertTrue(hasTable(TrackPointsColumns.TABLE_NAME));
|
|
||||||
assertTrue(hasTable(WaypointsColumns.TABLE_NAME));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
|
|
||||||
* int)} when version is 17.
|
|
||||||
*/
|
|
||||||
public void testDatabaseHelper_onUpgrade_Version17() {
|
|
||||||
setupUpgrade(17);
|
|
||||||
|
|
||||||
assertTrue(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
|
|
||||||
assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
|
|
||||||
* int)} when version is 18.
|
|
||||||
*/
|
|
||||||
public void testDatabaseHelper_onUpgrade_Version18() {
|
|
||||||
setupUpgrade(18);
|
|
||||||
|
|
||||||
assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
|
|
||||||
assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
|
|
||||||
* int)} when version is 19.
|
|
||||||
*/
|
|
||||||
public void testDatabaseHelper_onUpgrade_Version19() {
|
|
||||||
setupUpgrade(19);
|
|
||||||
|
|
||||||
assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
|
|
||||||
assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
|
|
||||||
* int)} when version is 20.
|
|
||||||
*/
|
|
||||||
public void testDatabaseHelper_onUpgrade_Version20() {
|
|
||||||
setupUpgrade(20);
|
|
||||||
|
|
||||||
assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
|
|
||||||
assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
|
|
||||||
* int)} when version is 21.
|
|
||||||
*/
|
|
||||||
public void testDatabaseHelper_onUpgrade_Version21() {
|
|
||||||
setupUpgrade(21);
|
|
||||||
|
|
||||||
assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
|
|
||||||
assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
|
|
||||||
assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
|
|
||||||
* int)} when version is 22.
|
|
||||||
*/
|
|
||||||
public void testDatabaseHelper_onUpgrade_Version22() {
|
|
||||||
setupUpgrade(22);
|
|
||||||
|
|
||||||
assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
|
|
||||||
assertFalse(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
|
|
||||||
assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link MyTracksProvider#onCreate(android.content.Context)}.
|
* Tests {@link MyTracksProvider#onCreate(android.content.Context)}.
|
||||||
*/
|
*/
|
||||||
public void testOnCreate() {
|
public void testOnCreate() {
|
||||||
assertTrue(myTracksProvider.onCreate(getContext()));
|
Assert.assertTrue(myTracksProvider.onCreate(InstrumentationRegistry.getInstrumentation().getContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link MyTracksProvider#getType(Uri)}.
|
* Tests {@link MyTracksProvider#getType(Uri)}.
|
||||||
*/
|
*/
|
||||||
public void testGetType() {
|
public void testGetType() {
|
||||||
assertEquals(TracksColumns.CONTENT_TYPE, myTracksProvider.getType(TracksColumns.CONTENT_URI));
|
Assert.assertEquals(TracksColumns.CONTENT_TYPE, myTracksProvider.getType(TracksColumns.CONTENT_URI));
|
||||||
assertEquals(
|
Assert.assertEquals(
|
||||||
TrackPointsColumns.CONTENT_TYPE, myTracksProvider.getType(TrackPointsColumns.CONTENT_URI));
|
TrackPointsColumns.CONTENT_TYPE, myTracksProvider.getType(TrackPointsColumns.CONTENT_URI));
|
||||||
assertEquals(
|
Assert.assertEquals(
|
||||||
WaypointsColumns.CONTENT_TYPE, myTracksProvider.getType(WaypointsColumns.CONTENT_URI));
|
WaypointsColumns.CONTENT_TYPE, myTracksProvider.getType(WaypointsColumns.CONTENT_URI));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -257,7 +137,7 @@ public class MyTracksProviderTest extends AndroidTestCase {
|
|||||||
createTable(TrackPointsColumns.TABLE_NAME);
|
createTable(TrackPointsColumns.TABLE_NAME);
|
||||||
createTable(WaypointsColumns.TABLE_NAME);
|
createTable(WaypointsColumns.TABLE_NAME);
|
||||||
|
|
||||||
DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
|
DatabaseHelper databaseHelper = new DatabaseHelper(InstrumentationRegistry.getInstrumentation().getContext());
|
||||||
databaseHelper.onUpgrade(db, oldVersion, MyTracksProvider.DATABASE_VERSION);
|
databaseHelper.onUpgrade(db, oldVersion, MyTracksProvider.DATABASE_VERSION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+84
-80
@@ -15,6 +15,16 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.apps.mytracks.content;
|
package com.google.android.apps.mytracks.content;
|
||||||
|
|
||||||
|
import android.content.ContentResolver;
|
||||||
|
import android.content.ContentValues;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.location.Location;
|
||||||
|
import android.test.RenamingDelegatingContext;
|
||||||
|
import android.test.mock.MockContentResolver;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils.LocationFactory;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils.LocationFactory;
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils.LocationIterator;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils.LocationIterator;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
@@ -23,14 +33,9 @@ import com.google.android.apps.mytracks.stats.TripStatistics;
|
|||||||
import com.google.android.testing.mocking.AndroidMock;
|
import com.google.android.testing.mocking.AndroidMock;
|
||||||
import com.google.android.testing.mocking.UsesMocks;
|
import com.google.android.testing.mocking.UsesMocks;
|
||||||
|
|
||||||
import android.content.ContentResolver;
|
import org.junit.Assert;
|
||||||
import android.content.ContentValues;
|
import org.junit.Before;
|
||||||
import android.content.Context;
|
import org.junit.runner.RunWith;
|
||||||
import android.database.Cursor;
|
|
||||||
import android.location.Location;
|
|
||||||
import android.test.AndroidTestCase;
|
|
||||||
import android.test.RenamingDelegatingContext;
|
|
||||||
import android.test.mock.MockContentResolver;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -43,7 +48,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
* @author Bartlomiej Niechwiej
|
* @author Bartlomiej Niechwiej
|
||||||
* @author Youtao Liu
|
* @author Youtao Liu
|
||||||
*/
|
*/
|
||||||
public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class MyTracksProviderUtilsImplTest {
|
||||||
private Context context;
|
private Context context;
|
||||||
private MyTracksProviderUtils providerUtils;
|
private MyTracksProviderUtils providerUtils;
|
||||||
|
|
||||||
@@ -55,10 +61,8 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
private double INITIAL_LONGITUDE = -57.0;
|
private double INITIAL_LONGITUDE = -57.0;
|
||||||
private double ALTITUDE_INTERVAL = 2.5;
|
private double ALTITUDE_INTERVAL = 2.5;
|
||||||
|
|
||||||
@Override
|
@Before
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() {
|
||||||
super.setUp();
|
|
||||||
|
|
||||||
MockContentResolver mockContentResolver = new MockContentResolver();
|
MockContentResolver mockContentResolver = new MockContentResolver();
|
||||||
RenamingDelegatingContext targetContext = new RenamingDelegatingContext(
|
RenamingDelegatingContext targetContext = new RenamingDelegatingContext(
|
||||||
getContext(), getContext(), "test.");
|
getContext(), getContext(), "test.");
|
||||||
@@ -87,7 +91,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Make sure we were called exactly as many times as we had track points.
|
// Make sure we were called exactly as many times as we had track points.
|
||||||
assertEquals(15, counter.get());
|
Assert.assertEquals(15, counter.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testLocationIterator_nullFactory() {
|
public void testLocationIterator_nullFactory() {
|
||||||
@@ -133,13 +137,13 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
try {
|
try {
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
Location loc = it.next();
|
Location loc = it.next();
|
||||||
assertNotNull(loc);
|
Assert.assertNotNull(loc);
|
||||||
locations.add(loc);
|
locations.add(loc);
|
||||||
// Make sure the IDs are returned in the right order.
|
// Make sure the IDs are returned in the right order.
|
||||||
assertEquals(descending ? lastPointId - locations.size() + 1
|
Assert.assertEquals(descending ? lastPointId - locations.size() + 1
|
||||||
: lastPointId - numPoints + locations.size(), it.getLocationId());
|
: lastPointId - numPoints + locations.size(), it.getLocationId());
|
||||||
}
|
}
|
||||||
assertEquals(numPoints, locations.size());
|
Assert.assertEquals(numPoints, locations.size());
|
||||||
} finally {
|
} finally {
|
||||||
it.close();
|
it.close();
|
||||||
}
|
}
|
||||||
@@ -153,7 +157,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
track.setNumberOfPoints(numPoints);
|
track.setNumberOfPoints(numPoints);
|
||||||
providerUtils.insertTrack(track);
|
providerUtils.insertTrack(track);
|
||||||
track = providerUtils.getTrack(id);
|
track = providerUtils.getTrack(id);
|
||||||
assertNotNull(track);
|
Assert.assertNotNull(track);
|
||||||
|
|
||||||
Location[] locations = new Location[numPoints];
|
Location[] locations = new Location[numPoints];
|
||||||
for (int i = 0; i < numPoints; ++i) {
|
for (int i = 0; i < numPoints; ++i) {
|
||||||
@@ -181,9 +185,9 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
it.close();
|
it.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
assertTrue(numPoints == 0 || lastPointId > 0);
|
Assert.assertTrue(numPoints == 0 || lastPointId > 0);
|
||||||
assertEquals(numPoints, track.getNumberOfPoints());
|
Assert.assertEquals(numPoints, track.getNumberOfPoints());
|
||||||
assertEquals(numPoints, counter);
|
Assert.assertEquals(numPoints, counter);
|
||||||
|
|
||||||
return lastPointId;
|
return lastPointId;
|
||||||
}
|
}
|
||||||
@@ -214,8 +218,8 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
AndroidMock.expect(cursorMock.getString(columnIndex++)).andReturn(name);
|
AndroidMock.expect(cursorMock.getString(columnIndex++)).andReturn(name);
|
||||||
AndroidMock.replay(cursorMock);
|
AndroidMock.replay(cursorMock);
|
||||||
Track track = providerUtils.createTrack(cursorMock);
|
Track track = providerUtils.createTrack(cursorMock);
|
||||||
assertEquals(trackId, track.getId());
|
Assert.assertEquals(trackId, track.getId());
|
||||||
assertEquals(name, track.getName());
|
Assert.assertEquals(name, track.getName());
|
||||||
AndroidMock.verify(cursorMock);
|
AndroidMock.verify(cursorMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,25 +236,25 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
ContentResolver contentResolver = context.getContentResolver();
|
ContentResolver contentResolver = context.getContentResolver();
|
||||||
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
||||||
TracksColumns._ID);
|
TracksColumns._ID);
|
||||||
assertEquals(1, tracksCursor.getCount());
|
Assert.assertEquals(1, tracksCursor.getCount());
|
||||||
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
||||||
null, TrackPointsColumns._ID);
|
null, TrackPointsColumns._ID);
|
||||||
assertEquals(10, tracksPointsCursor.getCount());
|
Assert.assertEquals(10, tracksPointsCursor.getCount());
|
||||||
Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
||||||
null, WaypointsColumns._ID);
|
null, WaypointsColumns._ID);
|
||||||
assertEquals(1, waypointCursor.getCount());
|
Assert.assertEquals(1, waypointCursor.getCount());
|
||||||
// Delete all.
|
// Delete all.
|
||||||
providerUtils.deleteAllTracks(context);
|
providerUtils.deleteAllTracks(context);
|
||||||
// Check whether all have been deleted.
|
// Check whether all have been deleted.
|
||||||
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
||||||
TracksColumns._ID);
|
TracksColumns._ID);
|
||||||
assertEquals(0, tracksCursor.getCount());
|
Assert.assertEquals(0, tracksCursor.getCount());
|
||||||
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
||||||
null, TrackPointsColumns._ID);
|
null, TrackPointsColumns._ID);
|
||||||
assertEquals(0, tracksPointsCursor.getCount());
|
Assert.assertEquals(0, tracksPointsCursor.getCount());
|
||||||
waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
||||||
null, WaypointsColumns._ID);
|
null, WaypointsColumns._ID);
|
||||||
assertEquals(0, waypointCursor.getCount());
|
Assert.assertEquals(0, waypointCursor.getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -272,25 +276,25 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
ContentResolver contentResolver = context.getContentResolver();
|
ContentResolver contentResolver = context.getContentResolver();
|
||||||
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
||||||
TracksColumns._ID);
|
TracksColumns._ID);
|
||||||
assertEquals(3, tracksCursor.getCount());
|
Assert.assertEquals(3, tracksCursor.getCount());
|
||||||
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
||||||
null, TrackPointsColumns._ID);
|
null, TrackPointsColumns._ID);
|
||||||
assertEquals(20, tracksPointsCursor.getCount());
|
Assert.assertEquals(20, tracksPointsCursor.getCount());
|
||||||
Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
||||||
null, WaypointsColumns._ID);
|
null, WaypointsColumns._ID);
|
||||||
assertEquals(1, waypointCursor.getCount());
|
Assert.assertEquals(1, waypointCursor.getCount());
|
||||||
// Delete one track.
|
// Delete one track.
|
||||||
providerUtils.deleteTrack(context, trackId);
|
providerUtils.deleteTrack(context, trackId);
|
||||||
// Check whether all data of a track has been deleted.
|
// Check whether all data of a track has been deleted.
|
||||||
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
|
||||||
TracksColumns._ID);
|
TracksColumns._ID);
|
||||||
assertEquals(2, tracksCursor.getCount());
|
Assert.assertEquals(2, tracksCursor.getCount());
|
||||||
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
|
||||||
null, TrackPointsColumns._ID);
|
null, TrackPointsColumns._ID);
|
||||||
assertEquals(20, tracksPointsCursor.getCount());
|
Assert.assertEquals(20, tracksPointsCursor.getCount());
|
||||||
waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
|
||||||
null, WaypointsColumns._ID);
|
null, WaypointsColumns._ID);
|
||||||
assertEquals(0, waypointCursor.getCount());
|
Assert.assertEquals(0, waypointCursor.getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -301,8 +305,8 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
long trackId = System.currentTimeMillis();
|
long trackId = System.currentTimeMillis();
|
||||||
providerUtils.insertTrack(getTrack(trackId, 0));
|
providerUtils.insertTrack(getTrack(trackId, 0));
|
||||||
List<Track> allTracks = providerUtils.getAllTracks();
|
List<Track> allTracks = providerUtils.getAllTracks();
|
||||||
assertEquals(initialTrackNumber + 1, allTracks.size());
|
Assert.assertEquals(initialTrackNumber + 1, allTracks.size());
|
||||||
assertEquals(trackId, allTracks.get(allTracks.size() - 1).getId());
|
Assert.assertEquals(trackId, allTracks.get(allTracks.size() - 1).getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -311,7 +315,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
public void testGetLastTrack() {
|
public void testGetLastTrack() {
|
||||||
long trackId = System.currentTimeMillis();
|
long trackId = System.currentTimeMillis();
|
||||||
providerUtils.insertTrack(getTrack(trackId, 0));
|
providerUtils.insertTrack(getTrack(trackId, 0));
|
||||||
assertEquals(trackId, providerUtils.getLastTrack().getId());
|
Assert.assertEquals(trackId, providerUtils.getLastTrack().getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -320,7 +324,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
public void testGetTrack() {
|
public void testGetTrack() {
|
||||||
long trackId = System.currentTimeMillis();
|
long trackId = System.currentTimeMillis();
|
||||||
providerUtils.insertTrack(getTrack(trackId, 0));
|
providerUtils.insertTrack(getTrack(trackId, 0));
|
||||||
assertNotNull(providerUtils.getTrack(trackId));
|
Assert.assertNotNull(providerUtils.getTrack(trackId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -333,10 +337,10 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
String nameNew = "name2";
|
String nameNew = "name2";
|
||||||
track.setName(nameOld);
|
track.setName(nameOld);
|
||||||
providerUtils.insertTrack(track);
|
providerUtils.insertTrack(track);
|
||||||
assertEquals(nameOld, providerUtils.getTrack(trackId).getName());
|
Assert.assertEquals(nameOld, providerUtils.getTrack(trackId).getName());
|
||||||
track.setName(nameNew);
|
track.setName(nameNew);
|
||||||
providerUtils.updateTrack(track);
|
providerUtils.updateTrack(track);
|
||||||
assertEquals(nameNew, providerUtils.getTrack(trackId).getName());
|
Assert.assertEquals(nameNew, providerUtils.getTrack(trackId).getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -383,11 +387,11 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
long waypointId = System.currentTimeMillis();
|
long waypointId = System.currentTimeMillis();
|
||||||
waypoint.setId(waypointId);
|
waypoint.setId(waypointId);
|
||||||
ContentValues contentValues = myTracksProviderUtilsImpl.createContentValues(waypoint);
|
ContentValues contentValues = myTracksProviderUtilsImpl.createContentValues(waypoint);
|
||||||
assertEquals(waypointId, contentValues.get(WaypointsColumns._ID));
|
Assert.assertEquals(waypointId, contentValues.get(WaypointsColumns._ID));
|
||||||
assertEquals(22 * 1000000, contentValues.get(WaypointsColumns.LONGITUDE));
|
Assert.assertEquals(22 * 1000000, contentValues.get(WaypointsColumns.LONGITUDE));
|
||||||
assertEquals(TEST_DESC, contentValues.get(WaypointsColumns.DESCRIPTION));
|
Assert.assertEquals(TEST_DESC, contentValues.get(WaypointsColumns.DESCRIPTION));
|
||||||
assertEquals(startTime, contentValues.get(WaypointsColumns.STARTTIME));
|
Assert.assertEquals(startTime, contentValues.get(WaypointsColumns.STARTTIME));
|
||||||
assertEquals(minGrade, contentValues.get(WaypointsColumns.MINGRADE));
|
Assert.assertEquals(minGrade, contentValues.get(WaypointsColumns.MINGRADE));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -423,9 +427,9 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
AndroidMock.expect(cursorMock.getLong(columnIndex++)).andReturn(trackId);
|
AndroidMock.expect(cursorMock.getLong(columnIndex++)).andReturn(trackId);
|
||||||
AndroidMock.replay(cursorMock);
|
AndroidMock.replay(cursorMock);
|
||||||
Waypoint waypoint = providerUtils.createWaypoint(cursorMock);
|
Waypoint waypoint = providerUtils.createWaypoint(cursorMock);
|
||||||
assertEquals(id, waypoint.getId());
|
Assert.assertEquals(id, waypoint.getId());
|
||||||
assertEquals(name, waypoint.getName());
|
Assert.assertEquals(name, waypoint.getName());
|
||||||
assertEquals(trackId, waypoint.getTrackId());
|
Assert.assertEquals(trackId, waypoint.getTrackId());
|
||||||
AndroidMock.verify(cursorMock);
|
AndroidMock.verify(cursorMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -462,7 +466,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
};
|
};
|
||||||
providerUtils.deleteWaypoint(context, 1, descriptionGenerator);
|
providerUtils.deleteWaypoint(context, 1, descriptionGenerator);
|
||||||
|
|
||||||
assertNull(providerUtils.getWaypoint(1));
|
Assert.assertNull(providerUtils.getWaypoint(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -517,8 +521,8 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
};
|
};
|
||||||
providerUtils.deleteWaypoint(context, 1, descriptionGenerator);
|
providerUtils.deleteWaypoint(context, 1, descriptionGenerator);
|
||||||
|
|
||||||
assertNull(providerUtils.getWaypoint(1));
|
Assert.assertNull(providerUtils.getWaypoint(1));
|
||||||
assertEquals(MyTracksProviderUtilsImplTest.MOCK_DESC, providerUtils.getWaypoint(2)
|
Assert.assertEquals(MyTracksProviderUtilsImplTest.MOCK_DESC, providerUtils.getWaypoint(2)
|
||||||
.getDescription());
|
.getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -537,8 +541,8 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
providerUtils.insertWaypoint(waypoint1);
|
providerUtils.insertWaypoint(waypoint1);
|
||||||
providerUtils.insertWaypoint(waypoint2);
|
providerUtils.insertWaypoint(waypoint2);
|
||||||
|
|
||||||
assertEquals(-1L, providerUtils.getFirstWaypointId(-1));
|
Assert.assertEquals(-1L, providerUtils.getFirstWaypointId(-1));
|
||||||
assertEquals(1L, providerUtils.getFirstWaypointId(trackId));
|
Assert.assertEquals(1L, providerUtils.getFirstWaypointId(trackId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -566,8 +570,8 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
providerUtils.insertWaypoint(waypoint3);
|
providerUtils.insertWaypoint(waypoint3);
|
||||||
providerUtils.insertWaypoint(waypoint4);
|
providerUtils.insertWaypoint(waypoint4);
|
||||||
|
|
||||||
assertEquals(2, providerUtils.getNextWaypointNumber(trackId, WaypointType.STATISTICS));
|
Assert.assertEquals(2, providerUtils.getNextWaypointNumber(trackId, WaypointType.STATISTICS));
|
||||||
assertEquals(3, providerUtils.getNextWaypointNumber(trackId, WaypointType.WAYPOINT));
|
Assert.assertEquals(3, providerUtils.getNextWaypointNumber(trackId, WaypointType.WAYPOINT));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -595,7 +599,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
providerUtils.insertWaypoint(waypoint2);
|
providerUtils.insertWaypoint(waypoint2);
|
||||||
providerUtils.insertWaypoint(waypoint3);
|
providerUtils.insertWaypoint(waypoint3);
|
||||||
|
|
||||||
assertEquals("Desc2", providerUtils.getLastWaypoint(trackId, WaypointType.STATISTICS).getDescription());
|
Assert.assertEquals("Desc2", providerUtils.getLastWaypoint(trackId, WaypointType.STATISTICS).getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -612,7 +616,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
waypoint.setTrackId(trackId);
|
waypoint.setTrackId(trackId);
|
||||||
providerUtils.insertWaypoint(waypoint);
|
providerUtils.insertWaypoint(waypoint);
|
||||||
|
|
||||||
assertEquals(TEST_DESC, providerUtils.getWaypoint(1).getDescription());
|
Assert.assertEquals(TEST_DESC, providerUtils.getWaypoint(1).getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -632,7 +636,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
waypoint.setDescription(TEST_DESC_NEW);
|
waypoint.setDescription(TEST_DESC_NEW);
|
||||||
providerUtils.updateWaypoint(waypoint);
|
providerUtils.updateWaypoint(waypoint);
|
||||||
|
|
||||||
assertEquals(TEST_DESC_NEW, providerUtils.getWaypoint(1).getDescription());
|
Assert.assertEquals(TEST_DESC_NEW, providerUtils.getWaypoint(1).getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -646,9 +650,9 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
insertTrackWithLocations(track);
|
insertTrackWithLocations(track);
|
||||||
|
|
||||||
providerUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), -1, trackId);
|
providerUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), -1, trackId);
|
||||||
assertEquals(20, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
|
Assert.assertEquals(20, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
|
||||||
providerUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), 8, trackId);
|
providerUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), 8, trackId);
|
||||||
assertEquals(28, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
|
Assert.assertEquals(28, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -711,10 +715,10 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
|
|
||||||
AndroidMock.replay(cursorMock);
|
AndroidMock.replay(cursorMock);
|
||||||
Location location = providerUtils.createTrackPoint(cursorMock);
|
Location location = providerUtils.createTrackPoint(cursorMock);
|
||||||
assertEquals((double) longitude, location.getLongitude());
|
Assert.assertEquals((double) longitude, location.getLongitude());
|
||||||
assertEquals((double) latitude, location.getLatitude());
|
Assert.assertEquals((double) latitude, location.getLatitude());
|
||||||
assertEquals(time, location.getTime());
|
Assert.assertEquals(time, location.getTime());
|
||||||
assertEquals(speed, location.getSpeed());
|
Assert.assertEquals(speed, location.getSpeed());
|
||||||
AndroidMock.verify(cursorMock);
|
AndroidMock.verify(cursorMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -729,7 +733,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
insertTrackWithLocations(track);
|
insertTrackWithLocations(track);
|
||||||
|
|
||||||
providerUtils.insertTrackPoint(createLocation(22), trackId);
|
providerUtils.insertTrackPoint(createLocation(22), trackId);
|
||||||
assertEquals(11, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
|
Assert.assertEquals(11, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -741,7 +745,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
Track track = getTrack(trackId, 10);
|
Track track = getTrack(trackId, 10);
|
||||||
insertTrackWithLocations(track);
|
insertTrackWithLocations(track);
|
||||||
|
|
||||||
assertEquals(1, providerUtils.getFirstTrackPointId(trackId));
|
Assert.assertEquals(1, providerUtils.getFirstTrackPointId(trackId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -753,7 +757,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
Track track = getTrack(trackId, 10);
|
Track track = getTrack(trackId, 10);
|
||||||
insertTrackWithLocations(track);
|
insertTrackWithLocations(track);
|
||||||
|
|
||||||
assertEquals(10, providerUtils.getLastTrackPointId(trackId));
|
Assert.assertEquals(10, providerUtils.getLastTrackPointId(trackId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -781,7 +785,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
insertTrackWithLocations(track);
|
insertTrackWithLocations(track);
|
||||||
|
|
||||||
Cursor cursor = providerUtils.getTrackPointCursor(trackId, 2L, 5, true);
|
Cursor cursor = providerUtils.getTrackPointCursor(trackId, 2L, 5, true);
|
||||||
assertEquals(2, cursor.getCount());
|
Assert.assertEquals(2, cursor.getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -796,7 +800,7 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
insertTrackWithLocations(track);
|
insertTrackWithLocations(track);
|
||||||
|
|
||||||
Cursor cursor = providerUtils.getTrackPointCursor(trackId, 2L, 5, false);
|
Cursor cursor = providerUtils.getTrackPointCursor(trackId, 2L, 5, false);
|
||||||
assertEquals(5, cursor.getCount());
|
Assert.assertEquals(5, cursor.getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -815,12 +819,12 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
LocationIterator locationIterator = providerUtils.getTrackPointLocationIterator(trackId,
|
LocationIterator locationIterator = providerUtils.getTrackPointLocationIterator(trackId,
|
||||||
startTrackPointId, true, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
|
startTrackPointId, true, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
|
||||||
for (int i = 1; i >= 0; i--) {
|
for (int i = 1; i >= 0; i--) {
|
||||||
assertTrue(locationIterator.hasNext());
|
Assert.assertTrue(locationIterator.hasNext());
|
||||||
Location location = locationIterator.next();
|
Location location = locationIterator.next();
|
||||||
assertEquals(2 + (i - 1), locationIterator.getLocationId());
|
Assert.assertEquals(2 + (i - 1), locationIterator.getLocationId());
|
||||||
checkLocation(i, location);
|
checkLocation(i, location);
|
||||||
}
|
}
|
||||||
assertFalse(locationIterator.hasNext());
|
Assert.assertFalse(locationIterator.hasNext());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -840,12 +844,12 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
startTrackPointId, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
|
startTrackPointId, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
|
||||||
|
|
||||||
for (int i = 1; i < 10; i++) {
|
for (int i = 1; i < 10; i++) {
|
||||||
assertTrue(locationIterator.hasNext());
|
Assert.assertTrue(locationIterator.hasNext());
|
||||||
Location location = locationIterator.next();
|
Location location = locationIterator.next();
|
||||||
assertEquals(2 + (i - 1), locationIterator.getLocationId());
|
Assert.assertEquals(2 + (i - 1), locationIterator.getLocationId());
|
||||||
checkLocation(i, location);
|
checkLocation(i, location);
|
||||||
}
|
}
|
||||||
assertFalse(locationIterator.hasNext());
|
Assert.assertFalse(locationIterator.hasNext());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -889,10 +893,10 @@ public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
|
|||||||
* @param location the location to be checked
|
* @param location the location to be checked
|
||||||
*/
|
*/
|
||||||
private void checkLocation(int i, Location location) {
|
private void checkLocation(int i, Location location) {
|
||||||
assertEquals(INITIAL_LATITUDE + (double) i / 10000.0, location.getLatitude());
|
Assert.assertEquals(INITIAL_LATITUDE + (double) i / 10000.0, location.getLatitude());
|
||||||
assertEquals(INITIAL_LONGITUDE - (double) i / 10000.0, location.getLongitude());
|
Assert.assertEquals(INITIAL_LONGITUDE - (double) i / 10000.0, location.getLongitude());
|
||||||
assertEquals((float) i / 100.0f, location.getAccuracy());
|
Assert.assertEquals((float) i / 100.0f, location.getAccuracy());
|
||||||
assertEquals(i * ALTITUDE_INTERVAL, location.getAltitude());
|
Assert.assertEquals(i * ALTITUDE_INTERVAL, location.getAltitude());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+16
-14
@@ -16,17 +16,22 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.content;
|
package com.google.android.apps.mytracks.content;
|
||||||
|
|
||||||
|
import android.content.ContentUris;
|
||||||
|
import android.location.Location;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.test.RenamingDelegatingContext;
|
||||||
|
import android.test.mock.MockContentResolver;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.SearchEngine.ScoredResult;
|
import com.google.android.apps.mytracks.content.SearchEngine.ScoredResult;
|
||||||
import com.google.android.apps.mytracks.content.SearchEngine.SearchQuery;
|
import com.google.android.apps.mytracks.content.SearchEngine.SearchQuery;
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceTest.MockContext;
|
import com.google.android.apps.mytracks.services.TrackRecordingServiceTest.MockContext;
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
|
|
||||||
import android.content.ContentUris;
|
import org.junit.After;
|
||||||
import android.location.Location;
|
import org.junit.Before;
|
||||||
import android.net.Uri;
|
import org.junit.runner.RunWith;
|
||||||
import android.test.AndroidTestCase;
|
|
||||||
import android.test.RenamingDelegatingContext;
|
|
||||||
import android.test.mock.MockContentResolver;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -40,17 +45,16 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @author Rodrigo Damazio
|
||||||
*/
|
*/
|
||||||
public class SearchEngineTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class SearchEngineTest {
|
||||||
|
|
||||||
private static final Location HERE = new Location("gps");
|
private static final Location HERE = new Location("gps");
|
||||||
private static final long NOW = 1234567890000L; // After OLDEST_ALLOWED_TIMESTAMP
|
private static final long NOW = 1234567890000L; // After OLDEST_ALLOWED_TIMESTAMP
|
||||||
private MyTracksProviderUtils providerUtils;
|
private MyTracksProviderUtils providerUtils;
|
||||||
private SearchEngine engine;
|
private SearchEngine engine;
|
||||||
|
|
||||||
@Override
|
@Before
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() {
|
||||||
super.setUp();
|
|
||||||
|
|
||||||
MockContentResolver mockContentResolver = new MockContentResolver();
|
MockContentResolver mockContentResolver = new MockContentResolver();
|
||||||
RenamingDelegatingContext targetContext = new RenamingDelegatingContext(
|
RenamingDelegatingContext targetContext = new RenamingDelegatingContext(
|
||||||
getContext(), getContext(), "test.");
|
getContext(), getContext(), "test.");
|
||||||
@@ -64,11 +68,9 @@ public class SearchEngineTest extends AndroidTestCase {
|
|||||||
engine = new SearchEngine(providerUtils);
|
engine = new SearchEngine(providerUtils);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@After
|
||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
providerUtils.deleteAllTracks(getContext());
|
providerUtils.deleteAllTracks(getContext());
|
||||||
|
|
||||||
super.tearDown();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private long insertTrack(String title, String description, String category, double distance, long hoursAgo) {
|
private long insertTrack(String title, String description, String category, double distance, long hoursAgo) {
|
||||||
|
|||||||
+24
-20
@@ -15,10 +15,18 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.apps.mytracks.content;
|
package com.google.android.apps.mytracks.content;
|
||||||
|
|
||||||
import static com.google.android.testing.mocking.AndroidMock.capture;
|
import android.content.Context;
|
||||||
import static com.google.android.testing.mocking.AndroidMock.eq;
|
import android.content.SharedPreferences;
|
||||||
import static com.google.android.testing.mocking.AndroidMock.expect;
|
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||||
import static com.google.android.testing.mocking.AndroidMock.isA;
|
import android.database.ContentObserver;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.database.MatrixCursor;
|
||||||
|
import android.location.Location;
|
||||||
|
import android.provider.BaseColumns;
|
||||||
|
import android.test.RenamingDelegatingContext;
|
||||||
|
import android.test.mock.MockContentResolver;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.Constants;
|
import com.google.android.apps.mytracks.Constants;
|
||||||
import com.google.android.apps.mytracks.TrackStubUtils;
|
import com.google.android.apps.mytracks.TrackStubUtils;
|
||||||
@@ -30,31 +38,27 @@ import com.google.android.maps.mytracks.R;
|
|||||||
import com.google.android.testing.mocking.AndroidMock;
|
import com.google.android.testing.mocking.AndroidMock;
|
||||||
import com.google.android.testing.mocking.UsesMocks;
|
import com.google.android.testing.mocking.UsesMocks;
|
||||||
|
|
||||||
import android.content.Context;
|
import org.easymock.Capture;
|
||||||
import android.content.SharedPreferences;
|
import org.easymock.IAnswer;
|
||||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
import org.junit.Before;
|
||||||
import android.database.ContentObserver;
|
import org.junit.runner.RunWith;
|
||||||
import android.database.Cursor;
|
|
||||||
import android.database.MatrixCursor;
|
|
||||||
import android.location.Location;
|
|
||||||
import android.provider.BaseColumns;
|
|
||||||
import android.test.AndroidTestCase;
|
|
||||||
import android.test.RenamingDelegatingContext;
|
|
||||||
import android.test.mock.MockContentResolver;
|
|
||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.easymock.Capture;
|
import static com.google.android.testing.mocking.AndroidMock.capture;
|
||||||
import org.easymock.IAnswer;
|
import static com.google.android.testing.mocking.AndroidMock.eq;
|
||||||
|
import static com.google.android.testing.mocking.AndroidMock.expect;
|
||||||
|
import static com.google.android.testing.mocking.AndroidMock.isA;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link TrackDataHub}.
|
* Tests for {@link TrackDataHub}.
|
||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @author Rodrigo Damazio
|
||||||
*/
|
*/
|
||||||
public class TrackDataHubTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class TrackDataHubTest {
|
||||||
|
|
||||||
private static final long TRACK_ID = 42L;
|
private static final long TRACK_ID = 42L;
|
||||||
private static final int TARGET_POINTS = 50;
|
private static final int TARGET_POINTS = 50;
|
||||||
@@ -70,10 +74,10 @@ public class TrackDataHubTest extends AndroidTestCase {
|
|||||||
private Capture<OnSharedPreferenceChangeListener> preferenceChangeListenerCapture = new Capture<
|
private Capture<OnSharedPreferenceChangeListener> preferenceChangeListenerCapture = new Capture<
|
||||||
SharedPreferences.OnSharedPreferenceChangeListener>();
|
SharedPreferences.OnSharedPreferenceChangeListener>();
|
||||||
|
|
||||||
|
@Before
|
||||||
@UsesMocks({ MyTracksProviderUtils.class, DataSource.class, TrackDataListener.class })
|
@UsesMocks({ MyTracksProviderUtils.class, DataSource.class, TrackDataListener.class })
|
||||||
@Override
|
@Override
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() {
|
||||||
super.setUp();
|
|
||||||
context = new MockContext(new MockContentResolver(), new RenamingDelegatingContext(
|
context = new MockContext(new MockContentResolver(), new RenamingDelegatingContext(
|
||||||
getContext(), getContext(), "test."));
|
getContext(), getContext(), "test."));
|
||||||
sharedPreferences = context.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
sharedPreferences = context.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
|
|||||||
+19
-14
@@ -15,10 +15,14 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.apps.mytracks.content;
|
package com.google.android.apps.mytracks.content;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
|
|
||||||
import android.os.Parcel;
|
import org.junit.Assert;
|
||||||
import android.test.AndroidTestCase;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for the WaypointCreationRequest class.
|
* Tests for the WaypointCreationRequest class.
|
||||||
@@ -26,7 +30,8 @@ import android.test.AndroidTestCase;
|
|||||||
*
|
*
|
||||||
* @author Sandor Dornbush
|
* @author Sandor Dornbush
|
||||||
*/
|
*/
|
||||||
public class WaypointCreationRequestTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class WaypointCreationRequestTest {
|
||||||
|
|
||||||
public void testTypeParceling() {
|
public void testTypeParceling() {
|
||||||
WaypointCreationRequest original = WaypointCreationRequest.DEFAULT_WAYPOINT;
|
WaypointCreationRequest original = WaypointCreationRequest.DEFAULT_WAYPOINT;
|
||||||
@@ -34,11 +39,11 @@ public class WaypointCreationRequestTest extends AndroidTestCase {
|
|||||||
original.writeToParcel(p, 0);
|
original.writeToParcel(p, 0);
|
||||||
p.setDataPosition(0);
|
p.setDataPosition(0);
|
||||||
WaypointCreationRequest copy = WaypointCreationRequest.CREATOR.createFromParcel(p);
|
WaypointCreationRequest copy = WaypointCreationRequest.CREATOR.createFromParcel(p);
|
||||||
assertEquals(original.getType(), copy.getType());
|
Assert.assertEquals(original.getType(), copy.getType());
|
||||||
assertFalse(copy.isTrackStatistics());
|
Assert.assertFalse(copy.isTrackStatistics());
|
||||||
assertNull(copy.getName());
|
Assert.assertNull(copy.getName());
|
||||||
assertNull(copy.getDescription());
|
Assert.assertNull(copy.getDescription());
|
||||||
assertNull(copy.getIconUrl());
|
Assert.assertNull(copy.getIconUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAllAttributesParceling() {
|
public void testAllAttributesParceling() {
|
||||||
@@ -48,11 +53,11 @@ public class WaypointCreationRequestTest extends AndroidTestCase {
|
|||||||
original.writeToParcel(p, 0);
|
original.writeToParcel(p, 0);
|
||||||
p.setDataPosition(0);
|
p.setDataPosition(0);
|
||||||
WaypointCreationRequest copy = WaypointCreationRequest.CREATOR.createFromParcel(p);
|
WaypointCreationRequest copy = WaypointCreationRequest.CREATOR.createFromParcel(p);
|
||||||
assertEquals(original.getType(), copy.getType());
|
Assert.assertEquals(original.getType(), copy.getType());
|
||||||
assertFalse(copy.isTrackStatistics());
|
Assert.assertFalse(copy.isTrackStatistics());
|
||||||
assertEquals("name", copy.getName());
|
Assert.assertEquals("name", copy.getName());
|
||||||
assertEquals("category", copy.getCategory());
|
Assert.assertEquals("category", copy.getCategory());
|
||||||
assertEquals("description", copy.getDescription());
|
Assert.assertEquals("description", copy.getDescription());
|
||||||
assertEquals("img.png", copy.getIconUrl());
|
Assert.assertEquals("img.png", copy.getIconUrl());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+43
-38
@@ -16,6 +16,11 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.fragments;
|
package com.google.android.apps.mytracks.fragments;
|
||||||
|
|
||||||
|
import android.location.Location;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.ChartView;
|
import com.google.android.apps.mytracks.ChartView;
|
||||||
import com.google.android.apps.mytracks.TrackStubUtils;
|
import com.google.android.apps.mytracks.TrackStubUtils;
|
||||||
import com.google.android.apps.mytracks.content.MyTracksLocation;
|
import com.google.android.apps.mytracks.content.MyTracksLocation;
|
||||||
@@ -23,24 +28,26 @@ import com.google.android.apps.mytracks.content.Sensor;
|
|||||||
import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
|
import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversions;
|
||||||
|
|
||||||
import android.location.Location;
|
import org.junit.Assert;
|
||||||
import android.test.AndroidTestCase;
|
import org.junit.Before;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link ChartFragment}.
|
* Tests {@link ChartFragment}.
|
||||||
*
|
*
|
||||||
* @author Youtao Liu
|
* @author Youtao Liu
|
||||||
*/
|
*/
|
||||||
public class ChartFragmentTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class ChartFragmentTest {
|
||||||
|
|
||||||
private static final double HOURS_PER_UNIT = 60.0;
|
private static final double HOURS_PER_UNIT = 60.0;
|
||||||
|
|
||||||
private ChartFragment chartFragment;
|
private ChartFragment chartFragment;
|
||||||
|
|
||||||
@Override
|
@Before
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() {
|
||||||
chartFragment = new ChartFragment();
|
chartFragment = new ChartFragment();
|
||||||
chartFragment.setChartView(new ChartView(getContext()));
|
chartFragment.setChartView(new ChartView(InstrumentationRegistry.getInstrumentation().getContext()));
|
||||||
chartFragment.setTripStatisticsUpdater(TrackStubUtils.INITIAL_TIME);
|
chartFragment.setTripStatisticsUpdater(TrackStubUtils.INITIAL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,9 +60,9 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
|
|
||||||
// No input.
|
// No input.
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation);
|
double[] point = fillDataPointTestHelper(myTracksLocation);
|
||||||
assertEquals(Double.NaN, point[ChartView.HEART_RATE_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.HEART_RATE_SERIES + 1]);
|
||||||
assertEquals(Double.NaN, point[ChartView.CADENCE_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.CADENCE_SERIES + 1]);
|
||||||
assertEquals(Double.NaN, point[ChartView.POWER_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.POWER_SERIES + 1]);
|
||||||
|
|
||||||
// Input incorrect state.
|
// Input incorrect state.
|
||||||
// Creates SensorData.
|
// Creates SensorData.
|
||||||
@@ -73,9 +80,9 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
myTracksLocation.setSensorDataSet(sensorDataSet);
|
myTracksLocation.setSensorDataSet(sensorDataSet);
|
||||||
// Test.
|
// Test.
|
||||||
point = fillDataPointTestHelper(myTracksLocation);
|
point = fillDataPointTestHelper(myTracksLocation);
|
||||||
assertEquals(Double.NaN, point[ChartView.HEART_RATE_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.HEART_RATE_SERIES + 1]);
|
||||||
assertEquals(Double.NaN, point[ChartView.CADENCE_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.CADENCE_SERIES + 1]);
|
||||||
assertEquals(Double.NaN, point[ChartView.POWER_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.POWER_SERIES + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,9 +93,9 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
MyTracksLocation myTracksLocation = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation = TrackStubUtils.createMyTracksLocation();
|
||||||
// No input.
|
// No input.
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation);
|
double[] point = fillDataPointTestHelper(myTracksLocation);
|
||||||
assertEquals(Double.NaN, point[ChartView.HEART_RATE_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.HEART_RATE_SERIES + 1]);
|
||||||
assertEquals(Double.NaN, point[ChartView.CADENCE_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.CADENCE_SERIES + 1]);
|
||||||
assertEquals(Double.NaN, point[ChartView.POWER_SERIES + 1]);
|
Assert.assertEquals(Double.NaN, point[ChartView.POWER_SERIES + 1]);
|
||||||
|
|
||||||
// Creates SensorData.
|
// Creates SensorData.
|
||||||
Sensor.SensorData.Builder heartRateData = Sensor.SensorData.newBuilder()
|
Sensor.SensorData.Builder heartRateData = Sensor.SensorData.newBuilder()
|
||||||
@@ -105,9 +112,9 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
myTracksLocation.setSensorDataSet(sensorDataSet);
|
myTracksLocation.setSensorDataSet(sensorDataSet);
|
||||||
// Test.
|
// Test.
|
||||||
point = fillDataPointTestHelper(myTracksLocation);
|
point = fillDataPointTestHelper(myTracksLocation);
|
||||||
assertEquals(100.0, point[ChartView.HEART_RATE_SERIES + 1]);
|
Assert.assertEquals(100.0, point[ChartView.HEART_RATE_SERIES + 1]);
|
||||||
assertEquals(101.0, point[ChartView.CADENCE_SERIES + 1]);
|
Assert.assertEquals(101.0, point[ChartView.CADENCE_SERIES + 1]);
|
||||||
assertEquals(102.0, point[ChartView.POWER_SERIES + 1]);
|
Assert.assertEquals(102.0, point[ChartView.POWER_SERIES + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -120,12 +127,12 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
// Resets last location and writes first location.
|
// Resets last location and writes first location.
|
||||||
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
||||||
assertEquals(0.0, point[0]);
|
Assert.assertEquals(0.0, point[0]);
|
||||||
|
|
||||||
// The second is a same location, just different time.
|
// The second is a same location, just different time.
|
||||||
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
||||||
point = fillDataPointTestHelper(myTracksLocation2);
|
point = fillDataPointTestHelper(myTracksLocation2);
|
||||||
assertEquals(0.0, point[0]);
|
Assert.assertEquals(0.0, point[0]);
|
||||||
|
|
||||||
// The third location is a new location, and use metric.
|
// The third location is a new location, and use metric.
|
||||||
MyTracksLocation myTracksLocation3 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation3 = TrackStubUtils.createMyTracksLocation();
|
||||||
@@ -137,7 +144,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
Location.distanceBetween(myTracksLocation2.getLatitude(), myTracksLocation2.getLongitude(),
|
Location.distanceBetween(myTracksLocation2.getLatitude(), myTracksLocation2.getLongitude(),
|
||||||
myTracksLocation3.getLatitude(), myTracksLocation3.getLongitude(), results);
|
myTracksLocation3.getLatitude(), myTracksLocation3.getLongitude(), results);
|
||||||
double distance1 = results[0] * UnitConversions.M_TO_KM;
|
double distance1 = results[0] * UnitConversions.M_TO_KM;
|
||||||
assertEquals(distance1, point[0]);
|
Assert.assertEquals(distance1, point[0]);
|
||||||
|
|
||||||
// The fourth location is a new location, and use metric.
|
// The fourth location is a new location, and use metric.
|
||||||
MyTracksLocation myTracksLocation4 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation4 = TrackStubUtils.createMyTracksLocation();
|
||||||
@@ -148,7 +155,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
Location.distanceBetween(myTracksLocation3.getLatitude(), myTracksLocation3.getLongitude(),
|
Location.distanceBetween(myTracksLocation3.getLatitude(), myTracksLocation3.getLongitude(),
|
||||||
myTracksLocation4.getLatitude(), myTracksLocation4.getLongitude(), results);
|
myTracksLocation4.getLatitude(), myTracksLocation4.getLongitude(), results);
|
||||||
double distance2 = results[0] * UnitConversions.M_TO_KM;
|
double distance2 = results[0] * UnitConversions.M_TO_KM;
|
||||||
assertEquals((distance1 + distance2), point[0]);
|
Assert.assertEquals((distance1 + distance2), point[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -164,7 +171,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
// The first is a same location, just different time.
|
// The first is a same location, just different time.
|
||||||
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
||||||
assertEquals(0.0, point[0]);
|
Assert.assertEquals(0.0, point[0]);
|
||||||
|
|
||||||
// The second location is a new location, and use imperial.
|
// The second location is a new location, and use imperial.
|
||||||
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
||||||
@@ -179,7 +186,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
Location.distanceBetween(myTracksLocation1.getLatitude(), myTracksLocation1.getLongitude(),
|
Location.distanceBetween(myTracksLocation1.getLatitude(), myTracksLocation1.getLongitude(),
|
||||||
myTracksLocation2.getLatitude(), myTracksLocation2.getLongitude(), results);
|
myTracksLocation2.getLatitude(), myTracksLocation2.getLongitude(), results);
|
||||||
double distance1 = results[0] * UnitConversions.M_TO_KM * UnitConversions.KM_TO_MI;
|
double distance1 = results[0] * UnitConversions.M_TO_KM * UnitConversions.KM_TO_MI;
|
||||||
assertEquals(distance1, point[0]);
|
Assert.assertEquals(distance1, point[0]);
|
||||||
|
|
||||||
// The third location is a new location, and use imperial.
|
// The third location is a new location, and use imperial.
|
||||||
MyTracksLocation myTracksLocation3 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation3 = TrackStubUtils.createMyTracksLocation();
|
||||||
@@ -193,7 +200,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
Location.distanceBetween(myTracksLocation2.getLatitude(), myTracksLocation2.getLongitude(),
|
Location.distanceBetween(myTracksLocation2.getLatitude(), myTracksLocation2.getLongitude(),
|
||||||
myTracksLocation3.getLatitude(), myTracksLocation3.getLongitude(), results);
|
myTracksLocation3.getLatitude(), myTracksLocation3.getLongitude(), results);
|
||||||
double distance2 = results[0] * UnitConversions.M_TO_KM * UnitConversions.KM_TO_MI;
|
double distance2 = results[0] * UnitConversions.M_TO_KM * UnitConversions.KM_TO_MI;
|
||||||
assertEquals(distance1 + distance2, point[0]);
|
Assert.assertEquals(distance1 + distance2, point[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -205,12 +212,12 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
chartFragment.setChartByDistance(false);
|
chartFragment.setChartByDistance(false);
|
||||||
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
||||||
assertEquals(0.0, point[0]);
|
Assert.assertEquals(0.0, point[0]);
|
||||||
long timeSpan = 222;
|
long timeSpan = 222;
|
||||||
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
||||||
myTracksLocation2.setTime(myTracksLocation1.getTime() + timeSpan);
|
myTracksLocation2.setTime(myTracksLocation1.getTime() + timeSpan);
|
||||||
point = fillDataPointTestHelper(myTracksLocation2);
|
point = fillDataPointTestHelper(myTracksLocation2);
|
||||||
assertEquals((double) timeSpan, point[0]);
|
Assert.assertEquals((double) timeSpan, point[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -225,7 +232,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
* parameter. Then only one value INITIALLONGTITUDE in buffer.
|
* parameter. Then only one value INITIALLONGTITUDE in buffer.
|
||||||
*/
|
*/
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
||||||
assertEquals(TrackStubUtils.INITIAL_ALTITUDE, point[ChartView.ELEVATION_SERIES + 1]);
|
Assert.assertEquals(TrackStubUtils.INITIAL_ALTITUDE, point[ChartView.ELEVATION_SERIES + 1]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Send another value to buffer, now there are two values, INITIALALTITUDE
|
* Send another value to buffer, now there are two values, INITIALALTITUDE
|
||||||
@@ -234,7 +241,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
||||||
myTracksLocation2.setAltitude(TrackStubUtils.INITIAL_ALTITUDE * 2);
|
myTracksLocation2.setAltitude(TrackStubUtils.INITIAL_ALTITUDE * 2);
|
||||||
point = fillDataPointTestHelper(myTracksLocation2);
|
point = fillDataPointTestHelper(myTracksLocation2);
|
||||||
assertEquals((TrackStubUtils.INITIAL_ALTITUDE + TrackStubUtils.INITIAL_ALTITUDE * 2) / 2.0,
|
Assert.assertEquals((TrackStubUtils.INITIAL_ALTITUDE + TrackStubUtils.INITIAL_ALTITUDE * 2) / 2.0,
|
||||||
point[ChartView.ELEVATION_SERIES + 1]);
|
point[ChartView.ELEVATION_SERIES + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,7 +259,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
||||||
myTracksLocation1.setSpeed(128.5f);
|
myTracksLocation1.setSpeed(128.5f);
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
||||||
assertEquals(0.0, point[ChartView.SPEED_SERIES + 1]);
|
Assert.assertEquals(0.0, point[ChartView.SPEED_SERIES + 1]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tests the logic when both metricUnits and reportSpeed are true.This
|
* Tests the logic when both metricUnits and reportSpeed are true.This
|
||||||
@@ -267,7 +274,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
myTracksLocation2.setTime(myTracksLocation1.getTime() + 222);
|
myTracksLocation2.setTime(myTracksLocation1.getTime() + 222);
|
||||||
myTracksLocation2.setSpeed(130);
|
myTracksLocation2.setSpeed(130);
|
||||||
point = fillDataPointTestHelper(myTracksLocation2);
|
point = fillDataPointTestHelper(myTracksLocation2);
|
||||||
assertEquals(130.0 * UnitConversions.MS_TO_KMH, point[ChartView.SPEED_SERIES + 1]);
|
Assert.assertEquals(130.0 * UnitConversions.MS_TO_KMH, point[ChartView.SPEED_SERIES + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -281,7 +288,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
||||||
myTracksLocation1.setSpeed(100.0f);
|
myTracksLocation1.setSpeed(100.0f);
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
||||||
assertEquals(0.0, point[ChartView.SPEED_SERIES + 1]);
|
Assert.assertEquals(0.0, point[ChartView.SPEED_SERIES + 1]);
|
||||||
|
|
||||||
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
||||||
|
|
||||||
@@ -293,8 +300,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
myTracksLocation2.setTime(myTracksLocation2.getTime() + 222);
|
myTracksLocation2.setTime(myTracksLocation2.getTime() + 222);
|
||||||
myTracksLocation2.setSpeed(102);
|
myTracksLocation2.setSpeed(102);
|
||||||
point = fillDataPointTestHelper(myTracksLocation2);
|
point = fillDataPointTestHelper(myTracksLocation2);
|
||||||
assertEquals(102.0 * UnitConversions.MS_TO_KMH * UnitConversions.KM_TO_MI,
|
Assert.assertEquals(102.0 * UnitConversions.MS_TO_KMH * UnitConversions.KM_TO_MI, point[ChartView.SPEED_SERIES + 1]);
|
||||||
point[ChartView.SPEED_SERIES + 1]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -308,7 +314,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
|
||||||
myTracksLocation1.setSpeed(100.0f);
|
myTracksLocation1.setSpeed(100.0f);
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
double[] point = fillDataPointTestHelper(myTracksLocation1);
|
||||||
assertEquals(0.0, point[ChartView.SPEED_SERIES + 1]);
|
Assert.assertEquals(0.0, point[ChartView.SPEED_SERIES + 1]);
|
||||||
|
|
||||||
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation2 = TrackStubUtils.createMyTracksLocation();
|
||||||
|
|
||||||
@@ -320,8 +326,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
myTracksLocation2.setTime(myTracksLocation2.getTime() + 222);
|
myTracksLocation2.setTime(myTracksLocation2.getTime() + 222);
|
||||||
myTracksLocation2.setSpeed(102);
|
myTracksLocation2.setSpeed(102);
|
||||||
point = fillDataPointTestHelper(myTracksLocation2);
|
point = fillDataPointTestHelper(myTracksLocation2);
|
||||||
assertEquals(
|
Assert.assertEquals(HOURS_PER_UNIT / (102.0 * UnitConversions.MS_TO_KMH), point[ChartView.PACE_SERIES + 1]);
|
||||||
HOURS_PER_UNIT / (102.0 * UnitConversions.MS_TO_KMH), point[ChartView.PACE_SERIES + 1]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -334,7 +339,7 @@ public class ChartFragmentTest extends AndroidTestCase {
|
|||||||
MyTracksLocation myTracksLocation = TrackStubUtils.createMyTracksLocation();
|
MyTracksLocation myTracksLocation = TrackStubUtils.createMyTracksLocation();
|
||||||
myTracksLocation.setSpeed(0);
|
myTracksLocation.setSpeed(0);
|
||||||
double[] point = fillDataPointTestHelper(myTracksLocation);
|
double[] point = fillDataPointTestHelper(myTracksLocation);
|
||||||
assertEquals(0.0, point[ChartView.PACE_SERIES + 1]);
|
Assert.assertEquals(0.0, point[ChartView.PACE_SERIES + 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
-78
@@ -1,78 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010 Google Inc.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
||||||
* use this file except in compliance with the License. You may obtain a copy of
|
|
||||||
* the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations under
|
|
||||||
* the License.
|
|
||||||
*/
|
|
||||||
package com.google.android.apps.mytracks.io.file.exporter;
|
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.io.file.exporter.GpxTrackWriter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
|
||||||
import org.w3c.dom.Element;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests for {@link GpxTrackWriter}.
|
|
||||||
*
|
|
||||||
* @author Rodrigo Damazio
|
|
||||||
*/
|
|
||||||
public class GpxTrackWriterTest extends TrackWriterTest {
|
|
||||||
|
|
||||||
public void testXmlOutput() throws Exception {
|
|
||||||
GpxTrackWriter gpxTrackWriter = new GpxTrackWriter(getContext());
|
|
||||||
String result = writeTrack(gpxTrackWriter);
|
|
||||||
Document doc = parseXmlDocument(result);
|
|
||||||
|
|
||||||
Element gpxTag = getChildElement(doc, "gpx");
|
|
||||||
Element trackTag = getChildElement(gpxTag, "trk");
|
|
||||||
assertEquals(TRACK_NAME, getChildTextValue(trackTag, "name"));
|
|
||||||
assertEquals(TRACK_DESCRIPTION, getChildTextValue(trackTag, "desc"));
|
|
||||||
List<Element> segmentTags = getChildElements(trackTag, "trkseg", 2);
|
|
||||||
List<Element> segPointTags = getChildElements(segmentTags.get(0), "trkpt", 2);
|
|
||||||
assertTagMatchesLocation(segPointTags.get(0), "0", "0", "1970-01-01T00:00:00.000Z", "0");
|
|
||||||
assertTagMatchesLocation(segPointTags.get(1), "1", "-1", "1970-01-01T00:01:40.000Z", "10");
|
|
||||||
|
|
||||||
segPointTags = getChildElements(segmentTags.get(1), "trkpt", 2);
|
|
||||||
assertTagMatchesLocation(segPointTags.get(0), "2", "-2", "1970-01-01T00:03:20.000Z", "20");
|
|
||||||
assertTagMatchesLocation(segPointTags.get(1), "3", "-3", "1970-01-01T00:05:00.000Z", "30");
|
|
||||||
|
|
||||||
List<Element> waypointTags = getChildElements(gpxTag, "wpt", 2);
|
|
||||||
Element wptTag = waypointTags.get(0);
|
|
||||||
assertEquals(WAYPOINT1_NAME, getChildTextValue(wptTag, "name"));
|
|
||||||
assertEquals(WAYPOINT1_DESCRIPTION, getChildTextValue(wptTag, "desc"));
|
|
||||||
assertTagMatchesLocation(wptTag, "1", "-1", "1970-01-01T00:01:40.000Z", "10");
|
|
||||||
|
|
||||||
wptTag = waypointTags.get(1);
|
|
||||||
assertEquals(WAYPOINT2_NAME, getChildTextValue(wptTag, "name"));
|
|
||||||
assertEquals(WAYPOINT2_DESCRIPTION, getChildTextValue(wptTag, "desc"));
|
|
||||||
assertTagMatchesLocation(wptTag, "2", "-2", "1970-01-01T00:03:20.000Z", "20");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Asserts that the given tag describes a location.
|
|
||||||
*
|
|
||||||
* @param tag the tag
|
|
||||||
* @param latitude the location's latitude
|
|
||||||
* @param longitude the location's longitude
|
|
||||||
* @param time the location's time
|
|
||||||
* @param elevation the location's elevation
|
|
||||||
*/
|
|
||||||
private void assertTagMatchesLocation(
|
|
||||||
Element tag, String latitude, String longitude, String time, String elevation) {
|
|
||||||
assertEquals(latitude, tag.getAttribute("lat"));
|
|
||||||
assertEquals(longitude, tag.getAttribute("lon"));
|
|
||||||
assertEquals(time, getChildTextValue(tag, "time"));
|
|
||||||
assertEquals(elevation, getChildTextValue(tag, "ele"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-127
@@ -1,127 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010 Google Inc.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
||||||
* use this file except in compliance with the License. You may obtain a copy of
|
|
||||||
* the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
* License for the specific language governing permissions and limitations under
|
|
||||||
* the License.
|
|
||||||
*/
|
|
||||||
package com.google.android.apps.mytracks.io.file.exporter;
|
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.DescriptionGenerator;
|
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
|
||||||
|
|
||||||
import android.location.Location;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Vector;
|
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
|
||||||
import org.w3c.dom.Element;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests for {@link KmlTrackWriter}.
|
|
||||||
*
|
|
||||||
* @author Rodrigo Damazio
|
|
||||||
*/
|
|
||||||
public class KmlTrackWriterTest extends TrackWriterTest {
|
|
||||||
|
|
||||||
private static final String FULL_TRACK_DESCRIPTION = "full track description";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A fake version of {@link DescriptionGenerator} which returns a fixed track
|
|
||||||
* description, thus not depending on the context.
|
|
||||||
*/
|
|
||||||
private class FakeDescriptionGenerator implements DescriptionGenerator {
|
|
||||||
@Override
|
|
||||||
public String generateTrackDescription(
|
|
||||||
Track aTrack, Vector<Double> distances, Vector<Double> elevations, boolean html) {
|
|
||||||
return FULL_TRACK_DESCRIPTION;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String generateWaypointDescription(TripStatistics tripStatistics) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testXmlOutput() throws Exception {
|
|
||||||
KmlTrackWriter kmlTrackWriter = new KmlTrackWriter(
|
|
||||||
getContext(), false, false, new FakeDescriptionGenerator());
|
|
||||||
String result = writeTrack(kmlTrackWriter);
|
|
||||||
Document doc = parseXmlDocument(result);
|
|
||||||
|
|
||||||
Element kmlTag = getChildElement(doc, "kml");
|
|
||||||
Element docTag = getChildElement(kmlTag, "Document");
|
|
||||||
assertEquals(TRACK_NAME, getChildTextValue(docTag, "name"));
|
|
||||||
|
|
||||||
// There are 3 placemarks - start, track, and end
|
|
||||||
List<Element> placemarkTags = getChildElements(docTag, "Placemark", 3);
|
|
||||||
assertTagIsPlacemark(
|
|
||||||
placemarkTags.get(0), TRACK_NAME + " (Start)", "", location1);
|
|
||||||
assertTagIsPlacemark(
|
|
||||||
placemarkTags.get(2), TRACK_NAME + " (End)", FULL_TRACK_DESCRIPTION, location4);
|
|
||||||
|
|
||||||
List<Element> folderTag = getChildElements(docTag, "Folder", 1);
|
|
||||||
List<Element> folderPlacemarkTags = getChildElements(folderTag.get(0), "Placemark", 2);
|
|
||||||
assertTagIsPlacemark(
|
|
||||||
folderPlacemarkTags.get(0), WAYPOINT1_NAME, WAYPOINT1_DESCRIPTION, location2);
|
|
||||||
assertTagIsPlacemark(
|
|
||||||
folderPlacemarkTags.get(1), WAYPOINT2_NAME, WAYPOINT2_DESCRIPTION, location3);
|
|
||||||
|
|
||||||
Element trackPlacemarkTag = placemarkTags.get(1);
|
|
||||||
assertEquals(TRACK_NAME, getChildTextValue(trackPlacemarkTag, "name"));
|
|
||||||
assertEquals(TRACK_DESCRIPTION, getChildTextValue(trackPlacemarkTag, "description"));
|
|
||||||
Element multiTrackTag = getChildElement(trackPlacemarkTag, "gx:MultiTrack");
|
|
||||||
List<Element> trackTags = getChildElements(multiTrackTag, "gx:Track", 2);
|
|
||||||
assertTagHasPoints(trackTags.get(0), location1, location2);
|
|
||||||
assertTagHasPoints(trackTags.get(1), location3, location4);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Asserts that the given tag is a placemark with the given properties.
|
|
||||||
*
|
|
||||||
* @param tag the tag
|
|
||||||
* @param name the expected placemark name
|
|
||||||
* @param description the expected placemark description
|
|
||||||
* @param location the expected placemark location
|
|
||||||
*/
|
|
||||||
private void assertTagIsPlacemark(
|
|
||||||
Element tag, String name, String description, Location location) {
|
|
||||||
assertEquals(name, getChildTextValue(tag, "name"));
|
|
||||||
if (description != null && !description.equals("")) {
|
|
||||||
assertEquals(description, getChildTextValue(tag, "description"));
|
|
||||||
}
|
|
||||||
Element pointTag = getChildElement(tag, "Point");
|
|
||||||
String expected = location.getLongitude() + "," + location.getLatitude() + ","
|
|
||||||
+ location.getAltitude();
|
|
||||||
String actual = getChildTextValue(pointTag, "coordinates");
|
|
||||||
assertEquals(expected, actual);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Asserts that the given tag has a list of "gx:coord" subtags matching the
|
|
||||||
* expected locations.
|
|
||||||
*
|
|
||||||
* @param tag the parent tag
|
|
||||||
* @param locations list of expected locations
|
|
||||||
*/
|
|
||||||
private void assertTagHasPoints(Element tag, Location... locations) {
|
|
||||||
List<Element> coordTags = getChildElements(tag, "gx:coord", locations.length);
|
|
||||||
for (int i = 0; i < locations.length; i++) {
|
|
||||||
Location location = locations[i];
|
|
||||||
String expected = location.getLongitude() + " " + location.getLatitude() + " "
|
|
||||||
+ location.getAltitude();
|
|
||||||
String actual = coordTags.get(i).getFirstChild().getTextContent();
|
|
||||||
assertEquals(expected, actual);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+11
-12
@@ -15,17 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.apps.mytracks.services;
|
package com.google.android.apps.mytracks.services;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.Constants;
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProvider;
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
|
||||||
import com.google.android.apps.mytracks.content.WaypointCreationRequest;
|
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -44,11 +33,21 @@ import android.test.RenamingDelegatingContext;
|
|||||||
import android.test.ServiceTestCase;
|
import android.test.ServiceTestCase;
|
||||||
import android.test.mock.MockContentProvider;
|
import android.test.mock.MockContentProvider;
|
||||||
import android.test.mock.MockContentResolver;
|
import android.test.mock.MockContentResolver;
|
||||||
import android.test.mock.MockCursor;
|
|
||||||
import android.test.suitebuilder.annotation.MediumTest;
|
import android.test.suitebuilder.annotation.MediumTest;
|
||||||
import android.test.suitebuilder.annotation.SmallTest;
|
import android.test.suitebuilder.annotation.SmallTest;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.Constants;
|
||||||
|
import com.google.android.apps.mytracks.content.MyTracksProvider;
|
||||||
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
|
import com.google.android.apps.mytracks.content.WaypointCreationRequest;
|
||||||
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
|
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
+9
-4
@@ -16,7 +16,11 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.services.tasks;
|
package com.google.android.apps.mytracks.services.tasks;
|
||||||
|
|
||||||
import android.test.AndroidTestCase;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link AnnouncementPeriodicTaskFactory}.
|
* Tests for {@link AnnouncementPeriodicTaskFactory}.
|
||||||
@@ -24,10 +28,11 @@ import android.test.AndroidTestCase;
|
|||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @author Rodrigo Damazio
|
||||||
*/
|
*/
|
||||||
public class AnnouncementPeriodicTaskFactoryTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class AnnouncementPeriodicTaskFactoryTest {
|
||||||
public void testCreate() {
|
public void testCreate() {
|
||||||
PeriodicTaskFactory factory = new AnnouncementPeriodicTaskFactory();
|
PeriodicTaskFactory factory = new AnnouncementPeriodicTaskFactory();
|
||||||
PeriodicTask task = factory.create(getContext());
|
PeriodicTask task = factory.create(InstrumentationRegistry.getInstrumentation().getContext());
|
||||||
assertTrue(task instanceof AnnouncementPeriodicTask);
|
Assert.assertTrue(task instanceof AnnouncementPeriodicTask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-2
@@ -67,7 +67,6 @@ public class TripStatisticsTest extends TestCase {
|
|||||||
statistics.setMinGrade(-25.0); // Resulting min grade
|
statistics.setMinGrade(-25.0); // Resulting min grade
|
||||||
statistics2.setMaxGrade(35.0); // Resulting max grade
|
statistics2.setMaxGrade(35.0); // Resulting max grade
|
||||||
statistics2.setMinGrade(0.0);
|
statistics2.setMinGrade(0.0);
|
||||||
statistics2.setCalorie(50.0);
|
|
||||||
|
|
||||||
// Resulting bounds: -10000, 35000, 30000, -40000
|
// Resulting bounds: -10000, 35000, 30000, -40000
|
||||||
statistics.setBounds(-10000, 20000, 30000, -40000);
|
statistics.setBounds(-10000, 20000, 30000, -40000);
|
||||||
@@ -90,7 +89,6 @@ public class TripStatisticsTest extends TestCase {
|
|||||||
assertEquals(3575.0, statistics.getMaxElevation());
|
assertEquals(3575.0, statistics.getMaxElevation());
|
||||||
assertEquals(-25.0, statistics.getMinGrade());
|
assertEquals(-25.0, statistics.getMinGrade());
|
||||||
assertEquals(35.0, statistics.getMaxGrade());
|
assertEquals(35.0, statistics.getMaxGrade());
|
||||||
assertEquals(50.0, statistics.getCalorie());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetAverageSpeed() {
|
public void testGetAverageSpeed() {
|
||||||
|
|||||||
+35
-30
@@ -16,7 +16,11 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.util;
|
package com.google.android.apps.mytracks.util;
|
||||||
|
|
||||||
import android.test.AndroidTestCase;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
@@ -26,13 +30,14 @@ import java.util.TimeZone;
|
|||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @author Rodrigo Damazio
|
||||||
*/
|
*/
|
||||||
public class StringUtilsTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class StringUtilsTest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link StringUtils#formatDateTimeIso8601(long)}.
|
* Tests {@link StringUtils#formatDateTimeIso8601(long)}.
|
||||||
*/
|
*/
|
||||||
public void testFormatDateTimeIso8601() {
|
public void testFormatDateTimeIso8601() {
|
||||||
assertEquals("1970-01-01T00:00:12.345Z", StringUtils.formatDateTimeIso8601(12345));
|
Assert.assertEquals("1970-01-01T00:00:12.345Z", StringUtils.formatDateTimeIso8601(12345));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,19 +45,19 @@ public class StringUtilsTest extends AndroidTestCase {
|
|||||||
*/
|
*/
|
||||||
public void testformatElapsedTime() {
|
public void testformatElapsedTime() {
|
||||||
// 1 second
|
// 1 second
|
||||||
assertEquals("00:01", StringUtils.formatElapsedTime(1000));
|
Assert.assertEquals("00:01", StringUtils.formatElapsedTime(1000));
|
||||||
// 10 seconds
|
// 10 seconds
|
||||||
assertEquals("00:10", StringUtils.formatElapsedTime(10000));
|
Assert.assertEquals("00:10", StringUtils.formatElapsedTime(10000));
|
||||||
// 1 minute
|
// 1 minute
|
||||||
assertEquals("01:00", StringUtils.formatElapsedTime(60000));
|
Assert.assertEquals("01:00", StringUtils.formatElapsedTime(60000));
|
||||||
// 10 minutes
|
// 10 minutes
|
||||||
assertEquals("10:00", StringUtils.formatElapsedTime(600000));
|
Assert.assertEquals("10:00", StringUtils.formatElapsedTime(600000));
|
||||||
// 1 hour
|
// 1 hour
|
||||||
assertEquals("1:00:00", StringUtils.formatElapsedTime(3600000));
|
Assert.assertEquals("1:00:00", StringUtils.formatElapsedTime(3600000));
|
||||||
// 10 hours
|
// 10 hours
|
||||||
assertEquals("10:00:00", StringUtils.formatElapsedTime(36000000));
|
Assert.assertEquals("10:00:00", StringUtils.formatElapsedTime(36000000));
|
||||||
// 100 hours
|
// 100 hours
|
||||||
assertEquals("100:00:00", StringUtils.formatElapsedTime(360000000));
|
Assert.assertEquals("100:00:00", StringUtils.formatElapsedTime(360000000));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,19 +65,19 @@ public class StringUtilsTest extends AndroidTestCase {
|
|||||||
*/
|
*/
|
||||||
public void testformatElapsedTimeWithHour() {
|
public void testformatElapsedTimeWithHour() {
|
||||||
// 1 second
|
// 1 second
|
||||||
assertEquals("0:00:01", StringUtils.formatElapsedTimeWithHour(1000));
|
Assert.assertEquals("0:00:01", StringUtils.formatElapsedTimeWithHour(1000));
|
||||||
// 10 seconds
|
// 10 seconds
|
||||||
assertEquals("0:00:10", StringUtils.formatElapsedTimeWithHour(10000));
|
Assert.assertEquals("0:00:10", StringUtils.formatElapsedTimeWithHour(10000));
|
||||||
// 1 minute
|
// 1 minute
|
||||||
assertEquals("0:01:00", StringUtils.formatElapsedTimeWithHour(60000));
|
Assert.assertEquals("0:01:00", StringUtils.formatElapsedTimeWithHour(60000));
|
||||||
// 10 minutes
|
// 10 minutes
|
||||||
assertEquals("0:10:00", StringUtils.formatElapsedTimeWithHour(600000));
|
Assert.assertEquals("0:10:00", StringUtils.formatElapsedTimeWithHour(600000));
|
||||||
// 1 hour
|
// 1 hour
|
||||||
assertEquals("1:00:00", StringUtils.formatElapsedTimeWithHour(3600000));
|
Assert.assertEquals("1:00:00", StringUtils.formatElapsedTimeWithHour(3600000));
|
||||||
// 10 hours
|
// 10 hours
|
||||||
assertEquals("10:00:00", StringUtils.formatElapsedTimeWithHour(36000000));
|
Assert.assertEquals("10:00:00", StringUtils.formatElapsedTimeWithHour(36000000));
|
||||||
// 100 hours
|
// 100 hours
|
||||||
assertEquals("100:00:00", StringUtils.formatElapsedTimeWithHour(360000000));
|
Assert.assertEquals("100:00:00", StringUtils.formatElapsedTimeWithHour(360000000));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -81,21 +86,21 @@ public class StringUtilsTest extends AndroidTestCase {
|
|||||||
*/
|
*/
|
||||||
public void testFormatDistance() {
|
public void testFormatDistance() {
|
||||||
// A large number in metric
|
// A large number in metric
|
||||||
assertEquals("5.00 km", StringUtils.formatDistance(getContext(), 5000, true));
|
Assert.assertEquals("5.00 km", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 5000, true));
|
||||||
// A large number in imperial
|
// A large number in imperial
|
||||||
assertEquals("3.11 mi", StringUtils.formatDistance(getContext(), 5000, false));
|
Assert.assertEquals("3.11 mi", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 5000, false));
|
||||||
// A small number in metric
|
// A small number in metric
|
||||||
assertEquals("100.00 m", StringUtils.formatDistance(getContext(), 100, true));
|
Assert.assertEquals("100.00 m", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 100, true));
|
||||||
// A small number in imperial
|
// A small number in imperial
|
||||||
assertEquals("328.08 ft", StringUtils.formatDistance(getContext(), 100, false));
|
Assert.assertEquals("328.08 ft", StringUtils.formatDistance(InstrumentationRegistry.getInstrumentation().getContext(), 100, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link StringUtils#formatCData(String)}.
|
* Tests {@link StringUtils#formatCData(String)}.
|
||||||
*/
|
*/
|
||||||
public void testFormatCData() {
|
public void testFormatCData() {
|
||||||
assertEquals("<![CDATA[hello]]>", StringUtils.formatCData("hello"));
|
Assert.assertEquals("<![CDATA[hello]]>", StringUtils.formatCData("hello"));
|
||||||
assertEquals("<![CDATA[hello]]]]><![CDATA[>there]]>", StringUtils.formatCData("hello]]>there"));
|
Assert.assertEquals("<![CDATA[hello]]]]><![CDATA[>there]]>", StringUtils.formatCData("hello]]>there"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -158,7 +163,7 @@ public class StringUtilsTest extends AndroidTestCase {
|
|||||||
GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
|
GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
|
||||||
calendar.set(year, month - 1, day, hour, minute, second);
|
calendar.set(year, month - 1, day, hour, minute, second);
|
||||||
calendar.set(GregorianCalendar.MILLISECOND, millisecond);
|
calendar.set(GregorianCalendar.MILLISECOND, millisecond);
|
||||||
assertEquals(calendar.getTimeInMillis(), StringUtils.getTime(xmlDateTime));
|
Assert.assertEquals(calendar.getTimeInMillis(), StringUtils.getTime(xmlDateTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -166,9 +171,9 @@ public class StringUtilsTest extends AndroidTestCase {
|
|||||||
*/
|
*/
|
||||||
public void testGetTimeParts_postive() {
|
public void testGetTimeParts_postive() {
|
||||||
int[] parts = StringUtils.getTimeParts(61000);
|
int[] parts = StringUtils.getTimeParts(61000);
|
||||||
assertEquals(1, parts[0]);
|
Assert.assertEquals(1, parts[0]);
|
||||||
assertEquals(1, parts[1]);
|
Assert.assertEquals(1, parts[1]);
|
||||||
assertEquals(0, parts[2]);
|
Assert.assertEquals(0, parts[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -176,8 +181,8 @@ public class StringUtilsTest extends AndroidTestCase {
|
|||||||
*/
|
*/
|
||||||
public void testGetTimeParts_negative() {
|
public void testGetTimeParts_negative() {
|
||||||
int[] parts = StringUtils.getTimeParts(-61000);
|
int[] parts = StringUtils.getTimeParts(-61000);
|
||||||
assertEquals(-1, parts[0]);
|
Assert.assertEquals(-1, parts[0]);
|
||||||
assertEquals(-1, parts[1]);
|
Assert.assertEquals(-1, parts[1]);
|
||||||
assertEquals(0, parts[2]);
|
Assert.assertEquals(0, parts[2]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-14
@@ -16,9 +16,15 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.util;
|
package com.google.android.apps.mytracks.util;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.test.AndroidTestCase;
|
import org.junit.Assert;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -29,20 +35,22 @@ import java.util.Locale;
|
|||||||
*
|
*
|
||||||
* @author Matthew Simmons
|
* @author Matthew Simmons
|
||||||
*/
|
*/
|
||||||
public class TrackNameUtilsTest extends AndroidTestCase {
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class TrackNameUtilsTest {
|
||||||
|
|
||||||
private static final long TRACK_ID = 1L;
|
private static final long TRACK_ID = 1L;
|
||||||
private static final long START_TIME = 1288213406000L;
|
private static final long START_TIME = 1288213406000L;
|
||||||
|
|
||||||
|
private static final Context CONTEXT = InstrumentationRegistry.getInstrumentation().getContext();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests when the track_name_key is
|
* Tests when the track_name_key is
|
||||||
* settings_recording_track_name_date_local_value.
|
* settings_recording_track_name_date_local_value.
|
||||||
*/
|
*/
|
||||||
public void testTrackName_date_local() {
|
public void testTrackName_date_local() {
|
||||||
PreferencesUtils.setString(getContext(), R.string.track_name_key,
|
PreferencesUtils.setString(CONTEXT, R.string.track_name_key, CONTEXT.getString(R.string.settings_recording_track_name_date_local_value));
|
||||||
getContext().getString(R.string.settings_recording_track_name_date_local_value));
|
Assert.assertEquals(StringUtils.formatDateTime(CONTEXT, START_TIME),
|
||||||
assertEquals(StringUtils.formatDateTime(getContext(), START_TIME),
|
TrackNameUtils.getTrackName(CONTEXT, TRACK_ID, START_TIME, null));
|
||||||
TrackNameUtils.getTrackName(getContext(), TRACK_ID, START_TIME, null));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -50,12 +58,11 @@ public class TrackNameUtilsTest extends AndroidTestCase {
|
|||||||
* settings_recording_track_name_date_iso_8601_value.
|
* settings_recording_track_name_date_iso_8601_value.
|
||||||
*/
|
*/
|
||||||
public void testTrackName_date_iso_8601() {
|
public void testTrackName_date_iso_8601() {
|
||||||
PreferencesUtils.setString(getContext(), R.string.track_name_key,
|
PreferencesUtils.setString(CONTEXT, R.string.track_name_key, CONTEXT.getString(R.string.settings_recording_track_name_date_iso_8601_value));
|
||||||
getContext().getString(R.string.settings_recording_track_name_date_iso_8601_value));
|
|
||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
|
||||||
TrackNameUtils.ISO_8601_FORMAT, Locale.US);
|
TrackNameUtils.ISO_8601_FORMAT, Locale.US);
|
||||||
assertEquals(simpleDateFormat.format(new Date(START_TIME)),
|
Assert.assertEquals(simpleDateFormat.format(new Date(START_TIME)),
|
||||||
TrackNameUtils.getTrackName(getContext(), TRACK_ID, START_TIME, null));
|
TrackNameUtils.getTrackName(CONTEXT, TRACK_ID, START_TIME, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -63,9 +70,8 @@ public class TrackNameUtilsTest extends AndroidTestCase {
|
|||||||
* settings_recording_track_name_number_value.
|
* settings_recording_track_name_number_value.
|
||||||
*/
|
*/
|
||||||
public void testTrackName_number() {
|
public void testTrackName_number() {
|
||||||
PreferencesUtils.setString(getContext(), R.string.track_name_key,
|
PreferencesUtils.setString(CONTEXT, R.string.track_name_key, CONTEXT.getString(R.string.settings_recording_track_name_number_value));
|
||||||
getContext().getString(R.string.settings_recording_track_name_number_value));
|
Assert.assertEquals(
|
||||||
assertEquals(
|
"Track " + TRACK_ID, TrackNameUtils.getTrackName(CONTEXT, TRACK_ID, START_TIME, null));
|
||||||
"Track " + TRACK_ID, TrackNameUtils.getTrackName(getContext(), TRACK_ID, START_TIME, null));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -3,6 +3,7 @@ package com.google.android.apps.mytracks.io.file;
|
|||||||
import com.google.android.apps.mytracks.io.file.exporter.GpxTrackWriter;
|
import com.google.android.apps.mytracks.io.file.exporter.GpxTrackWriter;
|
||||||
import com.google.android.apps.mytracks.io.file.exporter.KmlTrackWriter;
|
import com.google.android.apps.mytracks.io.file.exporter.KmlTrackWriter;
|
||||||
import com.google.android.apps.mytracks.io.file.exporter.TrackWriter;
|
import com.google.android.apps.mytracks.io.file.exporter.TrackWriter;
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
@@ -23,7 +24,7 @@ public enum TrackFileFormat implements Parcelable {
|
|||||||
GPX {
|
GPX {
|
||||||
@Override
|
@Override
|
||||||
public TrackWriter newTrackWriter(Context context, boolean multiple, boolean playTrack) {
|
public TrackWriter newTrackWriter(Context context, boolean multiple, boolean playTrack) {
|
||||||
return new GpxTrackWriter(context);
|
return new GpxTrackWriter(context.getString(R.string.send_google_by_my_tracks, "", ""));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+6
-8
@@ -16,14 +16,12 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.io.file.exporter;
|
package com.google.android.apps.mytracks.io.file.exporter;
|
||||||
|
|
||||||
|
import android.location.Location;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.io.file.TrackFileFormat;
|
import com.google.android.apps.mytracks.io.file.TrackFileFormat;
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.location.Location;
|
|
||||||
|
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
@@ -52,11 +50,11 @@ public class GpxTrackWriter implements TrackWriter {
|
|||||||
COORDINATE_FORMAT.setGroupingUsed(false);
|
COORDINATE_FORMAT.setGroupingUsed(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Context context;
|
private final String creator;
|
||||||
private PrintWriter printWriter;
|
private PrintWriter printWriter;
|
||||||
|
|
||||||
public GpxTrackWriter(Context context) {
|
public GpxTrackWriter(String creator) {
|
||||||
this.context = context;
|
this.creator = creator;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -84,7 +82,7 @@ public class GpxTrackWriter implements TrackWriter {
|
|||||||
printWriter.println("<gpx");
|
printWriter.println("<gpx");
|
||||||
printWriter.println("version=\"1.1\"");
|
printWriter.println("version=\"1.1\"");
|
||||||
printWriter.println(
|
printWriter.println(
|
||||||
"creator=\"" + context.getString(R.string.send_google_by_my_tracks, "", "") + "\"");
|
"creator=\"" + creator + "\"");
|
||||||
printWriter.println("xmlns=\"http://www.topografix.com/GPX/1/1\"");
|
printWriter.println("xmlns=\"http://www.topografix.com/GPX/1/1\"");
|
||||||
printWriter.println(
|
printWriter.println(
|
||||||
"xmlns:topografix=\"http://www.topografix.com/GPX/Private/TopoGrafix/0/1\"");
|
"xmlns:topografix=\"http://www.topografix.com/GPX/Private/TopoGrafix/0/1\"");
|
||||||
|
|||||||
+1
-2
@@ -87,8 +87,7 @@ public class KmlTrackWriter implements TrackWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
KmlTrackWriter(Context context, boolean multiple, boolean playTrack,
|
KmlTrackWriter(Context context, boolean multiple, boolean playTrack, DescriptionGenerator descriptionGenerator) {
|
||||||
DescriptionGenerator descriptionGenerator) {
|
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.multiple = multiple;
|
this.multiple = multiple;
|
||||||
this.playTrack = playTrack;
|
this.playTrack = playTrack;
|
||||||
|
|||||||
Reference in New Issue
Block a user