OSDN Git Service

Update title of ConnectedDeviceSlice header
authorYanting Yang <yantingyang@google.com>
Mon, 3 Dec 2018 11:33:51 +0000 (19:33 +0800)
committerYanting Yang <yantingyang@google.com>
Mon, 3 Dec 2018 13:31:02 +0000 (21:31 +0800)
Bug: 114807655
Test: visual, robotest
Change-Id: Ibda3f1439787541de0e7aac9f3bcfb016522cdc1

res/values/strings.xml
src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java
tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java

index fb8ab20..b18002f 100644 (file)
         <item quantity="one"><xliff:g id="number_device_count">%1$d</xliff:g> device connected</item>
         <item quantity="other"><xliff:g id="number_device_count">%1$d</xliff:g> devices connected</item>
     </plurals>
+    <!-- Title for bluetooth connected devices in connected device slice. [CHAR LIMIT=NONE] -->
+    <string name="bluetooth_connected_devices">Bluetooth Devices</string>
     <!-- Title for no connected devices in connected device slice. [CHAR LIMIT=NONE] -->
     <string name="no_connected_devices">No connected devices</string>
 
index 6a1f1f0..0c79b6b 100644 (file)
@@ -101,7 +101,7 @@ public class ConnectedDeviceSlice implements CustomSliceable {
     public Slice getSlice() {
         final IconCompat icon = IconCompat.createWithResource(mContext,
                 R.drawable.ic_homepage_connected_device);
-        final CharSequence title = mContext.getText(R.string.connected_devices_dashboard_title);
+        final CharSequence title = mContext.getText(R.string.bluetooth_connected_devices);
         final CharSequence titleNoConnectedDevices = mContext.getText(
                 R.string.no_connected_devices);
         final PendingIntent primaryActionIntent = PendingIntent.getActivity(mContext, 0,
index 23da127..472d2ca 100644 (file)
@@ -36,6 +36,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.SliceTester;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -49,12 +50,17 @@ import java.util.List;
 @RunWith(SettingsRobolectricTestRunner.class)
 public class ConnectedDeviceSliceTest {
 
+    private static final String BLUETOOTH_SUMMARY = "BluetoothSummary";
+    private static final String BLUETOOTH_TITLE = "BluetoothTitle";
+
     @Mock
     private CachedBluetoothDevice mCachedBluetoothDevice;
 
-    private List<CachedBluetoothDevice> mCachedDevices = new ArrayList<CachedBluetoothDevice>();
-    private Context mContext;
+    private List<CachedBluetoothDevice> mBluetoothConnectedDeviceList;
     private ConnectedDeviceSlice mConnectedDeviceSlice;
+    private Context mContext;
+    private IconCompat mIcon;
+    private PendingIntent mDetailIntent;
 
     @Before
     public void setUp() {
@@ -65,35 +71,63 @@ public class ConnectedDeviceSliceTest {
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
 
         mConnectedDeviceSlice = spy(new ConnectedDeviceSlice(mContext));
+
+        // Mock the icon and detail intent of Bluetooth.
+        mIcon = IconCompat.createWithResource(mContext, R.drawable.ic_homepage_connected_device);
+        mDetailIntent = PendingIntent.getActivity(mContext, 0, new Intent("test action"), 0);
+        doReturn(mIcon).when(mConnectedDeviceSlice).getConnectedDeviceIcon(any());
+        doReturn(mDetailIntent).when(mConnectedDeviceSlice).getBluetoothDetailIntent(any());
+
+        // Initial Bluetooth connected device list.
+        mBluetoothConnectedDeviceList = new ArrayList<>();
+    }
+
+    @After
+    public void tearDown() {
+        if (!mBluetoothConnectedDeviceList.isEmpty()) {
+            mBluetoothConnectedDeviceList.clear();
+        }
+    }
+
+    @Test
+    public void getSlice_hasConnectedDevices_shouldHaveCorrectTitle() {
+        mockBluetoothDeviceList();
+        doReturn(mBluetoothConnectedDeviceList).when(
+                mConnectedDeviceSlice).getBluetoothConnectedDevices();
+
+        final Slice slice = mConnectedDeviceSlice.getSlice();
+
+        final List<SliceItem> sliceItems = slice.getItems();
+        SliceTester.assertTitle(sliceItems,
+                mContext.getString(R.string.bluetooth_connected_devices));
     }
 
     @Test
-    public void getSlice_hasConnectedDevices_shouldBeCorrectSliceContent() {
-        final String title = "BluetoothTitle";
-        final String summary = "BluetoothSummary";
-        final IconCompat icon = IconCompat.createWithResource(mContext,
-                R.drawable.ic_homepage_connected_device);
-        final PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0,
-                new Intent("test action"), 0);
-        doReturn(title).when(mCachedBluetoothDevice).getName();
-        doReturn(summary).when(mCachedBluetoothDevice).getConnectionSummary();
-        mCachedDevices.add(mCachedBluetoothDevice);
-        doReturn(mCachedDevices).when(mConnectedDeviceSlice).getBluetoothConnectedDevices();
-        doReturn(icon).when(mConnectedDeviceSlice).getConnectedDeviceIcon(any());
-        doReturn(pendingIntent).when(mConnectedDeviceSlice).getBluetoothDetailIntent(any());
+    public void getSlice_hasConnectedDevices_shouldHaveCorrectContent() {
+        mockBluetoothDeviceList();
+        doReturn(mBluetoothConnectedDeviceList).when(
+                mConnectedDeviceSlice).getBluetoothConnectedDevices();
+
         final Slice slice = mConnectedDeviceSlice.getSlice();
 
         final List<SliceItem> sliceItems = slice.getItems();
-        SliceTester.assertTitle(sliceItems, title);
+        SliceTester.assertTitle(sliceItems, BLUETOOTH_TITLE);
     }
 
     @Test
-    public void getSlice_hasNoConnectedDevices_shouldReturnCorrectHeader() {
-        final List<CachedBluetoothDevice> connectedBluetoothList = new ArrayList<>();
-        doReturn(connectedBluetoothList).when(mConnectedDeviceSlice).getBluetoothConnectedDevices();
+    public void getSlice_noConnectedDevices_shouldHaveCorrectTitle() {
+        doReturn(mBluetoothConnectedDeviceList).when(
+                mConnectedDeviceSlice).getBluetoothConnectedDevices();
+
         final Slice slice = mConnectedDeviceSlice.getSlice();
 
         final List<SliceItem> sliceItems = slice.getItems();
         SliceTester.assertTitle(sliceItems, mContext.getString(R.string.no_connected_devices));
     }
+
+    private void mockBluetoothDeviceList() {
+        doReturn(BLUETOOTH_TITLE).when(mCachedBluetoothDevice).getName();
+        doReturn(BLUETOOTH_SUMMARY).when(mCachedBluetoothDevice).getConnectionSummary();
+        mBluetoothConnectedDeviceList.add(mCachedBluetoothDevice);
+    }
 }
\ No newline at end of file