| 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(); | 
| +    } | 
| +} | 
|  |