package com.prateekj.snooper.utils;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import org.hamcrest.CustomTypeSafeMatcher;
import org.hamcrest.Matcher;
import static android.content.Intent.EXTRA_INTENT;
import static android.content.Intent.EXTRA_STREAM;
import static android.content.Intent.EXTRA_SUBJECT;
public class EspressoIntentMatchers {
public static Matcher<Bundle> forMailChooserIntent(final String action, final String mimeType, final String extraData, final String fileName) {
return new CustomTypeSafeMatcher<Bundle>("Custom matcher for matching mail chooser intent") {
@Override
protected boolean matchesSafely(Bundle item) {
Intent intent = (Intent) item.get(EXTRA_INTENT);
Uri uri = intent.getParcelableExtra(EXTRA_STREAM);
return action.equals(intent.getAction()) &&
mimeType.equals(intent.getType()) &&
intent.getStringExtra(EXTRA_SUBJECT).equalsIgnoreCase(extraData) &&
uri.getPath().endsWith(fileName);
}
};
}
}