aboutsummaryrefslogtreecommitdiff
path: root/specs/Mock.hs
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2024-12-21 13:19:48 +0530
committerAkshay Nair <phenax5@gmail.com>2024-12-21 13:19:56 +0530
commita2a8e8dd046678816c3797cb894b20abfe84e360 (patch)
tree0b40288086b055b0a13f3a5621b836eca1d7b2c5 /specs/Mock.hs
parentd8667213fa49242701db4bf592754ab87749efa5 (diff)
downloadchelleport-a2a8e8dd046678816c3797cb894b20abfe84e360.tar.gz
chelleport-a2a8e8dd046678816c3797cb894b20abfe84e360.zip
Fix issue with pointer coordinates + Add mouse press/release actions
Diffstat (limited to 'specs/Mock.hs')
-rw-r--r--specs/Mock.hs32
1 files changed, 25 insertions, 7 deletions
diff --git a/specs/Mock.hs b/specs/Mock.hs
index db07e6f..5644a06 100644
--- a/specs/Mock.hs
+++ b/specs/Mock.hs
@@ -12,16 +12,19 @@ import Foreign.C (CInt)
import Test.Hspec
data Call
- = CallPressMouseButton MouseButtonType
- | CallMoveMousePosition CInt CInt
+ = CallDrawCircle Int (CInt, CInt)
+ | CallDrawLine (CInt, CInt) (CInt, CInt)
+ | CallDrawText (CInt, CInt) Color Text
| CallGetMousePointerPosition
| CallHideWindow
+ | CallMouseButtonDown
+ | CallMouseButtonUp
+ | CallMoveMousePosition CInt CInt
+ | CallPressMouseButton MouseButtonType
+ | CallSetDrawColor Color
| CallShowWindow
| CallShutdownApp
- | CallDrawLine (CInt, CInt) (CInt, CInt)
- | CallDrawText (CInt, CInt) Color Text
- | CallDrawCircle Int (CInt, CInt)
- | CallSetDrawColor Color
+ | CallWindowPosition
| CallWindowSize
deriving (Show, Eq)
@@ -45,13 +48,28 @@ instance (MonadIO m) => MonadControl (TestM m) where
pressMouseButton btn = registerMockCall $ CallPressMouseButton btn
moveMousePointer x y = registerMockCall $ CallMoveMousePosition x y
getMousePointerPosition = (42, 42) <$ registerMockCall CallGetMousePointerPosition
+ mouseButtonDown = registerMockCall CallMouseButtonDown
+ mouseButtonUp = registerMockCall CallMouseButtonUp
+
+mockWindowWidth :: CInt
+mockWindowWidth = 1920
+
+mockWindowHeight :: CInt
+mockWindowHeight = 1080
+
+mockWindowOffsetX :: CInt
+mockWindowOffsetX = 200
+
+mockWindowOffsetY :: CInt
+mockWindowOffsetY = 100
instance (MonadIO m) => MonadDraw (TestM m) where
drawLine p1 p2 = registerMockCall $ CallDrawLine p1 p2
drawText p color text = (0, 0) <$ registerMockCall (CallDrawText p color text)
drawCircle radius p = registerMockCall $ CallDrawCircle radius p
setDrawColor color = registerMockCall $ CallSetDrawColor color
- windowSize = 100 <$ registerMockCall CallWindowSize
+ windowSize = (mockWindowWidth, mockWindowHeight) <$ registerMockCall CallWindowSize
+ windowPosition = (mockWindowOffsetX, mockWindowOffsetY) <$ registerMockCall CallWindowPosition
instance (MonadIO m) => MonadAppShell (TestM m) where
hideWindow = registerMockCall CallHideWindow