Skip to content

Commit f3e3851

Browse files
committed
feat(testing): mouse extensions
1 parent 16e00e2 commit f3e3851

File tree

2 files changed

+63
-6
lines changed

2 files changed

+63
-6
lines changed

libs/testing/include/quite/test/mouse.hpp

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,33 @@
44

55
#pragma once
66
#include <chrono>
7+
#include <quite/core/bit_flags.hpp>
78
#include <quite/keyboard.hpp>
89
#include <quite/mouse.hpp>
910
#include "quite/quite_test_export.hpp"
11+
#include "quite/test/remote_object.hpp"
12+
1013
namespace quite::test
1114
{
12-
class RemoteObject;
13-
14-
class MouseDragBuilder
15+
class QUITE_TEST_EXPORT MouseDragBuilder
1516
{
1617
MouseDragBuilder move_to(RemoteObject object);
1718
MouseDragBuilder drop_at(RemoteObject object);
19+
20+
private:
21+
RemoteObject source_;
1822
};
1923

20-
class MouseBuilder
24+
class QUITE_TEST_EXPORT MouseBuilder
2125
{
26+
public:
27+
MouseBuilder() = delete;
28+
MouseBuilder(const MouseBuilder &other) = default;
29+
MouseBuilder(MouseBuilder &&other) noexcept = default;
30+
MouseBuilder &operator=(const MouseBuilder &other) = default;
31+
MouseBuilder &operator=(MouseBuilder &&other) = default;
32+
~MouseBuilder() = default;
33+
2234
MouseBuilder up(MouseButton button);
2335
MouseBuilder down(MouseButton button);
2436
MouseBuilder modifier(KeyboardModifier modifier);
@@ -28,7 +40,15 @@ class MouseBuilder
2840
MouseBuilder double_click(MouseButton button = MouseButton::left,
2941
std::chrono::milliseconds delay = std::chrono::milliseconds{0});
3042
MouseBuilder wheel(int delta_x, int delta_y);
43+
44+
private:
45+
MouseBuilder(RemoteObject target);
46+
friend MouseBuilder mouse(RemoteObject target);
47+
48+
private:
49+
RemoteObject target_;
50+
BitFlags<KeyboardModifier> modifiers_;
3151
};
3252

33-
[[nodiscard]] QUITE_TEST_EXPORT MouseBuilder mouse(RemoteObject object);
53+
[[nodiscard]] QUITE_TEST_EXPORT MouseBuilder mouse(RemoteObject target);
3454
} // namespace quite::test

libs/testing/src/mouse.cpp

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,43 @@
77

88
namespace quite::test
99
{
10-
MouseBuilder mouse(RemoteObject object)
10+
11+
MouseBuilder::MouseBuilder(RemoteObject target)
12+
: target_{std::move(target)}
13+
{}
14+
15+
MouseDragBuilder MouseDragBuilder::move_to(RemoteObject object)
1116
{}
17+
18+
MouseDragBuilder MouseDragBuilder::drop_at(RemoteObject object)
19+
{}
20+
21+
MouseBuilder MouseBuilder::up(MouseButton button)
22+
{}
23+
24+
MouseBuilder MouseBuilder::down(MouseButton button)
25+
{}
26+
27+
MouseBuilder MouseBuilder::modifier(KeyboardModifier modifier)
28+
{
29+
modifiers_.set(modifier);
30+
return *this;
31+
}
32+
33+
MouseDragBuilder MouseBuilder::drag(MouseButton button)
34+
{}
35+
36+
MouseBuilder MouseBuilder::click(MouseButton button, std::chrono::milliseconds delay)
37+
{}
38+
39+
MouseBuilder MouseBuilder::double_click(MouseButton button, std::chrono::milliseconds delay)
40+
{}
41+
42+
MouseBuilder MouseBuilder::wheel(int delta_x, int delta_y)
43+
{}
44+
45+
MouseBuilder mouse(RemoteObject target)
46+
{
47+
return MouseBuilder{std::move(target)};
48+
}
1249
} // namespace quite::test

0 commit comments

Comments
 (0)