summaryrefslogtreecommitdiff
path: root/cpan/Test-Simple/lib/Test/Stream/Tester
diff options
context:
space:
mode:
authorRicardo Signes <rjbs@cpan.org>2015-03-08 18:20:22 -0400
committerRicardo Signes <rjbs@cpan.org>2015-03-11 08:22:07 -0400
commitafad11a2ce2b95ce853f2a09df2cbf068be080c3 (patch)
treee8b977e2afe9262eb6216534cf16935da97eb736 /cpan/Test-Simple/lib/Test/Stream/Tester
parent9d58dbc453a86c9cbb3a131adcd1559fe0445a08 (diff)
downloadperl-afad11a2ce2b95ce853f2a09df2cbf068be080c3.tar.gz
move back to a stable Test-Simple, v1.001014
Diffstat (limited to 'cpan/Test-Simple/lib/Test/Stream/Tester')
-rw-r--r--cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm403
-rw-r--r--cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm197
-rw-r--r--cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm169
-rw-r--r--cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm202
-rw-r--r--cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm215
5 files changed, 0 insertions, 1186 deletions
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm
deleted file mode 100644
index d032807c13..0000000000
--- a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks.pm
+++ /dev/null
@@ -1,403 +0,0 @@
-package Test::Stream::Tester::Checks;
-use strict;
-use warnings;
-
-use Test::Stream::Carp qw/croak confess/;
-use Test::Stream::Util qw/is_regex/;
-
-use Scalar::Util qw/blessed reftype/;
-
-my %DIRECTIVES = (
- map { $_ => __PACKAGE__->can($_) }
- qw(filter_providers filter_types skip seek end)
-);
-
-sub new {
- my $class = shift;
- my ($file, $line) = @_;
- my $self = bless {
- seek => 0,
- items => [],
- file => $file,
- line => $line,
- }, $class;
- return $self;
-}
-
-sub debug {
- my $self = shift;
- return "Checks from $self->{file} around line $self->{line}.";
-}
-
-sub populated { scalar @{shift->{items}} }
-
-sub add_directive {
- my $self = shift;
- my ($dir, @args) = @_;
-
- confess "No directive provided!"
- unless $dir;
-
- if (ref($dir)) {
- confess "add_directive takes a coderef, or name, and optional args. (got $dir)"
- unless reftype($dir) eq 'CODE';
- }
- else {
- confess "$dir is not a valid directive."
- unless $DIRECTIVES{$dir};
- $dir = $DIRECTIVES{$dir};
- }
-
- push @{$self->{items}} => [$dir, @args];
-}
-
-sub add_event {
- my $self = shift;
- my ($type, $spec) = @_;
-
- confess "add_event takes a type name and a hashref"
- unless $type && $spec && ref $spec && reftype($spec) eq 'HASH';
-
- my $e = Test::Stream::Tester::Checks::Event->new(%$spec, type => $type);
- push @{$self->{items}} => $e;
-}
-
-sub include {
- my $self = shift;
- my ($other) = @_;
-
- confess "Invalid argument to include()"
- unless $other && blessed($other) && $other->isa(__PACKAGE__);
-
- push @{$self->{items}} => @{$other->{items}};
-}
-
-sub run {
- my $self = shift;
- my ($events) = @_;
- $events = $events->clone;
-
- for (my $i = 0; $i < @{$self->{items}}; $i++) {
- my $item = $self->{items}->[$i];
-
- # Directive
- if (reftype $item eq 'ARRAY') {
- my ($code, @args) = @$item;
- my @out = $self->$code($events, @args);
- next unless @out;
- return @out;
- }
-
- # Event!
- my $meth = $self->{seek} ? 'seek' : 'next';
- my $event = $events->$meth($item->get('type'));
-
- my ($ret, @debug) = $self->check_event($item, $event);
- return ($ret, @debug) unless $ret;
- }
-
- return (1);
-}
-
-sub vtype {
- my ($v) = @_;
-
- if (blessed($v)) {
- return 'checks' if $v->isa('Test::Stream::Tester::Checks');
- return 'events' if $v->isa('Test::Stream::Tester::Events');
- return 'check' if $v->isa('Test::Stream::Tester::Checks::Event');
- return 'event' if $v->isa('Test::Stream::Tester::Events::Event');
- }
-
- return 'regexp' if defined is_regex($v);
- return 'noref' unless ref $v;
- return 'array' if reftype($v) eq 'ARRAY';
- return 'code' if reftype($v) eq 'CODE';
-
- confess "Invalid field check: '$v'";
-}
-
-sub check_event {
- my $self = shift;
- my ($want, $got) = @_;
-
- my @debug = (" Check: " . $want->debug);
- my $wtype = $want->get('type');
-
- return (0, @debug, " Expected event of type '$wtype', but did not find one.")
- unless defined($got);
-
- unshift @debug => " Event: " . $got->debug;
- my $gtype = $got->get('type');
-
- return (0, @debug, " Expected event of type '$wtype', but got '$gtype'.")
- unless $wtype eq $gtype;
-
- for my $key ($want->keys) {
- my $wval = $want->get($key);
- my $gval = $got->get($key);
-
- my ($ret, @err) = $self->check_key($key, $wval, $gval);
- return ($ret, @debug, @err) unless $ret;
- }
-
- return (1);
-}
-
-sub check_key {
- my $self = shift;
- my ($key, $wval, $gval) = @_;
-
- if ((defined $wval) xor(defined $gval)) {
- $wval = defined $wval ? "'$wval'" : 'undef';
- $gval = defined $gval ? "'$gval'" : 'undef';
- return (0, " \$got->{$key} = $gval", " \$exp->{$key} = $wval",);
- }
-
- my $wtype = vtype($wval);
-
- my $meth = "_check_field_$wtype";
- return $self->$meth($key, $wval, $gval);
-}
-
-sub _check_field_checks {
- my $self = shift;
- my ($key, $wval, $gval) = @_;
-
- my $debug = $wval->debug;
-
- return (0, " \$got->{$key} = '$gval'", " \$exp->{$key} = <$debug>")
- unless vtype($gval) eq 'events';
-
- my ($ret, @diag) = $wval->run($gval);
- return $ret if $ret;
- return ($ret, map { s/^/ /mg; $_ } @diag);
-}
-
-sub _check_field_check {
- my $self = shift;
- my ($key, $wval, $gval) = @_;
-
- my $debug = $wval->debug;
-
- return (0, "Event: INVALID EVENT ($gval)", " Check: $debug")
- unless vtype($gval) eq 'event';
-
- my ($ret, @diag) = check_event($wval, $gval);
- return $ret if $ret;
-
- return ($ret, map { s/^/ /mg; $_ } @diag);
-}
-
-sub _check_field_noref {
- my $self = shift;
- my ($key, $wval, $gval) = @_;
-
- return (1) if !defined($wval) && !defined($gval);
- return (1) if defined($wval) && defined($gval) && "$wval" eq "$gval";
- $wval = "'$wval'" if defined $wval;
- $wval ||= 'undef';
- $gval = "'$gval'" if defined $gval;
- $gval ||= 'undef';
- return (0, " \$got->{$key} = $gval", " \$exp->{$key} = $wval");
-}
-
-sub _check_field_regexp {
- my $self = shift;
- my ($key, $wval, $gval) = @_;
-
- return (1) if $gval =~ /$wval/;
- return (0, " \$got->{$key} = '$gval'", " Does not match $wval");
-}
-
-sub _check_field_array {
- my $self = shift;
- my ($key, $wval, $gval) = @_;
- for my $p (@$wval) {
- my ($ret, @diag) = $self->_check_field_regexp($key, $p, $gval);
- return ($ret, @diag) unless $ret;
- }
-
- return (1);
-}
-
-sub _check_field_code {
- my $self = shift;
- my ($key, $wval, $gval) = @_;
- $wval->($key, $gval);
-}
-
-sub seek {
- my $self = shift;
- my ($events, $flag) = @_;
-
- $self->{seek} = $flag ? 1 : 0;
-
- return (); # Cannot fail
-}
-
-sub skip {
- my $self = shift;
- my ($events, $num) = @_;
- $events->next while $num--;
- return ();
-}
-
-sub end {
- my $self = shift;
- my ($events) = @_;
- my $event = $events->next;
- return () unless $event;
- return (0, " Expected end of events, got " . $event->debug);
-}
-
-sub filter_providers {
- my $self = shift;
- my ($events, $arg) = @_;
-
- my ($neg, $val) = $arg =~ m/^(!?)(.*)$/;
- if ($neg) {
- @$events = grep { $_->get('tool_package') ne $val } @$events;
- }
- else {
- @$events = grep { $_->get('tool_package') eq $val } @$events;
- }
-
- return ();
-}
-
-sub filter_types {
- my $self = shift;
- my ($events, $arg) = @_;
-
- my ($neg, $val) = $arg =~ m/^(!?)(.*)$/;
- if ($neg) {
- @$events = grep { $_->get('type') ne $val } @$events;
- }
- else {
- @$events = grep { $_->get('type') eq $val } @$events;
- }
-
- return ();
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Checks - Representation of a L<Test::Stream::Tester>
-event check.
-
-=head1 DESCRIPTION
-
-L<Test::Stream::Tester> produces this object whenever you use C<check { ... }>.
-In general you will not interact with this object directly beyond pasing it
-into C<events_are>.
-
-B<Note:> The API for this object is not published and is subject to change. No backwords
-compatability can be guarenteed if you use this object directly. Please only
-use this object in the published way specified in L<Test::Stream::Tester>.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration from Joshua Pritikin's Test module and lots of help from Barrie
-Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa
-gang.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm
deleted file mode 100644
index 649b3e75e2..0000000000
--- a/cpan/Test-Simple/lib/Test/Stream/Tester/Checks/Event.pm
+++ /dev/null
@@ -1,197 +0,0 @@
-package Test::Stream::Tester::Checks::Event;
-use strict;
-use warnings;
-
-use Test::Stream::Util qw/is_regex/;
-use Test::Stream::Carp qw/confess croak/;
-
-use Scalar::Util qw/blessed reftype/;
-
-sub new {
- my $class = shift;
- my $fields = {@_};
- my $self = bless {fields => $fields}, $class;
-
- $self->{$_} = delete $fields->{$_}
- for qw/debug_line debug_file debug_package/;
-
- map { $self->validate_check($_) } values %$fields;
-
- my $type = $self->get('type') || confess "No type specified!";
-
- my $etypes = Test::Stream::Context->events;
- confess "'$type' is not a valid event type"
- unless $etypes->{$type};
-
- return $self;
-}
-
-sub debug_line { shift->{debug_line} }
-sub debug_file { shift->{debug_file} }
-sub debug_package { shift->{debug_package} }
-
-sub debug {
- my $self = shift;
-
- my $type = $self->get('type');
- my $file = $self->debug_file;
- my $line = $self->debug_line;
-
- return "'$type' from $file line $line.";
-}
-
-sub keys { sort keys %{shift->{fields}} }
-
-sub exists {
- my $self = shift;
- my ($field) = @_;
- return exists $self->{fields}->{$field};
-}
-
-sub get {
- my $self = shift;
- my ($field) = @_;
- return $self->{fields}->{$field};
-}
-
-sub validate_check {
- my $self = shift;
- my ($val) = @_;
-
- return unless defined $val;
- return unless ref $val;
- return if defined is_regex($val);
-
- if (blessed($val)) {
- return if $val->isa('Test::Stream::Tester::Checks');
- return if $val->isa('Test::Stream::Tester::Events');
- return if $val->isa('Test::Stream::Tester::Checks::Event');
- return if $val->isa('Test::Stream::Tester::Events::Event');
- }
-
- my $type = reftype($val);
- return if $type eq 'CODE';
-
- croak "'$val' is not a valid field check"
- unless reftype($val) eq 'ARRAY';
-
- croak "Arrayrefs given as field checks may only contain regexes"
- if grep { ! defined is_regex($_) } @$val;
-
- return;
-}
-
-1;
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Checks::Event - Representation of an event validation
-specification.
-
-=head1 DESCRIPTION
-
-Used internally by L<Test::Stream::Tester>. Please do not use directly. No
-backwords compatability will be provided if the API for this module changes.
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration from Joshua Pritikin's Test module and lots of help from Barrie
-Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa
-gang.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm
deleted file mode 100644
index 529fdee408..0000000000
--- a/cpan/Test-Simple/lib/Test/Stream/Tester/Events.pm
+++ /dev/null
@@ -1,169 +0,0 @@
-package Test::Stream::Tester::Events;
-use strict;
-use warnings;
-
-use Scalar::Util qw/blessed/;
-
-use Test::Stream::Tester::Events::Event;
-
-sub new {
- my $class = shift;
- my $self = bless [map { Test::Stream::Tester::Events::Event->new($_->summary) } @_], $class;
- return $self;
-}
-
-sub next { shift @{$_[0]} };
-
-sub seek {
- my $self = shift;
- my ($type) = @_;
-
- while (my $e = shift @$self) {
- return $e if $e->{type} eq $type;
- }
-
- return undef;
-}
-
-sub clone {
- my $self = shift;
- my $class = blessed($self);
- return bless [@$self], $class;
-}
-
-1;
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Events - Event list used by L<Test::Stream::Tester>.
-
-=head1 DESCRIPTION
-
-L<Test::Stream::Tester> converts lists of events into instances of this object
-for use in various tools. You will probably never need to directly use this
-class.
-
-=head1 METHODS
-
-=over 4
-
-=item $events = $class->new(@EVENTS);
-
-Create a new instance from a list of events.
-
-=item $event = $events->next
-
-Get the next event.
-
-=item $event = $events->seek($type)
-
-Get the next event of the specific type (not a package name).
-
-=item $copy = $events->clone()
-
-Clone the events list object in its current state.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration from Joshua Pritikin's Test module and lots of help from Barrie
-Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa
-gang.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm
deleted file mode 100644
index 0c3e2063f8..0000000000
--- a/cpan/Test-Simple/lib/Test/Stream/Tester/Events/Event.pm
+++ /dev/null
@@ -1,202 +0,0 @@
-package Test::Stream::Tester::Events::Event;
-use strict;
-use warnings;
-
-use Test::Stream::Carp qw/confess/;
-use Scalar::Util qw/reftype blessed/;
-
-sub new {
- my $class = shift;
- my $self = bless {}, $class;
-
- my @orig = @_;
-
- while (@_) {
- my $field = shift;
- my $val = shift;
-
- if (exists $self->{$field}) {
- use Data::Dumper;
- print Dumper(@orig);
- confess "'$field' specified more than once!";
- }
-
- if (my $type = reftype $val) {
- if ($type eq 'ARRAY') {
- $val = Test::Stream::Tester::Events->new(@$val)
- unless grep { !blessed($_) || !$_->isa('Test::Stream::Event') } @$val;
- }
- elsif (blessed($val) && $val->isa('Test::Stream::Event')) {
- $val = $class->new($val->summary);
- }
- }
-
- $self->{$field} = $val;
- }
-
- return $self;
-}
-
-sub get {
- my $self = shift;
- my ($field) = @_;
- return $self->{$field};
-}
-
-sub debug {
- my $self = shift;
-
- my $type = $self->get('type');
- my $file = $self->get('file');
- my $line = $self->get('line');
-
- return "'$type' from $file line $line.";
-}
-
-1;
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Events::Event - L<Test::Stream::Tester> representation of
-an event.
-
-=head1 DESCRIPTION
-
-L<Test::Stream::Tester> often uses this clas to represent events in a way that
-is easier to validate.
-
-=head1 SYNOPSYS
-
- use Test::Stream::Tester::Events::Event;
-
- my $event = Test::Stream::Tester::Events::Event->new($e->summary);
-
- # Print the file and line number where the event was generated
- print "Debug: " . $event->debug . "\n";
-
- # Get an event field value
- my $val = $event->get($field);
-
-=head1 METHODS
-
-=over 4
-
-=item $event->get($field)
-
-Get the value of a specific event field. Fields are specific to event types.
-The fields are usually the result of calling C<< $e->summary >> on the original
-event.
-
-=item $event->debug
-
-Returns a string like this:
-
- 'ok' from my_test.t line 42.
-
-Which lists the type of event, the file that generated, and the line number on
-which it was generated.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration from Joshua Pritikin's Test module and lots of help from Barrie
-Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa
-gang.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back
diff --git a/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm b/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm
deleted file mode 100644
index 8022011024..0000000000
--- a/cpan/Test-Simple/lib/Test/Stream/Tester/Grab.pm
+++ /dev/null
@@ -1,215 +0,0 @@
-package Test::Stream::Tester::Grab;
-use strict;
-use warnings;
-
-sub new {
- my $class = shift;
-
- my $self = bless {
- events => [],
- streams => [ Test::Stream->intercept_start ],
- }, $class;
-
- $self->{streams}->[0]->listen(
- sub {
- shift; # Stream
- push @{$self->{events}} => @_;
- }
- );
-
- return $self;
-}
-
-sub flush {
- my $self = shift;
- my $out = delete $self->{events};
- $self->{events} = [];
- return $out;
-}
-
-sub events {
- my $self = shift;
- # Copy
- return [@{$self->{events}}];
-}
-
-sub finish {
- my ($self) = @_; # Do not shift;
- $_[0] = undef;
-
- $self->{finished} = 1;
- my ($remove) = $self->{streams}->[0];
- Test::Stream->intercept_stop($remove);
-
- return $self->flush;
-}
-
-sub DESTROY {
- my $self = shift;
- return if $self->{finished};
- my ($remove) = $self->{streams}->[0];
- Test::Stream->intercept_stop($remove);
-}
-
-1;
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Test::Stream::Tester::Grab - Object used to temporarily steal all events.
-
-=head1 DESCRIPTION
-
-Once created this object will intercept and stash all events sent to the shared
-L<Test::Stream> object. Once the object is destroyed events will once again be
-sent to the shared stream.
-
-=head1 SYNOPSYS
-
- use Test::More;
- use Test::Stream::Tester::Grab;
-
- my $grab = Test::Stream::Tester::Grab->new();
-
- # Generate some events, they are intercepted.
- ok(1, "pass");
- ok(0, "fail");
-
- my $events_a = $grab->flush;
-
- # Generate some more events, they are intercepted.
- ok(1, "pass");
- ok(0, "fail");
-
- # Same as flush, except it destroys the grab object.
- my $events_b = $grab->finish;
-
-After calling C<finish()> the grab object is destroyed and C<$grab> is set to
-undef. C<$events_a> is an arrayref with the first 2 events. C<$events_b> is an
-arrayref with the second 2 events.
-
-=head1 METHODS
-
-=over 4
-
-=item $grab = $class->new()
-
-Create a new grab object, immediately starts intercepting events.
-
-=item $ar = $grab->flush()
-
-Get an arrayref of all the events so far, clearing the grab objects internal
-list.
-
-=item $ar = $grab->events()
-
-Get an arrayref of all events so far, does not clear the internal list.
-
-=item $ar = $grab->finish()
-
-Get an arrayref of all the events, then destroy the grab object.
-
-=back
-
-=head1 SOURCE
-
-The source code repository for Test::More can be found at
-F<http://github.com/Test-More/test-more/>.
-
-=head1 MAINTAINER
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=back
-
-=head1 AUTHORS
-
-The following people have all contributed to the Test-More dist (sorted using
-VIM's sort function).
-
-=over 4
-
-=item Chad Granum E<lt>exodist@cpan.orgE<gt>
-
-=item Fergal Daly E<lt>fergal@esatclear.ie>E<gt>
-
-=item Mark Fowler E<lt>mark@twoshortplanks.comE<gt>
-
-=item Michael G Schwern E<lt>schwern@pobox.comE<gt>
-
-=item 唐鳳
-
-=back
-
-=head1 COPYRIGHT
-
-There has been a lot of code migration between modules,
-here are all the original copyrights together:
-
-=over 4
-
-=item Test::Stream
-
-=item Test::Stream::Tester
-
-Copyright 2014 Chad Granum E<lt>exodist7@gmail.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::Simple
-
-=item Test::More
-
-=item Test::Builder
-
-Originally authored by Michael G Schwern E<lt>schwern@pobox.comE<gt> with much
-inspiration from Joshua Pritikin's Test module and lots of help from Barrie
-Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa
-gang.
-
-Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern
-E<lt>schwern@pobox.comE<gt>, wardrobe by Calvin Klein.
-
-Copyright 2001-2008 by Michael G Schwern E<lt>schwern@pobox.comE<gt>.
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See F<http://www.perl.com/perl/misc/Artistic.html>
-
-=item Test::use::ok
-
-To the extent possible under law, 唐鳳 has waived all copyright and related
-or neighboring rights to L<Test-use-ok>.
-
-This work is published from Taiwan.
-
-L<http://creativecommons.org/publicdomain/zero/1.0>
-
-=item Test::Tester
-
-This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts
-are based on other people's work.
-
-Under the same license as Perl itself
-
-See http://www.perl.com/perl/misc/Artistic.html
-
-=item Test::Builder::Tester
-
-Copyright Mark Fowler E<lt>mark@twoshortplanks.comE<gt> 2002, 2004.
-
-This program is free software; you can redistribute it
-and/or modify it under the same terms as Perl itself.
-
-=back