Merge "Update display logic for no shared data." into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-04-08 15:11:37 +00:00
committed by Android (Google) Code Review
5 changed files with 82 additions and 52 deletions

View File

@@ -22,8 +22,11 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.blob.BlobInfo;
import android.app.blob.BlobStoreManager;
import android.app.blob.LeaseInfo;
import android.content.Context;
import android.os.UserHandle;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -38,6 +41,10 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.util.ReflectionHelpers;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
// TODO: add more detailed tests for the shared data screens
@RunWith(RobolectricTestRunner.class)
public class SharedDataPreferenceControllerTest {
@@ -63,8 +70,11 @@ public class SharedDataPreferenceControllerTest {
}
@Test
public void updateState_BlobManagerIsNotNull_preferenceIsEnabled() {
public void updateState_BlobManagerIsNotNullAndBlobsExist_preferenceIsEnabled()
throws IOException {
ReflectionHelpers.setField(mController, "mBlobStoreManager", mBlobStoreManager);
when(mBlobStoreManager.queryBlobsForUser(UserHandle.CURRENT))
.thenReturn(generateBlobList());
mController.updateState(mPreference);
verify(mPreference).setEnabled(true);
@@ -72,11 +82,38 @@ public class SharedDataPreferenceControllerTest {
.isEqualTo(mContext.getString(R.string.shared_data_summary));
}
@Test
public void updateState_BlobManagerIsNotNullButNoBlobsExist_preferenceIsDisabled() {
ReflectionHelpers.setField(mController, "mBlobStoreManager", mBlobStoreManager);
mController.updateState(mPreference);
verify(mPreference).setEnabled(false);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.shared_data_no_blobs_text));
}
@Test
public void updateState_BlobManagerIsNull_preferenceIsDisabled() {
ReflectionHelpers.setField(mController, "mBlobStoreManager", null);
mController.updateState(mPreference);
verify(mPreference).setEnabled(false);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.shared_data_no_blobs_text));
}
private List<BlobInfo> generateBlobList() {
LeaseInfo one = new LeaseInfo("com.google.android.photos",
System.currentTimeMillis(), -1, "test description");
LeaseInfo two = new LeaseInfo("com.google.android.drive",
System.currentTimeMillis(), -1, "test description 2");
List<LeaseInfo> accessors = new ArrayList<>();
accessors.add(one);
accessors.add(two);
final List<BlobInfo> tmp = new ArrayList<>();
tmp.add(new BlobInfo(10, System.currentTimeMillis(), "testing blob 1", accessors));
return tmp;
}
}