Astro-SpaceTrack

 view release on metacpan or  search on metacpan

xt/author/spacetrack_catalogs.t  view on Meta::CPAN

package main;

use 5.006002;

use strict;
use warnings;

use Astro::SpaceTrack;
use Test::More 0.88;	# Because of done_testing();
use HTML::TreeBuilder;

use lib qw{ inc };
use My::Module::Test qw{ spacetrack_skip_no_prompt };

spacetrack_skip_no_prompt();

{
    my $st = Astro::SpaceTrack->new();
    my $resp = $st->login();
    $resp->is_success()
	or do {
	fail 'Space Track login failed: ' . $resp->status_line();
	last;
    };

    my $ua = $st->_get_agent();
    $resp = $ua->get( $st->_make_space_track_base_url() );
    $resp->is_success()
	or do {
	fail 'Space Track page fetch failed: ' . $resp->status_line();
	last;
    };

    my $tree = HTML::TreeBuilder->new_from_content( $resp->content() );
    my $node = $tree->look_down( _tag => 'div', class => 'tab-pane', id =>
	'recent' );

    defined $node
	or do {
	fail 'Space Track catalog information could not be found';
	last;
    };

    # We have to remove the links to the complete daily files, since
    # these change from day to day. If we can't find it, we probably get
    # an error anyway, so we can fix what went wrong.
#    if (
#	my $daily = $node->look_down(
#	    _tag => 'div', class => 'span3 offset2' )
#    ) {
#	$daily->detach();
#    }
    foreach my $daily ( $node->look_down(
	    _tag => 'a', href => qr< \b PUBLISH_EPOCH \b >smx ) ) {
	$daily->detach();
    }

    my %data;
    $data{expect} = <<'EOD';
<div class="tab-pane" id="recent">
    <div class="panel panel-default panel-st-primary">
        <div class="panel-heading"> Bulk Download Alternative</div>
        <div class="panel-body">
            <div class="row">
                <div class="col-md-6">
                    <h2>Current Catalog Files</h2>  The following links show the most recent element set (&quot;elset&quot;) for every object in the specified group that has received an update within the past 30 days. Other options are available on t...
                    <br />
                    <div class="row">
                        <div class="col-md-6"> Full Catalog <ul>
                                <li><a data-original-title="Query URL" href="https://www.space-track.org/basicspacedata/query/class/gp/EPOCH/%3Enow-30/orderby/NORAD_CAT_ID,EPOCH/format/xml" target="_blank"> OMM (XML)</a><li><a data-original-title="Qu...
                                <li><a data-original-title="Query URL" href="https://www.space-track.org/basicspacedata/query/class/gp/EPOCH/%3Enow-30/MEAN_MOTION/0.99--1.01/ECCENTRICITY/%3C0.01/OBJECT_TYPE/payload/orderby/NORAD_CAT_ID,EPOCH/format/x...
                                <li><a data-original-title="Query URL" href="https://www.space-track.org/basicspacedata/query/class/gp/EPOCH/%3Enow-30/MEAN_MOTION/1.8--2.39/ECCENTRICITY/%3C0.25/OBJECT_TYPE/payload/orderby/NORAD_CAT_ID,EPOCH/format/xm...
                                <li><a data-original-title="Query URL" href="https://www.space-track.org/basicspacedata/query/class/gp/EPOCH/%3Enow-30/MEAN_MOTION/%3E11.25/ECCENTRICITY/%3C0.25/OBJECT_TYPE/payload/orderby/NORAD_CAT_ID,EPOCH/format/xml...
                                <li><a data-original-title="Query URL" href="https://www.space-track.org/basicspacedata/query/class/gp/EPOCH/%3Enow-30/ECCENTRICITY/%3E0.25/OBJECT_TYPE/payload/orderby/NORAD_CAT_ID,EPOCH/format/xml" target="_blank"> OM...
                        </div>



( run in 0.680 second using v1.01-cache-2.11-cpan-0b5f733616e )