package com.ushahidi.android.app.test; import java.util.Vector; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.test.ActivityInstrumentationTestCase2; import android.test.UiThreadTest; import android.widget.Button; import android.widget.EditText; import com.ushahidi.android.app.IncidentAdd; import com.ushahidi.android.app.R; import com.ushahidi.android.app.Preferences; import com.ushahidi.android.app.data.Database; public class AddIncidentTest extends ActivityInstrumentationTestCase2<IncidentAdd> { private IncidentAdd mAddIncidentActivity; private Database mUshahidiDatabase; private EditText mTitle; private EditText mLocation; private EditText mDescription; private Vector<String> mVectorCategories; private Button mSendButton; public AddIncidentTest() { super("com.ushahidi.android.app", IncidentAdd.class); } /** * Set up the test environment before each test */ protected void setUp() throws Exception { super.setUp(); setActivityInitialTouchMode(false); setActivityIntent(new Intent(Intent.ACTION_VIEW)); mAddIncidentActivity = getActivity(); mVectorCategories = new Vector<String>(); mVectorCategories.add("4"); mUshahidiDatabase = new Database(mAddIncidentActivity); mUshahidiDatabase.open(); mUshahidiDatabase.deleteAddIncidents(); mTitle = (EditText)mAddIncidentActivity.findViewById(R.id.incident_title); mLocation = (EditText)mAddIncidentActivity.findViewById(R.id.incident_location); mDescription = (EditText)mAddIncidentActivity.findViewById(R.id.incident_desc); // activate action to submit report mSendButton = (Button)mAddIncidentActivity.findViewById(R.id.incident_add_btn); } /** * Tear down the environment after each test */ protected void tearDown() throws Exception { mUshahidiDatabase.close(); super.tearDown(); } @UiThreadTest public void testSendReport() { final SharedPreferences settings = getInstrumentation().getContext().getSharedPreferences( Preferences.PREFS_NAME, 0); Editor editor = settings.edit(); editor.putString("Domain", "http://demo.ushahidi.com"); editor.commit(); // set text in required fields mTitle.setText("James Blunt"); mLocation.setText("UK"); mDescription.setText("James Blunt playing a gig, everyone get out"); mAddIncidentActivity.setVectorCategories(mVectorCategories); // activate action to submit report mSendButton.performClick(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); fail(); } // check value exists in db assertEquals(0, mUshahidiDatabase.fetchAllOfflineIncidents().getCount()); } @UiThreadTest public void testSendReportWithConnectionPostFailed() { // set text in required fields mTitle.setText("James Blunt"); mLocation.setText("UK"); mDescription.setText("James Blunt playing a gig, everyone get out"); mAddIncidentActivity.setVectorCategories(mVectorCategories); mSendButton.performClick(); try { Thread.sleep(20000); } catch (InterruptedException e) { e.printStackTrace(); fail(); } // check value exists in db assertEquals(1, mUshahidiDatabase.fetchAllOfflineIncidents().getCount()); } }