Archive-Har

 view release on metacpan or  search on metacpan

t/firebug_get.t  view on Meta::CPAN

            },
            {
              "name": "Cache-Control",
              "value": "no-cache"
            }
          ],
          "queryString": [],
          "headersSize": 341,
          "bodySize": -1
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "httpVersion": "HTTP/1.1",
          "cookies": [],
          "headers": [
            {
              "name": "Server",
              "value": "nginx"
            },
            {
              "name": "Date",
              "value": "Fri, 23 Mar 2012 01:32:11 GMT"
            },
            {
              "name": "Content-Type",
              "value": "application/x-javascript; charset=UTF-8"
            },
            {
              "name": "Last-Modified",
              "value": "Mon, 19 Mar 2012 14:58:36 GMT"
            },
            {
              "name": "Transfer-Encoding",
              "value": "chunked"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Expires",
              "value": "Sat, 23 Mar 2013 01:32:11 GMT"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31536000"
            },
            {
              "name": "Vary",
              "value": "Accept-Encoding"
            },
            {
              "name": "Content-Encoding",
              "value": "gzip"
            }
          ],
          "content": {
            "mimeType": "application/x-javascript",
            "size": 176455,
            "text": "if(typeof YAHOO==\"undefined\"||!YAHOO){var YAHOO={}}YAHOO.namespace=function(){var a=arguments,h=null,k,l,j;for(k=0;k<a.length;k=k+1){j=(\"\"+a[k]).split(\".\");h=YAHOO;for(l=(j[0]==\"YAHOO\")?1:0;l<j.length;l=l+1){h[j[l]]=h[j[l...
          },
          "redirectURL": "",
          "headersSize": 344,
          "bodySize": 56690
        },
        "cache": {},
        "timings": {
          "blocked": 297,
          "dns": 0,
          "connect": 0,
          "send": 0,
          "wait": 811,
          "receive": 546
        },
        "serverIPAddress": "46.51.216.187",
        "connection": "443"
      },
      {
        "pageref": "page_16683",
        "startedDateTime": "2012-03-23T12:35:26.853+11:00",
        "time": 842,
        "request": {
          "method": "GET",
          "url": "https://duckduckgo.com/f2/us.png",
          "httpVersion": "HTTP/1.1",
          "cookies": [],
          "headers": [
            {
              "name": "Host",
              "value": "duckduckgo.com"
            },
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/2010.111 Firefox/11.0"
            },
            {
              "name": "Accept",
              "value": "image/png,image/*;q=0.8,*/*;q=0.5"
            },
            {
              "name": "Accept-Language",
              "value": "en-us,en;q=0.5"
            },
            {
              "name": "Accept-Encoding",
              "value": "gzip, deflate"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Referer",
              "value": "https://duckduckgo.com/?q=http+archive+specification"
            },
            {
              "name": "Pragma",
              "value": "no-cache"
            },
            {

t/firebug_get.t  view on Meta::CPAN

              "value": "nginx"
            },
            {
              "name": "Date",
              "value": "Fri, 23 Mar 2012 01:32:18 GMT"
            },
            {
              "name": "Content-Type",
              "value": "image/png"
            },
            {
              "name": "Content-Length",
              "value": "160"
            },
            {
              "name": "Last-Modified",
              "value": "Fri, 13 Jan 2012 18:36:15 GMT"
            },
            {
              "name": "Connection",
              "value": "keep-alive"
            },
            {
              "name": "Expires",
              "value": "Sat, 23 Mar 2013 01:32:18 GMT"
            },
            {
              "name": "Cache-Control",
              "value": "max-age=31536000, public"
            },
            {
              "name": "Accept-Ranges",
              "value": "bytes"
            }
          ],
          "content": {
            "mimeType": "image/png",
            "size": 160
          },
          "redirectURL": "",
          "headersSize": 290,
          "bodySize": 160
        },
        "cache": {},
        "timings": {
          "blocked": 0,
          "dns": 0,
          "connect": 561,
          "send": 0,
          "wait": 265,
          "receive": 0
        },
        "serverIPAddress": "46.51.216.187",
        "connection": "443"
      }
    ]
  }
}
_FIREBUG_RESULTS_
ok($har->string($firebug_get_string), "Successfully read firebug har archive for https://duckduckgo.com/?q=http+archive+specification");
ok($har->version() eq '1.1', "INPUT: Firebug produces a version 1.1 http archive");
ok($har->creator()->name() eq 'Firebug', "INPUT: Firebug's creator name is 'Firebug'");
ok($har->creator()->version() eq '1.9', "INPUT: Pingdom's creator version is '1.9'");
ok(not(defined $har->creator()->comment()), "INPUT: Pingdom's creator comment is not defined");
ok($har->browser()->name() eq 'Firefox', "INPUT: Firebug's browser name is 'Firefox'");
ok($har->browser()->version() eq '11.0', "INPUT: Firebug's browser version is '11.0'");
ok(not(defined $har->browser()->comment()), "INPUT: Firebug's browser comment is not defined");
($firstEntry) = $har->entries();
ok(scalar $firstEntry->request()->headers() == 9, "INPUT: Firebug's archive first entry request has 9 headers");
my @headers = $firstEntry->request()->headers();
ok($headers[1]->name() eq 'User-Agent', "INPUT: Firebug's archive first entry second header has a name of 'User-Agent'");
ok($headers[1]->value() eq 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/2010.111 Firefox/11.0', "INPUT: Firebug's archive first entry second header has a value of 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0'");
my @queryString = $firstEntry->request()->query_string();
ok($queryString[0]->name() eq 'q', "INPUT: Firebug's archive first entry first query parameter has a name of 'q'");
ok($queryString[0]->value() eq 'http archive specification', "INPUT: Firebug's archive first entry first query parameter has a value of 'http archive specification'");
ok($firstEntry->request()->headers_size(undef) == 394, "INPUT: Firebug's archive first entry request has a header size of 394");
ok(not(defined $firstEntry->request()->headers_size(-1)), "INPUT: Firebug's archive first entry request has a header size that is not defined (after being set to undef)");
ok(not(defined $firstEntry->request()->headers_size(394)), "INPUT: Firebug's archive first entry request has a header size that is not defined (after being set to -1)");
ok(not(defined $firstEntry->request()->body_size()), "INPUT: Firebug's archive first entry request has a body size that is not defined");
ok(not(defined $firstEntry->request()->post_data()), "INPUT: Firebug's archive first entry request has a post data reference that is not defined");
my $firebug_ref = $har->hashref();
ok($firebug_ref->{log}->{version} eq '1.1', "OUTPUT: Firebug produces a version 1.1 http archive");
ok($firebug_ref->{log}->{creator}->{name} eq 'Firebug', "OUTPUT: Firebug's creator name is 'Firebug'");
ok($firebug_ref->{log}->{creator}->{version} eq '1.9', "OUTPUT: Firebug's creator version is '1.9'");
ok(not(exists $firebug_ref->{log}->{creator}->{comment}), "OUTPUT: Firebug's creator comment does not exist");
ok($firebug_ref->{log}->{browser}->{name} eq 'Firefox', "OUTPUT: Firebug's browser name is 'Firefox'");
ok($firebug_ref->{log}->{browser}->{version} eq '11.0', "OUTPUT: Firebug's browser version is '11.0'");
ok(not(exists $firebug_ref->{log}->{browser}->{comment}), "OUTPUT: Firebug's browser comment does not exist");
ok($firebug_ref->{log}->{entries}->[0]->{request}->{headers}->[1]->{name} eq 'User-Agent', "OUTPUT: Firebug's archive first entry second header has a name of 'User-Agent'");
ok($firebug_ref->{log}->{entries}->[0]->{request}->{headers}->[1]->{value} eq 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/2010.111 Firefox/11.0', "OUTPUT: Firebug's archive first entry second header has a value of 'Mozilla/5.0 (Windows NT 6.1...
ok($firebug_ref->{log}->{entries}->[0]->{request}->{queryString}->[0]->{name} eq 'q', "OUTPUT: Firebug's archive first entry first query parameter has a name of 'q'");
ok($firebug_ref->{log}->{entries}->[0]->{request}->{queryString}->[0]->{value} eq 'http archive specification', "OUTPUT: Firebug's archive first entry first query parameter has a value of 'http archive specification'");
ok($firebug_ref->{log}->{entries}->[0]->{request}->{headersSize} eq '394', "OUTPUT: Firebug's archive first entry has a header size of 394");
$firstEntry->request()->headers_size(undef);
$firebug_ref = $har->hashref();
ok($firebug_ref->{log}->{entries}->[0]->{request}->{headersSize} eq '-1', "OUTPUT: Firebug's archive first entry has a header size of '-1' (after being set to undef)");
$firstEntry->request()->headers_size(-1);
$firebug_ref = $har->hashref();
ok($firebug_ref->{log}->{entries}->[0]->{request}->{headersSize} eq '-1', "OUTPUT: Firebug's archive first entry has a header size of '-1' (after being set to -1)");
ok($firebug_ref->{log}->{entries}->[0]->{request}->{bodySize} eq '-1', "OUTPUT: Firebug's archive first entry has a body size of '-1'");
ok(not(exists $firebug_ref->{log}->{entries}->[0]->{request}->{postData}), "OUTPUT: Firebug's archive first entry does not have a postData reference");



( run in 0.554 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )