2015-03-14 10:06:53 +01:00
|
|
|
-- Test set_{,new}index_miss_handler
|
|
|
|
|
2016-04-25 03:04:27 +02:00
|
|
|
local mouse = mouse
|
2015-03-14 10:06:53 +01:00
|
|
|
local class = tag
|
|
|
|
local obj = class({})
|
2016-03-30 09:20:56 +02:00
|
|
|
local handler = require("gears.object.properties")
|
2016-05-12 07:18:12 +02:00
|
|
|
local wibox = require("wibox")
|
2015-03-14 10:06:53 +01:00
|
|
|
|
|
|
|
awesome.connect_signal("debug::index::miss", error)
|
|
|
|
awesome.connect_signal("debug::newindex::miss", error)
|
|
|
|
|
|
|
|
class.set_index_miss_handler(function(o, k)
|
|
|
|
assert(o == obj)
|
|
|
|
assert(k == "key")
|
|
|
|
return 42
|
|
|
|
end)
|
|
|
|
assert(obj.key == 42)
|
|
|
|
|
|
|
|
local called = false
|
|
|
|
class.set_newindex_miss_handler(function(o, k, v)
|
|
|
|
assert(o == obj)
|
|
|
|
assert(k == "key")
|
|
|
|
assert(v == 42)
|
|
|
|
called = true
|
|
|
|
end)
|
|
|
|
obj.key = 42
|
|
|
|
assert(called)
|
|
|
|
|
2016-03-30 09:20:56 +02:00
|
|
|
handler(class, {auto_emit=true})
|
|
|
|
|
|
|
|
assert(not obj.key)
|
|
|
|
obj.key = 1337
|
|
|
|
assert(obj.key == 1337)
|
|
|
|
|
2016-04-25 03:04:27 +02:00
|
|
|
-- The the custom mouse handler
|
|
|
|
mouse.foo = "bar"
|
|
|
|
assert(mouse.foo == "bar")
|
|
|
|
|
2016-05-12 07:18:12 +02:00
|
|
|
local w = wibox()
|
|
|
|
w.foo = "bar"
|
|
|
|
assert(w.foo == "bar")
|
|
|
|
|
2016-06-04 15:56:52 +02:00
|
|
|
-- Test if read-only properties really are read-only
|
|
|
|
screen[1].clients = 42
|
|
|
|
assert(screen[1].clients ~= 42)
|
|
|
|
|
2015-03-14 10:06:53 +01:00
|
|
|
require("_runner").run_steps({ function() return true end })
|