Added test for file opening in TextEditorActivity

This commit is contained in:
Emmanuel
2018-01-23 19:34:54 -03:00
committed by Emmanuel M
parent 02a6dc6685
commit 3cf67cb7ff
3 changed files with 100 additions and 0 deletions
+10
View File
@@ -59,6 +59,12 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests {
includeAndroidResources = true
}
}
}
dependencies {
@@ -72,6 +78,10 @@ dependencies {
implementation 'com.android.support:palette-v7:26.1.0'
implementation 'com.android.support:cardview-v7:26.1.0'
//For tests
androidTestImplementation 'junit:junit:4.12'//tests the app logic
testImplementation "org.robolectric:robolectric:3.6.1"//tests android interaction
//Detect memory leaks
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.3'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.3'
@@ -0,0 +1,89 @@
package com.amaze.filemanager.activities;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.widget.TextView;
import com.amaze.filemanager.R;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.shadows.ShadowEnvironment;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
@RunWith(RobolectricTestRunner.class)
public class TextEditorActivityTest {
private final String fileContents = "fsdfsdfs";
private TextView text;
@Test
public void testOpenFileUri() {
File file = simulateFile();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.fromFile(file));
generateActivity(intent);
assertThat(text.getText().toString(), is(fileContents + "\n"));
}
@Test
public void testOpenContentUri() {
File file = simulateFile();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(getFileContentUri(RuntimeEnvironment.application, file));
generateActivity(intent);
assertThat(text.getText().toString(), is(fileContents + "\n"));
}
private void generateActivity(Intent intent) {
ActivityController<TextEditorActivity> controller = Robolectric.buildActivity(TextEditorActivity.class, intent)
.create().start().visible();
TextEditorActivity activity = controller.get();
text = activity.findViewById(R.id.fname);
}
private File simulateFile() {
ShadowEnvironment.setExternalStorageState(Environment.MEDIA_MOUNTED);
File file = new File("text.txt");
try {
file.createNewFile();
if(!file.canWrite()) file.setWritable(true);
assertThat(file.canWrite(), is(true));
PrintWriter out = new PrintWriter(file);
out.write(fileContents);
out.flush();
out.close();
} catch (IOException e) {
fail(e.getMessage());
}
return file;
}
private Uri getFileContentUri(Context context, File file) {
fail("Cannot create content URI");
return null;
}
}
+1
View File
@@ -0,0 +1 @@
fsdfsdfs