X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=t%2Fmsg_iter.t;h=d303564fd0eaa321308fc8993fb8a782a5234f2f;hp=e33bfc69df1bcc2d0b00d16424e3f70993d9d419;hb=1a02e2d367b71eca9fc8093ce83fcae50873003d;hpb=fc92ce8845ac5f09939722537624fa48441f7c0b diff --git a/t/msg_iter.t b/t/msg_iter.t index e33bfc69..d303564f 100644 --- a/t/msg_iter.t +++ b/t/msg_iter.t @@ -78,5 +78,35 @@ use_ok('PublicInbox::MsgIter'); 'got bullet point when X-UNKNOWN assumes UTF-8'); } +{ # API not finalized + my @warn; + local $SIG{__WARN__} = sub { push @warn, [ @_ ] }; + my $attr = "So and so wrote:\n"; + my $q = "> hello world\n" x 10; + my $nq = "hello world\n" x 10; + my @sections = PublicInbox::MsgIter::split_quotes($attr . $q . $nq); + is($sections[0], $attr, 'attribution matches'); + is($sections[1], $q, 'quoted section matches'); + is($sections[2], $nq, 'non-quoted section matches'); + is(scalar(@sections), 3, 'only three sections for short message'); + is_deeply(\@warn, [], 'no warnings'); + + $q x= 3300; + $nq x= 3300; + @sections = PublicInbox::MsgIter::split_quotes($attr . $q . $nq); + is_deeply(\@warn, [], 'no warnings on giant message'); + is(join('', @sections), $attr . $q . $nq, 'result matches expected'); + is(shift(@sections), $attr, 'attribution is first section'); + my @check = ('', ''); + while (defined(my $l = shift @sections)) { + next if $l eq ''; + like($l, qr/\n\z/s, 'section ends with newline'); + my $idx = ($l =~ /\A>/) ? 0 : 1; + $check[$idx] .= $l; + } + is($check[0], $q, 'long quoted section matches'); + is($check[1], $nq, 'long quoted section matches'); +} + done_testing(); 1;