Index: chrome/android/javatests/src/org/chromium/chrome/browser/TabCountLabelTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/TabCountLabelTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/TabCountLabelTest.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..327997b732037eca549d925490b0d13bb34b51b4 |
--- /dev/null |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/TabCountLabelTest.java |
@@ -0,0 +1,61 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser; |
+ |
+import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_PHONE; |
+ |
+import android.test.suitebuilder.annotation.MediumTest; |
+import android.widget.ImageButton; |
+ |
+import com.google.android.apps.chrome.R; |
+ |
+import org.chromium.base.test.util.Feature; |
+import org.chromium.base.test.util.Restriction; |
+import org.chromium.chrome.browser.toolbar.TabSwitcherDrawable; |
+import org.chromium.chrome.test.ChromeTabbedActivityTestBase; |
+import org.chromium.chrome.test.util.ChromeTabUtils; |
+ |
+/** |
+ * Test suite for the tab count widget on the phone toolbar. |
+ */ |
+ |
+public class TabCountLabelTest extends ChromeTabbedActivityTestBase { |
+ |
+ /** |
+ * Check the tabCount string against an expected value. |
+ */ |
+ private void tabCountLabelCheck(String stepName, int tabCountExpected) { |
+ ImageButton tabSwitcherBtn = |
+ (ImageButton) getActivity().findViewById(R.id.tab_switcher_button); |
+ TabSwitcherDrawable drawable = (TabSwitcherDrawable) tabSwitcherBtn.getDrawable(); |
+ int tabCountFromDrawable = drawable.getTabCount(); |
+ assertTrue(stepName + ", " + tabCountExpected + " tab[s] expected, label shows " |
+ + tabCountFromDrawable, tabCountExpected == tabCountFromDrawable); |
+ } |
+ |
+ /** |
+ * Verify displayed Tab Count matches the actual number of tabs. |
+ */ |
+ @MediumTest |
+ @Feature({"Browser", "Main"}) |
+ @Restriction(RESTRICTION_TYPE_PHONE) |
+ public void testTabCountLabel() throws InterruptedException { |
+ final int tabCount = getActivity().getCurrentTabModel().getCount(); |
+ tabCountLabelCheck("Initial state", tabCount); |
+ ChromeTabUtils.newTabFromMenu(getInstrumentation(), getActivity()); |
+ // Make sure the TAB_CREATED notification went through |
+ getInstrumentation().waitForIdleSync(); |
+ tabCountLabelCheck("After new tab", tabCount + 1); |
+ ChromeTabUtils.closeCurrentTab(getInstrumentation(), getActivity()); |
+ // Make sure the TAB_CLOSED notification went through |
+ getInstrumentation().waitForIdleSync(); |
+ tabCountLabelCheck("After close tab", tabCount); |
+ } |
+ |
+ @Override |
+ public void startMainActivity() throws InterruptedException { |
+ startMainActivityOnBlankPage(); |
+ } |
+} |