summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarkus Sauermann <6299227+Sauermann@users.noreply.github.com>2023-06-05 13:51:28 +0200
committerMarkus Sauermann <6299227+Sauermann@users.noreply.github.com>2023-06-05 13:51:28 +0200
commit479f359ac44a73d4152c469237da2e90f9e45440 (patch)
tree6dae366093edd72d9cb32c9eab8f963686f85ee3 /tests
parent0f76ff2115ae56e6638e1e2bdb8851d470e6e0e3 (diff)
downloadredot-engine-479f359ac44a73d4152c469237da2e90f9e45440.tar.gz
Add unit test: mouse movement after slider release
Diffstat (limited to 'tests')
-rw-r--r--tests/scene/test_color_picker.h61
-rw-r--r--tests/test_main.cpp1
2 files changed, 62 insertions, 0 deletions
diff --git a/tests/scene/test_color_picker.h b/tests/scene/test_color_picker.h
new file mode 100644
index 0000000000..0c657a0167
--- /dev/null
+++ b/tests/scene/test_color_picker.h
@@ -0,0 +1,61 @@
+/**************************************************************************/
+/* test_color_picker.h */
+/**************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/**************************************************************************/
+/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
+/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/**************************************************************************/
+
+#ifndef TEST_COLOR_PICKER_H
+#define TEST_COLOR_PICKER_H
+
+#include "scene/gui/color_picker.h"
+
+#include "tests/test_macros.h"
+
+namespace TestColorPicker {
+
+TEST_CASE("[SceneTree][ColorPicker]") {
+ ColorPicker *cp = memnew(ColorPicker);
+ Window *root = SceneTree::get_singleton()->get_root();
+ root->add_child(cp);
+
+ SUBCASE("[COLOR_PICKER] Mouse movement after Slider release") {
+ Point2i pos_left = Point2i(50, 340); // On the left side of the red slider.
+ Point2i pos_right = Point2i(200, 340); // On the right side of the red slider.
+ SEND_GUI_MOUSE_MOTION_EVENT(pos_left, MouseButtonMask::NONE, Key::NONE);
+ SEND_GUI_MOUSE_BUTTON_EVENT(pos_left, MouseButton::LEFT, MouseButtonMask::LEFT, Key::NONE);
+ CHECK(cp->get_pick_color().r < 0.5);
+ SEND_GUI_MOUSE_MOTION_EVENT(pos_right, MouseButtonMask::LEFT, Key::NONE);
+ CHECK(cp->get_pick_color().r > 0.5);
+ SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT(pos_right, MouseButton::LEFT, MouseButtonMask::NONE, Key::NONE);
+ SEND_GUI_MOUSE_MOTION_EVENT(pos_left, MouseButtonMask::NONE, Key::NONE);
+ CHECK(cp->get_pick_color().r > 0.5); // Issue GH-77773.
+ }
+}
+
+} // namespace TestColorPicker
+
+#endif // TEST_COLOR_PICKER_H
diff --git a/tests/test_main.cpp b/tests/test_main.cpp
index 05d7df038c..ef071f4115 100644
--- a/tests/test_main.cpp
+++ b/tests/test_main.cpp
@@ -91,6 +91,7 @@
#include "tests/scene/test_audio_stream_wav.h"
#include "tests/scene/test_bit_map.h"
#include "tests/scene/test_code_edit.h"
+#include "tests/scene/test_color_picker.h"
#include "tests/scene/test_curve.h"
#include "tests/scene/test_curve_2d.h"
#include "tests/scene/test_curve_3d.h"