| Index: ash/launcher/launcher_navigator_unittest.cc
|
| diff --git a/ash/launcher/launcher_navigator_unittest.cc b/ash/launcher/launcher_navigator_unittest.cc
|
| index 78f126170b73f4e865a9097aa9798902f9bdb86f..7fa3446226ef0dc581c036ae492c240efb155f1c 100644
|
| --- a/ash/launcher/launcher_navigator_unittest.cc
|
| +++ b/ash/launcher/launcher_navigator_unittest.cc
|
| @@ -4,9 +4,11 @@
|
|
|
| #include "ash/launcher/launcher_navigator.h"
|
|
|
| +#include "ash/ash_switches.h"
|
| #include "ash/launcher/launcher.h"
|
| #include "ash/launcher/launcher_model.h"
|
| #include "ash/launcher/launcher_types.h"
|
| +#include "base/command_line.h"
|
| #include "base/compiler_specific.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -62,7 +64,22 @@ class LauncherNavigatorTest : public testing::Test {
|
| DISALLOW_COPY_AND_ASSIGN(LauncherNavigatorTest);
|
| };
|
|
|
| -} // namespace
|
| +class LauncherNavigatorLegacyShelfLayoutTest : public LauncherNavigatorTest {
|
| + public:
|
| + LauncherNavigatorLegacyShelfLayoutTest() : LauncherNavigatorTest() {}
|
| +
|
| + protected:
|
| + virtual void SetUp() OVERRIDE {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + ash::switches::kAshDisableAlternateShelfLayout);
|
| + LauncherNavigatorTest::SetUp();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(LauncherNavigatorLegacyShelfLayoutTest);
|
| +};
|
| +
|
| +} // namespace
|
|
|
| TEST_F(LauncherNavigatorTest, BasicCycle) {
|
| // An app shortcut and three platform apps.
|
| @@ -70,6 +87,22 @@ TEST_F(LauncherNavigatorTest, BasicCycle) {
|
| TYPE_APP_SHORTCUT, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP,
|
| };
|
| // LauncherModel automatically adds BROWSER_SHORTCUT item at the
|
| + // beginning, so '3' refers the first TYPE_PLATFORM_APP item.
|
| + SetupMockLauncherModel(types, arraysize(types), 3);
|
| +
|
| + EXPECT_EQ(4, GetNextActivatedItemIndex(model(), CYCLE_FORWARD));
|
| +
|
| + // Fourth one. It will skip the APP_SHORTCUT at the beginning of the list and
|
| + // the APP_LIST item which is automatically added at the end of items.
|
| + EXPECT_EQ(5, GetNextActivatedItemIndex(model(), CYCLE_BACKWARD));
|
| +}
|
| +
|
| +TEST_F(LauncherNavigatorLegacyShelfLayoutTest, BasicCycle) {
|
| + // An app shortcut and three platform apps.
|
| + LauncherItemType types[] = {
|
| + TYPE_APP_SHORTCUT, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP,
|
| + };
|
| + // LauncherModel automatically adds BROWSER_SHORTCUT item at the
|
| // beginning, so '2' refers the first TYPE_PLATFORM_APP item.
|
| SetupMockLauncherModel(types, arraysize(types), 2);
|
|
|
| @@ -84,6 +117,18 @@ TEST_F(LauncherNavigatorTest, WrapToBeginning) {
|
| LauncherItemType types[] = {
|
| TYPE_APP_SHORTCUT, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP,
|
| };
|
| + SetupMockLauncherModel(types, arraysize(types), 5);
|
| +
|
| + // Second one. It skips the APP_LIST item at the end of the list,
|
| + // wraps to the beginning, and skips BROWSER_SHORTCUT and APP_SHORTCUT
|
| + // at the beginning of the list.
|
| + EXPECT_EQ(3, GetNextActivatedItemIndex(model(), CYCLE_FORWARD));
|
| +}
|
| +
|
| +TEST_F(LauncherNavigatorLegacyShelfLayoutTest, WrapToBeginning) {
|
| + LauncherItemType types[] = {
|
| + TYPE_APP_SHORTCUT, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP, TYPE_PLATFORM_APP,
|
| + };
|
| SetupMockLauncherModel(types, arraysize(types), 4);
|
|
|
| // Second one. It skips the APP_LIST item at the end of the list,
|
| @@ -100,6 +145,16 @@ TEST_F(LauncherNavigatorTest, Empty) {
|
|
|
| TEST_F(LauncherNavigatorTest, SingleEntry) {
|
| LauncherItemType type = TYPE_PLATFORM_APP;
|
| + SetupMockLauncherModel(&type, 1, 2);
|
| +
|
| + // If there's only one item there and it is already active, there's no item
|
| + // to be activated next.
|
| + EXPECT_EQ(-1, GetNextActivatedItemIndex(model(), CYCLE_FORWARD));
|
| + EXPECT_EQ(-1, GetNextActivatedItemIndex(model(), CYCLE_BACKWARD));
|
| +}
|
| +
|
| +TEST_F(LauncherNavigatorLegacyShelfLayoutTest, SingleEntry) {
|
| + LauncherItemType type = TYPE_PLATFORM_APP;
|
| SetupMockLauncherModel(&type, 1, 1);
|
|
|
| // If there's only one item there and it is already active, there's no item
|
| @@ -116,6 +171,18 @@ TEST_F(LauncherNavigatorTest, NoActive) {
|
| SetupMockLauncherModel(types, arraysize(types), -1);
|
|
|
| // If there are no active status, pick the first running item as a fallback.
|
| + EXPECT_EQ(2, GetNextActivatedItemIndex(model(), CYCLE_FORWARD));
|
| + EXPECT_EQ(2, GetNextActivatedItemIndex(model(), CYCLE_BACKWARD));
|
| +}
|
| +
|
| +TEST_F(LauncherNavigatorLegacyShelfLayoutTest, NoActive) {
|
| + LauncherItemType types[] = {
|
| + TYPE_PLATFORM_APP, TYPE_PLATFORM_APP,
|
| + };
|
| + // Special case: no items are 'STATUS_ACTIVE'.
|
| + SetupMockLauncherModel(types, arraysize(types), -1);
|
| +
|
| + // If there are no active status, pick the first running item as a fallback.
|
| EXPECT_EQ(1, GetNextActivatedItemIndex(model(), CYCLE_FORWARD));
|
| EXPECT_EQ(1, GetNextActivatedItemIndex(model(), CYCLE_BACKWARD));
|
| }
|
|
|