r49666 - in /branches/upstream/libtest-json-perl: ./ current/ current/lib/ current/lib/Test/ current/t/

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Thu Dec 31 23:26:31 UTC 2009


Author: jawnsy-guest
Date: Thu Dec 31 23:26:26 2009
New Revision: 49666

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=49666
Log:
[svn-inject] Installing original source of libtest-json-perl

Added:
    branches/upstream/libtest-json-perl/
    branches/upstream/libtest-json-perl/current/
    branches/upstream/libtest-json-perl/current/Build.PL
    branches/upstream/libtest-json-perl/current/Changes
    branches/upstream/libtest-json-perl/current/MANIFEST
    branches/upstream/libtest-json-perl/current/META.yml
    branches/upstream/libtest-json-perl/current/Makefile.PL
    branches/upstream/libtest-json-perl/current/README
    branches/upstream/libtest-json-perl/current/lib/
    branches/upstream/libtest-json-perl/current/lib/Test/
    branches/upstream/libtest-json-perl/current/lib/Test/JSON.pm
    branches/upstream/libtest-json-perl/current/t/
    branches/upstream/libtest-json-perl/current/t/00-load.t
    branches/upstream/libtest-json-perl/current/t/10testjson.t
    branches/upstream/libtest-json-perl/current/t/pod-coverage.t
    branches/upstream/libtest-json-perl/current/t/pod.t

Added: branches/upstream/libtest-json-perl/current/Build.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/Build.PL?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/Build.PL (added)
+++ branches/upstream/libtest-json-perl/current/Build.PL Thu Dec 31 23:26:26 2009
@@ -1,0 +1,19 @@
+use strict;
+use Module::Build;
+
+my $builder = Module::Build->new(
+    module_name       => 'Test::JSON',
+    license           => 'perl',
+    dist_author       => 'Curtis "Ovid" Poe <ovid at cpan.org>',
+    dist_version_from => 'lib/Test/JSON.pm',
+    requires          => {
+        'JSON::Any'         => 1.20,
+        'Test::Differences' => 0.47,
+        'Test::Simple'      => 0.62,
+        'Test::Tester'      => 0.107,
+    },
+    add_to_cleanup     => ['Test-JSON-*'],
+    create_makefile_pl => 'traditional',
+);
+
+$builder->create_build_script();

Added: branches/upstream/libtest-json-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/Changes?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/Changes (added)
+++ branches/upstream/libtest-json-perl/current/Changes Thu Dec 31 23:26:26 2009
@@ -1,0 +1,37 @@
+Revision history for Test-JSON
+
+0.11    2009-08-09
+        Upgrade Test::Tester dependency to 0.107.  This fixes an intermittant
+        test failure identified by Eric Wilhelm in
+        http://rt.cpan.org/Public/Bug/Display.html?id=48509
+
+0.10    2009-07-03
+        Need dependency on JSON::Any 1.20 or greater.  This resolves rt #32957
+        Inherit from Test::Builder::Module instead of rolling my own exporter.
+
+
+0.07    2009-06-29
+        Ensure that we can run with subtests by not having Test::Builder->new
+        at the top of the script.
+        Bump up minimum version of JSON::Any to minimize bugs.
+
+0.06    2007-12-29
+        Minor documentation updates.
+
+0.05    2007-12-29
+        Converted to JSON::Any.
+
+0.04    2007-12-29
+        Took out all support for versions of JSON prior to 2.0 due to
+        installation bugs.
+
+0.03    2007-12-29
+        Updated to work with JSON 2.0 or earlier.  Thanks to Makamaka
+        Hannyaharamitu for a preliminary patch.
+
+0.02    2005-11-15
+        Updated the level setting in is_json() to reflect the correct level.
+
+0.01    2005-11-12
+        Easy JSON testing.
+

Added: branches/upstream/libtest-json-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/MANIFEST?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/MANIFEST (added)
+++ branches/upstream/libtest-json-perl/current/MANIFEST Thu Dec 31 23:26:26 2009
@@ -1,0 +1,11 @@
+Build.PL
+Changes
+lib/Test/JSON.pm
+MANIFEST
+META.yml			# Will be created by "make dist"
+README
+t/00-load.t
+t/10testjson.t
+t/pod-coverage.t
+t/pod.t
+Makefile.PL

Added: branches/upstream/libtest-json-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/META.yml?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/META.yml (added)
+++ branches/upstream/libtest-json-perl/current/META.yml Thu Dec 31 23:26:26 2009
@@ -1,0 +1,22 @@
+---
+name: Test-JSON
+version: 0.11
+author:
+  - 'Curtis "Ovid" Poe <ovid at cpan.org>'
+abstract: Test JSON data
+license: perl
+resources:
+  license: ~
+requires:
+  JSON::Any: 1.2
+  Test::Differences: 0.47
+  Test::Simple: 0.62
+  Test::Tester: 0.107
+provides:
+  Test::JSON:
+    file: lib/Test/JSON.pm
+    version: 0.11
+generated_by: Module::Build version 0.32
+meta-spec:
+  url: http://module-build.sourceforge.net/META-spec-v1.2.html
+  version: 1.2

