diff --git a/dist/barometer-test.js b/dist/barometer-test.js index 259261f..656dd12 100644 --- a/dist/barometer-test.js +++ b/dist/barometer-test.js @@ -211,7 +211,7 @@ transport._flushBuffer = function (pageEnd) { if (navigator.sendBeacon) { navigator.sendBeacon(url, JSON.stringify(bufferToSend)) } else { - var xhr = new xhrStats._XMLHttpRequest() + var xhr = new window.XMLHttpRequest() xhr.open('POST', url, !pageEnd) xhr.setRequestHeader('Content-Type', 'application/json') xhr.send(JSON.stringify(bufferToSend)) @@ -1498,7 +1498,7 @@ function drainQueue() { if (draining) { return; } - var timeout = cachedSetTimeout(cleanUpNextTick); + var timeout = cachedSetTimeout.call(null, cleanUpNextTick); draining = true; var len = queue.length; @@ -1515,7 +1515,7 @@ function drainQueue() { } currentQueue = null; draining = false; - cachedClearTimeout(timeout); + cachedClearTimeout.call(null, timeout); } process.nextTick = function (fun) { @@ -1527,7 +1527,7 @@ process.nextTick = function (fun) { } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { - cachedSetTimeout(drainQueue, 0); + cachedSetTimeout.call(null, drainQueue, 0); } }; @@ -2065,6 +2065,24 @@ var sinon = (function () { // eslint-disable-line no-unused-vars } } + function verifyIsValidAssertion(assertionMethod, assertionArgs) { + switch (assertionMethod) { + case "notCalled": + case "called": + case "calledOnce": + case "calledTwice": + case "calledThrice": + if (assertionArgs.length !== 0) { + assert.fail(assertionMethod + + " takes 1 argument but was called with " + + (assertionArgs.length + 1) + " arguments"); + } + break; + default: + break; + } + } + function failAssertion(object, msg) { object = object || global; var failMethod = object.fail || assert.fail; @@ -2081,6 +2099,8 @@ var sinon = (function () { // eslint-disable-line no-unused-vars verifyIsStub(fake); var args = slice.call(arguments, 1); + verifyIsValidAssertion(name, args); + var failed = false; if (typeof method === "function") { @@ -5464,7 +5484,7 @@ var sinon = (function () { // eslint-disable-line no-unused-vars } for (prop in a) { - if (a.hasOwnProperty(prop)) { + if (hasOwn.call(a, prop)) { aLength += 1; if (!(prop in b)) { @@ -5478,7 +5498,7 @@ var sinon = (function () { // eslint-disable-line no-unused-vars } for (prop in b) { - if (b.hasOwnProperty(prop)) { + if (hasOwn.call(b, prop)) { bLength += 1; } } @@ -6556,7 +6576,7 @@ if (typeof sinon === "undefined") { } var xhr = this; - var events = ["loadstart", "load", "abort", "loadend"]; + var events = ["loadstart", "load", "abort", "error", "loadend"]; function addEventListener(eventName) { xhr.addEventListener(eventName, function (event) { @@ -6890,12 +6910,16 @@ if (typeof sinon === "undefined") { } if (this.readyState === FakeXMLHttpRequest.DONE) { - if (this.status < 200 || this.status > 299) { - progress = {loaded: 0, total: 0}; + // ensure loaded and total are numbers + progress = { + loaded: this.progress || 0, + total: this.progress || 0 + }; + + if (this.status === 0) { event = this.aborted ? "abort" : "error"; } else { - progress = {loaded: 100, total: 100}; event = "load"; } @@ -6988,6 +7012,15 @@ if (typeof sinon === "undefined") { this.readyState = FakeXMLHttpRequest.UNSENT; }, + error: function error() { + clearResponse(this); + this.errorFlag = true; + this.requestHeaders = {}; + this.responseHeaders = {}; + + this.readyStateChange(FakeXMLHttpRequest.DONE); + }, + getResponseHeader: function getResponseHeader(header) { if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) { return null; @@ -7051,6 +7084,7 @@ if (typeof sinon === "undefined") { } else if (this.responseType === "" && isXmlContentType(contentType)) { this.responseXML = FakeXMLHttpRequest.parseXML(this.responseText); } + this.progress = body.length; this.readyStateChange(FakeXMLHttpRequest.DONE); }, diff --git a/dist/barometer.min.js b/dist/barometer.min.js index 30d5972..6232222 100644 --- a/dist/barometer.min.js +++ b/dist/barometer.min.js @@ -1,2 +1,2 @@ /*! barometer v1.0.0 */ -_='!e t(na) a;r=a={œ:{id:n,„ed:!1}; e.call(r,r,r,tr.„ed=!0,r}a={}; t.m=%.c=a,t.p="Kt(0)}([%,ae#1)=‚2Qa(6a(3a(7š‘,n =r ,=r.3u#1Qš="XXXXXKe={’s:{ers:{}=0e(e8=8||0,8++ Ke)n %†=†||[],†.push(t) ’K%)};o‘;toW<100W…oo=a,5e3)ae0›Wu.šoW(…oo‘Qt=;e(Qa=u.š;if(€)€(a,@Qelse{i=new r.n;i.op("POSTKa,!ei.RHeader("C`tt-TypeK"applicFi`/js`"i.sd(@i.timeout=4e3}}~n=ƒ;i=["UNSENTK"OPENEDK"HEADERS_RECEIVEDK"LOADINGK"DONE"];re"xhr."+eu%,an={“:a}rŽe)"_"›r[0]W0›e[r]W(n[r]=e[r]-tQ no,a,r=o(ši=u(Times,off,“)sŽi)t="timing$‡ (a,i[s]Qt="žs .(at="size (a,(r.žText•.lgth)ƒe=new n;try{t={a=op,u=sd;opu,otry{s=;r(e,"readystFechangeKt[i[]]=!1r(e,"„dKa o({type:u,š:o,Times:t,off:s,“:-s,r:e})!1)}cFch(c} a,sd u}cFch(o} e,aZ?Z(t,a,!1):ˆWˆ("`"+t,a)a=(e•YŠ^https?:\\/\\//i,"")\\/*;(t•.mFch(/\\?/)W(a+=tYslice(1)\\/*a~u={a=™;e=toJSON()nŽe)"™"›nW0›eW(t=e-aQ tr=o(‰ref,‰ashQ"page„."+t”e*i%=.timing||{a=u(t)rŽa)e=r(ru (e,a[r]Qo=(.i`||{}).—Count||0;e=r("—s"u (e,o)"object"==typeof W("complete"===documt.?i():r(,"„Ki,!1)),r,u=e={o#4i#6s#2c=0;u.ss (r,-n)u.fs.(–visits")nWu.s(c++;e=,t=c,a=0,o=[9,9,9,9,9],f=!1,g=25,l=–dynamic"p…dn=,r=–gagemt"Qt=125;s (l,-e-t)d=f=!06e3ve=;n=,r=n-e-g;if(r>aW(a=r!ft›c) p(Qo.shift(o.push(r)u=0,i=0;i<5;i++)u+=o[i]; u<5Wa>25?p():void v,g)}g)};v()u.f(Œ?(o(,"popstF˜e=‹;‹ u.f(t}}(Œ)):o(,"hashchang˜)}]Q(%,aknbuffervar .œreturnwindownew DFe .’ $r.stFu‡ ,t(++,‚.debugWc`sollog("Timeout(.apply(e,argumts)}){),count.Š[^a-z0-9-n.=e={r#readyStFe}%ke%},equestnavigF.performancee.en;for(=#=a($."+type”r”%e,t*]/gi,"_")8.ers[e]@JSON.stringify(t)FatK",Q);W&&Y.split("?")[0].ZaddEvtLister`onk"use strict";~}4u#2o#5Q[n]€or.sdBeac`Size‚.barometerƒ.XMLHttpR„load…clear† s[e]‡s,a=r(tuˆFtachEvt‰.locFiohŠreplace(/‹pushStFeŒ.historysetŽ in if(et‘=null’gauge“total”+"."+•||"")–i.r("—redirect˜eKu.f,!1™i`Startšurl›!==œexportsfuncti`žresp`se';for(Y in $='žœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€~k`ZYWQKF@8*%$# ')with(_.split($[Y]))_=join(pop());eval(_) \ No newline at end of file +_='!e t(a™nŒ) nŒ;rYŒ={œ:{id:a,ƒed:!1}; eŒ.call(r,r,r,tr.ƒed=!0,r}n={}; t.m=e,t.cY,t.p="Zt(0)}([,neY(1)=‚WrY(2n(6n(3n(7šYull,a =r ,=r.Wr=(n(3n(1)š="XXXXXZe$={s:{ers:{}=0e(Q8=8||0,8++ Ze)a =…=…||[],….push(t) Ze,t)};uYull;t$u`<100`„uu=n,5e3)nQ™0›`r.šu`(„uuYullt=;e(n=r.š;™€)€(n,@else{oYew #;o.op("POSTZn,!eo.RHeader("CFtt-TypeZ"applicKiF/jsF"o.sd(@o.timeout=4e3}}a=#;i=["UNSENTZ"OPENEDZ"HEADERS_RECEIVEDZ"LOADINGZ"DONE"];rQ"xhr."+eu=,na={:n}rŽe)"_"›r[0]`0›e[r]`(a[r]=e[r]-t aoQt,n,r=o(ši=u(Times,off,)sŽi)t="timing%† (n,i[s]t="žs .(nt="size (n,(r.žText’.lgth)#$eYew a;try{–op,u=sd;op=u,otry{s=;r(e,"readystKechangeZt[i[]]=!1r(e,"ƒdZn o({type:u,š:o,Times:t,off:s,:-s,r:e})!1)}cKch(c} n,sd$ u}cKch(o} e˜,n~?~(t,n,!1):‡`‡("F"+t,n)˜n=(e’k‰^https?:\\/\\//i,"")\\/*;(t’.mKch(/\\?/)`(n+=tkslice(1)\\/*nuQ–—;e=toJSON()aŽe)"—"›a`0›eŒ`(tŒ=eŒ-n trQt=o(ˆref,ˆash"pageƒ."+t‘e*i$e,t=.timing||{n=u(t)rŽn)e=r(ru (e,n[r]o=(.iF||{}).”Count||0;e=r("”s"u (e,o)"object"==typeof `("complete"===documt.?i():r(,"ƒZi,!1)),r,uWoY(4iY(6sY(2c=0;u.s$s (r,-a)u.f$s.(“visits")a`u.s(c++;e=,t=c,n=0,o=[9,9,9,9,9],f=!1,g=25,l=“dynamic"p$„da=,r=“gagemt"t=125;s (l,-e-t)d=f=!06e3v$e=;a=,r=a-e-g;™r>n`(n=r!f™t›c) p(o.shift(o.push(r)u=0,i=0;i<5;i++)u+=o[i]; u<5`n>25?p():void v,g)}g)};v()u.f(‹?(o(,"popstK•e™et=Š;Š$ u.f(t}}(‹)):o(,"hashchang•)}](,nabuffervar .œwindowreturnnew DKe . %r.stKu† ,t(++,‚.debug`cFsollog("Timeout(.apply(e,argumts)}){),count.‰[^a-z0-9-equest},a.readyStKe}WrY(4uY(2oY(5"use strict";navigK.performancee.e,ten;for(#.XMLHttpR$=%."+type‘r‘*]/gi,"_")8.ers[e]@JSON.stringify(t)FonKatQ=eW=e={Y=nZ",`&&k.split("?")[0].~addEvtLister);€or.sdBeacFSize‚.barometerƒload„clear… s[e]†s,n=r(tu‡KtachEvtˆ.locKiF.h‰replace(/ŠpushStKe‹.historyŒ[a]setŽ in gaugetotal‘+"."+’||"")“i.r("”redirect•eZu.f,!1–t={n=—iFStart˜}e=™if(šurl›!==œexportsfunctiFžrespFse';for(Y in $='žœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…„ƒ‚€~k`ZYWQKF@8*%$# ')with(_.split($[Y]))_=join(pop());eval(_) \ No newline at end of file diff --git a/lib/transport.js b/lib/transport.js index 6be38df..b572c54 100644 --- a/lib/transport.js +++ b/lib/transport.js @@ -57,7 +57,7 @@ transport._flushBuffer = function (pageEnd) { if (navigator.sendBeacon) { navigator.sendBeacon(url, JSON.stringify(bufferToSend)) } else { - var xhr = new xhrStats._XMLHttpRequest() + var xhr = new window.XMLHttpRequest() xhr.open('POST', url, !pageEnd) xhr.setRequestHeader('Content-Type', 'application/json') xhr.send(JSON.stringify(bufferToSend))