Procházet zdrojové kódy

Merge pull request #87 from gmetais/fix-xml

Fix server freeze issue
Gaël Métais před 10 roky
rodič
revize
3256789082

+ 0 - 6
lib/runner.js

@@ -52,12 +52,6 @@ var Runner = function(params) {
         delete data.toolsResults.phantomas.metrics.scrollExecutionTree;
         delete data.toolsResults.phantomas.offenders.scrollExecutionTree;
 
-        return data;
-
-    })
-
-    .then(function(data) {
-
         // Finished!
         deferred.resolve(data);
 

+ 3 - 0
lib/tools/weightChecker/weightChecker.js

@@ -155,6 +155,7 @@ var WeightChecker = function() {
         requests.forEach(function(req) {
             var weight = ((typeof req.weightCheck.bodySize === 'number') ? req.weightCheck.bodySize + req.weightCheck.headersSize : req.contentLength) || 0;
             var type = req.type || 'other';
+            type = (results.byType[type]) ? type : 'other';
 
             results.totalWeight += weight;
             results.byType[type].totalWeight += weight;
@@ -275,6 +276,8 @@ var WeightChecker = function() {
         requests.forEach(function(req) {
             if (req.url !== 'about:blank') {
                 var type = req.type || 'other';
+                type = (results.byType[type]) ? type : 'other';
+                
                 results.byType[type].push(req.url);
                 results.total ++;
             }

+ 16 - 4
test/core/weightCheckerTest.js

@@ -84,6 +84,18 @@ describe('weightChecker', function() {
                 isCSS: true,
                 type: 'css'
             },
+            {
+                method: 'GET',
+                url: 'http://localhost:8388/xml.xml',
+                requestHeaders: {
+                    'User-Agent': 'something',
+                   Referer: 'http://www.google.fr/',
+                   Accept: '*/*'
+                },
+                status: 200,
+                isXML: true,
+                type: 'xml'
+            },
             {
                 method: 'GET',
                 url: 'about:blank',
@@ -122,7 +134,7 @@ describe('weightChecker', function() {
             data.toolsResults.weightChecker.offenders.totalWeight.byType.js.requests.length.should.equal(2);
             data.toolsResults.weightChecker.offenders.totalWeight.byType.css.requests.length.should.equal(1);
             data.toolsResults.weightChecker.offenders.totalWeight.byType.image.requests.length.should.equal(2);
-            data.toolsResults.weightChecker.offenders.totalWeight.byType.other.requests.length.should.equal(0);
+            data.toolsResults.weightChecker.offenders.totalWeight.byType.other.requests.length.should.equal(1);
 
             data.toolsResults.weightChecker.offenders.should.have.a.property('imageOptimization');
             data.toolsResults.weightChecker.offenders.imageOptimization.totalGain.should.be.above(0);
@@ -130,13 +142,13 @@ describe('weightChecker', function() {
 
             data.toolsResults.weightChecker.offenders.should.have.a.property('gzipCompression');
             data.toolsResults.weightChecker.offenders.gzipCompression.totalGain.should.be.above(0);
-            data.toolsResults.weightChecker.offenders.gzipCompression.files.length.should.equal(4);
+            data.toolsResults.weightChecker.offenders.gzipCompression.files.length.should.equal(5);
 
             data.toolsResults.weightChecker.offenders.should.have.a.property('fileMinification');
             data.toolsResults.weightChecker.offenders.fileMinification.totalGain.should.be.above(0);
             data.toolsResults.weightChecker.offenders.fileMinification.files.length.should.equal(2);
 
-            data.toolsResults.weightChecker.metrics.should.have.a.property('totalRequests').that.equals(6);
+            data.toolsResults.weightChecker.metrics.should.have.a.property('totalRequests').that.equals(7);
             data.toolsResults.weightChecker.offenders.should.have.a.property('totalRequests');
             data.toolsResults.weightChecker.offenders.totalRequests.byType.html.length.should.equal(1);
             data.toolsResults.weightChecker.offenders.totalRequests.byType.js.length.should.equal(2);
@@ -145,7 +157,7 @@ describe('weightChecker', function() {
             data.toolsResults.weightChecker.offenders.totalRequests.byType.json.length.should.equal(0);
             data.toolsResults.weightChecker.offenders.totalRequests.byType.webfont.length.should.equal(0);
             data.toolsResults.weightChecker.offenders.totalRequests.byType.video.length.should.equal(0);
-            data.toolsResults.weightChecker.offenders.totalRequests.byType.other.length.should.equal(0);
+            data.toolsResults.weightChecker.offenders.totalRequests.byType.other.length.should.equal(1);
 
             data.toolsResults.weightChecker.metrics.should.have.a.property('smallRequests').that.equals(0);
             data.toolsResults.weightChecker.offenders.should.have.a.property('smallRequests');

+ 80 - 0
test/www/xml.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0"?>
+<catalog>
+   <book id="bk101">
+      <author>Gambardella, Matthew</author>
+      <title>XML Developer's Guide</title>
+      <genre>Computer</genre>
+      <price>44.95</price>
+      <publish_date>2000-10-01</publish_date>
+      <description>An in-depth look at creating applications 
+      with XML.</description>
+   </book>
+   <book id="bk102">
+      <author>Ralls, Kim</author>
+      <title>Midnight Rain</title>
+      <genre>Fantasy</genre>
+      <price>5.95</price>
+      <publish_date>2000-12-16</publish_date>
+      <description>A former architect battles corporate zombies, 
+      an evil sorceress, and her own childhood to become queen 
+      of the world.</description>
+   </book>
+   <book id="bk103">
+      <author>Corets, Eva</author>
+      <title>Maeve Ascendant</title>
+      <genre>Fantasy</genre>
+      <price>5.95</price>
+      <publish_date>2000-11-17</publish_date>
+      <description>After the collapse of a nanotechnology 
+      society in England, the young survivors lay the 
+      foundation for a new society.</description>
+   </book>
+   <book id="bk104">
+      <author>Corets, Eva</author>
+      <title>Oberon's Legacy</title>
+      <genre>Fantasy</genre>
+      <price>5.95</price>
+      <publish_date>2001-03-10</publish_date>
+      <description>In post-apocalypse England, the mysterious 
+      agent known only as Oberon helps to create a new life 
+      for the inhabitants of London. Sequel to Maeve 
+      Ascendant.</description>
+   </book>
+   <book id="bk105">
+      <author>Corets, Eva</author>
+      <title>The Sundered Grail</title>
+      <genre>Fantasy</genre>
+      <price>5.95</price>
+      <publish_date>2001-09-10</publish_date>
+      <description>The two daughters of Maeve, half-sisters, 
+      battle one another for control of England. Sequel to 
+      Oberon's Legacy.</description>
+   </book>
+   <book id="bk106">
+      <author>Randall, Cynthia</author>
+      <title>Lover Birds</title>
+      <genre>Romance</genre>
+      <price>4.95</price>
+      <publish_date>2000-09-02</publish_date>
+      <description>When Carla meets Paul at an ornithology 
+      conference, tempers fly as feathers get ruffled.</description>
+   </book>
+   <book id="bk107">
+      <author>Thurman, Paula</author>
+      <title>Splish Splash</title>
+      <genre>Romance</genre>
+      <price>4.95</price>
+      <publish_date>2000-11-02</publish_date>
+      <description>A deep sea diver finds true love twenty 
+      thousand leagues beneath the sea.</description>
+   </book>
+   <book id="bk108">
+      <author>Knorr, Stefan</author>
+      <title>Creepy Crawlies</title>
+      <genre>Horror</genre>
+      <price>4.95</price>
+      <publish_date>2000-12-06</publish_date>
+      <description>An anthology of horror stories about roaches,
+      centipedes, scorpions  and other insects.</description>
+   </book>
+</catalog>