diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsActivity.java index 9d54efed5..c500c96f6 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsActivity.java @@ -22,6 +22,7 @@ import com.google.android.apps.mytracks.io.sendtogoogle.AbstractSendAsyncTask; import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; import com.google.android.apps.mytracks.io.sendtogoogle.UploadResultActivity; import com.google.android.maps.mytracks.R; +import com.google.common.annotations.VisibleForTesting; import android.content.Intent; @@ -47,20 +48,25 @@ public class SendMapsActivity extends AbstractSendActivity { protected void startNextActivity(boolean success, boolean isCancel) { sendRequest.setMapsSuccess(success); - Class next; - if (isCancel) { - next = UploadResultActivity.class; - } else { - if (sendRequest.isSendFusionTables()) { - next = SendFusionTablesActivity.class; - } else if (sendRequest.isSendDocs()) { - next = SendDocsActivity.class; - } else { - next = UploadResultActivity.class; - } - } + Class next = getNextClass(sendRequest, isCancel); + Intent intent = new Intent(this, next).putExtra(SendRequest.SEND_REQUEST_KEY, sendRequest); startActivity(intent); finish(); } + + @VisibleForTesting + Class getNextClass(SendRequest request, boolean isCancel) { + if (isCancel) { + return UploadResultActivity.class; + } else { + if (request.isSendFusionTables()) { + return SendFusionTablesActivity.class; + } else if (request.isSendDocs()) { + return SendDocsActivity.class; + } else { + return UploadResultActivity.class; + } + } + } } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/io/maps/SendMapsActivityTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/io/maps/SendMapsActivityTest.java new file mode 100644 index 000000000..d2646609a --- /dev/null +++ b/MyTracksTest/src/com/google/android/apps/mytracks/io/maps/SendMapsActivityTest.java @@ -0,0 +1,90 @@ +/* + * Copyright 2012 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.maps; + +import com.google.android.apps.mytracks.io.docs.SendDocsActivity; +import com.google.android.apps.mytracks.io.fusiontables.SendFusionTablesActivity; +import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; +import com.google.android.apps.mytracks.io.sendtogoogle.UploadResultActivity; + +import android.test.AndroidTestCase; + +/** + * Tests the {@link SendMapsActivity}. + * + * @author Youtao Liu + */ +public class SendMapsActivityTest extends AndroidTestCase { + + private SendMapsActivity sendMapsActivity; + private SendRequest sendRequest; + + @Override + protected void setUp() throws Exception { + super.setUp(); + sendRequest = new SendRequest(1L, true, false, true); + sendMapsActivity = new SendMapsActivity(); + } + + /** + * Tests the method + * {@link SendMapsActivity#getNextClass(SendRequest, boolean)}. Sets the flags + * of "sendFusionTables","sendDocs" and "cancel" to true, true and false. + */ + public void testGetNextClass_notCancelSendFusionTables() { + sendRequest.setSendFusionTables(true); + sendRequest.setSendDocs(true); + Class next = sendMapsActivity.getNextClass(sendRequest, false); + assertEquals(SendFusionTablesActivity.class, next); + } + + /** + * Tests the method + * {@link SendMapsActivity#getNextClass(SendRequest, boolean)}. Sets the flags + * of "sendFusionTables","sendDocs" and "cancel" to false, true and false. + */ + public void testGetNextClass_notCancelSendDocs() { + sendRequest.setSendFusionTables(false); + sendRequest.setSendDocs(true); + Class next = sendMapsActivity.getNextClass(sendRequest, false); + assertEquals(SendDocsActivity.class, next); + } + + /** + * Tests the method + * {@link SendMapsActivity#getNextClass(SendRequest, boolean)}. Sets the flags + * of "sendFusionTables","sendDocs" and "cancel" to false, false and false. + */ + public void testGetNextClass_notCancelNotSend() { + sendRequest.setSendFusionTables(false); + sendRequest.setSendDocs(false); + Class next = sendMapsActivity.getNextClass(sendRequest, false); + assertEquals(UploadResultActivity.class, next); + } + + /** + * Tests the method + * {@link SendMapsActivity#getNextClass(SendRequest, boolean)}. Sets the flags + * of "sendFusionTables","sendDocs" and "cancel" to true, true and true. + */ + public void testGetNextClass_cancelSendDocs() { + sendRequest.setSendFusionTables(true); + sendRequest.setSendDocs(true); + Class next = sendMapsActivity.getNextClass(sendRequest, true); + assertEquals(UploadResultActivity.class, next); + } + +} \ No newline at end of file