diff options
Diffstat (limited to 'test/functional/api/menu_spec.lua')
-rw-r--r-- | test/functional/api/menu_spec.lua | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/functional/api/menu_spec.lua b/test/functional/api/menu_spec.lua new file mode 100644 index 0000000000..34d23ca098 --- /dev/null +++ b/test/functional/api/menu_spec.lua @@ -0,0 +1,52 @@ +local helpers = require('test.functional.helpers') +local Screen = require('test.functional.ui.screen') + +local clear = helpers.clear +local command = helpers.command +local feed = helpers.feed + +describe("update_menu notification", function() + + local screen + + before_each(function() + clear() + screen = Screen.new() + screen:attach() + end) + + after_each(function() + screen:detach() + end) + + function expect_sent(expected) + screen:wait(function() + if screen.update_menu ~= expected then + if expected then + return 'update_menu was expected but not sent' + else + return 'update_menu was sent unexpectedly' + end + end + end) + end + + it("should be sent when adding a menu", function() + command('menu Test.Test :') + expect_sent(true) + end) + + it("should be sent when deleting a menu", function() + command('menu Test.Test :') + screen.update_menu = false + + command('unmenu Test.Test') + expect_sent(true) + end) + + it("should not be sent unnecessarily", function() + feed('i12345<ESC>:redraw<CR>') + expect_sent(false) + end) + +end) |