diff options
author | matrinox <geofflee21@me.com> | 2016-01-25 00:21:41 -0800 |
---|---|---|
committer | Abinoam Praxedes Marques Jr <abinoam@gmail.com> | 2016-02-19 03:57:18 -0300 |
commit | 8957d31c0407fe1b1b32c442dbe8217a026a3427 (patch) | |
tree | db2ec34831e21ef6e38430c31bc1c8eb34208ffc /test | |
parent | 08f7451a9554df8ca2a165c153011844ad46f9e0 (diff) | |
download | highline-8957d31c0407fe1b1b32c442dbe8217a026a3427.tar.gz |
Fix menu selection gathering with the various options
String/Regexp/Hash was broken and integer had some issues some times. Also lack of support for symbol was inconvenient at times.
Lots of tests in place.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_menu.rb | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/test/test_menu.rb b/test/test_menu.rb index 2bcd824..5da8331 100644 --- a/test/test_menu.rb +++ b/test/test_menu.rb @@ -496,4 +496,109 @@ class TestMenu < Minitest::Test assert_equal complete_interaction, @output.string end + + def test_menu_gather_integer + @input << "Sample1\nlast\n" + @input.rewind + + selected = @terminal.choose do |menu| + menu.gather = 2 + menu.choice "Sample1" + menu.choice "Sample2" + menu.choice "last" + end + assert_equal(["Sample1", "last"], selected) + + assert_equal("1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? 1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? ", @output.string) + end + + def test_menu_gather_string + @input << "Sample1\nlast\n" + @input.rewind + + selected = @terminal.choose do |menu| + menu.gather = :last + menu.choice "Sample1" + menu.choice "Sample2" + menu.choice :last + end + assert_equal(["Sample1"], selected) + + assert_equal("1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? 1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? ", @output.string) + end + + def test_menu_gather_symbol + @input << "Sample1\nlast\n" + @input.rewind + + selected = @terminal.choose do |menu| + menu.gather = "last" + menu.choice "Sample1" + menu.choice "Sample2" + menu.choice "last" + end + assert_equal(["Sample1"], selected) + + assert_equal("1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? 1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? ", @output.string) + end + + def test_menu_gather_regexp + @input << "Sample1\nlast\n" + @input.rewind + + selected = @terminal.choose do |menu| + menu.gather = /la/ + menu.choice "Sample1" + menu.choice "Sample2" + menu.choice "last" + end + assert_equal(["Sample1"], selected) + + assert_equal("1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? 1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? ", @output.string) + end + + def test_menu_gather_hash + @input << "Sample1\n3\n" + @input.rewind + + selected = @terminal.choose do |menu| + menu.gather = { "First" => true, second: true } + menu.choice "Sample1" + menu.choice "Sample2" + menu.choice "last" + end + assert_equal({ "First" => "Sample1", second: "last" }, selected) + + assert_equal("1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? 1. Sample1\n" + + "2. Sample2\n" + + "3. last\n" + + "? ", @output.string) + end end |