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

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

Issue 2426573005: bluetooth-chooser: Refactor and clean up bluetooth chooser (Closed)
Patch Set: Address tedchoc's comments 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 d97836dc13a96830ba9f3c6c64ecdb47e2769417..357e328d2d19b3a19fcfe3d19670e92dde14df62 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java
@@ -133,8 +133,8 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
assertFalse(button.isEnabled());
assertEquals(View.GONE, items.getVisibility());
- mChooserDialog.addOrUpdateItem(new ItemChooserDialog.ItemChooserRow("key", "key"));
- mChooserDialog.addOrUpdateItem(new ItemChooserDialog.ItemChooserRow("key2", "key2"));
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
// Two items showing, the empty view should be no more and the button
// should now be enabled.
@@ -153,7 +153,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
assertFalse(button.isEnabled());
// Select the first item and verify it got selected.
- selectItem(dialog, 1, "key", true);
+ selectItem(dialog, 1, "key1", true);
mChooserDialog.dismiss();
}
@@ -191,11 +191,11 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
- mChooserDialog.addOrUpdateItem(new ItemChooserDialog.ItemChooserRow("key", "key"));
- mChooserDialog.addOrUpdateItem(new ItemChooserDialog.ItemChooserRow("key2", "key2"));
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
// Disable one item and try to select it.
- mChooserDialog.setEnabled("key", false);
+ mChooserDialog.setEnabled("key1", false);
selectItem(dialog, 1, "None", false);
// The other is still selectable.
selectItem(dialog, 2, "key2", true);
@@ -211,8 +211,8 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
final Button button = (Button) dialog.findViewById(R.id.positive);
- mChooserDialog.addOrUpdateItem(new ItemChooserDialog.ItemChooserRow("key1", "desc1"));
- mChooserDialog.addOrUpdateItem(new ItemChooserDialog.ItemChooserRow("key2", "desc2"));
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
selectItem(dialog, 1, "key1", true);
assertTrue(button.isEnabled());
@@ -233,17 +233,13 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
final Button button = (Button) dialog.findViewById(R.id.positive);
- ItemChooserDialog.ItemChooserRow item1 =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1");
- ItemChooserDialog.ItemChooserRow item2 =
- new ItemChooserDialog.ItemChooserRow("key2", "desc2");
- mChooserDialog.addOrUpdateItem(item1);
- mChooserDialog.addOrUpdateItem(item2);
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
selectItem(dialog, 1, "key1", true);
assertTrue(button.isEnabled());
- mChooserDialog.removeItemFromList(item1);
+ mChooserDialog.removeItemFromList("key1");
assertFalse(button.isEnabled());
mChooserDialog.dismiss();
@@ -257,27 +253,20 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
final Button button = (Button) dialog.findViewById(R.id.positive);
ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
- ItemChooserDialog.ItemChooserRow item1 =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1");
- ItemChooserDialog.ItemChooserRow item2 =
- new ItemChooserDialog.ItemChooserRow("key2", "desc2");
- ItemChooserDialog.ItemChooserRow item3 =
- new ItemChooserDialog.ItemChooserRow("key3", "desc3");
-
- mChooserDialog.addOrUpdateItem(item1);
- mChooserDialog.addOrUpdateItem(item2);
- mChooserDialog.addOrUpdateItem(item3);
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
+ mChooserDialog.addOrUpdateItem("key3", "desc3");
selectItem(dialog, 2, "key2", true);
assertTrue(button.isEnabled());
// Remove the item before the currently selected item.
- mChooserDialog.removeItemFromList(item1);
+ mChooserDialog.removeItemFromList("key1");
assertTrue(button.isEnabled());
assertEquals("key2", itemAdapter.getSelectedItemKey());
// Remove the item after the currently selected item.
- mChooserDialog.removeItemFromList(item3);
+ mChooserDialog.removeItemFromList("key3");
assertTrue(button.isEnabled());
assertEquals("key2", itemAdapter.getSelectedItemKey());
@@ -292,22 +281,15 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
final Button button = (Button) dialog.findViewById(R.id.positive);
ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
- ItemChooserDialog.ItemChooserRow item1 =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1");
- ItemChooserDialog.ItemChooserRow item2 =
- new ItemChooserDialog.ItemChooserRow("key2", "desc2");
- ItemChooserDialog.ItemChooserRow item3 =
- new ItemChooserDialog.ItemChooserRow("key3", "desc3");
-
- mChooserDialog.addOrUpdateItem(item1);
- mChooserDialog.addOrUpdateItem(item2);
- mChooserDialog.addOrUpdateItem(item3);
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
+ mChooserDialog.addOrUpdateItem("key3", "desc3");
selectItem(dialog, 2, "key2", true);
assertTrue(button.isEnabled());
// Remove the selected item.
- mChooserDialog.removeItemFromList(item2);
+ mChooserDialog.removeItemFromList("key2");
assertFalse(button.isEnabled());
assertEquals("", itemAdapter.getSelectedItemKey());
@@ -316,7 +298,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
@LargeTest
@UiThreadTest
- public void testAddOrUpdateItemAndRemoveItemFromList() throws InterruptedException {
+ public void testUpdateItemAndRemoveItemFromList() throws InterruptedException {
Dialog dialog = mChooserDialog.getDialogForTesting();
assertTrue(dialog.isShowing());
@@ -326,48 +308,84 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
final Button button = (Button) dialog.findViewById(R.id.positive);
ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
- ItemChooserDialog.ItemChooserRow nonExistentItem =
- new ItemChooserDialog.ItemChooserRow("key", "key");
+ final String nonExistentKey = "key";
// Initially the itemAdapter is empty.
assertTrue(itemAdapter.isEmpty());
// Try removing an item from an empty itemAdapter.
- mChooserDialog.removeItemFromList(nonExistentItem);
+ mChooserDialog.removeItemFromList(nonExistentKey);
assertTrue(itemAdapter.isEmpty());
// Add item 1.
- ItemChooserDialog.ItemChooserRow item1 =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1");
- mChooserDialog.addOrUpdateItem(item1);
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
assertEquals(1, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1);
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key1", "desc1"));
- // Add item 1 with different description.
- ItemChooserDialog.ItemChooserRow item1_again =
- new ItemChooserDialog.ItemChooserRow("key1", "desc1_again");
- mChooserDialog.addOrUpdateItem(item1_again);
+ // Update item 1 with different description.
+ mChooserDialog.addOrUpdateItem("key1", "desc2");
assertEquals(1, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1_again);
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key1", "desc2"));
+
+ mChooserDialog.setIdleState();
+
+ // Remove item 1.
+ mChooserDialog.removeItemFromList("key1");
+ assertTrue(itemAdapter.isEmpty());
+
+ // Listview should now be showing empty, with an empty view visible
+ // and the button should not be enabled.
+ // The chooser should show a status message at the bottom.
+ assertEquals(View.GONE, items.getVisibility());
+ assertEquals(View.VISIBLE, items.getEmptyView().getVisibility());
+ assertEquals("statusIdleNoneFound", statusView.getText().toString());
+ assertFalse(button.isEnabled());
+
+ mChooserDialog.dismiss();
+ }
+
+ @LargeTest
+ @UiThreadTest
+ public void testAddItemAndRemoveItemFromList() throws InterruptedException {
+ Dialog dialog = mChooserDialog.getDialogForTesting();
+ assertTrue(dialog.isShowing());
+
+ TextViewWithClickableSpans statusView =
+ (TextViewWithClickableSpans) dialog.findViewById(R.id.status);
+ final ListView items = (ListView) dialog.findViewById(R.id.items);
+ final Button button = (Button) dialog.findViewById(R.id.positive);
+
+ ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
+ final String nonExistentKey = "key";
+
+ // Initially the itemAdapter is empty.
+ assertTrue(itemAdapter.isEmpty());
+
+ // Try removing an item from an empty itemAdapter.
+ mChooserDialog.removeItemFromList(nonExistentKey);
+ assertTrue(itemAdapter.isEmpty());
+
+ // Add item 1.
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
+ assertEquals(1, itemAdapter.getCount());
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key1", "desc1"));
// Add item 2.
- ItemChooserDialog.ItemChooserRow item2 =
- new ItemChooserDialog.ItemChooserRow("key2", "desc2");
- mChooserDialog.addOrUpdateItem(item2);
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
assertEquals(2, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1_again);
- assertEquals(itemAdapter.getItem(1), item2);
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key1", "desc1"));
+ assertTrue(itemAdapter.getItem(1).hasSameContents("key2", "desc2"));
mChooserDialog.setIdleState();
// Try removing an item that doesn't exist.
- mChooserDialog.removeItemFromList(nonExistentItem);
+ mChooserDialog.removeItemFromList(nonExistentKey);
assertEquals(2, itemAdapter.getCount());
// Remove item 2.
- mChooserDialog.removeItemFromList(item2);
+ mChooserDialog.removeItemFromList("key2");
assertEquals(1, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1_again);
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key1", "desc1"));
// The list should be visible with one item, it should not show
// the empty view and the button should not be enabled.
@@ -378,7 +396,7 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
assertFalse(button.isEnabled());
// Remove item 1.
- mChooserDialog.removeItemFromList(item1_again);
+ mChooserDialog.removeItemFromList("key1");
assertTrue(itemAdapter.isEmpty());
// Listview should now be showing empty, with an empty view visible
@@ -401,52 +419,41 @@ public class ItemChooserDialogTest extends ChromeActivityTestCaseBase<ChromeActi
ItemChooserDialog.ItemAdapter itemAdapter = mChooserDialog.getItemAdapterForTesting();
// Add item 1.
- ItemChooserDialog.ItemChooserRow item1 =
- new ItemChooserDialog.ItemChooserRow("device_id_1", "same_device_name");
- mChooserDialog.addOrUpdateItem(item1);
+ mChooserDialog.addOrUpdateItem("key1", "desc1");
assertEquals(1, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1);
-
// Add item 2.
- ItemChooserDialog.ItemChooserRow item2 =
- new ItemChooserDialog.ItemChooserRow("device_id_2", "different_device_name");
- mChooserDialog.addOrUpdateItem(item2);
+ mChooserDialog.addOrUpdateItem("key2", "desc2");
assertEquals(2, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1);
- assertEquals(itemAdapter.getItem(1), item2);
-
- // Add item 3.
- ItemChooserDialog.ItemChooserRow item3 =
- new ItemChooserDialog.ItemChooserRow("device_id_3", "same_device_name");
- mChooserDialog.addOrUpdateItem(item3);
+ // Add item 3 with same description as item 1.
+ mChooserDialog.addOrUpdateItem("key3", "desc1");
assertEquals(3, itemAdapter.getCount());
- assertEquals(itemAdapter.getItem(0), item1);
- assertEquals(itemAdapter.getItem(1), item2);
- assertEquals(itemAdapter.getItem(2), item3);
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key1", "desc1"));
+ assertTrue(itemAdapter.getItem(1).hasSameContents("key2", "desc2"));
+ assertTrue(itemAdapter.getItem(2).hasSameContents("key3", "desc1"));
// Since two items have the same name, their display text should have their unique
// keys appended.
- assertEquals("same_device_name (device_id_1)", itemAdapter.getDisplayText(0));
- assertEquals("different_device_name", itemAdapter.getDisplayText(1));
- assertEquals("same_device_name (device_id_3)", itemAdapter.getDisplayText(2));
+ assertEquals("desc1 (key1)", itemAdapter.getDisplayText(0));
+ assertEquals("desc2", itemAdapter.getDisplayText(1));
+ assertEquals("desc1 (key3)", itemAdapter.getDisplayText(2));
// Remove item 2.
- mChooserDialog.removeItemFromList(item2);
+ mChooserDialog.removeItemFromList("key2");
assertEquals(2, itemAdapter.getCount());
// Make sure the remaining items are item 1 and item 3.
- assertEquals(itemAdapter.getItem(0), item1);
- assertEquals(itemAdapter.getItem(1), item3);
- assertEquals("same_device_name (device_id_1)", itemAdapter.getDisplayText(0));
- assertEquals("same_device_name (device_id_3)", itemAdapter.getDisplayText(1));
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key1", "desc1"));
+ assertTrue(itemAdapter.getItem(1).hasSameContents("key3", "desc1"));
+ assertEquals("desc1 (key1)", itemAdapter.getDisplayText(0));
+ assertEquals("desc1 (key3)", itemAdapter.getDisplayText(1));
// Remove item 1.
- mChooserDialog.removeItemFromList(item1);
+ mChooserDialog.removeItemFromList("key1");
assertEquals(1, itemAdapter.getCount());
// Make sure the remaining item is item 3.
- assertEquals(itemAdapter.getItem(0), item3);
+ assertTrue(itemAdapter.getItem(0).hasSameContents("key3", "desc1"));
// After removing item 1, item 3 is the only remaining item, so its display text
// also changed to its original description.
- assertEquals("same_device_name", itemAdapter.getDisplayText(0));
+ assertEquals("desc1", itemAdapter.getDisplayText(0));
mChooserDialog.dismiss();
}

Powered by Google App Engine
This is Rietveld 408576698