From b65983da1a6d40d7bff1536d01d3072ea135a094 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 6 Mar 2016 15:56:16 -0800 Subject: [PATCH] multi-touch: add tests for gesturerange moudle --- frontend/ui/gesturerange.lua | 1 + spec/unit/gesturerange_spec.lua | 39 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 spec/unit/gesturerange_spec.lua diff --git a/frontend/ui/gesturerange.lua b/frontend/ui/gesturerange.lua index fb5b7f4d4..e03fcdb9a 100644 --- a/frontend/ui/gesturerange.lua +++ b/frontend/ui/gesturerange.lua @@ -39,6 +39,7 @@ function GestureRange:match(gs) return false end end + if self.rate then -- This filed restraints the upper limit rate(matches per second). -- It's most useful for e-ink devices with less powerfull CPUs and diff --git a/spec/unit/gesturerange_spec.lua b/spec/unit/gesturerange_spec.lua new file mode 100644 index 000000000..89be942c7 --- /dev/null +++ b/spec/unit/gesturerange_spec.lua @@ -0,0 +1,39 @@ +require("commonrequire") + +local GestureRange = require("ui/gesturerange") +local Geom = require("ui/geometry") + +describe("gesturerange module", function() + it("should match tap event within range", function() + local g = GestureRange:new{ + ges = "tap", + range = Geom:new{ x = 0, y = 0, w = 200, h = 200}, + } + assert.truthy(g:match({ + ges = "tap", + pos = Geom:new{ x = 1, y = 1, w = 0, h = 0 }, + })) + end) + + it("should not match tap event outside of range", function() + local g = GestureRange:new{ + ges = "tap", + range = Geom:new{ x = 0, y = 0, w = 100, h = 100}, + } + assert.falsy(g:match({ + ges = "tap", + pos = Geom:new{ x = 105, y = 1, w = 0, h = 0 }, + })) + end) + + it("should match any event within nil range", function() + local g = GestureRange:new{ + ges = "tap", + range = nil, + } + assert.truthy(g:match({ + ges = "tap", + pos = Geom:new{ x = 1, y = 1, w = 1000000000000000000, h = 100 }, + })) + end) +end)