Firefox-Marionette

 view release on metacpan or  search on metacpan

lib/Firefox/Marionette/UpdateStatus.pm  view on Meta::CPAN

package Firefox::Marionette::UpdateStatus;

use strict;
use warnings;
use URI();

our $VERSION = '1.70';

sub _NUMBER_OF_MILLISECONDS_IN_A_SECOND { return 1000 }

sub new {
    my ( $class, %parameters ) = @_;
    my $self = bless \%parameters, $class;
    return $self;
}

sub _convert_time_to_seconds {
    my ( $self, $milliseconds ) = @_;
    if ( defined $milliseconds ) {
        my $seconds = $milliseconds / _NUMBER_OF_MILLISECONDS_IN_A_SECOND();
        return int $seconds;
    }
    else {
        return;
    }
}

sub _resolve_to_boolean {
    my ( $self, $key ) = @_;
    if ( defined $self->{$key} ) {
        return $self->{$key} ? 1 : 0;
    }
    else {
        return;
    }
}

sub successful {
    my ($self) = @_;
    return ( ( defined $self->{update_status_code} )
          && ( $self->{update_status_code} eq 'PENDING_UPDATE' ) );
}

sub update_status_code {
    my ($self) = @_;
    return $self->{update_status_code};
}

sub type {
    my ($self) = @_;
    return $self->{type};
}

sub service_url {
    my ($self) = @_;
    return URI->new( $self->{service_url} );
}

sub details_url {
    my ($self) = @_;
    return URI->new( $self->{details_url} );
}

sub selected_patch {
    my ($self) = @_;
    return $self->{selected_patch};
}

sub build_id {
    my ($self) = @_;
    return $self->{build_id};
}

sub channel {
    my ($self) = @_;
    return $self->{channel};
}

sub unsupported {
    my ($self) = @_;
    return $self->_resolve_to_boolean('unsupported');
}

sub status_text {
    my ($self) = @_;
    return $self->{status_text};
}

sub elevation_failure {
    my ($self) = @_;
    return $self->_resolve_to_boolean('elevation_failure');
}

sub display_version {
    my ($self) = @_;
    return $self->{display_version};
}

sub update_state {
    my ($self) = @_;
    return $self->{update_state};
}

sub name {
    my ($self) = @_;
    return $self->{name};
}

sub app_version {
    my ($self) = @_;
    return $self->{app_version};
}

sub error_code {
    my ($self) = @_;
    return $self->{error_code};
}

sub install_date {
    my ($self) = @_;
    return $self->_convert_time_to_seconds( $self->{install_date} );
}

sub patch_count {
    my ($self) = @_;
    return $self->{patch_count};
}

sub number_of_updates {
    my ($self) = @_;
    return $self->{number_of_updates};
}

sub is_complete_update {
    my ($self) = @_;
    return $self->_resolve_to_boolean('is_complete_update');
}

sub prompt_wait_time {
    my ($self) = @_;
    return $self->{prompt_wait_time};
}

sub previous_app_version {
    my ($self) = @_;
    return $self->{previous_app_version};
}

1;    # Magic true value required at end of module
__END__

=head1 NAME

Firefox::Marionette::UpdateStatus - Represents the resulting status of an Firefox update

=head1 VERSION

Version 1.70



( run in 1.009 second using v1.01-cache-2.11-cpan-e93a5daba3e )