@@ -7,13 +7,21 @@ module TestIRB
77 class PagerTest < TestCase
88 def test_take_first_page
99 assert_equal [ 'a' * 40 , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . puts 'a' * 41 ; raise 'should not reach here' }
10+ assert_equal [ "a\n b\n a\n b\n " , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | 10 . times { io . puts "a\n b\n " } }
11+ assert_equal [ "a\n \n \n a\n " , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | 10 . times { io . puts "a\n \n \n " } }
12+ assert_equal [ "11\n " * 4 , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | 10 . times { io . write 1 ; io . puts 1 } }
13+ assert_equal [ "\n " * 4 , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | 10 . times { io . write nil ; io . puts nil } }
1014 assert_equal [ 'a' * 39 , false ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . write 'a' * 39 }
1115 assert_equal [ 'a' * 39 + 'b' , false ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . write 'a' * 39 + 'b' }
1216 assert_equal [ 'a' * 39 + 'b' , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . write 'a' * 39 + 'bc' }
1317 assert_equal [ "a\n b\n c\n d\n " , false ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . write "a\n b\n c\n d\n " }
1418 assert_equal [ "a\n b\n c\n d\n " , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . write "a\n b\n c\n d\n e" }
1519 assert_equal [ 'a' * 15 + "\n " + 'b' * 20 , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . puts 'a' * 15 ; io . puts 'b' * 30 }
16- assert_equal [ "\e [31mA\e [0m" * 10 + 'x' * 30 , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . puts "\e [31mA\e [0m" * 10 + 'x' * 31 ; }
20+ assert_equal [ "\e [31mA\e [0m" * 10 + 'x' * 30 , true ] , IRB ::Pager . take_first_page ( 10 , 4 ) { |io | io . puts "\e [31mA\e [0m" * 10 + 'x' * 31 }
21+ text , overflow = IRB ::Pager . take_first_page ( 10 , 4 ) { |io | 41 . times { io . write "\e [31mA\e [0m" } }
22+ assert_equal [ 'A' * 40 , true ] , [ text . gsub ( /\e \[ \d +m/ , '' ) , overflow ]
23+ text , overflow = IRB ::Pager . take_first_page ( 10 , 4 ) { |io | 41 . times { io . write "\e [31mAAA\e [0m" } }
24+ assert_equal [ 'A' * 40 , true ] , [ text . gsub ( /\e \[ \d +m/ , '' ) , overflow ]
1725 end
1826 end
1927
0 commit comments