Clutter::TestHelper - Simple wrapper module for testing Clutter


Clutter documentation Contained in the Clutter distribution.

Index


Code Index:

NAME

Top

Clutter::TestHelper - Simple wrapper module for testing Clutter

SYNOPSIS

Top

  use Clutter::TestHelper tests => 10;

DESCRIPTION

Top

A simple wrapper module around Test::More that makes Clutter test suite easier to write. When importing the module, Clutter is also imported and initialised. In case the initialisation process fails, likely to happen if the DISPLAY environment variable is not set, all the planned tests are just skipped.

OPTIONS

Top

tests => $number

The number of tests to be performed

at_least_version => [ $major, $minor, $micro, $reason ]

A reference to a list that is checked with Clutter->CHECK_VERSION

skip_all

Simply skip all tests

AUTHORS

Top

Emmanuele Bassi <ebassi (AT) openedhand (DOT) com>

This module heavily borrows from the equivalent Gtk2::TestHelper module written by the Gtk2-Perl team.

COPYRIGHT

Top

NAME

Top

Clutter::TestHelper - Simple wrapper module for testing Clutter

SYNOPSIS

Top

  use Clutter::TestHelper tests => 10;

DESCRIPTION

Top

A simple wrapper module around Test::More that makes Clutter test suite easier to write. When importing the module, Clutter is also imported and initialised. In case the initialisation process fails, likely to happen if the DISPLAY environment variable is not set, all the planned tests are just skipped.

OPTIONS

Top

tests

The number of tests to be performed

at_least_version

A reference to a list that is checked with Clutter->CHECK_VERSION

skip_all

Simply skip all tests

AUTHORS

Top

Emmanuele Bassi <ebassi (AT) openedhand (DOT) com>

This module heavily borrows from the equivalent Gtk2::TestHelper module written by the Gtk2-Perl team.

COPYRIGHT

Top


Clutter documentation Contained in the Clutter distribution.
package Clutter::TestHelper;

use strict;
use warnings;
use Test::More;
use Carp;

our $VERSION = '0.01';

sub import
{
    shift;
    my %opts = (@_);

    plan skip_all => $opts{skip_all}
        if $opts{skip_all};

    croak "test must be provided at import"
        unless exists $opts{tests};

    if ($opts{at_least_version}) {
        my ($rmajor, $rminor, $rmicro, $text) = @{$opts{at_least_version}};

        plan skip_all => $text
            unless Clutter->CHECK_VERSION($rmajor, $rminor, $rmicro);
    }

    if (!Clutter->init()) {
        plan skip_all => 'Clutter->init failed';
    }
    else {
        plan tests => $opts{tests};
    }

    # forcibly turn on warnings and strictness in the caller
    $^W = 1;
    @_ = ();
    goto &strict::import;
}

package main;

# we obviously need Clutter
use Clutter;

# and Test::More
use Test::More;

# enforce the use of these constants in the tests
use Glib qw( TRUE FALSE );

1;
__END__

package Clutter::TestHelper;

use strict;
use warnings;
use Test::More;
use Carp;

our $VERSION = '0.01';

sub import
{
    shift;
    my %opts = (@_);

    plan skip_all => $opts{skip_all} if $opts{skip_all};

    croak "test must be provided at import" unless exists $opts{tests};

    if ($opts{at_least_version}) {
        my ($rmajor, $rminor, $rmicro, $text) = @{$opts{at_least_version}};

        plan skip_all => $text
            unless Clutter->CHECK_VERSION($rmajor, $rminor, $rmicro);
    }

    if (!Clutter->init()) {
        plan skip_all => 'Clutter->init failed';
    }
    else {
        plan tests => $opts{tests};
    }

    # forcibly turn on warnings and strictness in the caller
    $^W = 1;
    @_ = ();
    goto &strict::import;
}

package main;

use Clutter;
use Test::More;

use Glib qw( TRUE FALSE );

1;
__END__