require 'test_helper' class Flucti::Utilities::UserInterfaceTest < Test::Unit::TestCase M = Flucti::Utilities::UserInterface def setup @utils = Object.new.extend M @utils.stubs(:terminal_width).returns 78 end # private def test_strip_margin assert_equal "a\nb\n", @utils.instance_eval { strip_margin " a\n b\n" } assert_equal "a\n b\n", @utils.instance_eval { strip_margin " a\n b\n" } assert_equal " a\nb\n", @utils.instance_eval { strip_margin " a\n b\n" } assert_equal "a\n b\n", @utils.instance_eval { strip_margin "a\n b\n" } end def test_adjust_to_terminal source = <<-SRC Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu. * Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. $ Fusce lacinia lorem sit amet * Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. $ Aenean euismod. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. 1) Pellentesque: ---------------- Convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. SRC expected = <<-EXP Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu. * Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. $ Fusce lacinia lorem sit amet * Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. $ Aenean euismod. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. 1) Pellentesque: ---------------- Convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. EXP result = @utils.instance_eval { adjust_to_terminal(source) } # puts result, "", "", "", expected assert_equal expected, result end def test_adjust_paragraph_to_terminal expected = <<-MSG Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu, vitae fringilla justo quam ut lectus. Mauris sit amet turpis. Nam ac dolor. Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. Integer eget lorem consequat turpis gravida faucibus. Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. MSG message = <<-MSG Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu, vitae fringilla justo quam ut lectus. Mauris sit amet turpis. Nam ac dolor. Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. Integer eget lorem consequat turpis gravida faucibus. Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. MSG assert_equal expected, @utils.instance_eval { adjust_paragraph_to_terminal(message) } message = <<-MSG Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu, vitae fringilla justo quam ut lectus. Mauris sit amet turpis. Nam ac dolor. Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. Integer eget lorem consequat turpis gravida faucibus. Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. MSG assert_equal expected, @utils.instance_eval { adjust_paragraph_to_terminal(message) } message = <<-MSG Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu, vitae fringilla justo quam ut lectus. Mauris sit amet turpis. Nam ac dolor. Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. Integer eget lorem consequat turpis gravida faucibus. Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. MSG assert_equal expected, @utils.instance_eval { adjust_paragraph_to_terminal(message) } message = <<-MSG Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu, vitae fringilla justo quam ut lectus. Mauris sit amet turpis. Nam ac dolor. Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. Integer eget lorem consequat turpis gravida faucibus. Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. MSG expected = <<-MSG Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tempor, dolor sodales mollis porta, ante sem elementum arcu, vitae fringilla justo quam ut lectus. Mauris sit amet turpis. Nam ac dolor. Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. Integer eget lorem consequat turpis gravida faucibus. Duis tempor. Fusce lacinia lorem sit amet lorem. Pellentesque convallis erat eu magna. Suspendisse potenti. Maecenas ac metus ut urna eleifend tristique. Aenean euismod. In hac habitasse platea dictumst. Sed sollicitudin luctus ante. MSG assert_equal expected, @utils.instance_eval { adjust_paragraph_to_terminal(message, 4) } message = <<-MSG * Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. MSG expected = <<-MSG * Proin tincidunt enim in orci. Proin in purus sit amet diam rhoncus porttitor. MSG assert_equal expected, @utils.instance_eval { adjust_paragraph_to_terminal(message, :auto) } end end