Files
perl-Test-WWW-Mechanize-Mojo/perl-Test-WWW-Mechanize-Mojo.spec
2025-08-12 18:17:59 +02:00

127 lines
4.7 KiB
RPMSpec

#
# spec file for package perl-Test-WWW-Mechanize-Mojo
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: perl-Test-WWW-Mechanize-Mojo
Version: 0.0.21
Release: 0
%define cpan_name Test-WWW-Mechanize-Mojo
Summary: Test::WWW::Mechanize for Mojo / Mojolicious
License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
Source100: README.md
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Compress::Zlib)
BuildRequires: perl(HTML::Entities)
BuildRequires: perl(Module::Build) >= 0.280000
BuildRequires: perl(Mojolicious::Lite)
BuildRequires: perl(Test::Mojo)
BuildRequires: perl(Test::More) >= 0.88
BuildRequires: perl(Test::WWW::Mechanize)
Requires: perl(HTML::Entities)
Requires: perl(Test::Mojo)
Requires: perl(Test::WWW::Mechanize)
%{perl_requires}
%description
Mojo is an MVC Web Application Framework. Test::WWW::Mechanize is a
subclass of WWW::Mechanize that incorporates features for web application
testing. The Test::WWW::Mechanize::Mojo module meshes the two to allow easy
testing of Mojo applications without needing to starting up a web server.
Testing web applications has always been a bit tricky, normally requiring
starting a web server for your application and making real HTTP requests to
it. This module allows you to test Mojo web applications but does not
require a server or issue HTTP requests. Instead, it passes the HTTP
request object directly to Mojo. Thus you do not need to use a real
hostname: "http://localhost/" will do. However, this is optional. The
following two lines of code do exactly the same thing:
$mech->get_ok('/action');
$mech->get_ok('http://localhost/action');
Links which do not begin with / or are not for localhost can be handled as
normal Web requests - this is handy if you have an external single sign-on
system. You must set allow_external to true for this:
$mech->allow_external(1);
You can also test a remote server by setting the environment variable
MOJO_SERVER; for example:
$ MOJO_SERVER=http://example.com/myapp prove -l t
will run the same tests on the application running at
http://example.com/myapp regardless of whether or not you specify
http:://localhost for Test::WWW::Mechanize::Mojo.
Furthermore, if you set MOJO_SERVER, the server will be regarded as a
remote server even if your links point to localhost. Thus, you can use
Test::WWW::Mechanize::Mojo to test your live webserver running on your
local machine, if you need to test aspects of your deployment environment
(for example, configuration options in an http.conf file) instead of just
the Mojo request handling.
This makes testing fast and easy. Test::WWW::Mechanize provides functions
for common web testing scenarios. For example:
$mech->get_ok( $page );
$mech->title_is( "Invoice Status", "Make sure we're on the invoice page" );
$mech->content_contains( "Andy Lester", "My name somewhere" );
$mech->content_like( qr/(cpan|perl)\.org/, "Link to perl.org or CPAN" );
This module supports cookies automatically.
To use this module you must pass it the name of the application. See the
SYNOPSIS above.
Note that Mojo has a special developing feature: the debug screen. By
default this module will treat responses which are the debug screen as
failures. If you actually want to test debug screens, please use:
$mmech->{catalyst_debug} = 1;
An alternative to this module is Test::Mojo.
%prep
%setup -q -n %{cpan_name}-%{version}
find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644
%build
perl Build.PL installdirs=vendor
./Build build flags=%{?_smp_mflags}
%check
./Build test
%install
./Build install destdir=%{buildroot} create_packlist=0
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes Changes.old-Catalyst.txt README
%license LICENSE
%changelog