instrument: save file

This commit is contained in:
Vincent Breitmoser 2015-06-23 23:13:11 +02:00
parent 8d141176bd
commit ed82f0de9e

View file

@ -125,7 +125,7 @@ public class AsymmetricFileOperationTests {
handleAddFileIntent(file);
onView(withId(R.id.file_list_entry_add)).perform(click());
handleSaveFileIntent(outputFile);
handleSaveEncryptedFileIntent(outputFile);
onView(withId(R.id.encrypt_save)).perform(click());
assertThat("output file has been written", true, is(outputFile.exists()));
@ -145,6 +145,9 @@ public class AsymmetricFileOperationTests {
onView(isRecyclerItemView(R.id.decrypted_files_list,
hasDescendant(withText(file.getName()))))
.check(matches(allOf(withEncryptionStatus(true), withSignatureNone())));
}
{ // delete original file
// open context menu
onView(allOf(isDescendantOfA(isRecyclerItemView(R.id.decrypted_files_list,
@ -169,6 +172,29 @@ public class AsymmetricFileOperationTests {
}
{ // save file (*after* deletion~)
// open context menu
onView(allOf(isDescendantOfA(isRecyclerItemView(R.id.decrypted_files_list,
hasDescendant(withText(file.getName())))),
withId(R.id.context_menu))).perform(click());
File savedFile =
new File(getInstrumentation().getTargetContext().getFilesDir(), "vo.png");
handleSaveDecryptedFileIntent(savedFile, file.getName());
// save decrypted content
onView(withText(R.string.btn_save)).perform(click());
checkSnackbar(Style.OK, R.string.file_saved);
assertThat("decrypted file has been saved", true, is(savedFile.exists()));
// cleanup
// noinspection ResultOfMethodCallIgnored
file.delete();
}
}
private void handleAddFileIntent(File file) {
@ -208,7 +234,22 @@ public class AsymmetricFileOperationTests {
}
@TargetApi(VERSION_CODES.KITKAT)
private void handleSaveFileIntent(File file) {
private void handleSaveDecryptedFileIntent(File file, String expectedTitle) {
Intent data = new Intent();
data.setData(Uri.fromFile(file));
Intents.intending(allOf(
hasAction(Intent.ACTION_CREATE_DOCUMENT),
hasExtra("android.content.extra.SHOW_ADVANCED", true),
hasExtra(Intent.EXTRA_TITLE, expectedTitle),
hasCategories(hasItem(Intent.CATEGORY_OPENABLE))
)).respondWith(
new ActivityResult(Activity.RESULT_OK, data)
);
}
@TargetApi(VERSION_CODES.KITKAT)
private void handleSaveEncryptedFileIntent(File file) {
try {
//noinspection ResultOfMethodCallIgnored