This is an automated email from the git hooks/post-receive script. mestre-guest pushed a commit to branch master in repository libdancer-session-cookie-perl.
commit de87ec91f10f718d63495580762eeee24d972ec7 Author: Nuno Carvalho <sm...@cpan.org> Date: Wed Jul 30 15:21:49 2014 +0100 Imported Upstream version 0.24 --- Build.PL | 95 +++++++++++++++++++++++++++++ CONTRIBUTORS | 14 +++++ Changes | 139 ++++++++++++++++++++++--------------------- INSTALL | 44 ++++++++++++++ LICENSE | 8 +-- MANIFEST | 20 +++---- MANIFEST.SKIP | 1 + META.json | 55 ++++++++--------- META.yml | 89 +++++++++++++-------------- Makefile.PL | 95 ----------------------------- README | 25 +------- README.mkdn | 82 +++++++++++++++++++++++++ README.pod | 135 +++++++++++++++++++++++++++++++++++++++++ SIGNATURE | 51 ++++++++++++++++ dist.ini | 13 ++-- lib/Dancer/Session/Cookie.pm | 52 ++++------------ t/00-compile.t | 94 +++++++++++------------------ t/00-report-prereqs.t | 86 -------------------------- t/000-report-versions-tiny.t | 99 ++++++++++++++++++++++++++++++ t/store-objects.t | 22 +++++++ xt/author/critic.t | 12 ---- xt/author/pod-spell.t | 36 ----------- xt/release/distmeta.t | 7 --- xt/release/minimum-version.t | 8 --- xt/release/pod-coverage.t | 13 ---- xt/release/pod-syntax.t | 7 --- xt/release/portability.t | 12 ---- xt/release/test-version.t | 22 ------- xt/release/unused-vars.t | 14 +++++ 29 files changed, 762 insertions(+), 588 deletions(-) diff --git a/Build.PL b/Build.PL new file mode 100644 index 0000000..ad44218 --- /dev/null +++ b/Build.PL @@ -0,0 +1,95 @@ + +# This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v5.019. +use strict; +use warnings; + +use Module::Build 0.3601; + + +my %module_build_args = ( + "build_requires" => { + "Module::Build" => "0.3601" + }, + "configure_requires" => { + "Module::Build" => "0.3601" + }, + "dist_abstract" => "Encrypted cookie-based session backend for Dancer", + "dist_author" => [ + "Alex Kapranoff <kappa\@cpan.org>", + "Alex Sukria <sukria\@cpan.org>", + "David Golden <dagolden\@cpan.org>", + "Yanick Champoux <yanick\@cpan.org>" + ], + "dist_name" => "Dancer-Session-Cookie", + "dist_version" => "0.24", + "license" => "perl", + "module_name" => "Dancer::Session::Cookie", + "recommends" => {}, + "recursive_test_files" => 1, + "requires" => { + "Crypt::CBC" => 0, + "Crypt::Rijndael" => 0, + "Dancer" => "1.3113", + "Dancer::Cookie" => 0, + "Dancer::Cookies" => 0, + "Dancer::Session::Abstract" => 0, + "MIME::Base64" => 0, + "Session::Storage::Secure" => "0.010", + "Storable" => 0, + "String::CRC32" => 0, + "Time::Duration::Parse" => 0, + "base" => 0, + "strict" => 0, + "warnings" => 0 + }, + "script_files" => [], + "test_requires" => { + "Dancer::ModuleLoader" => 0, + "Dancer::Test" => 0, + "File::Spec" => 0, + "File::Temp" => 0, + "FindBin" => 0, + "HTTP::Cookies" => 0, + "HTTP::Date" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "LWP" => 0, + "LWP::UserAgent" => 0, + "Test::Exception" => 0, + "Test::More" => "0.96", + "Test::NoWarnings" => 0, + "Test::TCP" => 0, + "perl" => "5.006" + } +); + + +my %fallback_build_requires = ( + "Dancer::ModuleLoader" => 0, + "Dancer::Test" => 0, + "File::Spec" => 0, + "File::Temp" => 0, + "FindBin" => 0, + "HTTP::Cookies" => 0, + "HTTP::Date" => 0, + "IO::Handle" => 0, + "IPC::Open3" => 0, + "LWP" => 0, + "LWP::UserAgent" => 0, + "Module::Build" => "0.3601", + "Test::Exception" => 0, + "Test::More" => "0.96", + "Test::NoWarnings" => 0, + "Test::TCP" => 0, + "perl" => "5.006" +); + + +unless ( eval { Module::Build->VERSION(0.4004) } ) { + delete $module_build_args{test_requires}; + $module_build_args{build_requires} = \%fallback_build_requires; +} + +my $build = Module::Build->new(%module_build_args); + +$build->create_build_script; diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000..449cafc --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,14 @@ + +# DANCER-SESSION-COOKIE CONTRIBUTORS # + +This is the (likely incomplete) list of people who have helped +make this distribution what it is, either via code contributions, +patches, bug reports, help with troubleshooting, etc. A huge +thank to all of them. + + * Breno G. de Oliveira <g...@cpan.org> + * Michael G. Schwern <schw...@pobox.com> + * Neil Kirsopp <n...@broadbean.com> + * Nick S. Knutov <n...@knutov.com> + + diff --git a/Changes b/Changes index 0554313..1507cc6 100644 --- a/Changes +++ b/Changes @@ -1,71 +1,74 @@ Revision history for Dancer-Session-Cookie -0.22 2013-05-31 23:38:07 America/New_York +0.24 2014-07-29 + [MISC] + - Release again, this time with real co-maint permissions. + + [STATISTICS] + - code churn: 1 file changed, 57 insertions(+), 53 deletions(-) + +0.23 2014-07-17 + [CHANGED] + - Requires Session::Storage::Secure 0.010 to allow storing objects, which + is specially relevant for JSON::bool data. + + [STATISTICS] + - code churn: 8 files changed, 67 insertions(+), 119 deletions(-) + +0.22 2013-05-31T23:38:07Z America/New_York + [CHANGED] + - Requires Session::Storage::Secure 0.007 for improved resistance to + timing attacks + +0.21 2013-05-08T22:33:10Z America/New_York + - Require Dancer 1.3113 and use its new features to fix more bugs that + caused sessions to not be set or reset correctly + +0.20 2013-04-25T11:41:22Z America/New_York + - Fix bug where session wasn't cleared correctly if route handler died + while processing a request + +0.19 2013-02-24T22:49:14Z America/New_York + - Fix bug with session_expires always expiring a cookie early + +0.18 2013-02-16T00:16:32Z America/New_York + - Hack around Dancer bug that renders the request object headers + repeatedly and locks out setting cookies after the first time + +0.17 2013-02-07T15:36:58Z America/New_York + - Fix localhost address used in tests + +0.16 2013-02-01T14:39:14Z America/New_York + - Now uses Session::Storage::Secure for encrypting and decrypting data; + Legacy decryption is preserved in case old cookies need to be read. + - Fix session destruction bug to ensure session is overwritten in the + browser, not just no longer sent (David Golden) + +0.15 2011-05-21 + - skip test 02-configfile.t if YAML is not present FIX smoker test + failure. (Alexis Sukrieh) + +0.14 2011-03-12 + [Michael G. Schwern] + - Fix for Dancer > v1.3012 + - Add support for session_secure to serve https only cookies. + - Add missing MYMETA.yml + - Make Dancer::Session::Cookie honor the session_name setting + added to Dancer::Session::Abstract + - Add session_cookie_path to control the path of the cookie. + +0.13 2010-11-28T17:19:58Z + - Some documentation fixes. No functional change. + +0.12 2010-09-16T13:29:09Z + - Fix a warning when testing against newer Dancer. No functional + - change. + +0.11 2010-02-17T16:12:21Z + - Chase the ever-changing Dancer core :) No functional change. + - More tests. + +0.1 2010-02-02T17:20:11Z + - First version separated from the Dancer core. No functional + - change. - [CHANGED] - - - Requires Session::Storage::Secure 0.007 for improved resistance - to timing attacks - -0.21 2013-05-08 22:33:10 America/New_York - - - Require Dancer 1.3113 and use its new features to fix more bugs - that caused sessions to not be set or reset correctly - -0.20 2013-04-25 11:41:22 America/New_York - - - Fix bug where session wasn't cleared correctly if route handler - died while processing a request - -0.19 2013-02-24 22:49:14 America/New_York - - - Fix bug with session_expires always expiring a cookie early - -0.18 2013-02-16 00:16:32 America/New_York - - - Hack around Dancer bug that renders the request object headers - repeatedly and locks out setting cookies after the first time - -0.17 2013-02-07 15:36:58 America/New_York - - - Fix localhost address used in tests - -0.16 2013-02-01 14:39:14 America/New_York - - - Now uses Session::Storage::Secure for encrypting and decrypting data; - Legacy decryption is preserved in case old cookies need to be read. - - - Fix session destruction bug to ensure session is overwritten in - the browser, not just no longer sent (David Golden) - -0.15 2011-05-21 - - * skip test 02-configfile.t if YAML is not present - FIX smoker test failure. - (Alexis Sukrieh) - -0.14 2011-03-12 - - [ Michael G. Schwern ] - - * Fix for Dancer > v1.3012 - * Add support for session_secure to serve https only cookies. - * Add missing MYMETA.yml - * Make Dancer::Session::Cookie honor the session_name setting - added to Dancer::Session::Abstract - * Add session_cookie_path to control the path of the cookie. - -0.13 Sun Nov 28 17:19:58 MSK 2010 - Some documentation fixes. No functional change. - -0.12 Thu Sep 16 13:29:09 MSD 2010 - Fix a warning when testing against newer Dancer. No functional - change. - -0.11 Wed Feb 17 16:12:21 MSK 2010 - Chase the ever-changing Dancer core :) No functional change. - More tests. - -0.1 Tue Feb 2 17:20:11 MSK 2010 - First version separated from the Dancer core. No functional - change. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..980f905 --- /dev/null +++ b/INSTALL @@ -0,0 +1,44 @@ + +This is the Perl distribution Dancer-Session-Cookie. + +Installing Dancer-Session-Cookie is straightforward. + +## Installation with cpanm + +If you have cpanm, you only need one line: + + % cpanm Dancer::Session::Cookie + +If you are installing into a system-wide directory, you may need to pass the +"-S" flag to cpanm, which uses sudo to install the module: + + % cpanm -S Dancer::Session::Cookie + +## Installing with the CPAN shell + +Alternatively, if your CPAN shell is set up, you should just be able to do: + + % cpan Dancer::Session::Cookie + +## Manual installation + +As a last resort, you can manually install it. Download the tarball, untar it, +then build it: + + % perl Build.PL + % ./Build && ./Build test + +Then install it: + + % ./Build install + +If you are installing into a system-wide directory, you may need to run: + + % sudo ./Build install + +## Documentation + +Dancer-Session-Cookie documentation is available as POD. +You can run perldoc from a shell to read the documentation: + + % perldoc Dancer::Session::Cookie diff --git a/LICENSE b/LICENSE index b4b06bb..943d221 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -This software is copyright (c) 2013 by Alex Kapranoff. +This software is copyright (c) 2014 by Alex Kapranoff. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. @@ -12,7 +12,7 @@ b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- -This software is Copyright (c) 2013 by Alex Kapranoff. +This software is Copyright (c) 2014 by Alex Kapranoff. This is free software, licensed under: @@ -22,7 +22,7 @@ This is free software, licensed under: Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. - 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -272,7 +272,7 @@ That's all there is to it! --- The Artistic License 1.0 --- -This software is Copyright (c) 2013 by Alex Kapranoff. +This software is Copyright (c) 2014 by Alex Kapranoff. This is free software, licensed under: diff --git a/MANIFEST b/MANIFEST index 5cb56e8..c27d786 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,14 +1,20 @@ +Build.PL +CONTRIBUTORS Changes +INSTALL LICENSE MANIFEST +MANIFEST.SKIP META.json META.yml -Makefile.PL README +README.mkdn +README.pod +SIGNATURE dist.ini lib/Dancer/Session/Cookie.pm t/00-compile.t -t/00-report-prereqs.t +t/000-report-versions-tiny.t t/01-session.t t/02-configfile.t t/03-path.t @@ -19,11 +25,5 @@ t/data/config.yml t/redirect-session-dancer.t t/server.t t/session-stealing.t -xt/author/critic.t -xt/author/pod-spell.t -xt/release/distmeta.t -xt/release/minimum-version.t -xt/release/pod-coverage.t -xt/release/pod-syntax.t -xt/release/portability.t -xt/release/test-version.t +t/store-objects.t +xt/release/unused-vars.t diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP new file mode 100644 index 0000000..14b1137 --- /dev/null +++ b/MANIFEST.SKIP @@ -0,0 +1 @@ +^Dancer-Session-Cookie.* diff --git a/META.json b/META.json index 100c49c..0215c84 100644 --- a/META.json +++ b/META.json @@ -3,10 +3,11 @@ "author" : [ "Alex Kapranoff <ka...@cpan.org>", "Alex Sukria <suk...@cpan.org>", - "David Golden <dagol...@cpan.org>" + "David Golden <dagol...@cpan.org>", + "Yanick Champoux <yan...@cpan.org>" ], "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.131490", + "generated_by" : "Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.140640", "license" : [ "perl_5" ], @@ -15,29 +16,20 @@ "version" : "2" }, "name" : "Dancer-Session-Cookie", - "no_index" : { - "directory" : [ - "t", - "xt", - "examples", - "corpus" - ], - "package" : [ - "DB" - ] - }, "prereqs" : { + "build" : { + "requires" : { + "Module::Build" : "0.3601" + } + }, "configure" : { "requires" : { - "ExtUtils::MakeMaker" : "6.30" + "Module::Build" : "0.3601" } }, "develop" : { "requires" : { - "Pod::Coverage::TrustPod" : "0", - "Test::CPAN::Meta" : "0", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08" + "version" : "0.9901" } }, "runtime" : { @@ -49,12 +41,11 @@ "Dancer::Cookies" : "0", "Dancer::Session::Abstract" : "0", "MIME::Base64" : "0", - "Session::Storage::Secure" : "0.007", + "Session::Storage::Secure" : "0.010", "Storable" : "0", "String::CRC32" : "0", "Time::Duration::Parse" : "0", "base" : "0", - "perl" : "5.006", "strict" : "0", "warnings" : "0" } @@ -62,44 +53,46 @@ "test" : { "requires" : { "Dancer::ModuleLoader" : "0", - "ExtUtils::MakeMaker" : "0", - "File::Find" : "0", + "Dancer::Test" : "0", "File::Spec" : "0", - "File::Spec::Functions" : "0", "File::Temp" : "0", "FindBin" : "0", "HTTP::Cookies" : "0", "HTTP::Date" : "0", + "IO::Handle" : "0", + "IPC::Open3" : "0", "LWP" : "0", "LWP::UserAgent" : "0", - "List::Util" : "0", "Test::Exception" : "0", "Test::More" : "0.96", "Test::NoWarnings" : "0", - "Test::TCP" : "0" + "Test::TCP" : "0", + "perl" : "5.006" } } }, "provides" : { "Dancer::Session::Cookie" : { "file" : "lib/Dancer/Session/Cookie.pm", - "version" : "0.22" + "version" : "0.24" } }, "release_status" : "stable", "resources" : { "bugtracker" : { - "web" : "https://github.com/dagolden/dancer-session-cookie/issues" + "web" : "https://github.com/perldancer/Dancer-Session-Cookie/issues" }, - "homepage" : "https://metacpan.org/release/Dancer-Session-Cookie", + "homepage" : "http://search.cpan.org/dist/Dancer-Session-Cookie/", "repository" : { "type" : "git", - "url" : "git://github.com/dagolden/dancer-session-cookie.git", - "web" : "https://github.com/dagolden/dancer-session-cookie" + "url" : "https://github.com/perldancer/Dancer-Session-Cookie.git", + "web" : "https://github.com/perldancer/Dancer-Session-Cookie" } }, - "version" : "0.22", + "version" : "0.24", + "x_authority" : "cpan:YANICK", "x_contributors" : [ + "Breno G. de Oliveira <g...@cpan.org>", "Michael G. Schwern <schw...@pobox.com>", "Neil Kirsopp <n...@broadbean.com>", "Nick S. Knutov <n...@knutov.com>" diff --git a/META.yml b/META.yml index 3c25884..daef695 100644 --- a/META.yml +++ b/META.yml @@ -4,66 +4,61 @@ author: - 'Alex Kapranoff <ka...@cpan.org>' - 'Alex Sukria <suk...@cpan.org>' - 'David Golden <dagol...@cpan.org>' + - 'Yanick Champoux <yan...@cpan.org>' build_requires: - Dancer::ModuleLoader: 0 - ExtUtils::MakeMaker: 0 - File::Find: 0 - File::Spec: 0 - File::Spec::Functions: 0 - File::Temp: 0 - FindBin: 0 - HTTP::Cookies: 0 - HTTP::Date: 0 - LWP: 0 - LWP::UserAgent: 0 - List::Util: 0 - Test::Exception: 0 - Test::More: 0.96 - Test::NoWarnings: 0 - Test::TCP: 0 + Dancer::ModuleLoader: '0' + Dancer::Test: '0' + File::Spec: '0' + File::Temp: '0' + FindBin: '0' + HTTP::Cookies: '0' + HTTP::Date: '0' + IO::Handle: '0' + IPC::Open3: '0' + LWP: '0' + LWP::UserAgent: '0' + Module::Build: '0.3601' + Test::Exception: '0' + Test::More: '0.96' + Test::NoWarnings: '0' + Test::TCP: '0' + perl: '5.006' configure_requires: - ExtUtils::MakeMaker: 6.30 + Module::Build: '0.3601' dynamic_config: 0 -generated_by: 'Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.131490' +generated_by: 'Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.140640' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 + version: '1.4' name: Dancer-Session-Cookie -no_index: - directory: - - t - - xt - - examples - - corpus - package: - - DB provides: Dancer::Session::Cookie: file: lib/Dancer/Session/Cookie.pm - version: 0.22 + version: '0.24' requires: - Crypt::CBC: 0 - Crypt::Rijndael: 0 - Dancer: 1.3113 - Dancer::Cookie: 0 - Dancer::Cookies: 0 - Dancer::Session::Abstract: 0 - MIME::Base64: 0 - Session::Storage::Secure: 0.007 - Storable: 0 - String::CRC32: 0 - Time::Duration::Parse: 0 - base: 0 - perl: 5.006 - strict: 0 - warnings: 0 + Crypt::CBC: '0' + Crypt::Rijndael: '0' + Dancer: '1.3113' + Dancer::Cookie: '0' + Dancer::Cookies: '0' + Dancer::Session::Abstract: '0' + MIME::Base64: '0' + Session::Storage::Secure: '0.010' + Storable: '0' + String::CRC32: '0' + Time::Duration::Parse: '0' + base: '0' + strict: '0' + warnings: '0' resources: - bugtracker: https://github.com/dagolden/dancer-session-cookie/issues - homepage: https://metacpan.org/release/Dancer-Session-Cookie - repository: git://github.com/dagolden/dancer-session-cookie.git -version: 0.22 + bugtracker: https://github.com/perldancer/Dancer-Session-Cookie/issues + homepage: http://search.cpan.org/dist/Dancer-Session-Cookie/ + repository: https://github.com/perldancer/Dancer-Session-Cookie.git +version: '0.24' +x_authority: cpan:YANICK x_contributors: + - 'Breno G. de Oliveira <g...@cpan.org>' - 'Michael G. Schwern <schw...@pobox.com>' - 'Neil Kirsopp <n...@broadbean.com>' - 'Nick S. Knutov <n...@knutov.com>' diff --git a/Makefile.PL b/Makefile.PL deleted file mode 100644 index 966133d..0000000 --- a/Makefile.PL +++ /dev/null @@ -1,95 +0,0 @@ - -use strict; -use warnings; - -use 5.006; - -use ExtUtils::MakeMaker 6.30; - - - -my %WriteMakefileArgs = ( - "ABSTRACT" => "Encrypted cookie-based session backend for Dancer", - "AUTHOR" => "Alex Kapranoff <kappa\@cpan.org>, Alex Sukria <sukria\@cpan.org>, David Golden <dagolden\@cpan.org>", - "BUILD_REQUIRES" => {}, - "CONFIGURE_REQUIRES" => { - "ExtUtils::MakeMaker" => "6.30" - }, - "DISTNAME" => "Dancer-Session-Cookie", - "EXE_FILES" => [], - "LICENSE" => "perl", - "NAME" => "Dancer::Session::Cookie", - "PREREQ_PM" => { - "Crypt::CBC" => 0, - "Crypt::Rijndael" => 0, - "Dancer" => "1.3113", - "Dancer::Cookie" => 0, - "Dancer::Cookies" => 0, - "Dancer::Session::Abstract" => 0, - "MIME::Base64" => 0, - "Session::Storage::Secure" => "0.007", - "Storable" => 0, - "String::CRC32" => 0, - "Time::Duration::Parse" => 0, - "base" => 0, - "strict" => 0, - "warnings" => 0 - }, - "TEST_REQUIRES" => { - "Dancer::ModuleLoader" => 0, - "ExtUtils::MakeMaker" => 0, - "File::Find" => 0, - "File::Spec" => 0, - "File::Spec::Functions" => 0, - "File::Temp" => 0, - "FindBin" => 0, - "HTTP::Cookies" => 0, - "HTTP::Date" => 0, - "LWP" => 0, - "LWP::UserAgent" => 0, - "List::Util" => 0, - "Test::Exception" => 0, - "Test::More" => "0.96", - "Test::NoWarnings" => 0, - "Test::TCP" => 0 - }, - "VERSION" => "0.22", - "test" => { - "TESTS" => "t/*.t" - } -); - - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { - my $tr = delete $WriteMakefileArgs{TEST_REQUIRES}; - my $br = $WriteMakefileArgs{BUILD_REQUIRES}; - for my $mod ( keys %$tr ) { - if ( exists $br->{$mod} ) { - $br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod}; - } - else { - $br->{$mod} = $tr->{$mod}; - } - } -} - -unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) { - my $br = delete $WriteMakefileArgs{BUILD_REQUIRES}; - my $pp = $WriteMakefileArgs{PREREQ_PM}; - for my $mod ( keys %$br ) { - if ( exists $pp->{$mod} ) { - $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod}; - } - else { - $pp->{$mod} = $br->{$mod}; - } - } -} - -delete $WriteMakefileArgs{CONFIGURE_REQUIRES} - unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; - -WriteMakefile(%WriteMakefileArgs); - - - diff --git a/README b/README index 1cb2f92..9ce4da8 100644 --- a/README +++ b/README @@ -3,7 +3,7 @@ NAME Dancer VERSION - version 0.22 + version 0.24 SYNOPSIS Your config.yml: @@ -61,20 +61,6 @@ SEE ALSO Catalyst::Plugin::CookiedSession, "session" in Mojolicious::Controller for alternative implementation of this mechanism. -SUPPORT - Bugs / Feature Requests - Please report any bugs or feature requests through the issue tracker at - <https://github.com/dagolden/dancer-session-cookie/issues>. You will be - notified automatically of any progress on your issue. - - Source Code - This is open source software. The code repository is available for - public review and contribution under the terms of the license. - - <https://github.com/dagolden/dancer-session-cookie> - - git clone git://github.com/dagolden/dancer-session-cookie.git - AUTHORS * Alex Kapranoff <ka...@cpan.org> @@ -82,15 +68,10 @@ AUTHORS * David Golden <dagol...@cpan.org> -CONTRIBUTORS - * Michael G. Schwern <schw...@pobox.com> - - * Neil Kirsopp <n...@broadbean.com> - - * Nick S. Knutov <n...@knutov.com> + * Yanick Champoux <yan...@cpan.org> COPYRIGHT AND LICENSE - This software is copyright (c) 2013 by Alex Kapranoff. + This software is copyright (c) 2014 by Alex Kapranoff. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. diff --git a/README.mkdn b/README.mkdn new file mode 100644 index 0000000..1be6dae --- /dev/null +++ b/README.mkdn @@ -0,0 +1,82 @@ +# NAME + +Dancer::Session::Cookie - Encrypted cookie-based session backend for Dancer + +# VERSION + +version 0.24 + +# SYNOPSIS + +Your `config.yml`: + + session: "cookie" + session_cookie_key: "this random key IS NOT very random" + +# DESCRIPTION + +This module implements a session engine for sessions stored entirely +in cookies. Usually only **session id** is stored in cookies and +the session data itself is saved in some external storage, e.g. +database. This module allows to avoid using external storage at +all. + +Since server cannot trust any data returned by client in cookies, this +module uses cryptography to ensure integrity and also secrecy. The +data your application stores in sessions is completely protected from +both tampering and analysis on the client-side. + +# CONFIGURATION + +The setting **session** should be set to `cookie` in order to use this session +engine in a Dancer application. See [Dancer::Config](https://metacpan.org/pod/Dancer::Config). + +A mandatory setting is needed as well: **session\_cookie\_key**, which should +contain a random string of at least 16 characters (shorter keys are +not cryptographically strong using AES in CBC mode). + +Here is an example configuration to use in your `config.yml`: + + session: "cookie" + session_cookie_key: "kjsdf07234hjf0sdkflj12*&(@*jk" + +Compromising **session\_cookie\_key** will disclose session data to +clients and proxies or eavesdroppers and will also allow tampering, +for example session theft. So, your `config.yml` should be kept at +least as secure as your database passwords or even more. + +Also, changing **session\_cookie\_key** will have an effect of immediate +invalidation of all sessions issued with the old value of key. + +**session\_cookie\_path** can be used to control the path of the session +cookie. The default is /. + +The global **session\_secure** setting is honoured and a secure (https +only) cookie will be used if set. + +# DEPENDENCY + +This module depends on [Session::Storage::Secure](https://metacpan.org/pod/Session::Storage::Secure). Legacy support is provided +using [Crypt::CBC](https://metacpan.org/pod/Crypt::CBC), [Crypt::Rijndael](https://metacpan.org/pod/Crypt::Rijndael), [String::CRC32](https://metacpan.org/pod/String::CRC32), [Storable](https://metacpan.org/pod/Storable) and +[MIME::Base64](https://metacpan.org/pod/MIME::Base64). + +# SEE ALSO + +See [Dancer::Session](https://metacpan.org/pod/Dancer::Session) for details about session usage in route handlers. + +See [Plack::Middleware::Session::Cookie](https://metacpan.org/pod/Plack::Middleware::Session::Cookie), +[Catalyst::Plugin::CookiedSession](https://metacpan.org/pod/Catalyst::Plugin::CookiedSession), ["session" in Mojolicious::Controller](https://metacpan.org/pod/Mojolicious::Controller#session) for alternative implementation of this mechanism. + +# AUTHORS + +- Alex Kapranoff <ka...@cpan.org> +- Alex Sukria <suk...@cpan.org> +- David Golden <dagol...@cpan.org> +- Yanick Champoux <yan...@cpan.org> [![endorse](http://api.coderwall.com/yanick/endorsecount.png)](http://coderwall.com/yanick) + +# COPYRIGHT AND LICENSE + +This software is copyright (c) 2014 by Alex Kapranoff. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. diff --git a/README.pod b/README.pod new file mode 100644 index 0000000..e26b0a8 --- /dev/null +++ b/README.pod @@ -0,0 +1,135 @@ +=pod + +=encoding utf-8 + +=head1 NAME + +Dancer::Session::Cookie - Encrypted cookie-based session backend for Dancer + +=head1 VERSION + +version 0.22 + +=head1 SYNOPSIS + +Your F<config.yml>: + + session: "cookie" + session_cookie_key: "this random key IS NOT very random" + +=head1 DESCRIPTION + +This module implements a session engine for sessions stored entirely +in cookies. Usually only B<session id> is stored in cookies and +the session data itself is saved in some external storage, e.g. +database. This module allows to avoid using external storage at +all. + +Since server cannot trust any data returned by client in cookies, this +module uses cryptography to ensure integrity and also secrecy. The +data your application stores in sessions is completely protected from +both tampering and analysis on the client-side. + +=head1 CONFIGURATION + +The setting B<session> should be set to C<cookie> in order to use this session +engine in a Dancer application. See L<Dancer::Config>. + +A mandatory setting is needed as well: B<session_cookie_key>, which should +contain a random string of at least 16 characters (shorter keys are +not cryptographically strong using AES in CBC mode). + +Here is an example configuration to use in your F<config.yml>: + + session: "cookie" + session_cookie_key: "kjsdf07234hjf0sdkflj12*&(@*jk" + +Compromising B<session_cookie_key> will disclose session data to +clients and proxies or eavesdroppers and will also allow tampering, +for example session theft. So, your F<config.yml> should be kept at +least as secure as your database passwords or even more. + +Also, changing B<session_cookie_key> will have an effect of immediate +invalidation of all sessions issued with the old value of key. + +B<session_cookie_path> can be used to control the path of the session +cookie. The default is /. + +The global B<session_secure> setting is honoured and a secure (https +only) cookie will be used if set. + +=head1 DEPENDENCY + +This module depends on L<Session::Storage::Secure>. Legacy support is provided +using L<Crypt::CBC>, L<Crypt::Rijndael>, L<String::CRC32>, L<Storable> and +L<MIME::Base64>. + +=head1 SEE ALSO + +See L<Dancer::Session> for details about session usage in route handlers. + +See L<Plack::Middleware::Session::Cookie>, +L<Catalyst::Plugin::CookiedSession>, L<Mojolicious::Controller/session> for alternative implementation of this mechanism. + +=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan + +=head1 SUPPORT + +=head2 Bugs / Feature Requests + +Please report any bugs or feature requests through the issue tracker +at L<https://github.com/dagolden/dancer-session-cookie/issues>. +You will be notified automatically of any progress on your issue. + +=head2 Source Code + +This is open source software. The code repository is available for +public review and contribution under the terms of the license. + +L<https://github.com/dagolden/dancer-session-cookie> + + git clone git://github.com/dagolden/dancer-session-cookie.git + +=head1 AUTHORS + +=over 4 + +=item * + +Alex Kapranoff <ka...@cpan.org> + +=item * + +Alex Sukria <suk...@cpan.org> + +=item * + +David Golden <dagol...@cpan.org> + +=back + +=head1 CONTRIBUTORS + +=over 4 + +=item * + +Michael G. Schwern <schw...@pobox.com> + +=item * + +Neil Kirsopp <n...@broadbean.com> + +=item * + +Nick S. Knutov <n...@knutov.com> + +=back + +=head1 COPYRIGHT AND LICENSE + +This software is copyright (c) 2013 by Alex Kapranoff. + +This is free software; you can redistribute it and/or modify it under +the same terms as the Perl 5 programming language system itself. + diff --git a/SIGNATURE b/SIGNATURE new file mode 100644 index 0000000..36b113a --- /dev/null +++ b/SIGNATURE @@ -0,0 +1,51 @@ +This file contains message digests of all files listed in MANIFEST, +signed via the Module::Signature module, version 0.73. + +To verify the content in this distribution, first make sure you have +Module::Signature installed, then type: + + % cpansign -v + +It will check each file's integrity, as well as the signature's +validity. If "==> Signature verified OK! <==" is not displayed, +the distribution may already have been compromised, and you should +not run its Makefile.PL or Build.PL. + +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +SHA1 de3de820aaf7de6a2031053921b227ff63238a21 Build.PL +SHA1 48ff8525f9bb95f588978c21364015dd99f67bb8 CONTRIBUTORS +SHA1 ce1443fa554d6f5077d10ca2fc9ebc83557aa4e1 Changes +SHA1 c98e02fd3990b3b62eb4fc324b92a1fba92ace53 INSTALL +SHA1 2a6414727e0074d2cef6b4167fa0b29454553c01 LICENSE +SHA1 8b7939d6e39dcd53286c67360de0dd6737b627f1 MANIFEST +SHA1 c5772bbbfecb397596dd40178064698e7dbfd09d MANIFEST.SKIP +SHA1 d9768f0db411d1d59a07d74df79f02438d72fcdd META.json +SHA1 2079bc54bc75e601480fb26b2601c4b85948d233 META.yml +SHA1 124ceddbfdd3f35fcb4a7a6b48e13fcdf9044e6f README +SHA1 506c559f3b976b6533c6e7f319b576c6daa8138c README.mkdn +SHA1 62d22f798d395e4bffccdb58659ca4e3e5624c66 README.pod +SHA1 9774967f9c6b5c9659307544b5c7c4ccc9cb1f03 dist.ini +SHA1 1c10bf3017224c5049b450af03675c6ff2e89554 lib/Dancer/Session/Cookie.pm +SHA1 163bf20b59b97196261f02963acca2fac83b6cbd t/00-compile.t +SHA1 bf2513d36d4b421f0fa76af587eb70f095d073e6 t/000-report-versions-tiny.t +SHA1 9cb51a810ef592ec1d3cb21525e987d70b3291cd t/01-session.t +SHA1 2d07fabcb69b5852d93b3569f6ff0a711bfd7aaf t/02-configfile.t +SHA1 573b7e63fb84bed7ff5c95b1628ebcd6e9940c1a t/03-path.t +SHA1 16caf79a98eb428a808a804c8cf2e1b90d10301e t/04-session_name.t +SHA1 a00dfdeb42af8f5f51cedd10af6292191ded2458 t/05-session_secure.t +SHA1 be86fdc41d72e971e74f143e4d83099b26c9452b t/06-redirect.t +SHA1 f6c45320f8fe14723a8f2e2510021c6b81d0ef0c t/data/config.yml +SHA1 ea91ce45a7466561c5c62be83fb0fc45f35db21a t/redirect-session-dancer.t +SHA1 6c099c54393367f5f5a21dc76a490db58de7fa08 t/server.t +SHA1 2b3f7051280c0e2826f3fd8cb3c5721500055417 t/session-stealing.t +SHA1 a960ffdbb5965f6a8f5f00ca58319cb22b7e8da0 t/store-objects.t +SHA1 d1fe7d94b3edc7847eb187d4ee41f66e19cf8907 xt/release/unused-vars.t +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iEYEARECAAYFAlPXlOwACgkQ34Hwf+GwC4zuVwCePS7/YDc+4fLGeYtaNIT+aF7J +qosAnAmWJSmshgbz2bC8Ls4oDMt/8sVw +=0ARY +-----END PGP SIGNATURE----- diff --git a/dist.ini b/dist.ini index f883449..da751dd 100644 --- a/dist.ini +++ b/dist.ini @@ -2,15 +2,10 @@ name = Dancer-Session-Cookie author = Alex Kapranoff <ka...@cpan.org> author = Alex Sukria <suk...@cpan.org> author = David Golden <dagol...@cpan.org> +author = Yanick Champoux <yan...@cpan.org> license = Perl_5 copyright_holder = Alex Kapranoff -[@DAGOLDEN] -:version = 0.036 -AutoMetaResources.bugtracker.rt = 0 -AutoMetaResources.bugtracker.github = user:dagolden -stopwords = AES -stopwords = Kirsopp -stopwords = cryptographically -stopwords = honoured -stopwords = https +[@Filter] +-bundle=@YANICK +-remove=Covenant diff --git a/lib/Dancer/Session/Cookie.pm b/lib/Dancer/Session/Cookie.pm index df3d403..04df0ed 100644 --- a/lib/Dancer/Session/Cookie.pm +++ b/lib/Dancer/Session/Cookie.pm @@ -1,12 +1,16 @@ package Dancer::Session::Cookie; +BEGIN { + $Dancer::Session::Cookie::AUTHORITY = 'cpan:YANICK'; +} +$Dancer::Session::Cookie::VERSION = '0.24'; use strict; use warnings; # ABSTRACT: Encrypted cookie-based session backend for Dancer -our $VERSION = '0.22'; # VERSION +# VERSION use base 'Dancer::Session::Abstract'; -use Session::Storage::Secure 0.007; +use Session::Storage::Secure 0.010; use Crypt::CBC; use String::CRC32; use Crypt::Rijndael; @@ -45,6 +49,8 @@ sub init { $STORE = Session::Storage::Secure->new( secret_key => $key, ( $duration ? ( default_duration => $duration ) : () ), + sereal_encoder_options => { snappy => 1, stringify_unknown => 1 }, + sereal_decoder_options => { validate_utf8 => 1 }, ); } @@ -86,7 +92,6 @@ sub _old_retrieve { } sub create { - my $class = shift; # cache the newly created session return $SESSION = Dancer::Session::Cookie->new; } @@ -184,7 +189,7 @@ sub _old_decrypt { =pod -=encoding utf-8 +=encoding UTF-8 =head1 NAME @@ -192,7 +197,7 @@ Dancer::Session::Cookie - Encrypted cookie-based session backend for Dancer =head1 VERSION -version 0.22 +version 0.24 =head1 SYNOPSIS @@ -255,25 +260,6 @@ See L<Dancer::Session> for details about session usage in route handlers. See L<Plack::Middleware::Session::Cookie>, L<Catalyst::Plugin::CookiedSession>, L<Mojolicious::Controller/session> for alternative implementation of this mechanism. -=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan - -=head1 SUPPORT - -=head2 Bugs / Feature Requests - -Please report any bugs or feature requests through the issue tracker -at L<https://github.com/dagolden/dancer-session-cookie/issues>. -You will be notified automatically of any progress on your issue. - -=head2 Source Code - -This is open source software. The code repository is available for -public review and contribution under the terms of the license. - -L<https://github.com/dagolden/dancer-session-cookie> - - git clone git://github.com/dagolden/dancer-session-cookie.git - =head1 AUTHORS =over 4 @@ -290,29 +276,15 @@ Alex Sukria <suk...@cpan.org> David Golden <dagol...@cpan.org> -=back - -=head1 CONTRIBUTORS - -=over 4 - -=item * - -Michael G. Schwern <schw...@pobox.com> - -=item * - -Neil Kirsopp <n...@broadbean.com> - =item * -Nick S. Knutov <n...@knutov.com> +Yanick Champoux <yan...@cpan.org> =back =head1 COPYRIGHT AND LICENSE -This software is copyright (c) 2013 by Alex Kapranoff. +This software is copyright (c) 2014 by Alex Kapranoff. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. diff --git a/t/00-compile.t b/t/00-compile.t index 6454c82..95ce455 100644 --- a/t/00-compile.t +++ b/t/00-compile.t @@ -1,74 +1,50 @@ -#!perl - +use 5.006; use strict; use warnings; -use Test::More; +# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.043 +use Test::More tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0); -use File::Find; -use File::Temp qw{ tempdir }; -my @modules; -find( - sub { - return if $File::Find::name !~ /\.pm\z/; - my $found = $File::Find::name; - $found =~ s{^lib/}{}; - $found =~ s{[/\\]}{::}g; - $found =~ s/\.pm$//; - # nothing to skip - push @modules, $found; - }, - 'lib', +my @module_files = ( + 'Dancer/Session/Cookie.pm' ); -sub _find_scripts { - my $dir = shift @_; - - my @found_scripts = (); - find( - sub { - return unless -f; - my $found = $File::Find::name; - # nothing to skip - open my $FH, '<', $_ or do { - note( "Unable to open $found in ( $! ), skipping" ); - return; - }; - my $shebang = <$FH>; - return unless $shebang =~ /^#!.*?\bperl\b\s*$/; - push @found_scripts, $found; - }, - $dir, - ); - - return @found_scripts; -} -my @scripts; -do { push @scripts, _find_scripts($_) if -d $_ } - for qw{ bin script scripts }; -my $plan = scalar(@modules) + scalar(@scripts); -$plan ? (plan tests => $plan) : (plan skip_all => "no tests to run"); +# no fake home requested + +my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib'; +use File::Spec; +use IPC::Open3; +use IO::Handle; + +open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; + +my @warnings; +for my $lib (@module_files) { - # fake home for cpan-testers - local $ENV{HOME} = tempdir( CLEANUP => 1 ); - - like( qx{ $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" ) - for sort @modules; - - SKIP: { - eval "use Test::Script 1.05; 1;"; - skip "Test::Script needed to test script compilation", scalar(@scripts) if $@; - foreach my $file ( @scripts ) { - my $script = $file; - $script =~ s!.*/!!; - script_compiles( $file, "$script script compiles" ); - } + # see L<perlfaq8/How can I capture STDERR from an external command?> + my $stderr = IO::Handle->new; + + my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]"); + binmode $stderr, ':crlf' if $^O eq 'MSWin32'; + my @_warnings = <$stderr>; + waitpid($pid, 0); + is($?, 0, "$lib loaded ok"); + + if (@_warnings) + { + warn @_warnings; + push @warnings, @_warnings; } - } + + + +is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING}; + + diff --git a/t/00-report-prereqs.t b/t/00-report-prereqs.t deleted file mode 100644 index 1607b99..0000000 --- a/t/00-report-prereqs.t +++ /dev/null @@ -1,86 +0,0 @@ -#!perl - -use strict; -use warnings; - -use Test::More tests => 1; - -use ExtUtils::MakeMaker; -use File::Spec::Functions; -use List::Util qw/max/; - -my @modules = qw( - Crypt::CBC - Crypt::Rijndael - Dancer - Dancer::Cookie - Dancer::Cookies - Dancer::ModuleLoader - Dancer::Session::Abstract - ExtUtils::MakeMaker - File::Find - File::Spec - File::Spec::Functions - File::Temp - FindBin - HTTP::Cookies - HTTP::Date - LWP - LWP::UserAgent - List::Util - MIME::Base64 - Session::Storage::Secure - Storable - String::CRC32 - Test::Exception - Test::More - Test::NoWarnings - Test::TCP - Time::Duration::Parse - base - perl - strict - warnings -); - -# replace modules with dynamic results from MYMETA.json if we can -# (hide CPAN::Meta from prereq scanner) -my $cpan_meta = "CPAN::Meta"; -if ( -f "MYMETA.json" && eval "require $cpan_meta" ) { ## no critic - if ( my $meta = eval { CPAN::Meta->load_file("MYMETA.json") } ) { - my $prereqs = $meta->prereqs; - delete $prereqs->{develop}; - my %uniq = map {$_ => 1} map { keys %$_ } map { values %$_ } values %$prereqs; - $uniq{$_} = 1 for @modules; # don't lose any static ones - @modules = sort keys %uniq; - } -} - -my @reports = [qw/Version Module/]; - -for my $mod ( @modules ) { - next if $mod eq 'perl'; - my $file = $mod; - $file =~ s{::}{/}g; - $file .= ".pm"; - my ($prefix) = grep { -e catfile($_, $file) } @INC; - if ( $prefix ) { - my $ver = MM->parse_version( catfile($prefix, $file) ); - $ver = "undef" unless defined $ver; # Newer MM should do this anyway - push @reports, [$ver, $mod]; - } - else { - push @reports, ["missing", $mod]; - } -} - -if ( @reports ) { - my $vl = max map { length $_->[0] } @reports; - my $ml = max map { length $_->[1] } @reports; - splice @reports, 1, 0, ["-" x $vl, "-" x $ml]; - diag "Prerequisite Report:\n", map {sprintf(" %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @reports; -} - -pass; - -# vim: ts=2 sts=2 sw=2 et: diff --git a/t/000-report-versions-tiny.t b/t/000-report-versions-tiny.t new file mode 100644 index 0000000..328eb1a --- /dev/null +++ b/t/000-report-versions-tiny.t @@ -0,0 +1,99 @@ +use strict; +use warnings; +use Test::More 0.88; +# This is a relatively nice way to avoid Test::NoWarnings breaking our +# expectations by adding extra tests, without using no_plan. It also helps +# avoid any other test module that feels introducing random tests, or even +# test plans, is a nice idea. +our $success = 0; +END { $success && done_testing; } + +# List our own version used to generate this +my $v = "\nGenerated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10\n"; + +eval { # no excuses! + # report our Perl details + my $want = '5.006'; + $v .= "perl: $] (wanted $want) on $^O from $^X\n\n"; +}; +defined($@) and diag("$@"); + +# Now, our module version dependencies: +sub pmver { + my ($module, $wanted) = @_; + $wanted = " (want $wanted)"; + my $pmver; + eval "require $module;"; + if ($@) { + if ($@ =~ m/Can't locate .* in \@INC/) { + $pmver = 'module not found.'; + } else { + diag("${module}: $@"); + $pmver = 'died during require.'; + } + } else { + my $version; + eval { $version = $module->VERSION; }; + if ($@) { + diag("${module}: $@"); + $pmver = 'died during VERSION check.'; + } elsif (defined $version) { + $pmver = "$version"; + } else { + $pmver = '<undef>'; + } + } + + # So, we should be good, right? + return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n"); +} + +eval { $v .= pmver('Crypt::CBC','any version') }; +eval { $v .= pmver('Crypt::Rijndael','any version') }; +eval { $v .= pmver('Dancer','1.3113') }; +eval { $v .= pmver('Dancer::Cookie','any version') }; +eval { $v .= pmver('Dancer::Cookies','any version') }; +eval { $v .= pmver('Dancer::ModuleLoader','any version') }; +eval { $v .= pmver('Dancer::Session::Abstract','any version') }; +eval { $v .= pmver('Dancer::Test','any version') }; +eval { $v .= pmver('File::Spec','any version') }; +eval { $v .= pmver('File::Temp','any version') }; +eval { $v .= pmver('FindBin','any version') }; +eval { $v .= pmver('HTTP::Cookies','any version') }; +eval { $v .= pmver('HTTP::Date','any version') }; +eval { $v .= pmver('IO::Handle','any version') }; +eval { $v .= pmver('IPC::Open3','any version') }; +eval { $v .= pmver('LWP','any version') }; +eval { $v .= pmver('LWP::UserAgent','any version') }; +eval { $v .= pmver('MIME::Base64','any version') }; +eval { $v .= pmver('Module::Build','0.3601') }; +eval { $v .= pmver('Session::Storage::Secure','0.010') }; +eval { $v .= pmver('Storable','any version') }; +eval { $v .= pmver('String::CRC32','any version') }; +eval { $v .= pmver('Test::Exception','any version') }; +eval { $v .= pmver('Test::More','0.96') }; +eval { $v .= pmver('Test::NoWarnings','any version') }; +eval { $v .= pmver('Test::TCP','any version') }; +eval { $v .= pmver('Time::Duration::Parse','any version') }; +eval { $v .= pmver('base','any version') }; +eval { $v .= pmver('strict','any version') }; +eval { $v .= pmver('warnings','any version') }; + + +# All done. +$v .= <<'EOT'; + +Thanks for using my code. I hope it works for you. +If not, please try and include this output in the bug report. +That will help me reproduce the issue and solve your problem. + +EOT + +diag($v); +ok(1, "we really didn't test anything, just reporting data"); +$success = 1; + +# Work around another nasty module on CPAN. :/ +no warnings 'once'; +$Template::Test::NO_FLUSH = 1; +exit 0; diff --git a/t/store-objects.t b/t/store-objects.t new file mode 100644 index 0000000..41d1d0d --- /dev/null +++ b/t/store-objects.t @@ -0,0 +1,22 @@ +use strict; +use warnings; + +use Test::More tests => 1; + +{ + use Dancer ':tests'; + + set session_cookie_key => 'chocolate chips'; + set session => 'Cookie'; + + get '/' => sub { + session 'foo' => bless {}, 'SomeClass'; + + return 'ok'; + } + +} + +use Dancer::Test; + +response_status_is '/' => 200, "session handles objects"; diff --git a/xt/author/critic.t b/xt/author/critic.t deleted file mode 100644 index d5b4c96..0000000 --- a/xt/author/critic.t +++ /dev/null @@ -1,12 +0,0 @@ -#!perl - -use strict; -use warnings; - -use Test::More; -use English qw(-no_match_vars); - -eval "use Test::Perl::Critic"; -plan skip_all => 'Test::Perl::Critic required to criticise code' if $@; -Test::Perl::Critic->import( -profile => "perlcritic.rc" ) if -e "perlcritic.rc"; -all_critic_ok(); diff --git a/xt/author/pod-spell.t b/xt/author/pod-spell.t deleted file mode 100644 index e68b874..0000000 --- a/xt/author/pod-spell.t +++ /dev/null @@ -1,36 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006000 -eval "use Test::Spelling 0.12; use Pod::Wordlist::hanekomu; 1" or die $@; - - -add_stopwords(<DATA>); -all_pod_files_spelling_ok( qw( bin lib ) ); -__DATA__ -AES -Kirsopp -cryptographically -honoured -https -Alex -Kapranoff -kappa -Sukria -sukria -David -Golden -dagolden -Michael -Schwern -schwern -Neil -neil -Nick -Knutov -nick -lib -Dancer -Session -Cookie diff --git a/xt/release/distmeta.t b/xt/release/distmeta.t deleted file mode 100644 index b46c7fc..0000000 --- a/xt/release/distmeta.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl - -use Test::More; - -eval "use Test::CPAN::Meta"; -plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@; -meta_yaml_ok(); diff --git a/xt/release/minimum-version.t b/xt/release/minimum-version.t deleted file mode 100644 index 708ba15..0000000 --- a/xt/release/minimum-version.t +++ /dev/null @@ -1,8 +0,0 @@ -#!perl - -use Test::More; - -eval "use Test::MinimumVersion"; -plan skip_all => "Test::MinimumVersion required for testing minimum versions" - if $@; -all_minimum_version_ok( qq{5.010} ); diff --git a/xt/release/pod-coverage.t b/xt/release/pod-coverage.t deleted file mode 100644 index b52218b..0000000 --- a/xt/release/pod-coverage.t +++ /dev/null @@ -1,13 +0,0 @@ -#!perl - -use Test::More; - -eval "use Test::Pod::Coverage 1.08"; -plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage" - if $@; - -eval "use Pod::Coverage::TrustPod"; -plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage" - if $@; - -all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); diff --git a/xt/release/pod-syntax.t b/xt/release/pod-syntax.t deleted file mode 100644 index 8a22900..0000000 --- a/xt/release/pod-syntax.t +++ /dev/null @@ -1,7 +0,0 @@ -#!perl -use Test::More; - -eval "use Test::Pod 1.41"; -plan skip_all => "Test::Pod 1.41 required for testing POD" if $@; - -all_pod_files_ok(); diff --git a/xt/release/portability.t b/xt/release/portability.t deleted file mode 100644 index 58dbc20..0000000 --- a/xt/release/portability.t +++ /dev/null @@ -1,12 +0,0 @@ -#!perl - -use strict; -use warnings; - -use Test::More; - -eval 'use Test::Portability::Files'; -plan skip_all => 'Test::Portability::Files required for testing portability' - if $@; -options(test_one_dot => 0); -run_tests(); diff --git a/xt/release/test-version.t b/xt/release/test-version.t deleted file mode 100644 index b7a0f17..0000000 --- a/xt/release/test-version.t +++ /dev/null @@ -1,22 +0,0 @@ -use strict; -use warnings; -use Test::More; - -# generated by Dist::Zilla::Plugin::Test::Version 0.002004 -BEGIN { eval "use Test::Version; 1;" or die $@; } - -my @imports = ( 'version_all_ok' ); - -my $params = { - is_strict => 0, - has_version => 1, -}; - -push @imports, $params - if version->parse( $Test::Version::VERSION ) >= version->parse('1.002'); - - -Test::Version->import(@imports); - -version_all_ok; -done_testing; diff --git a/xt/release/unused-vars.t b/xt/release/unused-vars.t new file mode 100644 index 0000000..e601076 --- /dev/null +++ b/xt/release/unused-vars.t @@ -0,0 +1,14 @@ +#!perl + +use Test::More 0.96 tests => 1; +eval { require Test::Vars }; + +SKIP: { + skip 1 => 'Test::Vars required for testing for unused vars' + if $@; + Test::Vars->import; + + subtest 'unused vars' => sub { +all_vars_ok(); + }; +}; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libdancer-session-cookie-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits