16e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 26e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 36e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// found in the LICENSE file. 46e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "athena/wm/split_view_controller.h" 66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "athena/screen/public/screen_manager.h" 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "athena/test/athena_test_base.h" 903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "athena/wm/public/window_list_provider.h" 1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "athena/wm/test/window_manager_impl_test_api.h" 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "base/memory/scoped_vector.h" 126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "ui/aura/test/test_window_delegate.h" 136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "ui/aura/window.h" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/gfx/display.h" 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/gfx/screen.h" 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/wm/core/window_util.h" 176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)namespace athena { 196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass SplitViewControllerTest : public test::AthenaTestBase { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SplitViewControllerTest() {} 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~SplitViewControllerTest() {} 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // test::AthenaTestBase: 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void SetUp() OVERRIDE { 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci test::AthenaTestBase::SetUp(); 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci api_.reset(new test::WindowManagerImplTestApi); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void TearDown() OVERRIDE { 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci api_.reset(); 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci test::AthenaTestBase::TearDown(); 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns the topmost window in z-order. 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const aura::Window* GetTopmostWindow() const { 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return *api_->GetWindowListProvider()->GetWindowList().rbegin(); 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns the second topmost window in z-order. 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const aura::Window* GetSecondTopmostWindow() const { 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const aura::Window::Windows& list = 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci api_->GetWindowListProvider()->GetWindowList(); 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return *(list.rbegin() + 1); 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Returns whether only the split view windows are visible. 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool OnlySplitViewWindowsVisible() const { 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SplitViewController* controller = api_->GetSplitViewController(); 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DCHECK(controller->IsSplitViewModeActive()); 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci aura::Window::Windows list = 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci api_->GetWindowListProvider()->GetWindowList(); 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci for (aura::Window::Windows::const_iterator it = list.begin(); 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci it != list.end(); ++it) { 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool in_split_view = (*it == controller->left_window() || 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci *it == controller->right_window()); 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (in_split_view != (*it)->IsVisible()) 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return false; 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return true; 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool IsSplitViewAllowed() const { 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return api_->GetSplitViewController()->CanActivateSplitViewMode(); 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci test::WindowManagerImplTestApi* api() { 691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return api_.get(); 701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<test::WindowManagerImplTestApi> api_; 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(SplitViewControllerTest); 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 776e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 786e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// Tests that when split mode is activated, the windows on the left and right 796e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)// are selected correctly. 806e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)TEST_F(SplitViewControllerTest, SplitModeActivation) { 816e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) aura::test::TestWindowDelegate delegate; 826e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) ScopedVector<aura::Window> windows; 836e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) const int kNumWindows = 6; 846e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) for (size_t i = 0; i < kNumWindows; ++i) { 8503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect()); 8603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) windows.push_back(window.release()); 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci windows[i]->Hide(); 886e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) } 896e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci windows[kNumWindows - 1]->Show(); 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci wm::ActivateWindow(windows[kNumWindows - 1]); 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SplitViewController* controller = api()->GetSplitViewController(); 9403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) ASSERT_FALSE(controller->IsSplitViewModeActive()); 956e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode(NULL, NULL, NULL); 9703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) ASSERT_TRUE(controller->IsSplitViewModeActive()); 986e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // The last two windows should be on the left and right, respectively. 9903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 10003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); 1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow()); 1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow()); 1031320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1046e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1056e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // Select the window that is currently on the left for the right panel. The 1066e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // windows should switch. 1071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode( 1081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci NULL, windows[kNumWindows - 1], windows[kNumWindows - 1]); 10903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[kNumWindows - 2], controller->left_window()); 11003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[kNumWindows - 1], controller->right_window()); 1111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow()); 1121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow()); 1131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode( 1161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci windows[kNumWindows - 1], NULL, windows[kNumWindows - 1]); 1171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 1181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); 1191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 1], GetTopmostWindow()); 1201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 2], GetSecondTopmostWindow()); 1211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Select the same windows, but pass in a different window to activate. 1241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode(windows[kNumWindows - 1], 1251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci windows[kNumWindows - 2], 1261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci windows[kNumWindows - 2]); 12703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 12803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[kNumWindows - 2], controller->right_window()); 1291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 2], GetTopmostWindow()); 1301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow()); 1311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // Select one of the windows behind the stacks for the right panel. The window 1346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) // on the left should remain unchanged. 1351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode(NULL, windows[0], windows[0]); 13603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[kNumWindows - 1], controller->left_window()); 13703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[0], controller->right_window()); 1381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[0], GetTopmostWindow()); 1391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[kNumWindows - 1], GetSecondTopmostWindow()); 1401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode(windows[1], NULL, NULL); 14303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[1], controller->left_window()); 14403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[0], controller->right_window()); 1451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[0], GetTopmostWindow()); 1461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[1], GetSecondTopmostWindow()); 1471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1486e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 1491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode(windows[4], windows[5], windows[5]); 15003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[4], controller->left_window()); 15103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(windows[5], controller->right_window()); 1521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[5], GetTopmostWindow()); 1531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[4], GetSecondTopmostWindow()); 1541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode(windows[0], NULL, windows[0]); 1571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[0], controller->left_window()); 1581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[5], controller->right_window()); 1591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[0], GetTopmostWindow()); 1601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(windows[5], GetSecondTopmostWindow()); 1611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(OnlySplitViewWindowsVisible()); 1621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 1631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST_F(SplitViewControllerTest, LandscapeOnly) { 1651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci aura::test::TestWindowDelegate delegate; 1661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ScopedVector<aura::Window> windows; 1671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const int kNumWindows = 2; 1681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci for (size_t i = 0; i < kNumWindows; ++i) { 1691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect()); 1701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci window->Hide(); 1711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci windows.push_back(window.release()); 1721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 1731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci windows[kNumWindows - 1]->Show(); 1741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci wm::ActivateWindow(windows[kNumWindows - 1]); 1751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_EQ(gfx::Display::ROTATE_0, 1771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation()); 1781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SplitViewController* controller = api()->GetSplitViewController(); 1801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_TRUE(IsSplitViewAllowed()); 1811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_FALSE(controller->IsSplitViewModeActive()); 1821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->ActivateSplitMode(NULL, NULL, NULL); 1841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_TRUE(controller->IsSplitViewModeActive()); 1851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Screen rotation should be locked while in splitview. 1871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ScreenManager::Get()->SetRotation(gfx::Display::ROTATE_90); 1881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(gfx::Display::ROTATE_0, 1891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation()); 1901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Screen is rotated on exiting splitview. 1921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci controller->DeactivateSplitMode(); 1931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ASSERT_EQ(gfx::Display::ROTATE_90, 1941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().rotation()); 1951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Entering splitview should now be disabled now that the screen is in a 1971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // portrait orientation. 1981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FALSE(IsSplitViewAllowed()); 1991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Rotating back to 0 allows splitview again. 2011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ScreenManager::Get()->SetRotation(gfx::Display::ROTATE_0); 2021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE(IsSplitViewAllowed()); 2036e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} 2046e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 2056e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)} // namespace athena 206