");
printWriter.println("" + StringUtils.formatCData(track.getDescription()) + "");
@@ -261,21 +286,6 @@ public class TcxTrackWriter implements TrackWriter {
}
}
- @Override
- public void writeBeginWaypoints() {
- // Do nothing.
- }
-
- @Override
- public void writeEndWaypoints() {
- // Do nothing.
- }
-
- @Override
- public void writeWaypoint(Waypoint waypoint) {
- // Do nothing.
- }
-
/**
* Writes the TCX Version.
*/
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriter.java
index 58d66597c..2e3429ecf 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriter.java
@@ -23,58 +23,57 @@ import android.location.Location;
import java.io.OutputStream;
/**
- * Interface for writing tracks to a file.
- *
- * The expected sequence of calls is:
- *
- * - {@link #prepare}
- * - {@link #writeHeader}
- * - For each track:
- *
- * - {@link #writeBeginWaypoints}
- *
- For each waypoint: {@link #writeWaypoint}
- *
- {@link #writeEndWaypoints}
- *
- {@link #writeBeginTrack}
- *
- For each segment:
- *
- * - {@link #writeOpenSegment}
- * - For each location in the segment: {@link #writeLocation}
- * - {@link #writeCloseSegment}
- *
- *
- * - {@link #writeEndTrack}
- *
- * - {@link #writeFooter}
- * - {@link #close}
- *
- *
+ * Interface for writing tracks to a file. The expected sequence of calls is:
+ *
+ *
+ * {@link #prepare(OutputStream)}
+ * {@link #writeHeader(Track[])}
+ * For each track:
+ * {@link #writeBeginWaypoints(Track)}
+ * For each waypoint:
+ * {@link #writeWaypoint(Waypoint)}
+ * {@link #writeEndWaypoints()}
+ * {@link #writeBeginTracks()}
+ * For each track:
+ * {@link #writeBeginTrack(Track, Location)}
+ * For each segment:
+ * {@link #writeOpenSegment()}
+ * For each location in the segment:
+ * {@link #writeLocation(Location)}
+ * {@link #writeCloseSegment()}
+ * {@link #writeEndTrack(Track, Location)}
+ * {@link #writeEndTracks()}
+ * {@link #writeFooter()}
+ * {@link #close()}
+ *
+ *
* @author Rodrigo Damazio
*/
public interface TrackWriter {
/**
- * Gets the file extension (i.e. gpx, kml, ...)
+ * Gets the file extension (e.g, gpx, kml, ...).
*/
public String getExtension();
/**
- * Sets up the file handler.
- *
- * @param outputStream the output stream for the file handler
+ * Prepares the output stream.
+ *
+ * @param outputStream the output stream
*/
public void prepare(OutputStream outputStream);
/**
- * Closes the underlying file handler.
+ * Closes the output stream.
*/
public void close();
/**
- * Writes the header for a file
+ * Writes the header
*
- * @param track the track
+ * @param tracks the tracks
*/
- public void writeHeader(Track track);
+ public void writeHeader(Track[] tracks);
/**
* Writes the footer.
@@ -83,50 +82,62 @@ public interface TrackWriter {
/**
* Writes the beginning of the waypoints.
+ *
+ * @param track the track
*/
- public void writeBeginWaypoints();
-
+ public void writeBeginWaypoints(Track track);
+
/**
* Writes the end of the waypoints.
*/
public void writeEndWaypoints();
-
+
/**
* Writes a waypoint.
- *
+ *
* @param waypoint the waypoint
*/
public void writeWaypoint(Waypoint waypoint);
/**
- * Writes the beginning of the track.
- *
- * @param track the track
- * @param firstLocation the first location
+ * Writes the beginning of the tracks.
*/
- public void writeBeginTrack(Track track, Location firstLocation);
+ public void writeBeginTracks();
/**
- * Writes the end of the track.
- *
- * @param track the track
- * @param lastLocation the last location
+ * Writes the end of the tracks,
*/
- public void writeEndTrack(Track track, Location lastLocation);
+ public void writeEndTracks();
/**
- * Writes the statements necessary to open a new segment.
+ * Writes the beginning of a track.
+ *
+ * @param track the track
+ * @param startLocation the start location
+ */
+ public void writeBeginTrack(Track track, Location startLocation);
+
+ /**
+ * Writes the end of a track.
+ *
+ * @param track the track
+ * @param endLocation the end location
+ */
+ public void writeEndTrack(Track track, Location endLocation);
+
+ /**
+ * Writes open segment.
*/
public void writeOpenSegment();
/**
- * Writes the statements necessary to close a segment.
+ * Writes close segment.
*/
public void writeCloseSegment();
/**
* Writes a location.
- *
+ *
* @param location the location
*/
public void writeLocation(Location location);
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java
index 157947447..0b222d750 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java
@@ -441,8 +441,8 @@ public class SyncUtils {
java.io.File file = new java.io.File(directory,
FileUtils.buildUniqueFileName(directory, track.getName(), trackFileFormat.getExtension()));
- FileTrackExporter fileTrackExporter = new FileTrackExporter(
- myTracksProviderUtils, new Track[] { track }, trackFileFormat, context, false, null);
+ FileTrackExporter fileTrackExporter = new FileTrackExporter(myTracksProviderUtils,
+ new Track[] { track }, trackFileFormat.newTrackWriter(context, false), null);
FileOutputStream fileOutputStream = null;
try {
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/content/MyTracksProviderTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/content/MyTracksProviderTest.java
index 3622175e4..75fb116ab 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/content/MyTracksProviderTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/content/MyTracksProviderTest.java
@@ -13,6 +13,7 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
+
package com.google.android.apps.mytracks.content;
import com.google.android.apps.mytracks.content.MyTracksProvider.DatabaseHelper;
@@ -22,150 +23,202 @@ import android.net.Uri;
import android.test.AndroidTestCase;
/**
- * A unit test for {@link MyTracksProvider}.
+ * Tests {@link MyTracksProvider}.
*
* @author Youtao Liu
*/
public class MyTracksProviderTest extends AndroidTestCase {
+ private static final String DATABASE_NAME = "mytrackstest.db";
+
private SQLiteDatabase db;
private MyTracksProvider myTracksProvider;
- private String DATABASE_NAME = "mytrackstest.db";
@Override
protected void setUp() throws Exception {
+ super.setUp();
getContext().deleteDatabase(DATABASE_NAME);
db = (new DatabaseHelper(getContext(), DATABASE_NAME)).getWritableDatabase();
-
myTracksProvider = new MyTracksProvider();
- super.setUp();
}
/**
- * Tests the method {@link MyTracksProvider.DatabaseHelper#onCreate()}.
+ * Tests {@link MyTracksProvider.DatabaseHelper#onCreate(SQLiteDatabase)}.
*/
public void testDatabaseHelper_OnCreate() {
- assertTrue(checkTable(TrackPointsColumns.TABLE_NAME));
- assertTrue(checkTable(TracksColumns.TABLE_NAME));
- assertTrue(checkTable(WaypointsColumns.TABLE_NAME));
+ assertTrue(hasTable(TracksColumns.TABLE_NAME));
+ assertTrue(hasTable(TrackPointsColumns.TABLE_NAME));
+ assertTrue(hasTable(WaypointsColumns.TABLE_NAME));
}
/**
- * Tests the method
- * {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int, int)}
- * when version is less than 17.
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is less than 17.
*/
public void testDatabaseHelper_onUpgrade_Version16() {
- DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
- dropTable(TrackPointsColumns.TABLE_NAME);
dropTable(TracksColumns.TABLE_NAME);
+ dropTable(TrackPointsColumns.TABLE_NAME);
dropTable(WaypointsColumns.TABLE_NAME);
- databaseHelper.onUpgrade(db, 16, 20);
- assertTrue(checkTable(TrackPointsColumns.TABLE_NAME));
- assertTrue(checkTable(TracksColumns.TABLE_NAME));
- assertTrue(checkTable(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 the method
- * {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int, int)}
- * when version is 17.
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 17.
*/
public void testDatabaseHelper_onUpgrade_Version17() {
- DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
+ setupUpgrade(17);
- // Make two table is only contains one normal integer column.
- dropTable(TrackPointsColumns.TABLE_NAME);
- dropTable(TracksColumns.TABLE_NAME);
- createEmptyTable(TrackPointsColumns.TABLE_NAME);
- createEmptyTable(TracksColumns.TABLE_NAME);
- databaseHelper.onUpgrade(db, 17, 20);
- assertTrue(isColumnExisted(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
- assertTrue(isColumnExisted(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
- assertTrue(isColumnExisted(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ 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 the method
- * {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int, int)}
- * when version is 18.
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 18.
*/
public void testDatabaseHelper_onUpgrade_Version18() {
- DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
+ setupUpgrade(18);
- // Make two table is only contains one normal integer column.
- dropTable(TrackPointsColumns.TABLE_NAME);
- dropTable(TracksColumns.TABLE_NAME);
- createEmptyTable(TrackPointsColumns.TABLE_NAME);
- createEmptyTable(TracksColumns.TABLE_NAME);
- databaseHelper.onUpgrade(db, 18, 20);
- assertFalse(isColumnExisted(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
- assertTrue(isColumnExisted(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
- assertTrue(isColumnExisted(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ 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 the method
- * {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int, int)}
- * when version is 19.
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 19.
*/
public void testDatabaseHelper_onUpgrade_Version19() {
- DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
+ setupUpgrade(19);
- // Make two table is only contains one normal integer column.
- dropTable(TrackPointsColumns.TABLE_NAME);
- dropTable(TracksColumns.TABLE_NAME);
- createEmptyTable(TrackPointsColumns.TABLE_NAME);
- createEmptyTable(TracksColumns.TABLE_NAME);
- databaseHelper.onUpgrade(db, 19, 20);
- assertFalse(isColumnExisted(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
- assertFalse(isColumnExisted(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
- assertTrue(isColumnExisted(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ 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 the method {@link MyTracksProvider#onCreate()}.
+ * 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)}.
*/
public void testOnCreate() {
assertTrue(myTracksProvider.onCreate(getContext()));
}
/**
- * Tests the method {@link MyTracksProvider#getType(Uri)}.
+ * Tests {@link MyTracksProvider#getType(Uri)}.
*/
public void testGetType() {
- assertEquals(TrackPointsColumns.CONTENT_TYPE,
- myTracksProvider.getType(TrackPointsColumns.CONTENT_URI));
assertEquals(TracksColumns.CONTENT_TYPE, myTracksProvider.getType(TracksColumns.CONTENT_URI));
- assertEquals(WaypointsColumns.CONTENT_TYPE,
- myTracksProvider.getType(WaypointsColumns.CONTENT_URI));
+ assertEquals(
+ TrackPointsColumns.CONTENT_TYPE, myTracksProvider.getType(TrackPointsColumns.CONTENT_URI));
+ assertEquals(
+ WaypointsColumns.CONTENT_TYPE, myTracksProvider.getType(WaypointsColumns.CONTENT_URI));
}
/**
- * Creates an table only contains one column.
+ * Creates a table, containing one column.
*
- * @param table the name of table
+ * @param table the table name
*/
- private void createEmptyTable(String table) {
+ private void createTable(String table) {
db.execSQL("CREATE TABLE " + table + " (test INTEGER)");
}
/**
* Drops a table in database.
*
- * @param table
+ * @param table the table name
*/
private void dropTable(String table) {
db.execSQL("Drop TABLE " + table);
}
/**
- * Checks whether a table is existed.
+ * Returns true if the table exists.
*
- * @param table the name of table
- * @return true means the table has existed
+ * @param table the table name
*/
- private boolean checkTable(String table) {
+ private boolean hasTable(String table) {
try {
db.rawQuery("select count(*) from " + table, null);
return true;
@@ -175,14 +228,12 @@ public class MyTracksProviderTest extends AndroidTestCase {
}
/**
- * Checks whether a column in a table is existed by whether can order by the
- * column.
+ * Returns true if the column in the table exists.
*
- * @param table the name of table
- * @param column the name of column
- * @return true means the column has existed
+ * @param table the table name
+ * @param column the column name
*/
- private boolean isColumnExisted(String table, String column) {
+ private boolean hasColumn(String table, String column) {
try {
db.execSQL("SElECT count(*) from " + table + " order by " + column);
} catch (Exception e) {
@@ -193,4 +244,20 @@ public class MyTracksProviderTest extends AndroidTestCase {
return true;
}
+ /**
+ * Sets up upgrade.
+ *
+ * @param oldVersion thd old database version
+ */
+ private void setupUpgrade(int oldVersion) {
+ dropTable(TracksColumns.TABLE_NAME);
+ dropTable(TrackPointsColumns.TABLE_NAME);
+ dropTable(WaypointsColumns.TABLE_NAME);
+ createTable(TracksColumns.TABLE_NAME);
+ createTable(TrackPointsColumns.TABLE_NAME);
+ createTable(WaypointsColumns.TABLE_NAME);
+
+ DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
+ databaseHelper.onUpgrade(db, oldVersion, MyTracksProvider.DATABASE_VERSION);
+ }
}
\ No newline at end of file
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/fragments/ChartFragmentTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/fragments/ChartFragmentTest.java
index 1eb7b2cd7..e4a8a88a4 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/fragments/ChartFragmentTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/fragments/ChartFragmentTest.java
@@ -33,9 +33,9 @@ import android.test.AndroidTestCase;
*/
public class ChartFragmentTest extends AndroidTestCase {
- private ChartFragment chartFragment;
+ private static final double HOURS_PER_UNIT = 60.0;
- private final double HOURS_PER_UNIT = 60.0;
+ private ChartFragment chartFragment;
@Override
protected void setUp() throws Exception {
@@ -46,7 +46,7 @@ public class ChartFragmentTest extends AndroidTestCase {
/**
* Tests the logic to get the incorrect values of sensor in
- * {@link ChartFragment#fillDataPoint(Location, double[])}
+ * {@link ChartFragment#fillDataPoint(android.content.Context, Location, double[])}
*/
public void testFillDataPoint_sensorIncorrect() {
MyTracksLocation myTracksLocation = TrackStubUtils.createMyTracksLocation();
@@ -83,7 +83,7 @@ public class ChartFragmentTest extends AndroidTestCase {
/**
* Tests the logic to get the correct values of sensor in
- * {@link ChartFragment#fillDataPoint(Location, double[])}.
+ * {@link ChartFragment#fillDataPoint(android.content.Context, Location, double[])}.
*/
public void testFillDataPoint_sensorCorrect() {
MyTracksLocation myTracksLocation = TrackStubUtils.createMyTracksLocation();
@@ -118,7 +118,7 @@ public class ChartFragmentTest extends AndroidTestCase {
/**
* Tests the logic to get the value of metric Distance in
- * {@link ChartFragment#fillDataPoint(Location, double[])}.
+ * {@link ChartFragment#fillDataPoint(android.content.Context, Location, double[])}.
*/
public void testFillDataPoint_distanceMetric() {
// By distance.
@@ -159,7 +159,7 @@ public class ChartFragmentTest extends AndroidTestCase {
/**
* Tests the logic to get the value of imperial Distance in
- * {@link ChartFragment#fillDataPoint(Location, double[])}.
+ * {@link ChartFragment#fillDataPoint(android.content.Context, Location, double[])}.
*/
public void testFillDataPoint_distanceImperial() {
// By distance.
@@ -204,7 +204,7 @@ public class ChartFragmentTest extends AndroidTestCase {
/**
* Tests the logic to get the values of time in
- * {@link ChartFragment#fillDataPoint(Location, double[])}.
+ * {@link ChartFragment#fillDataPoint(android.content.Context, Location, double[])}.
*/
public void testFillDataPoint_time() {
// By time
@@ -220,9 +220,9 @@ public class ChartFragmentTest extends AndroidTestCase {
}
/**
- * Tests the logic to get the value of elevation in
- * {@link ChartFragment#fillDataPoint(Location, double[])} by one and two
- * points.
+ * Tests the logic to get the value of elevation in
+ * {@link ChartFragment#fillDataPoint(android.content.Context,
+ * Location, double[])} by one and two points.
*/
public void testFillDataPoint_elevation() {
MyTracksLocation myTracksLocation1 = TrackStubUtils.createMyTracksLocation();
@@ -247,9 +247,10 @@ public class ChartFragmentTest extends AndroidTestCase {
/**
* Tests the logic to get the value of speed in
- * {@link ChartFragment#fillDataPoint(Location, double[])}. In this test,
- * firstly remove all points in memory, and then fill in two points one by
- * one. The speed values of these points are 129, 130.
+ * {@link ChartFragment#fillDataPoint(android.content.Context, Location, double[])}. In this test,
+ * firstly remove all points in memory,
+ * and then fill in two points one by one. The speed values of these points
+ * are 129, 130.
*/
public void testFillDataPoint_speed() {
/*
@@ -358,7 +359,7 @@ public class ChartFragmentTest extends AndroidTestCase {
*/
private double[] fillDataPointTestHelper(Location location) {
double[] point = new double[ChartView.NUM_SERIES + 1];
- chartFragment.fillDataPoint(location, point);
+ chartFragment.fillDataPoint(getContext(), location, point);
return point;
}
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/FileTrackExporterTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/FileTrackExporterTest.java
index 22ccc135d..5c524bc2c 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/FileTrackExporterTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/FileTrackExporterTest.java
@@ -7,9 +7,6 @@ import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils.Factory;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
-import com.google.android.apps.mytracks.io.file.exporter.FileTrackExporter;
-import com.google.android.apps.mytracks.io.file.exporter.TrackExporterListener;
-import com.google.android.apps.mytracks.io.file.exporter.TrackWriter;
import com.google.android.apps.mytracks.services.TrackRecordingServiceTest.MockContext;
import com.google.android.apps.mytracks.testing.TestingProviderUtilsFactory;
@@ -42,7 +39,7 @@ public class FileTrackExporterTest extends AndroidTestCase {
private IMocksControl mocksControl;
private TrackWriter trackWriter;
- private Track track;
+ private Track[] tracks;
private OutputStream outputStream;
private FileTrackExporter fileTrackExporter;
@@ -65,10 +62,12 @@ public class FileTrackExporterTest extends AndroidTestCase {
mocksControl = EasyMock.createStrictControl();
trackWriter = mocksControl.createMock(TrackWriter.class);
- track = new Track();
+ Track track = new Track();
track.setName(TRACK_NAME);
track.setId(TRACK_ID);
+ tracks = new Track[] {track};
+
outputStream = new ByteArrayOutputStream();
TrackExporterListener trackExporterListener = new TrackExporterListener() {
@@ -79,7 +78,7 @@ public class FileTrackExporterTest extends AndroidTestCase {
}
};
fileTrackExporter = new FileTrackExporter(
- myTracksProviderUtils, new Track[] { track }, trackWriter, trackExporterListener);
+ myTracksProviderUtils, tracks, trackWriter, trackExporterListener);
}
@Override
@@ -95,10 +94,13 @@ public class FileTrackExporterTest extends AndroidTestCase {
// Set expected mock behavior
trackWriter.prepare(outputStream);
- trackWriter.writeHeader(track);
- trackWriter.writeBeginTrack(track, null);
- trackWriter.writeEndTrack(track, null);
+ trackWriter.writeHeader(tracks);
+ trackWriter.writeBeginTracks();
+ trackWriter.writeBeginTrack(tracks[0], null);
+ trackWriter.writeEndTrack(tracks[0], null);
+ trackWriter.writeEndTracks();
trackWriter.writeFooter();
+ trackWriter.close();
mocksControl.replay();
assertTrue(fileTrackExporter.writeTrack(outputStream));
@@ -124,11 +126,14 @@ public class FileTrackExporterTest extends AndroidTestCase {
// Set expected mock behavior
trackWriter.prepare(outputStream);
- trackWriter.writeHeader(track);
- trackWriter.writeBeginTrack(track, null);
- trackWriter.writeEndTrack(track, null);
+ trackWriter.writeHeader(tracks);
+ trackWriter.writeBeginTracks();
+ trackWriter.writeBeginTrack(tracks[0], null);
+ trackWriter.writeEndTrack(tracks[0], null);
+ trackWriter.writeEndTracks();
trackWriter.writeFooter();
-
+ trackWriter.close();
+
mocksControl.replay();
assertTrue(fileTrackExporter.writeTrack(outputStream));
@@ -161,16 +166,17 @@ public class FileTrackExporterTest extends AndroidTestCase {
}
trackWriter.prepare(outputStream);
- trackWriter.writeHeader(track);
+ trackWriter.writeHeader(tracks);
// Expect reading/writing of the waypoints (except the first)
- trackWriter.writeBeginWaypoints();
+ trackWriter.writeBeginWaypoints(tracks[0]);
trackWriter.writeWaypoint(waypointEq(waypoints[1]));
trackWriter.writeWaypoint(waypointEq(waypoints[2]));
trackWriter.writeEndWaypoints();
// Begin the track
- trackWriter.writeBeginTrack(trackEq(track), locationEq(locations[0]));
+ trackWriter.writeBeginTracks();
+ trackWriter.writeBeginTrack(trackEq(tracks[0]), locationEq(locations[0]));
// Write locations 1-2
trackWriter.writeOpenSegment();
@@ -188,10 +194,12 @@ public class FileTrackExporterTest extends AndroidTestCase {
trackWriter.writeCloseSegment();
// End the track
- trackWriter.writeEndTrack(trackEq(track), locationEq(locations[5]));
-
+ trackWriter.writeEndTrack(trackEq(tracks[0]), locationEq(locations[5]));
+ trackWriter.writeEndTracks();
+
trackWriter.writeFooter();
-
+ trackWriter.close();
+
mocksControl.replay();
assertTrue(fileTrackExporter.writeTrack(outputStream));
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/KmlTrackWriterTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/KmlTrackWriterTest.java
index e4adae4bc..e73c3d479 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/KmlTrackWriterTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/KmlTrackWriterTest.java
@@ -17,7 +17,6 @@ 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.io.file.exporter.KmlTrackWriter;
import com.google.android.apps.mytracks.stats.TripStatistics;
import android.location.Location;
diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriterTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriterTest.java
index 99f718bfd..cd8e3f622 100644
--- a/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriterTest.java
+++ b/MyTracksTest/src/com/google/android/apps/mytracks/io/file/exporter/TrackWriterTest.java
@@ -5,7 +5,6 @@ import com.google.android.apps.mytracks.content.MyTracksLocation;
import com.google.android.apps.mytracks.content.Sensor;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
-import com.google.android.apps.mytracks.io.file.exporter.TrackWriter;
import android.test.AndroidTestCase;
@@ -117,11 +116,12 @@ public abstract class TrackWriterTest extends AndroidTestCase {
protected String writeTrack(TrackWriter trackWriter) throws Exception {
OutputStream output = new ByteArrayOutputStream(BUFFER_SIZE);
trackWriter.prepare(output);
- trackWriter.writeHeader(track);
- trackWriter.writeBeginWaypoints();
+ trackWriter.writeHeader(new Track[] {track});
+ trackWriter.writeBeginWaypoints(track);
trackWriter.writeWaypoint(wp1);
trackWriter.writeWaypoint(wp2);
trackWriter.writeEndWaypoints();
+ trackWriter.writeBeginTracks();
trackWriter.writeBeginTrack(track, location1);
trackWriter.writeOpenSegment();
trackWriter.writeLocation(location1);
@@ -132,7 +132,9 @@ public abstract class TrackWriterTest extends AndroidTestCase {
trackWriter.writeLocation(location4);
trackWriter.writeCloseSegment();
trackWriter.writeEndTrack(track, location4);
+ trackWriter.writeEndTracks();
trackWriter.writeFooter();
+ trackWriter.close();
return output.toString();
}