diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | tests/MockWindowManager.h | 1 | ||||
| -rw-r--r-- | tests/autopilot/unity/emulators/switcher.py | 6 | ||||
| -rw-r--r-- | tests/test-gestures/WindowGestureTargetMock.h | 1 | ||||
| -rw-r--r-- | tests/test-gestures/compiz_mock/core/screen.h | 1 | ||||
| -rw-r--r-- | tests/test-gestures/test_gestures_main.cpp | 1 | ||||
| -rw-r--r-- | tests/test_keyboard_util.cpp | 172 | ||||
| -rw-r--r-- | tests/test_overlay_scrollbar.cpp | 478 | ||||
| -rw-r--r-- | tests/test_switcher_controller.cpp | 2 | ||||
| -rw-r--r-- | tests/test_switcher_controller.h | 1 | ||||
| -rw-r--r-- | tests/test_switcher_controller_class.cpp | 5 | ||||
| -rw-r--r-- | tests/test_switcher_model.cpp | 45 | ||||
| -rw-r--r-- | tests/test_switcher_view.cpp | 4 |
13 files changed, 164 insertions, 554 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 50542c592..82b132830 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -261,7 +261,6 @@ if (ENABLE_X_SUPPORT) test_previews_music_payment.cpp test_previews_payment.cpp test_previews_social.cpp - test_overlay_scrollbar.cpp test_quicklist_manager.cpp test_quicklist_menu_item.cpp test_quicklist_view.cpp diff --git a/tests/MockWindowManager.h b/tests/MockWindowManager.h index f1093d61d..19df0db4c 100644 --- a/tests/MockWindowManager.h +++ b/tests/MockWindowManager.h @@ -101,6 +101,7 @@ class MockWindowManager : public WindowManager MOCK_CONST_METHOD1(GetWindowName, std::string(Window)); MOCK_CONST_METHOD1(IsOnscreenKeyboard, bool(Window)); + MOCK_CONST_METHOD1(GetCachedCursor, Cursor(unsigned int)); MOCK_METHOD1(AddProperties, void(GVariantBuilder*)); }; diff --git a/tests/autopilot/unity/emulators/switcher.py b/tests/autopilot/unity/emulators/switcher.py index 8626412cf..9bd9a256c 100644 --- a/tests/autopilot/unity/emulators/switcher.py +++ b/tests/autopilot/unity/emulators/switcher.py @@ -93,11 +93,11 @@ class SwitcherController(UnityIntrospectionObject, KeybindingsHelper): """Returns the SwitcherMode that the switcher is currently in.""" if not self.visible: return None - if self.model.detail_selection and not self.model.only_detail_on_viewport: + if self.model.detail_selection and not self.model.only_apps_on_viewport: return SwitcherMode.DETAIL, SwitcherMode.ALL elif self.model.detail_selection: return SwitcherMode.DETAIL - elif not self.model.only_detail_on_viewport: + elif not self.model.only_apps_on_viewport: return SwitcherMode.ALL else: return SwitcherMode.NORMAL @@ -115,7 +115,7 @@ class SwitcherController(UnityIntrospectionObject, KeybindingsHelper): elif mode == SwitcherMode.ALL: logger.debug("Initiating switcher in 'all workspaces' mode. Ctrl+Alt+Tab") self.keybinding_hold_part_then_tap("switcher/reveal_all") - self.model.only_detail_on_viewport.wait_for(False) + self.model.only_apps_on_viewport.wait_for(False) def next_icon(self): """Move to the next icon.""" diff --git a/tests/test-gestures/WindowGestureTargetMock.h b/tests/test-gestures/WindowGestureTargetMock.h index e43bad80c..6d0a1a9f4 100644 --- a/tests/test-gestures/WindowGestureTargetMock.h +++ b/tests/test-gestures/WindowGestureTargetMock.h @@ -32,7 +32,6 @@ class WindowGestureTargetMock : public nux::GestureTarget CompWindowMock *window; std::list<nux::GestureEvent> events_received; - static Cursor fleur_cursor; private: virtual bool Equals(const nux::GestureTarget& other) const { diff --git a/tests/test-gestures/compiz_mock/core/screen.h b/tests/test-gestures/compiz_mock/core/screen.h index 225d41c65..f8dd81058 100644 --- a/tests/test-gestures/compiz_mock/core/screen.h +++ b/tests/test-gestures/compiz_mock/core/screen.h @@ -58,6 +58,7 @@ public: } Cursor invisibleCursor() {return 1;} + Cursor cursorCache(unsigned int) {return 0;} int width_; int height_; diff --git a/tests/test-gestures/test_gestures_main.cpp b/tests/test-gestures/test_gestures_main.cpp index 1d99b8a25..8c863fa40 100644 --- a/tests/test-gestures/test_gestures_main.cpp +++ b/tests/test-gestures/test_gestures_main.cpp @@ -46,7 +46,6 @@ void nux::GestureEvent::Reject() g_gesture_event_reject_count[gesture_id_] + 1; } -Cursor WindowGestureTargetMock::fleur_cursor = 0; std::set<WindowGestureTargetMock*> g_window_target_mocks; int main(int argc, char** argv) diff --git a/tests/test_keyboard_util.cpp b/tests/test_keyboard_util.cpp index f596f2af1..4e315b140 100644 --- a/tests/test_keyboard_util.cpp +++ b/tests/test_keyboard_util.cpp @@ -30,48 +30,148 @@ using namespace unity; namespace { -void test_key(Display* x_display, const char* key) +TEST(TestKeyboardUtil, AboveKeySymbol) { - KeySym keysym = XStringToKeysym(key); - KeySym above_keysym = keyboard::get_key_above_key_symbol(x_display, keysym); - EXPECT_NE(above_keysym, NoSymbol); + Display* x_display = XOpenDisplay(NULL); + + ASSERT_EQ(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("escape")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("Tab")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("Shift_R")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("Control_L")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("space")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("comma")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("a")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("b")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("c")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("d")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("e")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("f")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("g")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("h")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("i")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("j")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("l")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("m")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("n")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("o")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("p")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("r")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("s")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("t")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("u")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("v")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("w")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("x")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("y")), NoSymbol); + ASSERT_NE(keyboard::get_key_above_key_symbol(x_display, XStringToKeysym("z")), NoSymbol); } -TEST(TestKeyboardUtil, AboveKeySymbol) +TEST(TestKeyboardUtil, BelowKeySymbol) +{ + Display* x_display = XOpenDisplay(NULL); + + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("Tab")), NoSymbol); + ASSERT_EQ(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("Control_L")), NoSymbol); + ASSERT_EQ(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("space")), NoSymbol); + ASSERT_EQ(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("comma")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("a")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("b")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("d")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("e")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("f")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("g")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("h")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("i")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("j")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("l")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("o")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("p")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("r")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("s")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("t")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("u")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("w")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("x")), NoSymbol); + ASSERT_NE(keyboard::get_key_below_key_symbol(x_display, XStringToKeysym("y")), NoSymbol); +} + +TEST(TestKeyboardUtil, RightToKeySymbol) +{ + Display* x_display = XOpenDisplay(NULL); + + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("Tab")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("Shift_R")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("Control_L")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("space")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("comma")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("a")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("b")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("c")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("d")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("e")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("f")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("g")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("h")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("i")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("j")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("l")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("m")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("n")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("o")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("p")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("r")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("s")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("t")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("u")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("v")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("w")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("x")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("y")), NoSymbol); + ASSERT_NE(keyboard::get_key_right_to_key_symbol(x_display, XStringToKeysym("z")), NoSymbol); +} + +TEST(TestKeyboardUtil, LeftToKeySymbol) { Display* x_display = XOpenDisplay(NULL); - test_key(x_display, "Tab"); - test_key(x_display, "Shift_R"); - test_key(x_display, "Control_L"); - test_key(x_display, "space"); - test_key(x_display, "comma"); - test_key(x_display, "a"); - test_key(x_display, "b"); - test_key(x_display, "c"); - test_key(x_display, "d"); - test_key(x_display, "e"); - test_key(x_display, "f"); - test_key(x_display, "g"); - test_key(x_display, "h"); - test_key(x_display, "i"); - test_key(x_display, "j"); - test_key(x_display, "k"); - test_key(x_display, "l"); - test_key(x_display, "m"); - test_key(x_display, "n"); - test_key(x_display, "o"); - test_key(x_display, "p"); - test_key(x_display, "k"); - test_key(x_display, "r"); - test_key(x_display, "s"); - test_key(x_display, "t"); - test_key(x_display, "u"); - test_key(x_display, "v"); - test_key(x_display, "w"); - test_key(x_display, "x"); - test_key(x_display, "y"); - test_key(x_display, "z"); + ASSERT_EQ(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("Tab")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("Shift_R")), NoSymbol); + ASSERT_EQ(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("Control_L")), NoSymbol); + ASSERT_EQ(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("escape")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("space")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("comma")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("a")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("b")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("c")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("d")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("e")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("f")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("g")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("h")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("i")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("j")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("l")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("m")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("n")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("o")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("p")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("k")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("r")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("s")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("t")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("u")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("v")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("w")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("x")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("y")), NoSymbol); + ASSERT_NE(keyboard::get_key_left_to_key_symbol(x_display, XStringToKeysym("z")), NoSymbol); } TEST(TestKeyboardUtil, PrintableKeySymbols) diff --git a/tests/test_overlay_scrollbar.cpp b/tests/test_overlay_scrollbar.cpp deleted file mode 100644 index 6d38d87dd..000000000 --- a/tests/test_overlay_scrollbar.cpp +++ /dev/null @@ -1,478 +0,0 @@ -/* - * Copyright 2012 Canonical Ltd. - * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License version 3, as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranties of - * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the applicable version of the GNU Lesser General Public - * License for more details. - * - * You should have received a copy of both the GNU Lesser General Public - * License version 3 along with this program. If not, see - * <http://www.gnu.org/licenses/> - * - * Authored by: Brandon Schaefer <brandon.schaefer@canonical.com> - * - */ - -#include <gtest/gtest.h> - -#include <Nux/Nux.h> -#include <Nux/NuxTimerTickSource.h> -#include <Nux/VLayout.h> -#include <NuxCore/ObjectPtr.h> -#include <NuxCore/AnimationController.h> - - -#include "unity-shared/VScrollBarOverlayWindow.h" -#include "unity-shared/PlacesOverlayVScrollBar.h" -#include "unity-shared/UScreen.h" - -using namespace unity::dash; -using namespace testing; - -namespace unity -{ - -namespace -{ - const unsigned SCROLL_TICK = 1000 * 401; - const unsigned SHOW_TICK = 1000 * 91; -} - -class TestOverlayWindow : public Test -{ -public: - TestOverlayWindow() - : show_tick_(0) - , animation_controller_(tick_source_) - , overlay_window_(new VScrollBarOverlayWindow(nux::Geometry(0,0,100,100))) - {} - - int GetProxListSize() const - { - return nux::GetWindowThread()->GetWindowCompositor().GetProximityListSize(); - } - - void ShowAnimation() - { - // (tick_source_); - show_tick_ += SHOW_TICK; - tick_source_.tick(show_tick_); - } - - unsigned show_tick_; - nux::NuxTimerTickSource tick_source_; - nux::animation::AnimationController animation_controller_; - nux::ObjectPtr<VScrollBarOverlayWindow> overlay_window_; -}; - -namespace dash -{ - -class MockScrollBar : public unity::dash::PlacesOverlayVScrollBar -{ - public: - MockScrollBar(NUX_FILE_LINE_DECL) - : PlacesOverlayVScrollBar(NUX_FILE_LINE_PARAM) - , animation_controller(tick_source_) - , scroll_tick_(0) - , scroll_dy_(0) - , thumbs_height_(overlay_window_->GetThumbGeometry().height) - , scroll_up_signal_(false) - , scroll_down_signal_(false) - { - OnScrollUp.connect([&] (float step, int dy) { - scroll_dy_ = dy; - scroll_up_signal_ = true; - }); - - OnScrollDown.connect([&] (float step, int dy) { - scroll_dy_ = dy; - scroll_down_signal_ = true; - }); - } - - virtual ~MockScrollBar() {} - - // ScrollDown/Up moves the mouse over the overlay scroll bar, then - // moves it down/up by scroll_dy - void ScrollDown(int scroll_dy) - { - UpdateStepY(); - - auto geo = overlay_window_->GetThumbGeometry(); - int x = geo.x; - int y = geo.y; - - MoveMouse(x, y); - MoveDown(x, y); - - MoveMouse(x, y+scroll_dy); - MoveUp(x, y+scroll_dy); - } - - void ScrollUp(int scroll_dy) - { - UpdateStepY(); - - auto geo = overlay_window_->GetThumbGeometry(); - int x = geo.x; - int y = geo.y; - - MoveMouse(x, y); - MoveDown(x, y); - - MoveMouse(x, y-scroll_dy); - MoveUp(x, y-scroll_dy); - } - - void MoveDown(int x, int y) - { - nux::Event event; - event.type = nux::NUX_MOUSE_PRESSED; - event.x = x; - event.y = y; - nux::GetWindowCompositor().ProcessEvent(event); - } - - void MoveUp(int x, int y) - { - nux::Event event; - event.type = nux::NUX_MOUSE_RELEASED; - event.x = x; - event.y = y; - nux::GetWindowCompositor().ProcessEvent(event); - } - - void MoveMouse(int x, int y) - { - nux::Event event; - event.type = nux::NUX_MOUSE_MOVE; - event.x = x; - event.y = y; - nux::GetWindowCompositor().ProcessEvent(event); - } - - void MoveMouseNear() - { - auto geo = overlay_window_->GetThumbGeometry(); - MoveMouse(geo.x, geo.y); - } - - void ScrollUpAnimation(int scroll_dy) - { - MoveMouseNear(); - UpdateStepY(); - - StartScrollAnimation(ScrollDir::UP, scroll_dy); - scroll_tick_ += SCROLL_TICK; - tick_source_.tick(scroll_tick_); - } - - void ScrollDownAnimation(int scroll_dy) - { - MoveMouseNear(); - UpdateStepY(); - - StartScrollAnimation(ScrollDir::DOWN, scroll_dy); - scroll_tick_ += SCROLL_TICK; - tick_source_.tick(scroll_tick_); - } - - void SetThumbOffset(int y) - { - overlay_window_->SetThumbOffsetY(y); - UpdateConnectorPosition(); - } - - void StartScrollThenConnectorAnimation() - { - StartScrollAnimation(ScrollDir::DOWN, 20); - MoveMouse(0,0); - StartConnectorAnimation(); - - scroll_tick_ += SCROLL_TICK; - tick_source_.tick(scroll_tick_); - } - - void FakeDragDown() - { - OnMouseDrag(0, overlay_window_->GetThumbOffsetY() + 1, 0, 5, 0, 0); - } - - nux::NuxTimerTickSource tick_source_; - nux::animation::AnimationController animation_controller; - - using PlacesOverlayVScrollBar::connector_height_; - using VScrollBar::_slider; - - unsigned scroll_tick_; - int scroll_dy_; - int thumbs_height_; - bool scroll_up_signal_; - bool scroll_down_signal_; -}; - -} - -class MockScrollView : public nux::ScrollView -{ -public: - MockScrollView(NUX_FILE_LINE_DECL) - : nux::ScrollView(NUX_FILE_LINE_PARAM) - { - scroll_bar_ = new MockScrollBar(NUX_TRACKER_LOCATION); - SetVScrollBar(scroll_bar_.GetPointer()); - } - - nux::ObjectPtr<MockScrollBar> scroll_bar_; -}; - -class TestOverlayVScrollBar : public Test -{ -public: - TestOverlayVScrollBar() - { - nux::VLayout* scroll_layout_ = new nux::VLayout(NUX_TRACKER_LOCATION); - scroll_layout_->SetGeometry(0,0,1000,5000); - scroll_layout_->SetScaleFactor(0); - - scroll_view_ = new MockScrollView(NUX_TRACKER_LOCATION); - scroll_view_->EnableVerticalScrollBar(true); - scroll_view_->EnableHorizontalScrollBar(false); - scroll_view_->SetLayout(scroll_layout_); - - scroll_view_->scroll_bar_->SetContentSize(0, 0, 201, 2000); - scroll_view_->scroll_bar_->SetContainerSize(0, 0, 202, 400); - } - - nux::ObjectPtr<MockScrollView> scroll_view_; -}; - -TEST_F(TestOverlayWindow, TestOverlayShows) -{ - ASSERT_FALSE(overlay_window_->IsVisible()); - overlay_window_->MouseNear(); - EXPECT_TRUE(overlay_window_->IsVisible()); - EXPECT_DOUBLE_EQ(0.0f, overlay_window_->GetOpacity()); - - ShowAnimation(); - EXPECT_DOUBLE_EQ(1.0f, overlay_window_->GetOpacity()); -} - -TEST_F(TestOverlayWindow, TestOverlayHides) -{ - overlay_window_->MouseNear(); - ShowAnimation(); - EXPECT_TRUE(overlay_window_->IsVisible()); - - overlay_window_->MouseBeyond(); - ShowAnimation(); - - overlay_window_->MouseLeave(); - ShowAnimation(); - - EXPECT_FALSE(overlay_window_->IsVisible()); - EXPECT_DOUBLE_EQ(0.0f, overlay_window_->GetOpacity()); -} - -TEST_F(TestOverlayWindow, TestOverlayStaysOpenWhenMouseDown) -{ - overlay_window_->MouseNear(); - ShowAnimation(); - - overlay_window_->MouseDown(); - ShowAnimation(); - - overlay_window_->MouseBeyond(); - ShowAnimation(); - - overlay_window_->MouseLeave(); - ShowAnimation(); - - EXPECT_TRUE(overlay_window_->IsVisible()); -} - -TEST_F(TestOverlayWindow, TestOverlayMouseDrags) -{ - overlay_window_->MouseDown(); - EXPECT_FALSE(overlay_window_->IsMouseBeingDragged()); - - overlay_window_->SetThumbOffsetY(10); - EXPECT_TRUE(overlay_window_->IsMouseBeingDragged()); -} - -TEST_F(TestOverlayWindow, TestOverlayStopDraggingOnMouseUp) -{ - overlay_window_->MouseDown(); - EXPECT_FALSE(overlay_window_->IsMouseBeingDragged()); - - overlay_window_->SetThumbOffsetY(10); - EXPECT_TRUE(overlay_window_->IsMouseBeingDragged()); - - overlay_window_->MouseUp(); - EXPECT_FALSE(overlay_window_->IsMouseBeingDragged()); -} - -TEST_F(TestOverlayWindow, TestOverlaySetsOffsetY) -{ - int const offset_y = 30; - - overlay_window_->SetThumbOffsetY(offset_y); - EXPECT_EQ(overlay_window_->GetThumbOffsetY(), offset_y); -} - -TEST_F(TestOverlayWindow, TestOverlaySetsOffsetYOutOfBoundsLower) -{ - int const offset_y = -40; - - overlay_window_->SetThumbOffsetY(offset_y); - EXPECT_EQ(overlay_window_->GetThumbOffsetY(), 0); -} - -TEST_F(TestOverlayWindow, TestOverlaySetsOffsetYOutOfBoundsUpper) -{ - int const offset_y = 1000; - int const expected_offset = overlay_window_->GetBaseHeight() - overlay_window_->GetThumbHeight(); - - overlay_window_->SetThumbOffsetY(offset_y); - EXPECT_EQ(overlay_window_->GetThumbOffsetY(), expected_offset); -} - -TEST_F(TestOverlayWindow, TestOverlayMouseIsInsideThumb) -{ - nux::Geometry const geo(0, 50, 50, 400); - - overlay_window_->UpdateGeometry(geo); - EXPECT_TRUE(overlay_window_->IsMouseInsideThumb(0)); -} - -TEST_F(TestOverlayWindow, TestOverlayMouseIsInsideOnOffsetChange) -{ - nux::Geometry const geo(0, 50, 50, 400); - int const offset_y = 50; - int const thumb_height = overlay_window_->GetThumbHeight(); - - overlay_window_->UpdateGeometry(geo); - overlay_window_->SetThumbOffsetY(offset_y); - - EXPECT_FALSE(overlay_window_->IsMouseInsideThumb(offset_y - 1)); - EXPECT_TRUE(overlay_window_->IsMouseInsideThumb(offset_y + thumb_height/2)); - EXPECT_FALSE(overlay_window_->IsMouseInsideThumb(offset_y + thumb_height + 1)); -} - - -TEST_F(TestOverlayVScrollBar, TestScrollDownSignal) -{ - scroll_view_->scroll_bar_->ScrollDown(10); - EXPECT_TRUE(scroll_view_->scroll_bar_->scroll_down_signal_); -} - -TEST_F(TestOverlayVScrollBar, TestScrollUpSignal) -{ - scroll_view_->scroll_bar_->ScrollDown(10); - scroll_view_->scroll_bar_->ScrollUp(10); - EXPECT_TRUE(scroll_view_->scroll_bar_->scroll_up_signal_); -} - -TEST_F(TestOverlayVScrollBar, TestScrollDownDeltaY) -{ - int scroll_down = 15; - scroll_view_->scroll_bar_->ScrollDown(scroll_down); - EXPECT_EQ(scroll_view_->scroll_bar_->scroll_dy_, scroll_down); -} - -TEST_F(TestOverlayVScrollBar, TestScrollUpDeltaY) -{ - int scroll_up = 7; - scroll_view_->scroll_bar_->ScrollDown(scroll_up+1); - scroll_view_->scroll_bar_->ScrollUp(scroll_up); - EXPECT_EQ(scroll_view_->scroll_bar_->scroll_dy_, scroll_up); -} - -TEST_F(TestOverlayVScrollBar, TestScrollDownBaseYMoves) -{ - int slider_y = scroll_view_->scroll_bar_->_slider->GetBaseY(); - int scroll_down = 10; - scroll_view_->scroll_bar_->ScrollDown(scroll_down); - EXPECT_EQ(scroll_view_->scroll_bar_->scroll_dy_, scroll_down); - EXPECT_GT(scroll_view_->scroll_bar_->_slider->GetBaseY(), slider_y); -} - -TEST_F(TestOverlayVScrollBar, TestScrollUpBaseYMoves) -{ - int scroll_up = 10; - scroll_view_->scroll_bar_->ScrollDown(scroll_up+1); - - int slider_y = scroll_view_->scroll_bar_->_slider->GetBaseY(); - scroll_view_->scroll_bar_->ScrollUp(scroll_up); - EXPECT_EQ(scroll_view_->scroll_bar_->scroll_dy_, scroll_up); - EXPECT_LT(scroll_view_->scroll_bar_->_slider->GetBaseY(), slider_y); -} - -TEST_F(TestOverlayVScrollBar, TestScrollsSlowlyDeltaY) -{ - int scroll_down = 10; - for (int i = 0; i < scroll_down; i++) - { - scroll_view_->scroll_bar_->ScrollDown(1); - EXPECT_EQ(scroll_view_->scroll_bar_->scroll_dy_, 1); - } -} - -TEST_F(TestOverlayVScrollBar, TestScrollUpAnimationMovesSlider) -{ - int scroll_up = 10; - scroll_view_->scroll_bar_->ScrollDown(scroll_up+10); - - int slider_y = scroll_view_->scroll_bar_->_slider->GetBaseY(); - scroll_view_->scroll_bar_->ScrollUpAnimation(scroll_up); - - EXPECT_EQ(scroll_view_->scroll_bar_->scroll_dy_, scroll_up); - EXPECT_LT(scroll_view_->scroll_bar_->_slider->GetBaseY(), slider_y); -} - -TEST_F(TestOverlayVScrollBar, TestScrollDownAnimationMovesSlider) -{ - int scroll_down = 10; - int slider_y = scroll_view_->scroll_bar_->_slider->GetBaseY(); - - scroll_view_->scroll_bar_->ScrollDownAnimation(scroll_down); - - EXPECT_EQ(scroll_view_->scroll_bar_->scroll_dy_, scroll_down); - EXPECT_GT(scroll_view_->scroll_bar_->_slider->GetBaseY(), slider_y); -} - -TEST_F(TestOverlayVScrollBar, TestConnectorResetsDuringScrollAnimation) -{ - scroll_view_->scroll_bar_->MoveMouseNear(); - scroll_view_->scroll_bar_->SetThumbOffset(100); - - int connector_height = scroll_view_->scroll_bar_->connector_height_; - EXPECT_GT(connector_height, 0); - - scroll_view_->scroll_bar_->StartScrollThenConnectorAnimation(); - - connector_height = scroll_view_->scroll_bar_->connector_height_; - EXPECT_EQ(connector_height, 0); -} - - -TEST_F(TestOverlayVScrollBar, TestAllowDragIfOverlayIsAtMaximum) -{ - // Offset that sets the thumb at the bottom of the scrollbar - int thumb_offset = scroll_view_->scroll_bar_->GetHeight() - - scroll_view_->scroll_bar_->thumbs_height_; - - scroll_view_->scroll_bar_->SetThumbOffset(thumb_offset); - scroll_view_->scroll_bar_->FakeDragDown(); - EXPECT_TRUE(scroll_view_->scroll_bar_->scroll_down_signal_); -} - -} - diff --git a/tests/test_switcher_controller.cpp b/tests/test_switcher_controller.cpp index 384897f2c..e63a80213 100644 --- a/tests/test_switcher_controller.cpp +++ b/tests/test_switcher_controller.cpp @@ -125,7 +125,7 @@ TEST_F(TestSwitcherController, StartDetailModeMovesNextRows) // 0, 1, // 2, 3 EXPECT_TRUE(model->HasPrevDetailRow()); - EXPECT_EQ(static_cast<unsigned int>(model->detail_selection_index), 2); + EXPECT_EQ(model->detail_selection_index(), 2); } TEST_F(TestSwitcherController, StopDetailModeMovesPrevRows) diff --git a/tests/test_switcher_controller.h b/tests/test_switcher_controller.h index 474966732..bc0118df4 100644 --- a/tests/test_switcher_controller.h +++ b/tests/test_switcher_controller.h @@ -75,6 +75,7 @@ struct FakeLauncherIcon : unity::launcher::SimpleLauncherIcon unity::WindowList Windows() override; bool AllowDetailViewInSwitcher() const override; + bool ShowInSwitcher(bool) override; uint64_t SwitcherPriority() override; bool allow_detail_view_; diff --git a/tests/test_switcher_controller_class.cpp b/tests/test_switcher_controller_class.cpp index 8e7834839..749359f54 100644 --- a/tests/test_switcher_controller_class.cpp +++ b/tests/test_switcher_controller_class.cpp @@ -64,6 +64,11 @@ WindowList FakeLauncherIcon::Windows() return window_list; } +bool FakeLauncherIcon::ShowInSwitcher(bool) +{ + return true; +} + bool FakeLauncherIcon::AllowDetailViewInSwitcher() const { return allow_detail_view_; diff --git a/tests/test_switcher_model.cpp b/tests/test_switcher_model.cpp index a9cd37443..c02e9dcee 100644 --- a/tests/test_switcher_model.cpp +++ b/tests/test_switcher_model.cpp @@ -43,7 +43,7 @@ class MockLauncherIcon2 : public unity::launcher::MockLauncherIcon public: MockLauncherIcon2(int id) : id_(id) - { } + {} int id_; }; @@ -61,20 +61,19 @@ public: TestSwitcherModel() { for (int i = 0; i < 4; ++i) - { icons_.push_back(AbstractLauncherIcon::Ptr(new MockLauncherIcon2(i))); - } + + model = std::make_shared<SwitcherModel>(icons_, false); } protected: std::vector<AbstractLauncherIcon::Ptr> icons_; + SwitcherModel::Ptr model; }; TEST_F(TestSwitcherModel, TestConstructor) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); - EXPECT_EQ(model->Size(), icons_.size()); EXPECT_EQ(model->Selection(), icons_.front()); EXPECT_EQ(model->LastSelection(), icons_.front()); @@ -86,8 +85,6 @@ TEST_F(TestSwitcherModel, TestConstructor) TEST_F(TestSwitcherModel, TestSelection) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); - EXPECT_EQ(IdentityOf(model->Selection()), 0); model->Next(); @@ -126,12 +123,12 @@ TEST_F(TestSwitcherModel, TestSelection) TEST_F(TestSwitcherModel, TestActiveDetailWindowSort) { // Create a base case for the null hypothesis. - SwitcherModel::Ptr model_detail(new SwitcherModel(icons_)); + auto model_detail = std::make_shared<SwitcherModel>(icons_, false); model_detail->detail_selection = true; // Create a test case with an active detail window. icons_.front()->SetQuirk(AbstractLauncherIcon::Quirk::ACTIVE, true); - SwitcherModel::Ptr model_detail_active(new SwitcherModel(icons_)); + auto model_detail_active = std::make_shared<SwitcherModel>(icons_, false); model_detail_active->detail_selection = true; EXPECT_TRUE(model_detail_active->DetailXids().size() > 2); @@ -150,19 +147,17 @@ TEST_F(TestSwitcherModel, TestActiveDetailWindowSort) TEST_F(TestSwitcherModel, SelectionIsActive) { - SwitcherModel model(icons_); + model->Selection()->SetQuirk(AbstractLauncherIcon::Quirk::ACTIVE, false); + EXPECT_FALSE(model->SelectionIsActive()); - model.Selection()->SetQuirk(AbstractLauncherIcon::Quirk::ACTIVE, false); - EXPECT_FALSE(model.SelectionIsActive()); - - model.Selection()->SetQuirk(AbstractLauncherIcon::Quirk::ACTIVE, true); - EXPECT_TRUE(model.SelectionIsActive()); + model->Selection()->SetQuirk(AbstractLauncherIcon::Quirk::ACTIVE, true); + EXPECT_TRUE(model->SelectionIsActive()); } TEST_F(TestSwitcherModel, TestWebAppActive) { // Create a base case - SwitcherModel::Ptr base_model(new SwitcherModel(icons_)); + auto base_model = std::make_shared<SwitcherModel>(icons_, false); // Set the first icon as Active to simulate Firefox being active icons_.front()->SetQuirk(AbstractLauncherIcon::Quirk::ACTIVE, true); @@ -170,18 +165,16 @@ TEST_F(TestSwitcherModel, TestWebAppActive) // Set the last icon as Active to simulate that it is a WebApp icons_.back()->SetQuirk(AbstractLauncherIcon::Quirk::ACTIVE, true); - SwitcherModel::Ptr model(new SwitcherModel(icons_)); - - model->DetailXids(); + auto new_model = std::make_shared<SwitcherModel>(icons_, false); + new_model->DetailXids(); // model's front Window should be different than the base case due to the // re-sorting in DetailXids(). - EXPECT_NE(model->DetailXids().front(), base_model->DetailXids().front()); + EXPECT_NE(new_model->DetailXids().front(), base_model->DetailXids().front()); } TEST_F(TestSwitcherModel, TestHasNextDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({2,2}); @@ -190,7 +183,6 @@ TEST_F(TestSwitcherModel, TestHasNextDetailRow) TEST_F(TestSwitcherModel, TestHasNextDetailRowStopsAtTheEnd) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; for (unsigned int i = 0; i < model->DetailXids().size() - 1 && model->HasNextDetailRow(); i++) @@ -203,7 +195,6 @@ TEST_F(TestSwitcherModel, TestHasNextDetailRowStopsAtTheEnd) TEST_F(TestSwitcherModel, TestHasPrevDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({2,2}); @@ -216,7 +207,6 @@ TEST_F(TestSwitcherModel, TestHasPrevDetailRow) TEST_F(TestSwitcherModel, TestHasNextThenPrevDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({2,2}); @@ -231,7 +221,6 @@ TEST_F(TestSwitcherModel, TestHasNextThenPrevDetailRow) TEST_F(TestSwitcherModel, TestNextDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({2,2}); @@ -245,7 +234,6 @@ TEST_F(TestSwitcherModel, TestNextDetailRow) TEST_F(TestSwitcherModel, TestNextDetailThenNextDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({2,2}); @@ -260,7 +248,6 @@ TEST_F(TestSwitcherModel, TestNextDetailThenNextDetailRow) TEST_F(TestSwitcherModel, TestPrevDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({2,2}); @@ -275,7 +262,6 @@ TEST_F(TestSwitcherModel, TestPrevDetailRow) TEST_F(TestSwitcherModel, TestNextDetailThenPrevDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({2,2}); @@ -292,7 +278,6 @@ TEST_F(TestSwitcherModel, TestNextDetailThenPrevDetailRow) TEST_F(TestSwitcherModel, TestUnEvenNextDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({3,2}); @@ -306,7 +291,6 @@ TEST_F(TestSwitcherModel, TestUnEvenNextDetailRow) TEST_F(TestSwitcherModel, TestUnEvenPrevDetailRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({3,2}); @@ -321,7 +305,6 @@ TEST_F(TestSwitcherModel, TestUnEvenPrevDetailRow) TEST_F(TestSwitcherModel, TestNextPrevDetailRowMovesLeftInTopRow) { - SwitcherModel::Ptr model(new SwitcherModel(icons_)); model->detail_selection = true; model->SetRowSizes({3,2}); diff --git a/tests/test_switcher_view.cpp b/tests/test_switcher_view.cpp index 2ce9926b3..ef420f866 100644 --- a/tests/test_switcher_view.cpp +++ b/tests/test_switcher_view.cpp @@ -96,7 +96,7 @@ struct TestSwitcherView : testing::Test SwitcherModel::Applications apps; apps.push_back(AbstractLauncherIcon::Ptr(app)); - switcher.SetModel(std::make_shared<SwitcherModel>(apps)); + switcher.SetModel(std::make_shared<SwitcherModel>(apps, true)); return apps[0]; } @@ -130,7 +130,7 @@ TEST_F(TestSwitcherView, SetModel) apps.push_back(AbstractLauncherIcon::Ptr(new MockLauncherIcon())); apps.push_back(AbstractLauncherIcon::Ptr(new MockLauncherIcon())); apps.push_back(AbstractLauncherIcon::Ptr(new MockLauncherIcon())); - auto model = std::make_shared<SwitcherModel>(apps); + auto model = std::make_shared<SwitcherModel>(apps, false); switcher.SetModel(model); ASSERT_EQ(switcher.model_, model); |
