Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java

Issue 2271413002: bluetooth: Implement RSSI indicator on android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bluetooth-impl-rssi-tx-power
Patch Set: Clean up Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
index e469114c245c1dd6e11c062cb591dcf0ccebba09..9fe2c79afe780acfd1399685589226ce4969e9e9 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
@@ -32,6 +32,15 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
String mLastSelectedId = "None";
+ private static final ItemChooserDialog.ItemChooserRowIcon TEST_ICON1 =
+ new ItemChooserDialog.ItemChooserRowIcon(
+ R.drawable.ic_signal_cellular_0_bar_grey600_24dp,
+ R.drawable.ic_signal_cellular_0_bar_white_24dp, "test icon1");
+ private static final ItemChooserDialog.ItemChooserRowIcon TEST_ICON2 =
+ new ItemChooserDialog.ItemChooserRowIcon(
+ R.drawable.ic_signal_cellular_1_bar_grey600_24dp,
+ R.drawable.ic_signal_cellular_1_bar_white_24dp, "test icon2");
+
public ItemChooserDialogTest() {
super(ChromeActivity.class);
}
@@ -115,6 +124,20 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
}));
}
+ private int getImageContainerVisibilityForItem(ListView items, int pos) {
+ final int first = items.getFirstVisiblePosition();
+ final int last = first + items.getChildCount() - 1;
juncai 2016/09/12 20:05:49 Maybe use: getLastVisiblePosition() here for |last
ortuno 2016/09/13 03:00:45 Done.
+
+ View item;
+ if (pos < first || pos > last) {
+ item = items.getAdapter().getView(pos, null, items);
+ } else {
+ final int visiblePos = pos - first;
+ item = items.getChildAt(visiblePos);
+ }
+ return item.findViewById(R.id.imageContainer).getVisibility();
+ }
+
@SmallTest
public void testSimpleItemSelection() throws InterruptedException {
Dialog dialog = mChooserDialog.getDialogForTesting();
@@ -202,6 +225,104 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
}
@SmallTest
+ public void testUpdateItemWithIconToNoIcon() throws InterruptedException {
+ Dialog dialog = mChooserDialog.getDialogForTesting();
+ assertTrue(dialog.isShowing());
+
+ ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
+ final ListView items = (ListView) dialog.findViewById(R.id.items);
+
+ // Initially the itemAdapter is empty.
+ assertTrue(itemAdapter.isEmpty());
+
+ // Add item 1.
+ ItemChooserDialog.ItemChooserRow item1 =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1);
+ mChooserDialog.addOrUpdateItem(item1);
+ assertEquals(View.VISIBLE, getImageContainerVisibilityForItem(items, 0));
+ assertEquals(1, itemAdapter.getCount());
+ assertEquals(itemAdapter.getItem(0), item1);
+
+ // Add item 1 with no icon.
+ ItemChooserDialog.ItemChooserRow item1WithNoIcon =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ mChooserDialog.addOrUpdateItem(item1WithNoIcon);
+ assertEquals(1, itemAdapter.getCount());
+ // We should still see the original item with the icon.
+ ItemChooserDialog.ItemChooserRow expectedItem =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1);
+ assertEquals(itemAdapter.getItem(0), expectedItem);
+ assertEquals(View.VISIBLE, getImageContainerVisibilityForItem(items, 0));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @SmallTest
+ public void testUpdateItemWithNoIconToIcon() throws InterruptedException {
+ Dialog dialog = mChooserDialog.getDialogForTesting();
+ assertTrue(dialog.isShowing());
+
+ ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
+ final ListView items = (ListView) dialog.findViewById(R.id.items);
+
+ // Initially the itemAdapter is empty.
+ assertTrue(itemAdapter.isEmpty());
+
+ // Add item 1 with no icon.
+ ItemChooserDialog.ItemChooserRow item1WithNoIcon =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ mChooserDialog.addOrUpdateItem(item1WithNoIcon);
+ assertEquals(View.GONE, getImageContainerVisibilityForItem(items, 0));
+ assertEquals(1, itemAdapter.getCount());
+ assertEquals(itemAdapter.getItem(0), item1WithNoIcon);
+
+ // Add item 1 with icon.
+ ItemChooserDialog.ItemChooserRow item1 =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1);
+ mChooserDialog.addOrUpdateItem(item1);
+ assertEquals(1, itemAdapter.getCount());
+ ItemChooserDialog.ItemChooserRow expectedItem =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1);
+ assertEquals(itemAdapter.getItem(0), expectedItem);
+ assertEquals(View.VISIBLE, getImageContainerVisibilityForItem(items, 0));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @SmallTest
+ public void testUpdateItemWithNoIconToNoIcon() throws InterruptedException {
+ Dialog dialog = mChooserDialog.getDialogForTesting();
+ assertTrue(dialog.isShowing());
+
+ ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
+ final ListView items = (ListView) dialog.findViewById(R.id.items);
+
+ // Initially the itemAdapter is empty.
+ assertTrue(itemAdapter.isEmpty());
+
+ // Add item 1 with no icon.
+ ItemChooserDialog.ItemChooserRow item1WithNoIcon =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ mChooserDialog.addOrUpdateItem(item1WithNoIcon);
+ assertEquals(View.GONE, getImageContainerVisibilityForItem(items, 0));
+ assertEquals(1, itemAdapter.getCount());
+ assertEquals(itemAdapter.getItem(0), item1WithNoIcon);
+
+ // Add item 1 with no icon again.
+ mChooserDialog.addOrUpdateItem(item1WithNoIcon);
+ assertEquals(1, itemAdapter.getCount());
+ ItemChooserDialog.ItemChooserRow expectedItem =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ assertEquals(itemAdapter.getItem(0), expectedItem);
+ assertEquals(View.GONE, getImageContainerVisibilityForItem(items, 0));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @SmallTest
public void testAddOrUpdateItemAndRemoveItemFromList() throws InterruptedException {
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -224,25 +345,28 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
// Add item 1.
ItemChooserDialog.ItemChooserRow item1 =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", TEST_ICON1);
mChooserDialog.addOrUpdateItem(item1);
assertEquals(1, itemAdapter.getCount());
assertEquals(itemAdapter.getItem(0), item1);
+ assertEquals(View.VISIBLE, getImageContainerVisibilityForItem(items, 0));
- // Add item 1 with different description.
- ItemChooserDialog.ItemChooserRow item1_again =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1_again");
- mChooserDialog.addOrUpdateItem(item1_again);
+ // Add item 1 with different description and icon.
+ ItemChooserDialog.ItemChooserRow item1Again =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1_again", TEST_ICON2);
+ mChooserDialog.addOrUpdateItem(item1Again);
assertEquals(1, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1_again);
+ assertEquals(itemAdapter.getItem(0), item1Again);
+ assertEquals(View.VISIBLE, getImageContainerVisibilityForItem(items, 0));
// Add item 2.
ItemChooserDialog.ItemChooserRow item2 =
new ItemChooserDialog.ItemChooserRow("key2", "desc2");
mChooserDialog.addOrUpdateItem(item2);
assertEquals(2, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1_again);
+ assertEquals(itemAdapter.getItem(0), item1Again);
assertEquals(itemAdapter.getItem(1), item2);
+ assertEquals(View.GONE, getImageContainerVisibilityForItem(items, 1));
mChooserDialog.setIdleState();
@@ -253,7 +377,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
// Remove item 2.
mChooserDialog.removeItemFromList(item2);
assertEquals(1, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1_again);
+ assertEquals(itemAdapter.getItem(0), item1Again);
// The list should be visible with one item, it should not show
// the empty view and the button should not be enabled.
@@ -264,7 +388,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
assertFalse(button.isEnabled());
// Remove item 1.
- mChooserDialog.removeItemFromList(item1_again);
+ mChooserDialog.removeItemFromList(item1Again);
assertTrue(itemAdapter.isEmpty());
// Listview should now be showing empty, with an empty view visible

Powered by Google App Engine
This is Rietveld 408576698