summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/run.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/run.lua b/tests/run.lua
index be2a8b3..7ca4e3c 100644
--- a/tests/run.lua
+++ b/tests/run.lua
@@ -4493,6 +4493,53 @@ test("Cursor presentation lease restores every prior value", function()
falsy(lease:release())
end)
+test("Cursor suppression requires policy and runtime support", function()
+ local policy_disabled = MemoryHost.new({
+ configuration = { hide_cursor_on_cmdline = false },
+ cursor_presentation_support = true,
+ })
+ local disabled_lease = feedback_service.new(policy_disabled)
+ :create_cursor_presentation_lease()
+ falsy(disabled_lease.active)
+ falsy(policy_disabled:cursor_presentation().hidden)
+
+ local runtime_disabled = MemoryHost.new({
+ configuration = { hide_cursor_on_cmdline = true },
+ cursor_presentation_support = false,
+ })
+ local unsupported_lease = feedback_service.new(runtime_disabled)
+ :create_cursor_presentation_lease()
+ falsy(unsupported_lease.active)
+ falsy(runtime_disabled:cursor_presentation().hidden)
+
+ local enabled = MemoryHost.new({
+ configuration = { hide_cursor_on_cmdline = true },
+ cursor_presentation_support = true,
+ })
+ local enabled_lease = feedback_service.new(enabled)
+ :create_cursor_presentation_lease()
+ truthy(enabled_lease.active)
+ truthy(enabled:cursor_presentation().hidden)
+ truthy(enabled_lease:release())
+
+ local function operation_count(host, name)
+ local count = 0
+ for _, operation in ipairs(host:operations()) do
+ if operation.operation == name then
+ count = count + 1
+ end
+ end
+ return count
+ end
+
+ same(0, operation_count(policy_disabled, "supports_cursor_presentation"))
+ same(0, operation_count(policy_disabled, "suppress_cursor_presentation"))
+ same(1, operation_count(runtime_disabled, "supports_cursor_presentation"))
+ same(0, operation_count(runtime_disabled, "suppress_cursor_presentation"))
+ same(1, operation_count(enabled, "supports_cursor_presentation"))
+ same(1, operation_count(enabled, "suppress_cursor_presentation"))
+end)
+
for _, item in ipairs(tests) do
local ok, failure = xpcall(item.body, debug.traceback)
if not ok then