gemini-gui
Advanced tools
Comparing version 0.1.2 to 0.1.3
# Changelog | ||
## 0.1.3 - 2015-02-03 | ||
* Ability to specify the hostname (@i-akhmadullin). | ||
## 0.1.2 - 2014-10-24 | ||
@@ -4,0 +8,0 @@ |
@@ -26,2 +26,9 @@ 'use strict'; | ||
.opt() | ||
.name('hostname') | ||
.title('Hostname to launch server on') | ||
.long('hostname') | ||
.short('h') | ||
.def('localhost') | ||
.end() | ||
.opt() | ||
.name('configFile') | ||
@@ -28,0 +35,0 @@ .title('Gemini config file') |
@@ -60,8 +60,8 @@ 'use strict'; | ||
return q.nfcall(server.listen.bind(server), options.port, 'localhost') | ||
return q.nfcall(server.listen.bind(server), options.port, options.hostname) | ||
.then(function() { | ||
return { | ||
url: 'http://localhost:' + options.port | ||
url: 'http://' + options.hostname + ':' + options.port | ||
}; | ||
}); | ||
}; |
@@ -1,1 +0,1 @@ | ||
{"version":3,"file":"bundle.js","sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","lib/client","lib/client/section-list.js","lib/client/xhr.js","lib/client/section.js","lib/common/tests-index.js","lib/views/partials/success-result.hbs","lib/views/partials/fail-result.hbs","lib/views/partials/error-result.hbs","lib/views/partials/skip-result.hbs","node_modules/hbsfy/runtime.js","node_modules/handlebars/runtime.js","node_modules/handlebars/dist/cjs/handlebars.runtime.js","node_modules/handlebars/dist/cjs/handlebars/base.js","node_modules/handlebars/dist/cjs/handlebars/safe-string.js","node_modules/handlebars/dist/cjs/handlebars/utils.js","node_modules/handlebars/dist/cjs/handlebars/exception.js","node_modules/handlebars/dist/cjs/handlebars/runtime.js"],"names":["SectionList","this","_sectionsIndex","Index","_sections","map","call","document","querySelectorAll","node","section","Section","add","require","Array","prototype","every","constuctor","expandAll","forEach","expand","collapseAll","collapse","expandErrors","expandIfError","markAllAsQueued","status","markIfFinished","nodes","domNode","allChildrenFinished","_sectionForNode","isFinished","findSection","query","find","findParent","browserId","suiteId","stateName","parentSectionNode","_findParentSectionNode","parentNode","classList","contains","getAttribute","module","exports","post","url","data","callback","xhr","XMLHttpRequest","open","setRequestHeader","onload","JSON","parse","responseText","Error","error","send","stringify","statusClass","getInitialStatus","sectionNode","i","statusList","length","_status","_titleNode","querySelector","_bodyNode","addEventListener","toggle","bind","successTemplate","failTemplate","errorTemplate","skipTemplate","remove",{"end":{"file":"?","comments_before":[],"nlb":false,"endpos":1552,"pos":1546,"col":8,"line":57,"value":"status","type":"name"},"start":{"file":"?","comments_before":[],"nlb":false,"endpos":1552,"pos":1546,"col":8,"line":57,"value":"status","type":"name"},"name":"status"},"value","setAsFailure","results","innerHTML","replaceButton","updateReference","setAsSuccess","setAsSkipped","setAsError","_this","postData","response","TestsIndex","_index","constructor","item","indexData","suite","states","stateData","state","browsers","HandlebarsCompiler","template","Handlebars","depth0","helpers","partials","compilerInfo","merge","stack1","helper","buffer","functionType","escapeExpression","referenceURL","hash","currentURL","diffURL","stack","base","SafeString","Exception","Utils","runtime","create","hb","HandlebarsEnvironment","extend","VM","spec","registerDefaultHelpers","instance","registerHelper","arg","arguments","undefined","context","options","inverse","fn","isFunction","isArray","each","ret","createFrame","j","index","first","last","key","hasOwnProperty","conditional","includeZero","isEmpty","level","parseInt","log","obj","logger","VERSION","COMPILER_REVISION","REVISION_CHANGES",1,2,3,4,"toString","objectType","name","not","registerPartial","str","methodMap","DEBUG","INFO","WARN","ERROR","method","console","object","string","escapeChar","chr","escape","Object","possible","test","replace","badChars","&","<",">","\"","'","`","message","line","firstLine","firstColumn","tmp","idx","errorProps","lineNumber","column","checkRevision","compilerRevision","currentRevision","runtimeVersions","compilerVersions","templateSpec","env","invokePartialWrapper","partial","result","invokePartial","apply","compile","container","programs","program","programWrapper","param","common","programWithDepth","noop","namespace","args","slice","prog","concat","depth","Function"],"mappings":"AAAA;AECA,YAMA,SAASA,eACLC,KAAKC,eAAiB,GAAIC,OAC1BF,KAAKG,UAAYC,IAAIC,KAAKC,SAASC,iBAAiB,YAAa,SAASC,GACtE,GAAIC,GAAU,GAAIC,SAAQF,EAE1B,OADAR,MAAKC,eAAeU,IAAIF,GACjBA,GACRT,MAXP,GAAIU,SAAUE,QAAQ,aAClBV,MAAQU,QAAQ,yBAChBR,IAAMS,MAAMC,UAAUV,IACtBW,MAAQF,MAAMC,UAAUC,KAW5BhB,aAAYe,WACRE,WAAYjB,YAEZkB,UAAW,WACPjB,KAAKG,UAAUe,QAAQ,SAAST,GAC5BA,EAAQU,YAIhBC,YAAa,WACTpB,KAAKG,UAAUe,QAAQ,SAAST,GAC5BA,EAAQY,cAIhBC,aAAc,WACVtB,KAAKG,UAAUe,QAAQ,SAAST,GAC5BA,EAAQc,mBAIhBC,gBAAiB,WACbxB,KAAKG,UAAUe,QAAQ,SAAST,GAC5BA,EAAQgB,OAAS,YAIzBC,eAAgB,SAASjB,GACrB,GAAuB,SAAnBA,EAAQgB,OAAZ,CAIA,GAAIE,GAAQlB,EAAQmB,QAAQrB,iBAAiB,YACzCsB,EAAsBd,MAAMV,KAAKsB,EAAO,SAASnB,GACjD,MAAOR,MAAK8B,gBAAgBtB,GAAMuB,cACnC/B,KAEC6B,KACApB,EAAQgB,OAAS,aAIzBO,YAAa,SAASC,GAClB,MAAOjC,MAAKC,eAAeiC,KAAKD,IAGpCE,WAAY,SAAS1B,GACjB,GAAIA,EAAQ2B,UACR,MAAOpC,MAAKgC,aAAaK,QAAS5B,EAAQ4B,QAASC,UAAW7B,EAAQ6B,WAG1E,IAAI7B,EAAQ6B,UACR,MAAOtC,MAAKgC,aAAaK,QAAS5B,EAAQ4B,SAE9C,IAAIE,GAAoBvC,KAAKwC,uBAAuB/B,EAAQmB,QAC5D,OAAIW,GACOvC,KAAK8B,gBAAgBS,GAEzB,MAGXC,uBAAwB,SAAShC,GAC7B,KAAQA,EAAOA,EAAKiC,YAChB,GAAIjC,EAAKkC,WAAalC,EAAKkC,UAAUC,SAAS,WAC1C,MAAOnC,EAGf,OAAO,OAGXsB,gBAAiB,SAASF,GACtB,GAAIK,IACAI,QAAST,EAAQgB,aAAa,iBAC9BN,UAAWV,EAAQgB,aAAa,mBAChCR,UAAWR,EAAQgB,aAAa,mBAGpC,OAAO5C,MAAKgC,YAAYC,KAIhCY,OAAOC,QAAU/C;;AEjGjB,YAgBA,SAASgE,aAAYtC,GACjB,MAAO,kBAAoBA,EAG/B,QAASuC,kBAAiBC,GAEtB,IAAK,GADDxC,GACKyC,EAAI,EAAGA,EAAGC,WAAWC,OAAQF,IAElC,GADAzC,EAAS0C,WAAWD,GAChBD,EAAYvB,UAAUC,SAASoB,YAAYtC,IAC3C,MAAOA,EAGf,OAAO,MAGX,QAASf,SAAQF,GACbR,KAAKqC,QAAU7B,EAAKoC,aAAa,iBACjC5C,KAAKsC,UAAY9B,EAAKoC,aAAa,mBACnC5C,KAAKoC,UAAY5B,EAAKoC,aAAa,mBACnC5C,KAAK4B,QAAUpB,EACfR,KAAKqE,QAAUL,iBAAiBxD,GAChCR,KAAKsE,WAAa9D,EAAK+D,cAAc,mBACrCvE,KAAKwE,UAAYhE,EAAK+D,cAAc,kBACpCvE,KAAKsE,WAAWG,iBAAiB,QAASzE,KAAK0E,OAAOC,KAAK3E,OAtC/D,GAAI4E,iBAAkBhE,QAAQ,wCAC1BiE,aAAejE,QAAQ,qCACvBkE,cAAgBlE,QAAQ,sCACxBmE,aAAenE,QAAQ,qCACvBuC,IAAMvC,QAAQ,SAEduD,YACA,OACA,SACA,UACA,UACA,OACA,OA6BJzD,SAAQI,WACJE,WAAYN,QACZS,OAAO,WACHnB,KAAK4B,QAAQc,UAAUsC,OAAO,sBAGlC3D,SAAU,WACNrB,KAAK4B,QAAQc,UAAU/B,IAAI,sBAG/B+D,OAAQ,WACJ1E,KAAK4B,QAAQc,UAAUgC,OAAO,sBAGlCO,GAAIxD,UACA,MAAOzB,MAAKqE,SAGhBY,GAAIxD,QAAOyD,GACHlF,KAAKqE,SACLrE,KAAK4B,QAAQc,UAAUsC,OAAOjB,YAAY/D,KAAKqE,UAGnDrE,KAAKqE,QAAUa,EACflF,KAAK4B,QAAQc,UAAU/B,IAAIoD,YAAY/D,KAAKqE,WAGhD9C,cAAe,WACS,SAAhBvB,KAAKyB,OACLzB,KAAKmB,SAELnB,KAAKqB,YAIb8D,aAAc,SAASC,GACnBpF,KAAKyB,OAAS,OACdzB,KAAKwE,UAAUa,UAAYR,aAAaO,EACxC,IAAIE,GAAgBtF,KAAKwE,UAAUD,cAAc,sBACjDe,GAAcb,iBAAiB,QAASzE,KAAKuF,gBAAgBZ,KAAK3E,QAGtEwF,aAAc,SAASJ,GACnBpF,KAAKyB,OAAS,UACdzB,KAAKwE,UAAUa,UAAYT,gBAAgBQ,IAG/CK,aAAc,WACVzF,KAAKyB,OAAS,UACdzB,KAAKwE,UAAUa,UAAYN,gBAG/BW,WAAY,SAAS9B,GACjB5D,KAAKyB,OAAS,OACdzB,KAAKwE,UAAUa,UAAYP,cAAclB,IAG7C7B,WAAY,WACR,MAAuB,WAAhB/B,KAAKyB,QACQ,YAAhBzB,KAAKyB,QAGb8D,gBAAiB,WACb,GAAII,GAAQ3F,KACR4F,GACIvD,QAASrC,KAAKqC,QACdC,UAAWtC,KAAKsC,UAChBF,UAAWpC,KAAKoC,UAExBe,KAAIJ,KAAK,cAAe6C,EAAU,SAAShC,EAAOiC,GACzCjC,GACD+B,EAAMH,aAAaK,OAMnChD,OAAOC,QAAUpC;;ADtHjB,YAEAoC,SAAQC,KAAO,SAASC,EAAKC,EAAMC,GAC1BA,IACDA,EAAWD,EACXA,EAAO,KAEX,IAAIE,GAAM,GAAIC,eACdD,GAAIE,KAAK,OAAQL,GAAK,GACtBG,EAAIG,iBAAiB,eAAgB,oBACrCH,EAAII,OAAS,WACT,GAAIN,GAAOO,KAAKC,MAAMN,EAAIO,aACP,OAAfP,EAAI1B,OACJyB,EAAS,KAAMD,GAEfC,EAAS,GAAIS,OAAMV,EAAKW,SAI5BX,EACAE,EAAIU,KAAKL,KAAKM,UAAUb,IAExBE,EAAIU;;AFvBZ;;AIAA,YAEA,SAASiC,cACL9F,KAAK+F,UAGTD,WAAWhF,WACPkF,YAAaF,WAEbnF,IAAK,SAASsF,GACV,GAAoB,MAAhBA,EAAK5D,QAAT,CAIA,GAAI6D,GAAYlG,KAAK+F,OAAOE,EAAK5D,QAQjC,IAPK6D,IACDA,EAAYlG,KAAK+F,OAAOE,EAAK5D,UACzB8D,MAAO,KACPC,YAIc,MAAlBH,EAAK3D,UAEL,YADA4D,EAAUC,MAAQF,EAItB,IAAII,GAAYH,EAAUE,OAAOH,EAAK3D,UAQtC,OAPK+D,KACDA,EAAYH,EAAUE,OAAOH,EAAK3D,YAC9BgE,MAAO,KACPC,cAIc,MAAlBN,EAAK7D,eACLiE,EAAUC,MAAQL,QAGtBI,EAAUE,SAASN,EAAK7D,WAAa6D,KAGzC/D,KAAM,SAASD,GACX,GAAIiE,GAAYlG,KAAK+F,OAAO9D,EAAMI,QAClC,KAAK6D,EACD,MAAO,KAEX,IAAuB,MAAnBjE,EAAMK,UACN,MAAO4D,GAAUC,KAErB,IAAIE,GAAYH,EAAUE,OAAOnE,EAAMK,UACvC,OAAK+D,GAIkB,MAAnBpE,EAAMG,UACCiE,EAAUC,MAGdD,EAAUE,SAAStE,EAAMG,YAAc,KAPnC,OAWnBS,OAAOC,QAAUgD;;AG9DjB,GAAIU,oBAAqB5F,QAAQ,gBACjCiC,QAAOC,QAAU0D,mBAAmBC,SAAS,SAAUC,EAAWC,EAAOC,EAAQC,EAAS5D,GACxFjD,KAAK8G,cAAgB,EAAE,YACzBF,EAAU5G,KAAK+G,MAAMH,EAASF,EAAWE,SAAU3D,EAAOA,KACxD,IAAiB+D,GAAQC,EAArBC,EAAS,GAAoBC,EAAa,WAAYC,EAAiBpH,KAAKoH,gBAQhF,OALAF,IAAU,8BACND,EAASL,EAAQa,OAAST,EAASC,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,KAClEgE,EAAUN,GAAUA,EAAOc,MAAQT,QAAgBC,KAAWE,EAAeF,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,IAASgE,GAC/HC,GAAUE,EAAiBJ,GACvB;;ADXN,GAAIR,oBAAqB5F,QAAQ,gBACjCiC,QAAOC,QAAU0D,mBAAmBC,SAAS,SAAUC,EAAWC,EAAOC,EAAQC,EAAS5D,GACxFjD,KAAK8G,cAAgB,EAAE,YACzBF,EAAU5G,KAAK+G,MAAMH,EAASF,EAAWE,SAAU3D,EAAOA,KACxD,IAAiB+D,GAAQC,EAArBC,EAAS,GAAoBC,EAAa,WAAYC,EAAiBpH,KAAKoH,gBAgBhF,OAbAF,IAAU,0IACND,EAASL,EAAQS,cAAgBL,EAASC,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,KACzEgE,EAAUN,GAAUA,EAAOU,aAAeL,QAAgBC,KAAWE,EAAeF,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,IAASgE,GACtIC,GAAUE,EAAiBJ,GACvB,sNACAC,EAASL,EAAQW,YAAcP,EAASC,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,KACvEgE,EAAUN,GAAUA,EAAOY,WAAaP,QAAgBC,KAAWE,EAAeF,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,IAASgE,GACpIC,GAAUE,EAAiBJ,GACvB,gJACAC,EAASL,EAAQY,SAAWR,EAASC,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,KACpEgE,EAAUN,GAAUA,EAAOa,QAAUR,QAAgBC,KAAWE,EAAeF,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,IAASgE,GACjIC,GAAUE,EAAiBJ,GACvB;;AEnBN,GAAIR,oBAAqB5F,QAAQ,gBACjCiC,QAAOC,QAAU0D,mBAAmBC,SAAS,SAAUC,EAAWC,EAAOC,EAAQC,EAAS5D,GAMxF,MALAjD,MAAK8G,cAAgB,EAAE,YACzBF,EAAU5G,KAAK+G,MAAMH,EAASF,EAAWE,SAAU3D,EAAOA,MAIjD;;AHPT,GAAIuD,oBAAqB5F,QAAQ,gBACjCiC,QAAOC,QAAU0D,mBAAmBC,SAAS,SAAUC,EAAWC,EAAOC,EAAQC,EAAS5D,GACxFjD,KAAK8G,cAAgB,EAAE,YACzBF,EAAU5G,KAAK+G,MAAMH,EAASF,EAAWE,SAAU3D,EAAOA,KACxD,IAAiB+D,GAAQC,EAArBC,EAAS,GAAoBC,EAAa,WAAYC,EAAiBpH,KAAKoH,gBAQhF,OALAF,IAAU,mFACND,EAASL,EAAQS,cAAgBL,EAASC,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,KACzEgE,EAAUN,GAAUA,EAAOU,aAAeL,QAAgBC,KAAWE,EAAeF,EAAO5G,KAAKsG,GAASW,QAAQrE,KAAKA,IAASgE,GACtIC,GAAUE,EAAiBJ,GACvB;;AMZN,YAEA,IAAIU,MAAO9G,QAAQ,qBAIf+G,WAAa/G,QAAQ,4BAA4B,WACjDgH,UAAYhH,QAAQ,0BAA0B,WAC9CiH,MAAQjH,QAAQ,sBAChBkH,QAAUlH,QAAQ,wBAGlBmH,OAAS,WACX,GAAIC,GAAK,GAAIN,MAAKO,qBAYlB,OAVAJ,OAAMK,OAAOF,EAAIN,MACjBM,EAAGL,WAAaA,WAChBK,EAAGJ,UAAYA,UACfI,EAAGH,MAAQA,MAEXG,EAAGG,GAAKL,QACRE,EAAGvB,SAAW,SAAS2B,GACrB,MAAON,SAAQrB,SAAS2B,EAAMJ,IAGzBA,GAGLtB,WAAaqB,QACjBrB,YAAWqB,OAASA,OAEpBjF,QAAQ,WAAa4D;;AC/BrB,YAmBA,SAASuB,uBAAsBrB,EAASC,GACtC7G,KAAK4G,QAAUA,MACf5G,KAAK6G,SAAWA,MAEhBwB,uBAAuBrI,MA4BzB,QAASqI,wBAAuBC,GAC9BA,EAASC,eAAe,gBAAiB,SAASC,GAChD,GAAwB,IAArBC,UAAUrE,OACX,MAAOsE,OAEP,MAAM,IAAId,WAAU,oBAAsBY,EAAM,OAIpDF,EAASC,eAAe,qBAAsB,SAASI,EAASC,GAC9D,GAAIC,GAAUD,EAAQC,SAAW,aAAeC,EAAKF,EAAQE,EAI7D,OAFIC,YAAWJ,KAAYA,EAAUA,EAAQtI,KAAKL,OAE/C2I,KAAY,EACNG,EAAG9I,MACF2I,KAAY,GAAoB,MAAXA,EACtBE,EAAQ7I,MACNgJ,QAAQL,GACdA,EAAQvE,OAAS,EACXkE,EAAS1B,QAAQqC,KAAKN,EAASC,GAE/BC,EAAQ7I,MAGV8I,EAAGH,KAIdL,EAASC,eAAe,OAAQ,SAASI,EAASC,GAChD,GACqB3F,GADjB6F,EAAKF,EAAQE,GAAID,EAAUD,EAAQC,QACnC3E,EAAI,EAAGgF,EAAM,EAQjB,IANIH,WAAWJ,KAAYA,EAAUA,EAAQtI,KAAKL,OAE9C4I,EAAQ3F,OACVA,EAAOkG,YAAYP,EAAQ3F,OAG1B0F,GAA8B,gBAAZA,GACnB,GAAIK,QAAQL,GACV,IAAI,GAAIS,GAAIT,EAAQvE,OAAUgF,EAAFlF,EAAKA,IAC3BjB,IACFA,EAAKoG,MAAQnF,EACbjB,EAAKqG,MAAe,IAANpF,EACdjB,EAAKsG,KAASrF,IAAOyE,EAAQvE,OAAO,GAEtC8E,GAAYJ,EAAGH,EAAQzE,IAAMjB,KAAMA,QAGrC,KAAI,GAAIuG,KAAOb,GACVA,EAAQc,eAAeD,KACrBvG,IACDA,EAAKuG,IAAMA,EACXvG,EAAKoG,MAAQnF,EACbjB,EAAKqG,MAAe,IAANpF,GAEhBgF,GAAYJ,EAAGH,EAAQa,IAAOvG,KAAMA,IACpCiB,IAUR,OAJS,KAANA,IACDgF,EAAML,EAAQ7I,OAGTkJ,IAGTZ,EAASC,eAAe,KAAM,SAASmB,EAAad,GAMlD,MALIG,YAAWW,KAAgBA,EAAcA,EAAYrJ,KAAKL,QAKxD4I,EAAQtB,KAAKqC,cAAgBD,GAAgB7B,MAAM+B,QAAQF,GACxDd,EAAQC,QAAQ7I,MAEhB4I,EAAQE,GAAG9I,QAItBsI,EAASC,eAAe,SAAU,SAASmB,EAAad,GACtD,MAAON,GAAS1B,QAAQ,MAAMvG,KAAKL,KAAM0J,GAAcZ,GAAIF,EAAQC,QAASA,QAASD,EAAQE,GAAIxB,KAAMsB,EAAQtB,SAGjHgB,EAASC,eAAe,OAAQ,SAASI,EAASC,GAGhD,MAFIG,YAAWJ,KAAYA,EAAUA,EAAQtI,KAAKL,OAE7C6H,MAAM+B,QAAQjB,GAAnB,OAAoCC,EAAQE,GAAGH,KAGjDL,EAASC,eAAe,MAAO,SAASI,EAASC,GAC/C,GAAIiB,GAAQjB,EAAQ3F,MAA8B,MAAtB2F,EAAQ3F,KAAK4G,MAAgBC,SAASlB,EAAQ3F,KAAK4G,MAAO,IAAM,CAC5FvB,GAASyB,IAAIF,EAAOlB,KAyBxB,QAASoB,KAAIF,EAAOG,GAAOC,OAAOF,IAAIF,EAAOG,GA3K7C,GAAInC,OAAQjH,QAAQ,WAChBgH,UAAYhH,QAAQ,eAAe,WAEnCsJ,QAAU,OACdpH,SAAQoH,QAAUA,OAAQ,IAAIC,mBAAoB,CAClDrH,SAAQqH,kBAAoBA,iBAC5B,IAAIC,mBACFC,EAAG,cACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,WAEL1H,SAAQsH,iBAAmBA,gBAC3B,IAAIpB,SAAUnB,MAAMmB,QAChBD,WAAalB,MAAMkB,WACnB0B,SAAW5C,MAAM4C,SACjBC,WAAa,iBASjB5H,SAAQmF,sBAAwBA,sBAAsBA,sBAAsBnH,WAC1EkF,YAAaiC,sBAEbgC,OAAQA,OACRF,IAAKA,IAELxB,eAAgB,SAASoC,EAAM7B,EAAID,GACjC,GAAI4B,SAASpK,KAAKsK,KAAUD,WAAY,CACtC,GAAI7B,GAAWC,EAAM,KAAM,IAAIlB,WAAU,0CACzCC,OAAMK,OAAOlI,KAAK4G,QAAS+D,OAEvB9B,KAAWC,EAAG8B,IAAM/B,GACxB7I,KAAK4G,QAAQ+D,GAAQ7B,GAIzB+B,gBAAiB,SAASF,EAAMG,GAC1BL,SAASpK,KAAKsK,KAAUD,WAC1B7C,MAAMK,OAAOlI,KAAK6G,SAAW8D,GAE7B3K,KAAK6G,SAAS8D,GAAQG,GAyG5B,IAAIb,SACFc,WAAa,EAAG,QAASV,EAAG,OAAQC,EAAG,OAAQC,EAAG,SAGlDS,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPtB,MAAO,EAGPE,IAAK,SAASF,EAAOG,GACnB,GAAIC,OAAOJ,OAASA,EAAO,CACzB,GAAIuB,GAASnB,OAAOc,UAAUlB,EACP,oBAAZwB,UAA2BA,QAAQD,IAC5CC,QAAQD,GAAQ/K,KAAKgL,QAASrB,KAKtClH,SAAQmH,OAASA,OAGjBnH,QAAQiH,IAAMA,GAAI,IAAIZ,aAAc,SAASmC,GAC3C,GAAItB,KAEJ,OADAnC,OAAMK,OAAO8B,EAAKsB,GACXtB,EAETlH,SAAQqG,YAAcA;;AGnLtB,YAIA,SAASvB,WAAU0E,EAAS9L,GAC1B,GAAI+L,EACA/L,IAAQA,EAAKgM,YACfD,EAAO/L,EAAKgM,UAEZF,GAAW,MAAQC,EAAO,IAAM/L,EAAKiM,YAMvC,KAAK,GAHDC,GAAM/I,MAAM7C,UAAUkF,YAAY3F,KAAKL,KAAMsM,GAGxCK,EAAM,EAAGA,EAAMC,WAAWxI,OAAQuI,IACzC3M,KAAK4M,WAAWD,IAAQD,EAAIE,WAAWD,GAGrCJ,KACFvM,KAAK6M,WAAaN,EAClBvM,KAAK8M,OAAStM,EAAKiM,aAnBvB,GAAIG,aAAc,cAAe,WAAY,aAAc,UAAW,OAAQ,SAAU,QAuBxFhF,WAAU9G,UAAY,GAAI6C,OAE1Bb,QAAQ,WAAa8E;;AC3BrB,YAMA,SAASmF,eAAcjG,GACrB,GAAIkG,GAAmBlG,GAAgBA,EAAa,IAAM,EACtDmG,EAAkB9C,iBAEtB,IAAI6C,IAAqBC,EAAiB,CACxC,GAAuBA,EAAnBD,EAAoC,CACtC,GAAIE,GAAkB9C,iBAAiB6C,GACnCE,EAAmB/C,iBAAiB4C,EACxC,MAAM,IAAIpF,WAAU,6IACwCsF,EAAgB,oDAAoDC,EAAiB,MAGjJ,KAAM,IAAIvF,WAAU,wIACoCd,EAAa,GAAG,OAO9E,QAASL,UAAS2G,EAAcC,GAC9B,IAAKA,EACH,KAAM,IAAIzF,WAAU,oCAKtB,IAAI0F,GAAuB,SAASC,EAAS5C,EAAMhC,EAAS/B,EAASC,EAAU5D,GAC7E,GAAIuK,GAASH,EAAIlF,GAAGsF,cAAcC,MAAM1N,KAAMyI,UAC9C,IAAc,MAAV+E,EAAkB,MAAOA,EAE7B,IAAIH,EAAIM,QAAS,CACf,GAAI/E,IAAYhC,QAASA,EAASC,SAAUA,EAAU5D,KAAMA,EAE5D,OADA4D,GAAS8D,GAAQ0C,EAAIM,QAAQJ,GAAWtK,KAAeyF,SAATzF,GAAsBoK,GAC7DxG,EAAS8D,GAAMhC,EAASC,GAE/B,KAAM,IAAIhB,WAAU,eAAiB+C,EAAO,6DAK5CiD,GACFxG,iBAAkBS,MAAMT,iBACxBqG,cAAeH,EACfO,YACAC,QAAS,SAAS5J,EAAG4E,EAAI7F,GACvB,GAAI8K,GAAiB/N,KAAK6N,SAAS3J,EAMnC,OALGjB,GACD8K,EAAiBD,QAAQ5J,EAAG4E,EAAI7F,GACtB8K,IACVA,EAAiB/N,KAAK6N,SAAS3J,GAAK4J,QAAQ5J,EAAG4E,IAE1CiF,GAEThH,MAAO,SAASiH,EAAOC,GACrB,GAAI/E,GAAM8E,GAASC,CAOnB,OALID,IAASC,GAAWD,IAAUC,IAChC/E,KACArB,MAAMK,OAAOgB,EAAK+E,GAClBpG,MAAMK,OAAOgB,EAAK8E,IAEb9E,GAETgF,iBAAkBb,EAAIlF,GAAG+F,iBACzBC,KAAMd,EAAIlF,GAAGgG,KACbrH,aAAc,KAGhB,OAAO,UAAS6B,EAASC,GACvBA,EAAUA,KACV,IACIhC,GACAC,EAFAuH,EAAYxF,EAAQ2E,QAAU3E,EAAUyE,CAIvCzE,GAAQ2E,UACX3G,EAAUgC,EAAQhC,QAClBC,EAAW+B,EAAQ/B,SAErB,IAAI2G,GAASJ,EAAa/M,KACpBuN,EACAQ,EAAWzF,EACX/B,EACAC,EACA+B,EAAQ3F,KAMd,OAJK2F,GAAQ2E,SACXF,EAAIlF,GAAG4E,cAAca,EAAU9G,cAG1B0G,GAIiB,QAASU,kBAAiBhK,EAAG4E,EAAI7F,GAC3D,GAAIoL,GAAOxN,MAAMC,UAAUwN,MAAMjO,KAAKoI,UAAW,GAE7C8F,EAAO,SAAS5F,EAASC,GAG3B,MAFAA,GAAUA,MAEHE,EAAG4E,MAAM1N,MAAO2I,EAASC,EAAQ3F,MAAQA,GAAMuL,OAAOH,IAI/D,OAFAE,GAAKT,QAAU5J,EACfqK,EAAKE,MAAQJ,EAAKjK,OACXmK,EAGmC,QAAST,SAAQ5J,EAAG4E,EAAI7F,GAClE,GAAIsL,GAAO,SAAS5F,EAASC,GAG3B,MAFAA,GAAUA,MAEHE,EAAGH,EAASC,EAAQ3F,MAAQA,GAIrC,OAFAsL,GAAKT,QAAU5J,EACfqK,EAAKE,MAAQ,EACNF,EAGiB,QAASd,eAAcF,EAAS5C,EAAMhC,EAAS/B,EAASC,EAAU5D,GAC1F,GAAI2F,IAAY2E,SAAS,EAAM3G,QAASA,EAASC,SAAUA,EAAU5D,KAAMA,EAE3E,IAAeyF,SAAZ6E,EACD,KAAM,IAAI3F,WAAU,eAAiB+C,EAAO,sBACvC,OAAG4C,aAAmBmB,UACpBnB,EAAQ5E,EAASC,GADnB,OAK6B,QAASuF,QAAS,MAAO,GArI/D,GAAItG,OAAQjH,QAAQ,WAChBgH,UAAYhH,QAAQ,eAAe,WACnCuJ,kBAAoBvJ,QAAQ,UAAUuJ,kBACtCC,iBAAmBxJ,QAAQ,UAAUwJ,gBAoBzCtH,SAAQiK,cAAgBA,cA4ExBjK,QAAQ2D,SAAWA,SAanB3D,QAAQoL,iBAAmBA,iBAW3BpL,QAAQgL,QAAUA,QAUlBhL,QAAQ2K,cAAgBA,cAExB3K,QAAQqL,KAAOA;;AHxIf,YAEA,SAASxG,YAAW4D,GAClBvL,KAAKuL,OAASA,EAGhB5D,WAAW7G,UAAU2J,SAAW,WAC9B,MAAO,GAAKzK,KAAKuL,QAGnBzI,QAAQ,WAAa6E;;ACVrB,YAgBA,SAAS6D,YAAWC,GAClB,MAAOC,QAAOD,IAAQ,QAGxB,QAASvD,QAAO8B,EAAK9E,GACnB,IAAI,GAAIsE,KAAOtE,GACVyG,OAAO7K,UAAU2I,eAAepJ,KAAK6E,EAAOsE,KAC7CQ,EAAIR,GAAOtE,EAAMsE,IAyBvB,QAASpC,kBAAiBmE,GAExB,MAAIA,aAAkB5D,YACb4D,EAAOd,WACJc,GAAqB,IAAXA,GAOtBA,EAAS,GAAKA,EAEVK,SAASC,KAAKN,GACXA,EAAOO,QAAQC,SAAUP,YADID,GAR3B,GAYiC,QAAS3B,SAAQ1E,GAC3D,MAAKA,IAAmB,IAAVA,EAEH8D,QAAQ9D,IAA2B,IAAjBA,EAAMd,QAC1B,GAEA,GAJA,EAjEX,GAAIuD,YAAa/G,QAAQ,iBAAiB,WAEtC8K,QACFM,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,UAGHN,SAAW,YACXH,SAAW,UAcf9I,SAAQoF,OAASA,MAAO,IAAIuC,UAAWkB,OAAO7K,UAAU2J,QACxD3H,SAAQ2H,SAAWA,QAGnB,IAAI1B,YAAa,SAAS7D,GACxB,MAAwB,kBAAVA,GAGZ6D,YAAW,OACbA,WAAa,SAAS7D,GACpB,MAAwB,kBAAVA,IAAiD,sBAAzBuF,SAASpK,KAAK6E,IAGxD,IAAI6D,WACJjG,SAAQiG,WAAaA,UACrB,IAAIC,SAAUnI,MAAMmI,SAAW,SAAS9D,GACtC,MAAQA,IAA0B,gBAAVA,GAA+C,mBAAzBuF,SAASpK,KAAK6E,IAA8B,EAE5FpC,SAAQkG,QAAUA,QAmBlBlG,QAAQsE,iBAAmBA,iBAU3BtE,QAAQ8G,QAAUA;;AJzElB/G,OAAOC,QAAUlC,QAAQ;;ADFzBiC,OAAOC,QAAUlC,QAAQ,sBAAsB","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","\"use strict\";function failAllParents(e){for(;e=sections.findParent(e);)e.status=\"fail\",e.expand()}function listenForEvents(){var e=new EventSource(\"/events\");e.addEventListener(\"beginSuite\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId});\"queued\"===n.status&&(n.status=\"running\")}),e.addEventListener(\"beginState\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName});\"queued\"===n.status&&(n.status=\"running\")}),e.addEventListener(\"endTest\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});t.equal?n.setAsSuccess(t):(n.setAsFailure(t),n.expand(),failAllParents(n))}),e.addEventListener(\"skipState\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});n.setAsSkipped();var s=sections.findSection({suiteId:t.suiteId,stateName:t.stateName});sections.markIfFinished(s)}),e.addEventListener(\"error\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});n.setAsError({stack:t.stack}),n.expand(),failAllParents(n)}),e.addEventListener(\"endState\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName});sections.markIfFinished(n)}),e.addEventListener(\"endSuite\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});sections.markIfFinished(n)}),e.addEventListener(\"end\",function(){runButton.disabled=!1})}function run(){runButton.disabled=!0,xhr.post(\"/run\",function(e){e||sections.markAllAsQueued()})}var SectionList=require(\"./section-list\"),xhr=require(\"./xhr\"),byId=document.getElementById.bind(document),runButton,sections;document.addEventListener(\"DOMContentLoaded\",function(){sections=new SectionList,runButton=byId(\"run\"),listenForEvents(),byId(\"expandAll\").addEventListener(\"click\",sections.expandAll.bind(sections)),byId(\"collapseAll\").addEventListener(\"click\",sections.collapseAll.bind(sections)),byId(\"expandErrors\").addEventListener(\"click\",sections.expandErrors.bind(sections)),runButton.addEventListener(\"click\",run)});","/*jshint browser:true*/\n'use strict';\nvar Section = require('./section'),\n Index = require('../common/tests-index'),\n map = Array.prototype.map,\n every = Array.prototype.every;\n\nfunction SectionList() {\n this._sectionsIndex = new Index();\n this._sections = map.call(document.querySelectorAll('.section'), function(node) {\n var section = new Section(node);\n this._sectionsIndex.add(section);\n return section;\n }, this);\n}\n\nSectionList.prototype = {\n constuctor: SectionList,\n\n expandAll: function() {\n this._sections.forEach(function(section) {\n section.expand();\n });\n },\n\n collapseAll: function() {\n this._sections.forEach(function(section) {\n section.collapse();\n });\n },\n\n expandErrors: function() {\n this._sections.forEach(function(section) {\n section.expandIfError();\n });\n },\n\n markAllAsQueued: function() {\n this._sections.forEach(function(section) {\n section.status = 'queued';\n });\n },\n\n markIfFinished: function(section) {\n if (section.status === 'fail') {\n //already marked as fail\n return;\n }\n var nodes = section.domNode.querySelectorAll('.section');\n var allChildrenFinished = every.call(nodes, function(node) {\n return this._sectionForNode(node).isFinished();\n }, this);\n\n if (allChildrenFinished) {\n section.status = 'success';\n }\n },\n\n findSection: function(query) {\n return this._sectionsIndex.find(query);\n },\n\n findParent: function(section) {\n if (section.browserId) {\n return this.findSection({suiteId: section.suiteId, stateName: section.stateName});\n }\n\n if (section.stateName) {\n return this.findSection({suiteId: section.suiteId});\n }\n var parentSectionNode = this._findParentSectionNode(section.domNode);\n if (parentSectionNode) {\n return this._sectionForNode(parentSectionNode);\n }\n return null;\n },\n\n _findParentSectionNode: function(node) {\n while ((node = node.parentNode)) {\n if (node.classList && node.classList.contains('section')) {\n return node;\n }\n }\n return null;\n },\n\n _sectionForNode: function(domNode) {\n var query = {\n suiteId: domNode.getAttribute('data-suite-id'),\n stateName: domNode.getAttribute('data-state-name'),\n browserId: domNode.getAttribute('data-browser-id')\n };\n\n return this.findSection(query);\n }\n};\n\nmodule.exports = SectionList;\n","/*jshint browser:true*/\n'use strict';\n\nexports.post = function(url, data, callback) {\n if (!callback) {\n callback = data;\n data = null;\n }\n var xhr = new XMLHttpRequest();\n xhr.open('POST', url, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.onload = function() {\n var data = JSON.parse(xhr.responseText);\n if (xhr.status === 200) {\n callback(null, data);\n } else {\n callback(new Error(data.error));\n }\n };\n\n if (data) {\n xhr.send(JSON.stringify(data));\n } else {\n xhr.send();\n }\n};\n","'use strict';\nvar successTemplate = require('../views/partials/success-result.hbs'),\n failTemplate = require('../views/partials/fail-result.hbs'),\n errorTemplate = require('../views/partials/error-result.hbs'),\n skipTemplate = require('../views/partials/skip-result.hbs'),\n xhr = require('./xhr');\n\nvar statusList = [\n 'idle',\n 'queued',\n 'running',\n 'success',\n 'fail',\n 'skip'\n];\n\nfunction statusClass(status) {\n return 'section_status_' + status;\n}\n\nfunction getInitialStatus(sectionNode) {\n var status;\n for (var i = 0; i< statusList.length; i++) {\n status = statusList[i];\n if (sectionNode.classList.contains(statusClass(status))) {\n return status;\n }\n }\n return null;\n}\n\nfunction Section(node) {\n this.suiteId = node.getAttribute('data-suite-id');\n this.stateName = node.getAttribute('data-state-name');\n this.browserId = node.getAttribute('data-browser-id');\n this.domNode = node;\n this._status = getInitialStatus(node);\n this._titleNode = node.querySelector('.section__title');\n this._bodyNode = node.querySelector('.section__body');\n this._titleNode.addEventListener('click', this.toggle.bind(this));\n}\n\nSection.prototype = {\n constuctor: Section,\n expand:function() {\n this.domNode.classList.remove('section_collapsed');\n },\n\n collapse: function() {\n this.domNode.classList.add('section_collapsed');\n },\n\n toggle: function() {\n this.domNode.classList.toggle('section_collapsed');\n },\n\n get status() {\n return this._status;\n },\n\n set status(value) {\n if (this._status) {\n this.domNode.classList.remove(statusClass(this._status));\n }\n\n this._status = value;\n this.domNode.classList.add(statusClass(this._status));\n },\n\n expandIfError: function() {\n if (this.status === 'fail') {\n this.expand();\n } else {\n this.collapse();\n }\n },\n\n setAsFailure: function(results) {\n this.status = 'fail';\n this._bodyNode.innerHTML = failTemplate(results);\n var replaceButton = this._bodyNode.querySelector('.image-box__replace');\n replaceButton.addEventListener('click', this.updateReference.bind(this));\n },\n\n setAsSuccess: function(results) {\n this.status = 'success';\n this._bodyNode.innerHTML = successTemplate(results);\n },\n\n setAsSkipped: function() {\n this.status = 'skipped';\n this._bodyNode.innerHTML = skipTemplate();\n },\n\n setAsError: function(error) {\n this.status = 'fail';\n this._bodyNode.innerHTML = errorTemplate(error);\n },\n\n isFinished: function() {\n return this.status !== 'queued' &&\n this.status !== 'running';\n },\n\n updateReference: function() {\n var _this = this,\n postData = {\n suiteId: this.suiteId,\n stateName: this.stateName,\n browserId: this.browserId\n };\n xhr.post('/update-ref', postData, function(error, response) {\n if (!error) {\n _this.setAsSuccess(response);\n }\n });\n }\n};\n\nmodule.exports = Section;\n","'use strict';\n\nfunction TestsIndex() {\n this._index = {};\n}\n\nTestsIndex.prototype = {\n constructor: TestsIndex,\n\n add: function(item) {\n if (item.suiteId == null) {\n return;\n }\n\n var indexData = this._index[item.suiteId];\n if (!indexData) {\n indexData = this._index[item.suiteId] = {\n suite: null,\n states: {}\n };\n }\n\n if (item.stateName == null) {\n indexData.suite = item;\n return;\n }\n\n var stateData = indexData.states[item.stateName];\n if (!stateData) {\n stateData = indexData.states[item.stateName] = {\n state: null,\n browsers: {}\n };\n }\n\n if (item.browserId == null) {\n stateData.state = item;\n return;\n }\n stateData.browsers[item.browserId] = item;\n },\n\n find: function(query) {\n var indexData = this._index[query.suiteId];\n if (!indexData) {\n return null;\n }\n if (query.stateName == null) {\n return indexData.suite;\n }\n var stateData = indexData.states[query.stateName];\n if (!stateData) {\n return null;\n }\n\n if (query.browserId == null) {\n return stateData.state;\n }\n\n return stateData.browsers[query.browserId] || null;\n }\n};\n\nmodule.exports = TestsIndex;\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"image-box\\\">\\n <div class=\\\"image-box__image\\\">\\n <img src=\\\"\";\n if (helper = helpers.referenceURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.referenceURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Reference image\\\">\\n </div>\\n</div>\\n\";\n return buffer;\n });\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"image-box\\\">\\n <div class=\\\"image-box__image\\\">\\n <div class=\\\"image-box__title\\\">Reference</div>\\n <img src=\\\"\";\n if (helper = helpers.referenceURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.referenceURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Reference image\\\">\\n </div>\\n <button class=\\\"button image-box__replace\\\">⬅</button>\\n <div class=\\\"image-box__image\\\">\\n <div class=\\\"image-box__title\\\">Current</div>\\n <img src=\\\"\";\n if (helper = helpers.currentURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.currentURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Current image\\\">\\n </div>\\n <div class=\\\"image-box__image\\\">\\n <div class=\\\"image-box__title\\\">Diff</div>\\n <img src=\\\"\";\n if (helper = helpers.diffURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.diffURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Diff image\\\">\\n </div>\\n</div>\\n\";\n return buffer;\n });\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<pre class=\\\"stacktrace\\\">\\n\";\n if (helper = helpers.stack) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.stack); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\n</pre>\\n\";\n return buffer;\n });\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<p>Test skipped</p>\\n\";\n });\n","module.exports = require(\"handlebars/runtime\")[\"default\"];\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime');\n","\"use strict\";\n/*globals Handlebars: true */\nvar base = require(\"./handlebars/base\");\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\nvar SafeString = require(\"./handlebars/safe-string\")[\"default\"];\nvar Exception = require(\"./handlebars/exception\")[\"default\"];\nvar Utils = require(\"./handlebars/utils\");\nvar runtime = require(\"./handlebars/runtime\");\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nvar create = function() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = SafeString;\n hb.Exception = Exception;\n hb.Utils = Utils;\n\n hb.VM = runtime;\n hb.template = function(spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n};\n\nvar Handlebars = create();\nHandlebars.create = create;\n\nexports[\"default\"] = Handlebars;","\"use strict\";\nvar Utils = require(\"./utils\");\nvar Exception = require(\"./exception\")[\"default\"];\n\nvar VERSION = \"1.3.0\";\nexports.VERSION = VERSION;var COMPILER_REVISION = 4;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '>= 1.0.0'\n};\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar isArray = Utils.isArray,\n isFunction = Utils.isFunction,\n toString = Utils.toString,\n objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n\n registerDefaultHelpers(this);\n}\n\nexports.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: logger,\n log: log,\n\n registerHelper: function(name, fn, inverse) {\n if (toString.call(name) === objectType) {\n if (inverse || fn) { throw new Exception('Arg not supported with multiple helpers'); }\n Utils.extend(this.helpers, name);\n } else {\n if (inverse) { fn.not = inverse; }\n this.helpers[name] = fn;\n }\n },\n\n registerPartial: function(name, str) {\n if (toString.call(name) === objectType) {\n Utils.extend(this.partials, name);\n } else {\n this.partials[name] = str;\n }\n }\n};\n\nfunction registerDefaultHelpers(instance) {\n instance.registerHelper('helperMissing', function(arg) {\n if(arguments.length === 2) {\n return undefined;\n } else {\n throw new Exception(\"Missing helper: '\" + arg + \"'\");\n }\n });\n\n instance.registerHelper('blockHelperMissing', function(context, options) {\n var inverse = options.inverse || function() {}, fn = options.fn;\n\n if (isFunction(context)) { context = context.call(this); }\n\n if(context === true) {\n return fn(this);\n } else if(context === false || context == null) {\n return inverse(this);\n } else if (isArray(context)) {\n if(context.length > 0) {\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n return fn(context);\n }\n });\n\n instance.registerHelper('each', function(context, options) {\n var fn = options.fn, inverse = options.inverse;\n var i = 0, ret = \"\", data;\n\n if (isFunction(context)) { context = context.call(this); }\n\n if (options.data) {\n data = createFrame(options.data);\n }\n\n if(context && typeof context === 'object') {\n if (isArray(context)) {\n for(var j = context.length; i<j; i++) {\n if (data) {\n data.index = i;\n data.first = (i === 0);\n data.last = (i === (context.length-1));\n }\n ret = ret + fn(context[i], { data: data });\n }\n } else {\n for(var key in context) {\n if(context.hasOwnProperty(key)) {\n if(data) { \n data.key = key; \n data.index = i;\n data.first = (i === 0);\n }\n ret = ret + fn(context[key], {data: data});\n i++;\n }\n }\n }\n }\n\n if(i === 0){\n ret = inverse(this);\n }\n\n return ret;\n });\n\n instance.registerHelper('if', function(conditional, options) {\n if (isFunction(conditional)) { conditional = conditional.call(this); }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function(conditional, options) {\n return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash});\n });\n\n instance.registerHelper('with', function(context, options) {\n if (isFunction(context)) { context = context.call(this); }\n\n if (!Utils.isEmpty(context)) return options.fn(context);\n });\n\n instance.registerHelper('log', function(context, options) {\n var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;\n instance.log(level, context);\n });\n}\n\nvar logger = {\n methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' },\n\n // State enum\n DEBUG: 0,\n INFO: 1,\n WARN: 2,\n ERROR: 3,\n level: 3,\n\n // can be overridden in the host environment\n log: function(level, obj) {\n if (logger.level <= level) {\n var method = logger.methodMap[level];\n if (typeof console !== 'undefined' && console[method]) {\n console[method].call(console, obj);\n }\n }\n }\n};\nexports.logger = logger;\nfunction log(level, obj) { logger.log(level, obj); }\n\nexports.log = log;var createFrame = function(object) {\n var obj = {};\n Utils.extend(obj, object);\n return obj;\n};\nexports.createFrame = createFrame;","\"use strict\";\n// Build out our basic SafeString type\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = function() {\n return \"\" + this.string;\n};\n\nexports[\"default\"] = SafeString;","\"use strict\";\n/*jshint -W004 */\nvar SafeString = require(\"./safe-string\")[\"default\"];\n\nvar escape = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"`\": \"`\"\n};\n\nvar badChars = /[&<>\"'`]/g;\nvar possible = /[&<>\"'`]/;\n\nfunction escapeChar(chr) {\n return escape[chr] || \"&\";\n}\n\nfunction extend(obj, value) {\n for(var key in value) {\n if(Object.prototype.hasOwnProperty.call(value, key)) {\n obj[key] = value[key];\n }\n }\n}\n\nexports.extend = extend;var toString = Object.prototype.toString;\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\nvar isFunction = function(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\nif (isFunction(/x/)) {\n isFunction = function(value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nvar isFunction;\nexports.isFunction = isFunction;\nvar isArray = Array.isArray || function(value) {\n return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;\n};\nexports.isArray = isArray;\n\nfunction escapeExpression(string) {\n // don't escape SafeStrings, since they're already safe\n if (string instanceof SafeString) {\n return string.toString();\n } else if (!string && string !== 0) {\n return \"\";\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = \"\" + string;\n\n if(!possible.test(string)) { return string; }\n return string.replace(badChars, escapeChar);\n}\n\nexports.escapeExpression = escapeExpression;function isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nexports.isEmpty = isEmpty;","\"use strict\";\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var line;\n if (node && node.firstLine) {\n line = node.firstLine;\n\n message += ' - ' + line + ':' + node.firstColumn;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n if (line) {\n this.lineNumber = line;\n this.column = node.firstColumn;\n }\n}\n\nException.prototype = new Error();\n\nexports[\"default\"] = Exception;","\"use strict\";\nvar Utils = require(\"./utils\");\nvar Exception = require(\"./exception\")[\"default\"];\nvar COMPILER_REVISION = require(\"./base\").COMPILER_REVISION;\nvar REVISION_CHANGES = require(\"./base\").REVISION_CHANGES;\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = REVISION_CHANGES[currentRevision],\n compilerVersions = REVISION_CHANGES[compilerRevision];\n throw new Exception(\"Template was precompiled with an older version of Handlebars than the current runtime. \"+\n \"Please update your precompiler to a newer version (\"+runtimeVersions+\") or downgrade your runtime to an older version (\"+compilerVersions+\").\");\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new Exception(\"Template was precompiled with a newer version of Handlebars than the current runtime. \"+\n \"Please update your runtime to a newer version (\"+compilerInfo[1]+\").\");\n }\n }\n}\n\nexports.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial\n\nfunction template(templateSpec, env) {\n if (!env) {\n throw new Exception(\"No environment passed to template\");\n }\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n var invokePartialWrapper = function(partial, name, context, helpers, partials, data) {\n var result = env.VM.invokePartial.apply(this, arguments);\n if (result != null) { return result; }\n\n if (env.compile) {\n var options = { helpers: helpers, partials: partials, data: data };\n partials[name] = env.compile(partial, { data: data !== undefined }, env);\n return partials[name](context, options);\n } else {\n throw new Exception(\"The partial \" + name + \" could not be compiled when running in runtime-only mode\");\n }\n };\n\n // Just add water\n var container = {\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n programs: [],\n program: function(i, fn, data) {\n var programWrapper = this.programs[i];\n if(data) {\n programWrapper = program(i, fn, data);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = program(i, fn);\n }\n return programWrapper;\n },\n merge: function(param, common) {\n var ret = param || common;\n\n if (param && common && (param !== common)) {\n ret = {};\n Utils.extend(ret, common);\n Utils.extend(ret, param);\n }\n return ret;\n },\n programWithDepth: env.VM.programWithDepth,\n noop: env.VM.noop,\n compilerInfo: null\n };\n\n return function(context, options) {\n options = options || {};\n var namespace = options.partial ? options : env,\n helpers,\n partials;\n\n if (!options.partial) {\n helpers = options.helpers;\n partials = options.partials;\n }\n var result = templateSpec.call(\n container,\n namespace, context,\n helpers,\n partials,\n options.data);\n\n if (!options.partial) {\n env.VM.checkRevision(container.compilerInfo);\n }\n\n return result;\n };\n}\n\nexports.template = template;function programWithDepth(i, fn, data /*, $depth */) {\n var args = Array.prototype.slice.call(arguments, 3);\n\n var prog = function(context, options) {\n options = options || {};\n\n return fn.apply(this, [context, options.data || data].concat(args));\n };\n prog.program = i;\n prog.depth = args.length;\n return prog;\n}\n\nexports.programWithDepth = programWithDepth;function program(i, fn, data) {\n var prog = function(context, options) {\n options = options || {};\n\n return fn(context, options.data || data);\n };\n prog.program = i;\n prog.depth = 0;\n return prog;\n}\n\nexports.program = program;function invokePartial(partial, name, context, helpers, partials, data) {\n var options = { partial: true, helpers: helpers, partials: partials, data: data };\n\n if(partial === undefined) {\n throw new Exception(\"The partial \" + name + \" could not be found\");\n } else if(partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nexports.invokePartial = invokePartial;function noop() { return \"\"; }\n\nexports.noop = noop;"]} | ||
{"version":3,"file":"bundle.js","sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","lib/client","lib/client/section-list.js","lib/client/xhr.js","lib/client/section.js","lib/common/tests-index.js","lib/views/partials/success-result.hbs","lib/views/partials/fail-result.hbs","lib/views/partials/error-result.hbs","lib/views/partials/skip-result.hbs","node_modules/hbsfy/runtime.js","node_modules/handlebars/runtime.js","node_modules/handlebars/dist/cjs/handlebars.runtime.js","node_modules/handlebars/dist/cjs/handlebars/safe-string.js","node_modules/handlebars/dist/cjs/handlebars/base.js","node_modules/handlebars/dist/cjs/handlebars/exception.js","node_modules/handlebars/dist/cjs/handlebars/utils.js","node_modules/handlebars/dist/cjs/handlebars/runtime.js"],"names":["SectionList","this","_sectionsIndex","Index","_sections","map","call","document","querySelectorAll","node","section","Section","add","require","Array","prototype","every","constuctor","expandAll","forEach","expand","collapseAll","collapse","expandErrors","expandIfError","markAllAsQueued","status","markIfFinished","nodes","domNode","allChildrenFinished","_sectionForNode","isFinished","findSection","query","find","findParent","browserId","suiteId","stateName","parentSectionNode","_findParentSectionNode","parentNode","classList","contains","getAttribute","module","exports","post","url","data","callback","xhr","XMLHttpRequest","open","setRequestHeader","onload","JSON","parse","responseText","Error","error","send","stringify","statusClass","getInitialStatus","sectionNode","i","statusList","length","_status","_titleNode","querySelector","_bodyNode","addEventListener","toggle","bind","successTemplate","failTemplate","errorTemplate","skipTemplate","remove",{"end":{"file":"?","comments_before":[],"nlb":false,"endpos":1552,"pos":1546,"col":8,"line":57,"value":"status","type":"name"},"start":{"file":"?","comments_before":[],"nlb":false,"endpos":1552,"pos":1546,"col":8,"line":57,"value":"status","type":"name"},"name":"status"},"value","setAsFailure","results","innerHTML","replaceButton","updateReference","setAsSuccess","setAsSkipped","setAsError","_this","postData","response","TestsIndex","_index","constructor","item","indexData","suite","states","stateData","state","browsers","HandlebarsCompiler","template","Handlebars","depth0","helpers","partials","compilerInfo","merge","stack1","helper","buffer","functionType","escapeExpression","referenceURL","hash","currentURL","diffURL","stack","base","SafeString","Exception","Utils","runtime","create","hb","HandlebarsEnvironment","extend","VM","spec","string","toString","registerDefaultHelpers","instance","registerHelper","arg","arguments","undefined","context","options","inverse","fn","isFunction","isArray","each","ret","createFrame","j","index","first","last","key","hasOwnProperty","conditional","includeZero","isEmpty","level","parseInt","log","obj","logger","VERSION","COMPILER_REVISION","REVISION_CHANGES",1,2,3,4,"objectType","name","not","registerPartial","str","methodMap","DEBUG","INFO","WARN","ERROR","method","console","object","message","line","firstLine","firstColumn","tmp","idx","errorProps","lineNumber","column","escapeChar","chr","escape","Object","possible","test","replace","badChars","&","<",">","\"","'","`","checkRevision","compilerRevision","currentRevision","runtimeVersions","compilerVersions","templateSpec","env","invokePartialWrapper","partial","result","invokePartial","apply","compile","container","programs","program","programWrapper","param","common","programWithDepth","noop","namespace","args","slice","prog","concat","depth","Function"],"mappings":"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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})","\"use strict\";function failAllParents(e){for(;e=sections.findParent(e);)e.status=\"fail\",e.expand()}function listenForEvents(){var e=new EventSource(\"/events\");e.addEventListener(\"beginSuite\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId});\"queued\"===n.status&&(n.status=\"running\")}),e.addEventListener(\"beginState\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName});\"queued\"===n.status&&(n.status=\"running\")}),e.addEventListener(\"endTest\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});t.equal?n.setAsSuccess(t):(n.setAsFailure(t),n.expand(),failAllParents(n))}),e.addEventListener(\"skipState\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});n.setAsSkipped();var s=sections.findSection({suiteId:t.suiteId,stateName:t.stateName});sections.markIfFinished(s)}),e.addEventListener(\"error\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});n.setAsError({stack:t.stack}),n.expand(),failAllParents(n)}),e.addEventListener(\"endState\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName});sections.markIfFinished(n)}),e.addEventListener(\"endSuite\",function(e){var t=JSON.parse(e.data),n=sections.findSection({suiteId:t.suiteId,stateName:t.stateName,browserId:t.browserId});sections.markIfFinished(n)}),e.addEventListener(\"end\",function(){runButton.disabled=!1})}function run(){runButton.disabled=!0,xhr.post(\"/run\",function(e){e||sections.markAllAsQueued()})}var SectionList=require(\"./section-list\"),xhr=require(\"./xhr\"),byId=document.getElementById.bind(document),runButton,sections;document.addEventListener(\"DOMContentLoaded\",function(){sections=new SectionList,runButton=byId(\"run\"),listenForEvents(),byId(\"expandAll\").addEventListener(\"click\",sections.expandAll.bind(sections)),byId(\"collapseAll\").addEventListener(\"click\",sections.collapseAll.bind(sections)),byId(\"expandErrors\").addEventListener(\"click\",sections.expandErrors.bind(sections)),runButton.addEventListener(\"click\",run)});","/*jshint browser:true*/\n'use strict';\nvar Section = require('./section'),\n Index = require('../common/tests-index'),\n map = Array.prototype.map,\n every = Array.prototype.every;\n\nfunction SectionList() {\n this._sectionsIndex = new Index();\n this._sections = map.call(document.querySelectorAll('.section'), function(node) {\n var section = new Section(node);\n this._sectionsIndex.add(section);\n return section;\n }, this);\n}\n\nSectionList.prototype = {\n constuctor: SectionList,\n\n expandAll: function() {\n this._sections.forEach(function(section) {\n section.expand();\n });\n },\n\n collapseAll: function() {\n this._sections.forEach(function(section) {\n section.collapse();\n });\n },\n\n expandErrors: function() {\n this._sections.forEach(function(section) {\n section.expandIfError();\n });\n },\n\n markAllAsQueued: function() {\n this._sections.forEach(function(section) {\n section.status = 'queued';\n });\n },\n\n markIfFinished: function(section) {\n if (section.status === 'fail') {\n //already marked as fail\n return;\n }\n var nodes = section.domNode.querySelectorAll('.section');\n var allChildrenFinished = every.call(nodes, function(node) {\n return this._sectionForNode(node).isFinished();\n }, this);\n\n if (allChildrenFinished) {\n section.status = 'success';\n }\n },\n\n findSection: function(query) {\n return this._sectionsIndex.find(query);\n },\n\n findParent: function(section) {\n if (section.browserId) {\n return this.findSection({suiteId: section.suiteId, stateName: section.stateName});\n }\n\n if (section.stateName) {\n return this.findSection({suiteId: section.suiteId});\n }\n var parentSectionNode = this._findParentSectionNode(section.domNode);\n if (parentSectionNode) {\n return this._sectionForNode(parentSectionNode);\n }\n return null;\n },\n\n _findParentSectionNode: function(node) {\n while ((node = node.parentNode)) {\n if (node.classList && node.classList.contains('section')) {\n return node;\n }\n }\n return null;\n },\n\n _sectionForNode: function(domNode) {\n var query = {\n suiteId: domNode.getAttribute('data-suite-id'),\n stateName: domNode.getAttribute('data-state-name'),\n browserId: domNode.getAttribute('data-browser-id')\n };\n\n return this.findSection(query);\n }\n};\n\nmodule.exports = SectionList;\n","/*jshint browser:true*/\n'use strict';\n\nexports.post = function(url, data, callback) {\n if (!callback) {\n callback = data;\n data = null;\n }\n var xhr = new XMLHttpRequest();\n xhr.open('POST', url, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.onload = function() {\n var data = JSON.parse(xhr.responseText);\n if (xhr.status === 200) {\n callback(null, data);\n } else {\n callback(new Error(data.error));\n }\n };\n\n if (data) {\n xhr.send(JSON.stringify(data));\n } else {\n xhr.send();\n }\n};\n","'use strict';\nvar successTemplate = require('../views/partials/success-result.hbs'),\n failTemplate = require('../views/partials/fail-result.hbs'),\n errorTemplate = require('../views/partials/error-result.hbs'),\n skipTemplate = require('../views/partials/skip-result.hbs'),\n xhr = require('./xhr');\n\nvar statusList = [\n 'idle',\n 'queued',\n 'running',\n 'success',\n 'fail',\n 'skip'\n];\n\nfunction statusClass(status) {\n return 'section_status_' + status;\n}\n\nfunction getInitialStatus(sectionNode) {\n var status;\n for (var i = 0; i< statusList.length; i++) {\n status = statusList[i];\n if (sectionNode.classList.contains(statusClass(status))) {\n return status;\n }\n }\n return null;\n}\n\nfunction Section(node) {\n this.suiteId = node.getAttribute('data-suite-id');\n this.stateName = node.getAttribute('data-state-name');\n this.browserId = node.getAttribute('data-browser-id');\n this.domNode = node;\n this._status = getInitialStatus(node);\n this._titleNode = node.querySelector('.section__title');\n this._bodyNode = node.querySelector('.section__body');\n this._titleNode.addEventListener('click', this.toggle.bind(this));\n}\n\nSection.prototype = {\n constuctor: Section,\n expand:function() {\n this.domNode.classList.remove('section_collapsed');\n },\n\n collapse: function() {\n this.domNode.classList.add('section_collapsed');\n },\n\n toggle: function() {\n this.domNode.classList.toggle('section_collapsed');\n },\n\n get status() {\n return this._status;\n },\n\n set status(value) {\n if (this._status) {\n this.domNode.classList.remove(statusClass(this._status));\n }\n\n this._status = value;\n this.domNode.classList.add(statusClass(this._status));\n },\n\n expandIfError: function() {\n if (this.status === 'fail') {\n this.expand();\n } else {\n this.collapse();\n }\n },\n\n setAsFailure: function(results) {\n this.status = 'fail';\n this._bodyNode.innerHTML = failTemplate(results);\n var replaceButton = this._bodyNode.querySelector('.image-box__replace');\n replaceButton.addEventListener('click', this.updateReference.bind(this));\n },\n\n setAsSuccess: function(results) {\n this.status = 'success';\n this._bodyNode.innerHTML = successTemplate(results);\n },\n\n setAsSkipped: function() {\n this.status = 'skipped';\n this._bodyNode.innerHTML = skipTemplate();\n },\n\n setAsError: function(error) {\n this.status = 'fail';\n this._bodyNode.innerHTML = errorTemplate(error);\n },\n\n isFinished: function() {\n return this.status !== 'queued' &&\n this.status !== 'running';\n },\n\n updateReference: function() {\n var _this = this,\n postData = {\n suiteId: this.suiteId,\n stateName: this.stateName,\n browserId: this.browserId\n };\n xhr.post('/update-ref', postData, function(error, response) {\n if (!error) {\n _this.setAsSuccess(response);\n }\n });\n }\n};\n\nmodule.exports = Section;\n","'use strict';\n\nfunction TestsIndex() {\n this._index = {};\n}\n\nTestsIndex.prototype = {\n constructor: TestsIndex,\n\n add: function(item) {\n if (item.suiteId == null) {\n return;\n }\n\n var indexData = this._index[item.suiteId];\n if (!indexData) {\n indexData = this._index[item.suiteId] = {\n suite: null,\n states: {}\n };\n }\n\n if (item.stateName == null) {\n indexData.suite = item;\n return;\n }\n\n var stateData = indexData.states[item.stateName];\n if (!stateData) {\n stateData = indexData.states[item.stateName] = {\n state: null,\n browsers: {}\n };\n }\n\n if (item.browserId == null) {\n stateData.state = item;\n return;\n }\n stateData.browsers[item.browserId] = item;\n },\n\n find: function(query) {\n var indexData = this._index[query.suiteId];\n if (!indexData) {\n return null;\n }\n if (query.stateName == null) {\n return indexData.suite;\n }\n var stateData = indexData.states[query.stateName];\n if (!stateData) {\n return null;\n }\n\n if (query.browserId == null) {\n return stateData.state;\n }\n\n return stateData.browsers[query.browserId] || null;\n }\n};\n\nmodule.exports = TestsIndex;\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"image-box\\\">\\n <div class=\\\"image-box__image\\\">\\n <img src=\\\"\";\n if (helper = helpers.referenceURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.referenceURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Reference image\\\">\\n </div>\\n</div>\\n\";\n return buffer;\n });\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<div class=\\\"image-box\\\">\\n <div class=\\\"image-box__image\\\">\\n <div class=\\\"image-box__title\\\">Reference</div>\\n <img src=\\\"\";\n if (helper = helpers.referenceURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.referenceURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Reference image\\\">\\n </div>\\n <button class=\\\"button image-box__replace\\\">⬅</button>\\n <div class=\\\"image-box__image\\\">\\n <div class=\\\"image-box__title\\\">Current</div>\\n <img src=\\\"\";\n if (helper = helpers.currentURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.currentURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Current image\\\">\\n </div>\\n <div class=\\\"image-box__image\\\">\\n <div class=\\\"image-box__title\\\">Diff</div>\\n <img src=\\\"\";\n if (helper = helpers.diffURL) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.diffURL); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\\" alt=\\\"Diff image\\\">\\n </div>\\n</div>\\n\";\n return buffer;\n });\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", stack1, helper, functionType=\"function\", escapeExpression=this.escapeExpression;\n\n\n buffer += \"<pre class=\\\"stacktrace\\\">\\n\";\n if (helper = helpers.stack) { stack1 = helper.call(depth0, {hash:{},data:data}); }\n else { helper = (depth0 && depth0.stack); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }\n buffer += escapeExpression(stack1)\n + \"\\n</pre>\\n\";\n return buffer;\n });\n","// hbsfy compiled Handlebars template\nvar HandlebarsCompiler = require('hbsfy/runtime');\nmodule.exports = HandlebarsCompiler.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n \n\n\n return \"<p>Test skipped</p>\\n\";\n });\n","module.exports = require(\"handlebars/runtime\")[\"default\"];\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime');\n","\"use strict\";\n/*globals Handlebars: true */\nvar base = require(\"./handlebars/base\");\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\nvar SafeString = require(\"./handlebars/safe-string\")[\"default\"];\nvar Exception = require(\"./handlebars/exception\")[\"default\"];\nvar Utils = require(\"./handlebars/utils\");\nvar runtime = require(\"./handlebars/runtime\");\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nvar create = function() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = SafeString;\n hb.Exception = Exception;\n hb.Utils = Utils;\n\n hb.VM = runtime;\n hb.template = function(spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n};\n\nvar Handlebars = create();\nHandlebars.create = create;\n\nexports[\"default\"] = Handlebars;","\"use strict\";\n// Build out our basic SafeString type\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = function() {\n return \"\" + this.string;\n};\n\nexports[\"default\"] = SafeString;","\"use strict\";\nvar Utils = require(\"./utils\");\nvar Exception = require(\"./exception\")[\"default\"];\n\nvar VERSION = \"1.3.0\";\nexports.VERSION = VERSION;var COMPILER_REVISION = 4;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '>= 1.0.0'\n};\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar isArray = Utils.isArray,\n isFunction = Utils.isFunction,\n toString = Utils.toString,\n objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n\n registerDefaultHelpers(this);\n}\n\nexports.HandlebarsEnvironment = HandlebarsEnvironment;HandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: logger,\n log: log,\n\n registerHelper: function(name, fn, inverse) {\n if (toString.call(name) === objectType) {\n if (inverse || fn) { throw new Exception('Arg not supported with multiple helpers'); }\n Utils.extend(this.helpers, name);\n } else {\n if (inverse) { fn.not = inverse; }\n this.helpers[name] = fn;\n }\n },\n\n registerPartial: function(name, str) {\n if (toString.call(name) === objectType) {\n Utils.extend(this.partials, name);\n } else {\n this.partials[name] = str;\n }\n }\n};\n\nfunction registerDefaultHelpers(instance) {\n instance.registerHelper('helperMissing', function(arg) {\n if(arguments.length === 2) {\n return undefined;\n } else {\n throw new Exception(\"Missing helper: '\" + arg + \"'\");\n }\n });\n\n instance.registerHelper('blockHelperMissing', function(context, options) {\n var inverse = options.inverse || function() {}, fn = options.fn;\n\n if (isFunction(context)) { context = context.call(this); }\n\n if(context === true) {\n return fn(this);\n } else if(context === false || context == null) {\n return inverse(this);\n } else if (isArray(context)) {\n if(context.length > 0) {\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n return fn(context);\n }\n });\n\n instance.registerHelper('each', function(context, options) {\n var fn = options.fn, inverse = options.inverse;\n var i = 0, ret = \"\", data;\n\n if (isFunction(context)) { context = context.call(this); }\n\n if (options.data) {\n data = createFrame(options.data);\n }\n\n if(context && typeof context === 'object') {\n if (isArray(context)) {\n for(var j = context.length; i<j; i++) {\n if (data) {\n data.index = i;\n data.first = (i === 0);\n data.last = (i === (context.length-1));\n }\n ret = ret + fn(context[i], { data: data });\n }\n } else {\n for(var key in context) {\n if(context.hasOwnProperty(key)) {\n if(data) { \n data.key = key; \n data.index = i;\n data.first = (i === 0);\n }\n ret = ret + fn(context[key], {data: data});\n i++;\n }\n }\n }\n }\n\n if(i === 0){\n ret = inverse(this);\n }\n\n return ret;\n });\n\n instance.registerHelper('if', function(conditional, options) {\n if (isFunction(conditional)) { conditional = conditional.call(this); }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if ((!options.hash.includeZero && !conditional) || Utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function(conditional, options) {\n return instance.helpers['if'].call(this, conditional, {fn: options.inverse, inverse: options.fn, hash: options.hash});\n });\n\n instance.registerHelper('with', function(context, options) {\n if (isFunction(context)) { context = context.call(this); }\n\n if (!Utils.isEmpty(context)) return options.fn(context);\n });\n\n instance.registerHelper('log', function(context, options) {\n var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;\n instance.log(level, context);\n });\n}\n\nvar logger = {\n methodMap: { 0: 'debug', 1: 'info', 2: 'warn', 3: 'error' },\n\n // State enum\n DEBUG: 0,\n INFO: 1,\n WARN: 2,\n ERROR: 3,\n level: 3,\n\n // can be overridden in the host environment\n log: function(level, obj) {\n if (logger.level <= level) {\n var method = logger.methodMap[level];\n if (typeof console !== 'undefined' && console[method]) {\n console[method].call(console, obj);\n }\n }\n }\n};\nexports.logger = logger;\nfunction log(level, obj) { logger.log(level, obj); }\n\nexports.log = log;var createFrame = function(object) {\n var obj = {};\n Utils.extend(obj, object);\n return obj;\n};\nexports.createFrame = createFrame;","\"use strict\";\n\nvar errorProps = ['description', 'fileName', 'lineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var line;\n if (node && node.firstLine) {\n line = node.firstLine;\n\n message += ' - ' + line + ':' + node.firstColumn;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n if (line) {\n this.lineNumber = line;\n this.column = node.firstColumn;\n }\n}\n\nException.prototype = new Error();\n\nexports[\"default\"] = Exception;","\"use strict\";\n/*jshint -W004 */\nvar SafeString = require(\"./safe-string\")[\"default\"];\n\nvar escape = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"`\": \"`\"\n};\n\nvar badChars = /[&<>\"'`]/g;\nvar possible = /[&<>\"'`]/;\n\nfunction escapeChar(chr) {\n return escape[chr] || \"&\";\n}\n\nfunction extend(obj, value) {\n for(var key in value) {\n if(Object.prototype.hasOwnProperty.call(value, key)) {\n obj[key] = value[key];\n }\n }\n}\n\nexports.extend = extend;var toString = Object.prototype.toString;\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\nvar isFunction = function(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\nif (isFunction(/x/)) {\n isFunction = function(value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nvar isFunction;\nexports.isFunction = isFunction;\nvar isArray = Array.isArray || function(value) {\n return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;\n};\nexports.isArray = isArray;\n\nfunction escapeExpression(string) {\n // don't escape SafeStrings, since they're already safe\n if (string instanceof SafeString) {\n return string.toString();\n } else if (!string && string !== 0) {\n return \"\";\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = \"\" + string;\n\n if(!possible.test(string)) { return string; }\n return string.replace(badChars, escapeChar);\n}\n\nexports.escapeExpression = escapeExpression;function isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nexports.isEmpty = isEmpty;","\"use strict\";\nvar Utils = require(\"./utils\");\nvar Exception = require(\"./exception\")[\"default\"];\nvar COMPILER_REVISION = require(\"./base\").COMPILER_REVISION;\nvar REVISION_CHANGES = require(\"./base\").REVISION_CHANGES;\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = COMPILER_REVISION;\n\n if (compilerRevision !== currentRevision) {\n if (compilerRevision < currentRevision) {\n var runtimeVersions = REVISION_CHANGES[currentRevision],\n compilerVersions = REVISION_CHANGES[compilerRevision];\n throw new Exception(\"Template was precompiled with an older version of Handlebars than the current runtime. \"+\n \"Please update your precompiler to a newer version (\"+runtimeVersions+\") or downgrade your runtime to an older version (\"+compilerVersions+\").\");\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new Exception(\"Template was precompiled with a newer version of Handlebars than the current runtime. \"+\n \"Please update your runtime to a newer version (\"+compilerInfo[1]+\").\");\n }\n }\n}\n\nexports.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial\n\nfunction template(templateSpec, env) {\n if (!env) {\n throw new Exception(\"No environment passed to template\");\n }\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as psuedo-supported APIs.\n var invokePartialWrapper = function(partial, name, context, helpers, partials, data) {\n var result = env.VM.invokePartial.apply(this, arguments);\n if (result != null) { return result; }\n\n if (env.compile) {\n var options = { helpers: helpers, partials: partials, data: data };\n partials[name] = env.compile(partial, { data: data !== undefined }, env);\n return partials[name](context, options);\n } else {\n throw new Exception(\"The partial \" + name + \" could not be compiled when running in runtime-only mode\");\n }\n };\n\n // Just add water\n var container = {\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n programs: [],\n program: function(i, fn, data) {\n var programWrapper = this.programs[i];\n if(data) {\n programWrapper = program(i, fn, data);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = program(i, fn);\n }\n return programWrapper;\n },\n merge: function(param, common) {\n var ret = param || common;\n\n if (param && common && (param !== common)) {\n ret = {};\n Utils.extend(ret, common);\n Utils.extend(ret, param);\n }\n return ret;\n },\n programWithDepth: env.VM.programWithDepth,\n noop: env.VM.noop,\n compilerInfo: null\n };\n\n return function(context, options) {\n options = options || {};\n var namespace = options.partial ? options : env,\n helpers,\n partials;\n\n if (!options.partial) {\n helpers = options.helpers;\n partials = options.partials;\n }\n var result = templateSpec.call(\n container,\n namespace, context,\n helpers,\n partials,\n options.data);\n\n if (!options.partial) {\n env.VM.checkRevision(container.compilerInfo);\n }\n\n return result;\n };\n}\n\nexports.template = template;function programWithDepth(i, fn, data /*, $depth */) {\n var args = Array.prototype.slice.call(arguments, 3);\n\n var prog = function(context, options) {\n options = options || {};\n\n return fn.apply(this, [context, options.data || data].concat(args));\n };\n prog.program = i;\n prog.depth = args.length;\n return prog;\n}\n\nexports.programWithDepth = programWithDepth;function program(i, fn, data) {\n var prog = function(context, options) {\n options = options || {};\n\n return fn(context, options.data || data);\n };\n prog.program = i;\n prog.depth = 0;\n return prog;\n}\n\nexports.program = program;function invokePartial(partial, name, context, helpers, partials, data) {\n var options = { partial: true, helpers: helpers, partials: partials, data: data };\n\n if(partial === undefined) {\n throw new Exception(\"The partial \" + name + \" could not be found\");\n } else if(partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nexports.invokePartial = invokePartial;function noop() { return \"\"; }\n\nexports.noop = noop;"]} |
{ | ||
"name": "gemini-gui", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"description": "GUI for gemini testing utility", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -33,2 +33,4 @@ # Gemini GUI | ||
* `--config`, `-c` - specify config file to use. | ||
* `--port`, `-p` - specify port to run `GUI` backend on. | ||
* `--hostname`, `-h` - specify hostname to run `GUI` backend on. | ||
* `--root-url`, `-r` - use specified URL, instead of `rootUrl` setting from config file. | ||
@@ -35,0 +37,0 @@ * `--grid-url`, `-g` - use specified URL, instead of `gridUrl` setting from config file. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
101191
975
43