The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w
use strict;
use Test::More;
use File::Basename;

use Firefox::Application;

use t::helper;
if (my $err = t::helper::default_unavailable) {
    plan skip_all => "Couldn't connect to MozRepl: $@";
    exit
} else {
    plan tests => 8;
};

my $ff =Firefox::Application->new(
    autodie => 0,
    #log => [qw[debug]],
);

my $lives;
my @addons;

diag sprintf "Connected to %s version %s",
    $ff->appinfo->{name},
    $ff->appinfo->{version};

# This test is broken as we don't pass the expected version around anymore...
if (('') =~ /\b(\d+(\.\d+)+)\b/) {
    my $expected_version = $1;
    is $ff->appinfo->{version}, $expected_version, "We connect to an instance with version $expected_version";
} else {
    SKIP: {
        skip "Don't know what version to expect", 1;
    };
};

eval { @addons = $ff->addons; $lives++ };
ok $lives, "We can query the addons"
    or diag $@;

diag "Found " . scalar @addons . " addons";
ok @addons >= 1, "You have at least one addon"; # The mozrepl addon, duh

my ($mozrepl) = grep { $_->{id} eq 'mozrepl@hyperstruct.net' } @addons;
isn't $mozrepl, undef, "We find the mozrepl addon";
is $mozrepl->{name}, 'MozRepl', 'The name is "MozRepl"';
diag "Using MozRepl version $mozrepl->{version}";

my @locales = $ff->locales;
ok @locales >= 0, "We can ask for ->locales";
diag $_->{name} for @locales;

my @themes = $ff->themes;
ok 1, "We can ask for ->themes";
my ($standard_theme) = grep { $_->{id} eq '{972ce4c6-7e08-4474-a285-3208198ce6fd}' } @themes;
isn't $standard_theme, undef, "We find the Standard theme";
# is $standard_theme->{name}, 'Standard', 'The name is "Standard"';
# This test fails, as the name is localized. Duh.