Added: branches/upstream/libtest-json-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/Makefile.PL?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/Makefile.PL (added)
+++ branches/upstream/libtest-json-perl/current/Makefile.PL Thu Dec 31 23:26:26 2009
@@ -1,0 +1,16 @@
+# Note: this file was auto-generated by Module::Build::Compat version 0.32
+use ExtUtils::MakeMaker;
+WriteMakefile
+(
+          'INSTALLDIRS' => 'site',
+          'NAME' => 'Test::JSON',
+          'EXE_FILES' => [],
+          'VERSION_FROM' => 'lib/Test/JSON.pm',
+          'PREREQ_PM' => {
+                           'Test::Differences' => '0.47',
+                           'Test::Tester' => '0.107',
+                           'Test::Simple' => '0.62',
+                           'JSON::Any' => '1.2'
+                         }
+        )
+;

Added: branches/upstream/libtest-json-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/README?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/README (added)
+++ branches/upstream/libtest-json-perl/current/README Thu Dec 31 23:26:26 2009
@@ -1,0 +1,19 @@
+Test-JSON
+
+This module allows for easy testing of JSON data.
+
+INSTALLATION
+
+To install this module, run the following commands:
+
+    perl Build.PL
+    ./Build
+    ./Build test
+    ./Build install
+
+COPYRIGHT AND LICENCE
+
+Copyright (C) 2005 Curtis "Ovid" Poe
+
+This program is free software; you can redistribute it and/or modify it
+under the same terms as Perl itself.

Added: branches/upstream/libtest-json-perl/current/lib/Test/JSON.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/lib/Test/JSON.pm?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/lib/Test/JSON.pm (added)
+++ branches/upstream/libtest-json-perl/current/lib/Test/JSON.pm Thu Dec 31 23:26:26 2009
@@ -1,0 +1,162 @@
+package Test::JSON;
+
+use strict;
+use Carp;
+use Test::Differences;
+use JSON::Any;
+
+use base 'Test::Builder::Module';
+our @EXPORT = qw/is_json is_valid_json/;
+
+=head1 NAME
+
+Test::JSON - Test JSON data
+
+=head1 VERSION
+
+Version 0.11
+
+=cut
+
+our $VERSION = '0.11';
+
+my $JSON = JSON::Any->new;
+
+=head1 SYNOPSIS
+
+ use Test::JSON;
+
+ is_valid_json $json,                 '... json is well formed';
+ is_json       $json, $expected_json, '... and it matches what we expected';
+
+=head1 EXPORT
+
+=over 4
+
+=item * is_valid_json
+
+=item * is_json
+
+=back
+
+=head1 DESCRIPTION
+
+JavaScript Object Notation (JSON) is a lightweight data interchange format.
+L<Test::JSON> makes it easy to verify that you have built valid JSON and that
+it matches your expected output.
+
+See L<http://www.json.org/> for more information.
+
+=head1 TESTS
+
+=head2 is_valid_json
+
+ is_valid_json $json, '... json is well formed';
+
+Test passes if the string passed is valid JSON.
+
+=head2 is_json
+
+ is_json $json, $expected_json, '... and it matches what we expected';
+
+Test passes if the two JSON strings are valid JSON and evaluate to the same
+data structure.
+
+L<Test::Differences> is used to provide easy diagnostics of why the JSON
+structures did not match.  For example:
+
+   Failed test '... and identical JSON should match'
+   in t/10testjson.t at line 14.
+ +----+---------------------------+---------------------------+
+ | Elt|Got                        |Expected                   |
+ +----+---------------------------+---------------------------+
+ |   0|{                          |{                          |
+ |   1|  bool => '1',             |  bool => '1',             |
+ |   2|  description => bless( {  |  description => bless( {  |
+ |   3|    value => undef         |    value => undef         |
+ |   4|  }, 'JSON::NotString' ),  |  }, 'JSON::NotString' ),  |
+ |   5|  id => '1',               |  id => '1',               |
+ *   6|  name => 'foo'            |  name => 'fo'             *
+ |   7|}                          |}                          |
+ +----+---------------------------+---------------------------+
+
+=cut
+
+sub is_valid_json ($;$) {
+    my ( $input, $test_name ) = @_;
+    croak "usage: is_valid_json(input,test_name)"
+      unless defined $input;
+    eval { $JSON->decode($input) };
+    my $test = __PACKAGE__->builder;
+    if ( my $error = $@ ) {
+        $test->ok( 0, $test_name );
+        $test->diag("Input was not valid JSON:\n\n\t$error");
+        return;
+    }
+    else {
+        $test->ok( 1, $test_name );
+        return 1;
+    }
+}
+
+sub is_json ($$;$) {
+    my ( $input, $expected, $test_name ) = @_;
+    croak "usage: is_json(input,expected,test_name)"
+      unless defined $input && defined $expected;
+
+    my %json_for;
+    foreach my $item ( [ input => $input ], [ expected => $expected ] ) {
+        my $json = eval { $JSON->decode( $item->[1] ) };
+        my $test = __PACKAGE__->builder;
+        if ( my $error = $@ ) {
+            $test->ok( 0, $test_name );
+            $test->diag("$item->[0] was not valid JSON: $error");
+            return;
+        }
+        else {
+            $json_for{ $item->[0] } = $json;
+        }
+    }
+    local $Test::Builder::Level = $Test::Builder::Level + 1;
+    eq_or_diff( $json_for{input}, $json_for{expected}, $test_name );
+}
+
+=head1 AUTHOR
+
+Curtis "Ovid" Poe, C<< <ovid at cpan.org> >>
+
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-test-json at rt.cpan.org>, or through the web interface at
+L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-JSON>.
+I will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SEE ALSO
+
+This test module uses L<JSON::Any> and L<Test::Differences>.
+
+=head1 ACKNOWLEDGEMENTS
+
+The development of this module was sponsored by Kineticode,
+L<http://www.kineticode.com/>, the leading provider of services for the
+Bricolage content management system, L<http://www.bricolage.cc/>.
+
+Thanks to Makamaka Hannyaharamitu C<makamaka at cpan.org> for a patch to make
+this work with JSON 2.0.
+
+Thanks to Stevan Little for suggesting a switch to L<JSON::Any>.  This makes
+it easier for this module to work with whatever JSON module you have
+installed.
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2005-2007 Curtis "Ovid" Poe, all rights reserved.
+
+This program is free software; you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1;

