OSDN Git Service

Merge "Make summary text update after settings changes" into pi-dev
authorTreeHugger Robot <treehugger-gerrit@google.com>
Fri, 25 May 2018 15:01:26 +0000 (15:01 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Fri, 25 May 2018 15:01:26 +0000 (15:01 +0000)
1  2 
src/com/android/settings/slices/SliceBroadcastReceiver.java
tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java

@@@ -127,62 -135,16 +136,70 @@@ public class SliceBroadcastReceiverTes
      }
  
      @Test
 +    public void toggleUpdate_synchronously_notifyChange_should_be_called() {
 +        // Monitor the ContentResolver
 +        final ContentResolver resolver = spy(mContext.getContentResolver());
 +        doReturn(resolver).when(mContext).getContentResolver();
 +
 +        final String key = "key";
 +        mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear();
 +        insertSpecialCase(key);
 +
 +        FakeToggleController fakeToggleController = new FakeToggleController(mContext, key);
 +        fakeToggleController.setChecked(true);
 +        // Set the toggle setting update synchronously.
 +        fakeToggleController.setAsyncUpdate(false);
 +        Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED);
 +        intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key);
 +
 +        assertThat(fakeToggleController.isChecked()).isTrue();
 +
 +        // Toggle setting
 +        mReceiver.onReceive(mContext, intent);
 +
 +        assertThat(fakeToggleController.isChecked()).isFalse();
 +
 +        final Uri expectedUri = SliceBuilderUtils.getUri(
 +                SettingsSlicesContract.PATH_SETTING_ACTION + "/" + key, false);
 +        verify(resolver).notifyChange(eq(expectedUri), eq(null));
 +    }
 +
 +    @Test
 +    public void toggleUpdate_asynchronously_notifyChange_should_not_be_called() {
 +        // Monitor the ContentResolver
 +        final ContentResolver resolver = spy(mContext.getContentResolver());
 +        doReturn(resolver).when(mContext).getContentResolver();
 +
 +        final String key = "key";
 +        mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear();
 +        insertSpecialCase(key);
 +
 +        FakeToggleController fakeToggleController = new FakeToggleController(mContext, key);
 +        fakeToggleController.setChecked(true);
 +        // Set the toggle setting update asynchronously.
 +        fakeToggleController.setAsyncUpdate(true);
 +        Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED);
 +        intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key);
 +
 +        assertThat(fakeToggleController.isChecked()).isTrue();
 +
 +        // Toggle setting
 +        mReceiver.onReceive(mContext, intent);
 +
 +        verify(resolver, never()).notifyChange(null, null);
 +    }
 +
 +    @Test
      public void onReceive_sliderChanged() {
          final String key = "key";
+         final Uri uri = new Uri.Builder()
+                 .scheme(ContentResolver.SCHEME_CONTENT)
+                 .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+                 .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
+                 .appendPath(key)
+                 .build();
+         final ContentResolver resolver = mock(ContentResolver.class);
+         doReturn(resolver).when(mContext).getContentResolver();
          final int position = FakeSliderController.MAX_STEPS - 1;
          final int oldPosition = FakeSliderController.MAX_STEPS;
          mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear();