Alien::Selenium - installing and finding the Selenium Web test framework


Alien-Selenium documentation Contained in the Alien-Selenium distribution.

Index


Code Index:

NAME

Top

Alien::Selenium - installing and finding the Selenium Web test framework

SYNOPSIS

Top

    use Alien::Selenium;

    my $version = Alien::Selenium->version;
    my $path    = Alien::Selenium->path;

    Alien::Selenium->install( $destination_directory );

DESCRIPTION

Top

Please see Alien for the manifesto of the Alien namespace.

version ()

Returns the version of Selenium that is contained within this Alien package (not to be confused with $Alien::Selenium::VERSION, which is the version number of the Perl wrapper)

path ()

Returns the path where a file-for-file copy of the Selenium core has been installed as part of the Alien::Selenium Perl package. One may direct one's webserver to serve files directly off path(), or alternatively use install.

install ($destdir)

Install a copy of the contents of path into $dest_dir, which need not exist beforehand.

path_readystate_xpi ()

Returns the path to the readyState.xpi Mozilla/Firefox extension that is part of Selenium starting at version 0.8.0. Returns undef for versions of Selenium that do not have such a file.

install_readystate_xpi ($targetfile)

Installs the readyState.xpi file as $targetfile, creating any missing directories if needed. Croaks if there is no readyState.xpi in this version of Selenium (see path_readystate_xpi).

AUTHOR

Top

Mattia Barbon <mbarbon@cpan.org> Dominique Quatravaux <domq@cpan.org>

LICENSE

Top

Copyright (c) 2005-2006 Mattia Barbon <mbarbon@cpan.org>

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself

Please notice that Selenium comes with its own licence.


Alien-Selenium documentation Contained in the Alien-Selenium distribution.
package Alien::Selenium;

use strict;
use warnings;

use File::Copy ();
use File::Path ();
use File::Basename qw(dirname);

use strict;

our $VERSION = '0.09';
our $SELENIUM_VERSION = '0.8.3';

sub version { $SELENIUM_VERSION }

sub path {
    my $base = $INC{'Alien/Selenium.pm'};

    $base =~ s{\.pm$}{/javascript};

    return $base;
}

sub install {
    my( $class, $dest_dir ) = @_;

    File::Path::mkpath $dest_dir;

    my $path = $class->path();
    foreach my $f ( grep { -f $_ }
                         glob "$path/*" ) {
        File::Copy::copy( $f, $dest_dir )
            or die "Can't copy $f to $dest_dir: $!";
    }
}

sub path_readystate_xpi {
    my $base = $INC{'Alien/Selenium.pm'};

    $base =~ s{\.pm$}{/xpi/readyState.xpi};
    return if ! -f $base;
    return $base;
}

sub install_readystate_xpi {
    my ($class, $targetfile) = @_;

    die "no readyState.xpi in this version of Selenium ($SELENIUM_VERSION)"
        unless defined(my $srcfile = $class->path_readystate_xpi());

    File::Path::mkpath (dirname($targetfile));
    File::Copy::copy($srcfile, $targetfile)
        or die "Can't copy $srcfile to $targetfile: $!";
}

1;