Added: branches/upstream/libtest-json-perl/current/t/00-load.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/t/00-load.t?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/t/00-load.t (added)
+++ branches/upstream/libtest-json-perl/current/t/00-load.t Thu Dec 31 23:26:26 2009
@@ -1,0 +1,9 @@
+#!perl -T
+
+use Test::More tests => 1;
+
+BEGIN {
+	use_ok( 'Test::JSON' );
+}
+
+diag( "Testing Test::JSON $Test::JSON::VERSION, Perl $], $^X" );

Added: branches/upstream/libtest-json-perl/current/t/10testjson.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/t/10testjson.t?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/t/10testjson.t (added)
+++ branches/upstream/libtest-json-perl/current/t/10testjson.t Thu Dec 31 23:26:26 2009
@@ -1,0 +1,76 @@
+#!perl 
+
+use Test::Tester;
+use Test::JSON;
+use Test::More tests => 36;
+
+my $json = '{"bool":1,"name":"foo","id":1,"description":null}';
+my $good = '{"bool":1,"name":"foo","id":1,"description":null}';
+
+my $desc = 'identical JSON should match';
+check_test(
+    sub { is_json $json, $good, $desc },
+    {
+        ok   => 1,
+        name => $desc,
+    },
+    $desc
+);
+
+$good = '{"bool":1,"id":1,"name":"foo","description":null}';
+
+$desc = 'attribute order should not matter';
+check_test(
+    sub { is_json $json, $good, $desc },
+    {
+        ok   => 1,
+        name => $desc,
+    },
+    $desc
+);
+
+# "null" is misspelled
+my $invalid = '{"bool":1,"name":"fo","id":1,"description":nul}';
+$desc = 'Invalid json should fail';
+check_test(
+    sub { is_json $json, $invalid, $desc },
+    {
+        ok   => 0,
+        name => $desc,
+    },
+    $desc
+);
+
+# "fo" should be "foo"
+my $not_the_same = '{"bool":1,"name":"fo","id":1,"description":null}';
+$desc = 'Different JSON should fail';
+check_test(
+    sub { is_json $json, $not_the_same, $desc },
+    {
+        ok   => 0,
+        name => $desc,
+    },
+    $desc
+);
+
+$json = '{"bool":1,"name":"fo","id":1,"description":null}';
+$desc = 'Valid JSON should succeed';
+check_test(
+    sub { is_valid_json $json, $desc },
+    {
+        ok   => 1,
+        name => $desc,
+    },
+    $desc
+);
+
+$invalid = '{"bool":1,"name":"fo","id":1,"description":nul}';
+$desc    = 'Invalid JSON should fail';
+check_test(
+    sub { is_valid_json $invalid, $desc },
+    {
+        ok   => 0,
+        name => $desc,
+    },
+    $desc
+);

Added: branches/upstream/libtest-json-perl/current/t/pod-coverage.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/t/pod-coverage.t?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/t/pod-coverage.t (added)
+++ branches/upstream/libtest-json-perl/current/t/pod-coverage.t Thu Dec 31 23:26:26 2009
@@ -1,0 +1,6 @@
+#!perl -T
+
+use Test::More;
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@;
+all_pod_coverage_ok();

Added: branches/upstream/libtest-json-perl/current/t/pod.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libtest-json-perl/current/t/pod.t?rev=49666&op=file
==============================================================================
--- branches/upstream/libtest-json-perl/current/t/pod.t (added)
+++ branches/upstream/libtest-json-perl/current/t/pod.t Thu Dec 31 23:26:26 2009
@@ -1,0 +1,6 @@
+#!perl -T
+
+use Test::More;
+eval "use Test::Pod 1.14";
+plan skip_all => "Test::Pod 1.14 required for testing POD" if $@;
+all_pod_files_ok();




More information about the Pkg-perl-cvs-commits mailing list