fix wrong `Label.frame_body.x2` value (#2134)
* fix wrong `Label.frame_body.x2` value `update_scroll_inset` might change `frame_inset`, i.e. we need to `computeFrame` with the new values. * add tests for Label * add missing `local`, remove code in comments * move `TestFramedScreen` outside test functionsdevelop
parent
add8aa2386
commit
07f54deb0b
@ -0,0 +1,94 @@
|
|||||||
|
-- test -dhack/scripts/devel/tests -twidgets.Label
|
||||||
|
|
||||||
|
local gui = require('gui')
|
||||||
|
local widgets = require('gui.widgets')
|
||||||
|
|
||||||
|
local xtest = {} -- use to temporarily disable tests (change `function xtest.somename` to `function xxtest.somename`)
|
||||||
|
local wait = function(n)
|
||||||
|
delay(n or 30) -- enable for debugging the tests
|
||||||
|
end
|
||||||
|
|
||||||
|
local fs = defclass(fs, gui.FramedScreen)
|
||||||
|
fs.ATTRS = {
|
||||||
|
frame_style = gui.GREY_LINE_FRAME,
|
||||||
|
frame_title = 'TestFramedScreen',
|
||||||
|
frame_width = 10,
|
||||||
|
frame_height = 10,
|
||||||
|
frame_inset = 0,
|
||||||
|
focus_path = 'test-framed-screen',
|
||||||
|
}
|
||||||
|
|
||||||
|
function test.Label_correct_frame_body_with_scroll_icons()
|
||||||
|
local t = {}
|
||||||
|
for i = 1, 12 do
|
||||||
|
t[#t+1] = tostring(i)
|
||||||
|
t[#t+1] = NEWLINE
|
||||||
|
end
|
||||||
|
|
||||||
|
function fs:init(args)
|
||||||
|
self:addviews{
|
||||||
|
widgets.Label{
|
||||||
|
view_id = 'text',
|
||||||
|
frame_inset = 0,
|
||||||
|
text = t,
|
||||||
|
--show_scroll_icons = 'right',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
local o = fs{}
|
||||||
|
--o:show()
|
||||||
|
--wait()
|
||||||
|
expect.eq(o.subviews.text.frame_body.width, 9, "Label's frame_body.x2 and .width should be one smaller because of show_scroll_icons.")
|
||||||
|
--o:dismiss()
|
||||||
|
end
|
||||||
|
|
||||||
|
function test.Label_correct_frame_body_with_few_text_lines()
|
||||||
|
local t = {}
|
||||||
|
for i = 1, 10 do
|
||||||
|
t[#t+1] = tostring(i)
|
||||||
|
t[#t+1] = NEWLINE
|
||||||
|
end
|
||||||
|
|
||||||
|
function fs:init(args)
|
||||||
|
self:addviews{
|
||||||
|
widgets.Label{
|
||||||
|
view_id = 'text',
|
||||||
|
frame_inset = 0,
|
||||||
|
text = t,
|
||||||
|
--show_scroll_icons = 'right',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
local o = fs{}
|
||||||
|
--o:show()
|
||||||
|
--wait()
|
||||||
|
expect.eq(o.subviews.text.frame_body.width, 10, "Label's frame_body.x2 and .width should not change with show_scroll_icons = false.")
|
||||||
|
--o:dismiss()
|
||||||
|
end
|
||||||
|
|
||||||
|
function test.Label_correct_frame_body_without_show_scroll_icons()
|
||||||
|
local t = {}
|
||||||
|
for i = 1, 12 do
|
||||||
|
t[#t+1] = tostring(i)
|
||||||
|
t[#t+1] = NEWLINE
|
||||||
|
end
|
||||||
|
|
||||||
|
function fs:init(args)
|
||||||
|
self:addviews{
|
||||||
|
widgets.Label{
|
||||||
|
view_id = 'text',
|
||||||
|
frame_inset = 0,
|
||||||
|
text = t,
|
||||||
|
show_scroll_icons = false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
local o = fs{}
|
||||||
|
--o:show()
|
||||||
|
--wait()
|
||||||
|
expect.eq(o.subviews.text.frame_body.width, 10, "Label's frame_body.x2 and .width should not change with show_scroll_icons = false.")
|
||||||
|
--o:dismiss()
|
||||||
|
end
|
Loading…
Reference in New Issue