summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormatrinox <geofflee21@me.com>2016-01-25 00:21:41 -0800
committerAbinoam Praxedes Marques Jr <abinoam@gmail.com>2016-02-19 03:57:18 -0300
commit8957d31c0407fe1b1b32c442dbe8217a026a3427 (patch)
treedb2ec34831e21ef6e38430c31bc1c8eb34208ffc /test
parent08f7451a9554df8ca2a165c153011844ad46f9e0 (diff)
downloadhighline-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.rb105
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