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

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: Draft of LevelListDrawable and StateListDrawable Created 4 years, 2 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 3f1abe26b3f27a5c7751f51e5a6ec0700f737ea1..d07f766cac078c4b6f9bb2346167218b41689cb5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
@@ -5,6 +5,8 @@
package org.chromium.chrome.browser;
import android.app.Dialog;
+import android.content.res.Resources;
+import android.support.graphics.drawable.VectorDrawableCompat;
import android.test.suitebuilder.annotation.LargeTest;
import android.text.SpannableString;
import android.view.View;
@@ -33,6 +35,9 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
String mLastSelectedId = "None";
+ private ItemChooserDialog.ItemChooserRowIcon mTestIcon1;
+ private ItemChooserDialog.ItemChooserRowIcon mTestIcon2;
+
public ItemChooserDialogTest() {
super(ChromeActivity.class);
}
@@ -42,7 +47,20 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
@Override
protected void setUp() throws Exception {
super.setUp();
- mChooserDialog = createDialog();
+ Resources resources = getActivity().getResources();
+ mTestIcon1 = new ItemChooserDialog.ItemChooserRowIcon(
+ VectorDrawableCompat.create(
+ resources, R.drawable.ic_signal_cellular_0_bar_grey, null /* theme */),
+ VectorDrawableCompat.create(
+ resources, R.drawable.ic_signal_cellular_0_bar_white, null /* theme */),
+ resources.getQuantityString(R.plurals.signal_strength_level_n_bars, 0, 0));
+
+ mTestIcon2 = new ItemChooserDialog.ItemChooserRowIcon(
+ VectorDrawableCompat.create(
+ resources, R.drawable.ic_signal_cellular_1_bar_grey, null /* theme */),
+ VectorDrawableCompat.create(
+ resources, R.drawable.ic_signal_cellular_1_bar_white, null /* theme */),
+ resources.getQuantityString(R.plurals.signal_strength_level_n_bars, 1, 1));
}
@Override
@@ -57,7 +75,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
mLastSelectedId = id;
}
- private ItemChooserDialog createDialog() {
+ private ItemChooserDialog createDialog(final boolean usingIcon) {
SpannableString title = new SpannableString("title");
SpannableString searching = new SpannableString("searching");
SpannableString noneFound = new SpannableString("noneFound");
@@ -73,7 +91,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
@Override
public ItemChooserDialog call() {
ItemChooserDialog dialog = new ItemChooserDialog(
- getActivity(), ItemChooserDialogTest.this, labels);
+ getActivity(), ItemChooserDialogTest.this, labels, usingIcon);
return dialog;
}
});
@@ -116,8 +134,24 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
}));
}
+ private int getIconVisibilityForItem(ListView items, int pos) {
+ final int first = items.getFirstVisiblePosition();
+ final int last = items.getLastVisiblePosition();
+
+ 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.icon).getVisibility();
+ }
+
@LargeTest
public void testSimpleItemSelection() throws InterruptedException {
+ mChooserDialog = createDialog(false /* usingIcon */);
+
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -159,6 +193,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
@LargeTest
public void testNoItemsAddedDiscoveryIdle() throws InterruptedException {
+ mChooserDialog = createDialog(false /* usingIcon */);
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -187,6 +222,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
@LargeTest
public void testDisabledSelection() throws InterruptedException {
+ mChooserDialog = createDialog(false /* usingIcon */);
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -203,6 +239,33 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
}
@LargeTest
+ public void testNotUsingIconAdapterRows() throws InterruptedException {
+ mChooserDialog = createDialog(false /* usingIcon */);
+ 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 item1 =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ mChooserDialog.addOrUpdateItem(item1);
+ assertEquals(View.GONE, getIconVisibilityForItem(items, 0));
+
+ ItemChooserDialog.ItemChooserRow item2 =
+ new ItemChooserDialog.ItemChooserRow("key2", "desc2", mTestIcon1);
+ mChooserDialog.addOrUpdateItem(item2);
+ assertEquals(View.GONE, getIconVisibilityForItem(items, 1));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @LargeTest
public void testPairButtonDisabledOrEnabledAfterSelectedItemDisabledOrEnabled()
throws InterruptedException {
Dialog dialog = mChooserDialog.getDialogForTesting();
@@ -226,6 +289,33 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
}
@LargeTest
+ public void testUsingIconAdapterRows() throws InterruptedException {
+ mChooserDialog = createDialog(true /* usingIcon */);
+ 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 item1 =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ mChooserDialog.addOrUpdateItem(item1);
+ assertEquals(View.INVISIBLE, getIconVisibilityForItem(items, 0));
+
+ ItemChooserDialog.ItemChooserRow item2 =
+ new ItemChooserDialog.ItemChooserRow("key2", "desc2", mTestIcon1);
+ mChooserDialog.addOrUpdateItem(item2);
+ assertEquals(View.VISIBLE, getIconVisibilityForItem(items, 1));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @LargeTest
public void testPairButtonDisabledAfterSelectedItemRemoved() throws InterruptedException {
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -249,6 +339,75 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
}
@LargeTest
+ public void testUpdateItemWithIconToNoIcon() throws InterruptedException {
+ mChooserDialog = createDialog(true /* usingIcon */);
+ 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", mTestIcon1);
+ mChooserDialog.addOrUpdateItem(item1);
+ assertEquals(View.VISIBLE, getIconVisibilityForItem(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", mTestIcon1);
+ assertEquals(itemAdapter.getItem(0), expectedItem);
+ assertEquals(View.VISIBLE, getIconVisibilityForItem(items, 0));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @LargeTest
+ public void testUpdateItemWithNoIconToIcon() throws InterruptedException {
+ mChooserDialog = createDialog(true /* usingIcon */);
+ 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.INVISIBLE, getIconVisibilityForItem(items, 0));
+ assertEquals(1, itemAdapter.getCount());
+ assertEquals(itemAdapter.getItem(0), item1WithNoIcon);
+
+ // Add item 1 with icon.
+ ItemChooserDialog.ItemChooserRow item1 =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", mTestIcon1);
+ mChooserDialog.addOrUpdateItem(item1);
+ assertEquals(1, itemAdapter.getCount());
+ ItemChooserDialog.ItemChooserRow expectedItem =
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", mTestIcon1);
+ assertEquals(itemAdapter.getItem(0), expectedItem);
+ assertEquals(View.VISIBLE, getIconVisibilityForItem(items, 0));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @LargeTest
public void testSelectAnItemAndRemoveAnotherItem() throws InterruptedException {
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -284,6 +443,38 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
}
@LargeTest
+ public void testUpdateItemWithNoIconToNoIcon() throws InterruptedException {
+ mChooserDialog = createDialog(true /* usingIcon */);
+ 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.INVISIBLE, getIconVisibilityForItem(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.INVISIBLE, getIconVisibilityForItem(items, 0));
+
+ mChooserDialog.setIdleState();
+ mChooserDialog.dismiss();
+ }
+
+ @LargeTest
public void testSelectAnItemAndRemoveTheSelectedItem() throws InterruptedException {
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -315,6 +506,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
@LargeTest
public void testAddOrUpdateItemAndRemoveItemFromList() throws InterruptedException {
+ mChooserDialog = createDialog(true /* usingIcon */);
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -336,25 +528,28 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
// Add item 1.
ItemChooserDialog.ItemChooserRow item1 =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1");
+ new ItemChooserDialog.ItemChooserRow("key1", "desc1", mTestIcon1);
mChooserDialog.addOrUpdateItem(item1);
assertEquals(1, itemAdapter.getCount());
assertEquals(itemAdapter.getItem(0), item1);
+ assertEquals(View.VISIBLE, getIconVisibilityForItem(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", mTestIcon2);
+ mChooserDialog.addOrUpdateItem(item1Again);
assertEquals(1, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1_again);
+ assertEquals(itemAdapter.getItem(0), item1Again);
+ assertEquals(View.VISIBLE, getIconVisibilityForItem(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.INVISIBLE, getIconVisibilityForItem(items, 1));
mChooserDialog.setIdleState();
@@ -365,7 +560,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.
@@ -376,7 +571,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
@@ -392,6 +587,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
@LargeTest
public void testAddItemWithSameNameToListAndRemoveItemFromList() throws InterruptedException {
+ mChooserDialog = createDialog(false /* usingIcon */);
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());

Powered by Google App Engine
This is Rietveld 408576698