Spaces:
Sleeping
Sleeping
| package.path = '../common/libs/?.lua;../common/vendor/?.lua;' .. package.path | |
| local lu = require('luaunit') | |
| require('mock_reaper') | |
| require('ImGuiTheme') | |
| -- | |
| TestImGuiTheme = { | |
| overrides = { | |
| f_color_push = function() end, | |
| f_color_pop = function() end, | |
| f_style_push = function() end, | |
| f_style_pop = function() end | |
| } | |
| } | |
| function TestImGuiTheme:setUp() | |
| self.overrides.f_color_push = ImGuiTheme.f_color_push | |
| self.overrides.f_color_pop = ImGuiTheme.f_color_pop | |
| self.overrides.f_style_push = ImGuiTheme.f_style_push | |
| self.overrides.f_style_pop = ImGuiTheme.f_style_pop | |
| end | |
| function TestImGuiTheme:tearDown() | |
| ImGuiTheme.f_color_push = self.overrides.f_color_push | |
| ImGuiTheme.f_color_pop = self.overrides.f_color_pop | |
| ImGuiTheme.f_style_push = self.overrides.f_style_push | |
| ImGuiTheme.f_style_pop = self.overrides.f_style_pop | |
| end | |
| function TestImGuiTheme:testColorInit() | |
| local theme = ImGuiTheme.new { | |
| colors = { | |
| { function() return "some key" end, 0xFF0000FF }, | |
| { "just a key", 0x00FF0000 } | |
| } | |
| } | |
| lu.assertEquals(theme.colors[1][1], "some key") | |
| lu.assertEquals(theme.colors[1][2], 0xFF0000FF) | |
| lu.assertEquals(theme.colors[2][1], "just a key") | |
| lu.assertEquals(theme.colors[2][2], 0x00FF0000) | |
| lu.assertEquals(theme.color_count, 2) | |
| end | |
| function TestImGuiTheme:testColors() | |
| local theme = ImGuiTheme.new { | |
| colors = { | |
| { function() return "some key" end, 0xFF0000FF }, | |
| { "just a key", 0x00FF0000 } | |
| } | |
| } | |
| local expectations = { | |
| { "some key", 0xFF0000FF }, | |
| { "just a key", 0x00FF0000 } | |
| } | |
| local i = 1 | |
| ImGuiTheme.f_color_push = function(_ctx, key, value) | |
| lu.assertEquals(key, expectations[i][1]) | |
| lu.assertEquals(value, expectations[i][2]) | |
| i = i + 1 | |
| end | |
| ImGuiTheme.f_color_pop = function(_ctx, count) | |
| lu.assertEquals(count, 2) | |
| end | |
| theme:push("context") | |
| theme:pop("context") | |
| end | |
| function TestImGuiTheme:testStyleInit() | |
| local theme = ImGuiTheme.new { | |
| styles = { | |
| { function() return "single argument" end, 1.0 }, | |
| { "multiple arguments", 2.0, 3.0 } | |
| } | |
| } | |
| lu.assertEquals(theme.styles[1][1], "single argument") | |
| lu.assertEquals(theme.styles[1][2], 1.0) | |
| lu.assertEquals(theme.styles[2][1], "multiple arguments") | |
| lu.assertEquals(theme.styles[2][2], 2.0) | |
| lu.assertEquals(theme.styles[2][3], 3.0) | |
| lu.assertEquals(theme.style_count, 2) | |
| end | |
| function TestImGuiTheme:testStyles() | |
| local theme = ImGuiTheme.new { | |
| styles = { | |
| { function() return "single argument" end, 1.0 }, | |
| { "multiple arguments", 2.0, 3.0 } | |
| } | |
| } | |
| local expectations = { | |
| { "single argument", 1.0 }, | |
| { "multiple arguments", 2.0, 3.0 } | |
| } | |
| local i = 1 | |
| ImGuiTheme.f_style_push = function(_ctx, key, ...) | |
| local values = ... | |
| lu.assertEquals(key, expectations[i][1]) | |
| lu.assertEquals(values, table.unpack(expectations[i], 2)) | |
| i = i + 1 | |
| end | |
| ImGuiTheme.f_style_pop = function(_ctx, count) | |
| lu.assertEquals(count, 2) | |
| end | |
| theme:push("context") | |
| theme:pop("context") | |
| end | |
| -- | |
| os.exit(lu.LuaUnit.run()) | |