From a886cdd695fc6305220e92d9c06ccfd22202de44 Mon Sep 17 00:00:00 2001 From: samanpwbb Date: Sat, 7 Mar 2015 18:04:09 -0500 Subject: [PATCH] add working tests for gzip handling --- Makefile | 2 +- README.md | 37 ++++++++++++------------ test/fixtures/style-gz.json | 26 ----------------- test/fixtures/tiles-gz.tilejson | 13 --------- test/fixtures/tiles/0-0-0.vector.pbf.gz | Bin 7638 -> 0 bytes test/{map-gz.test.js => gz.test.js} | 35 +++++++++------------- 6 files changed, 33 insertions(+), 80 deletions(-) delete mode 100644 test/fixtures/style-gz.json delete mode 100644 test/fixtures/tiles-gz.tilejson delete mode 100644 test/fixtures/tiles/0-0-0.vector.pbf.gz rename test/{map-gz.test.js => gz.test.js} (68%) diff --git a/Makefile b/Makefile index 52ce7db88..b2029c442 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ $(MBGL)/config/%.gypi: $(MBGL) $(MBGL)/configure .PHONY: test-suite test-suite: - -@(`npm bin`/tape test/render.test.js | `npm bin`/tap-spec) + -@(`npm bin`/tape test/*.test.js | `npm bin`/tap-spec) .PHONY: test-js test-js: diff --git a/README.md b/README.md index 4aa9d42b9..ede241bc3 100644 --- a/README.md +++ b/README.md @@ -41,27 +41,11 @@ The first argument passed to `map.render` is an options object, all keys are opt longitude: {longitude}, // number (coordinate), defaults to 0 bearing: {bearing}, // number (in degrees, counter-clockwise from north), defaults to 0 ratio: {ratio} // number (scale factor), defaults to 1.0, - classes: {classes} // array of strings, optional * + classes: {classes} // array of strings, optional } ``` -* More about classes: https://github.com/mapbox/mapbox-gl-js/blob/master/API.md#working-with-style-classes - -## Mapbox API Access tokens - -To use styles that rely on Mapbox vector tiles, you must register a [API access token](https://www.mapbox.com/developers/api/#access-tokens) on the map. Use the `setAccessToken` method before load: - -```js -var map = mbgl.Map(fileSource); -var style = mapboxStyle; // includes a datasource with a reference to something like `mapbox://mapbox.mapbox-streets-v6` -map.setAccessToken(process.env.MAPBOX_ACCESS_TOKEN); -map.load(style); -map.render({}, function(err, image) { - if (err) throw err; - fs.writeFileSync('image.png', image); -}); - -``` +_More about classes: https://github.com/mapbox/mapbox-gl-js/blob/master/API.md#working-with-style-classes_ ## Testing @@ -170,3 +154,20 @@ fileSource.cancel = function(req) { ``` Note that in reality, Mapbox GL uses two types of protocols: `asset://` for files that should be loaded from some local static system, and `http://` (and `https://`), which should be loaded from the internet. However, stylesheets are free to use other protocols too, if your implementation of FileSource supports these; e.g. you could use `s3://` to indicate that files are supposed to be loaded from S3. + +## Mapbox API Access tokens + +To use styles that rely on Mapbox vector tiles, you must register a [API access token](https://www.mapbox.com/developers/api/#access-tokens) on the map. Use the `setAccessToken` method before load: + +```js +var map = mbgl.Map(fileSource); +var style = mapboxStyle; // includes a datasource with a reference to something like `mapbox://mapbox.mapbox-streets-v6` +map.setAccessToken(process.env.MAPBOX_ACCESS_TOKEN); +map.load(style); +map.render({}, function(err, image) { + if (err) throw err; + fs.writeFileSync('image.png', image); +}); + +``` + diff --git a/test/fixtures/style-gz.json b/test/fixtures/style-gz.json deleted file mode 100644 index c47715490..000000000 --- a/test/fixtures/style-gz.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "version": 7, - "name": "Empty", - "sources": { - "mapbox": { - "type": "vector", - "url": "./fixtures/tiles-gz.tilejson", - "maxzoom": 15 - } - }, - "layers": [{ - "id": "background", - "type": "background", - "paint": { - "background-color": "aqua" - } - }, { - "id": "water", - "type": "fill", - "source": "mapbox", - "source-layer": "water", - "paint": { - "fill-color": "red" - } - }] -} diff --git a/test/fixtures/tiles-gz.tilejson b/test/fixtures/tiles-gz.tilejson deleted file mode 100644 index 55dd96d6c..000000000 --- a/test/fixtures/tiles-gz.tilejson +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bounds": [ -180, -85.0511, 180, 85.0511 ], - "center": [ 0, 0, 0 ], - "format": "pbf", - "id": "mapbox.mapbox-streets-v6-dev", - "maskLevel": 8, - "maxzoom": 15, - "minzoom": 0, - "name": "Mapbox Streets V6", - "scheme": "xyz", - "tilejson": "2.0.0", - "tiles": [ "./fixtures/tiles/{z}-{x}-{y}.vector.pbf.gz" ] -} diff --git a/test/fixtures/tiles/0-0-0.vector.pbf.gz b/test/fixtures/tiles/0-0-0.vector.pbf.gz deleted file mode 100644 index 711659c101a8a0aa1d5e1d20bb8fa6daf5ca369a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7638 zcmV;{9Vy};iwFqYKJ8Qh128QxEif*2Wn*-2axQRUW&nkG39wy9dFJV}?|t^A&vMT> z_uPHIZ{PP#(({v^q$kO;Ey?n;k*&p+YzPM96$8d#Y%mPqkN{=^#AXSEt*8l!fl8SK zCJZ4A!=wT;$qW=*d8P2VcxLQRf!l&PH4uD~tm!^+ z(3f0?D;15fm=3T{f?0mX%?4sZX=M~N+r?Z|&mtd|09s#L5;#MNiezK%sGT;3oTG4J z?I&RFEE|nZwF+oXIE7ZCsB(7x(vaOEs=dIEeUr9&rl#n6?}l6Cm2}LJjS1sP@IFwW zw7{>}Y=hCqeg^chf?<}Tny^3QyG2uPwsgvS3@k^R!cfs8+=Y^zG`K>2e^oan?`-WB zUiUloTZHSKI~r8}EI=EhO8+gOKl2c%R2r(WH8+gf?+34}UH7VBA--qo+?&83fqTf% zRYt!7dfx!3DBmLtR8rL()S{p%$hC}<%qPK(bl6IWOlQcdt5Y$exbqE}ZXogNzlZs0qvYa4eID(X_h-uw`7iq$3BEN>_i^?)Jcp{9}7WU_vu zRw(-gY3st)2g%l+1D_;I#7{`?)Si0^MdD|L+*>`oS!t{0Z7qM;NPH;VH~Tn+g263+ z41Xb>0pBbh8=DbleDcVE&lMwQ!W{9K_Q2y{PT4ThN}w5TMG2KkVgI1mkz*&FAjhdU zfQsn!yo?AOEpG@QA1Jw~(WxBoOwk3(8R!hol>CzHr>@K`?uU^s`fE~4BVxFucrYlC zLKqUaR9nrz0)GLlMxls8F_<}a3vz1vVL$4WW@fqZ9_wJtm#VTq10*K~mvX-uaF(d& zzMWT#WL$k0K>XJDV1+)^Bg-AIJZtka1^$?6)BVP1I4a$6T%(q&S_cYi5o@aKN2l%Xpg1BtYH6xowS z+E4SwN+Ha-hd`?`G{}rj6&NpZBs5iG7h1j{q_ro&^mv0AxN`E4LfIbaD!Sw9P_@&X zwd_{GkNH+oso$17hASgHub2_xAZdS@>v9>!GO>B63J##;CoK2E6_q>gO{3! zOEsl!F_k3d=Em!~kPXmOo+?Of(2ghRMYXDx08t)irbMF~yR~{u_<0!TV069zB`_bL zZJn9#HEQ(HeN)}L#tk+*aU47V$|8jx0FAu-Zjd-zQ;Kk22WnKAlwpIr9vMz6Em>(T zAG3Yv`5bvo(sl(lHrG66t>(0I&C`F6?4Cr!Ue$X5qQ*5s^ znv#`ycCzslco>M&sKC|A;+w%eTJIg;wOqY9+on5g(v%w>T`X9fUP@HPO_;K%7_&jN zuyv*DxL%S>7knB9JaU6Oi>YNfEp+i3K3VtfNZ${pouWpqI<)J3#ah&ZzX~CWL)xYT%f(arP^qI;ypV@+ZK(>lwKjvPnrb;v1x! z>Q!`PG4oFzJE2{F=K(Ug@uW1hb~Nlwn_8KO9tFkK2~eColnOC4U4xuDc5tDg6rFVJ zh7mZwT12v5Z;If?X_p;p?C+=T{joKio_{xp9|WLQs*J>9WIJS9l%58k0#5)!bEiF9 zJFeJ;(fvnEW_Gnl)MC!udM|hcm~HI`puAD0K&9`3ftUg_1*v)hiCIL%{bD`-ZBp7t zqr(mW|F6PjHwIe5OQq|!4JiC(=JlXHuJ_zZPFtY@g}*WWsfai)CNVFCr@%ePnoGN? z0R`uWG|~yAaS#e4BI;UFR1~4`M({Zbg#rgn1cmp3Vx~Z-iH4;^!RsJSO&FJh!hhEP z$UsDFDJEY1D`gltL`On06n+T+QiUSnU{!w#Kz&$TbuUCllHzyYNm^Ny*Ev2g2`Kz! zS{P3(McWkK4pz=4%jPv16h4ZIC=P~b&x697(e;SXps!(7j}(t1E%XjmhN19x#*-A9 zQ>PQU1%>7z*FBe*|v5 z*%ouJbr6(aBaM~3=yYTVI_xfxy*3m+ucwID@~ELg;n%v8)k0P420I5`IhZ9CH%K)! z2!)@6zauvb2Ag{V^k<#%mJqq}P!H~d!bkEm8Dbg)Ff9z?KLU8S<}=Y^4x>oJes326$YRz-F;$8CSkd?8 z_kzsPDGNjpulR~!BTctC78{$|NY3;z7UTaVpGRGeEev7veki@e&15AI^d!UXA5u|P zNCAO8_K>i~+?k_pjtJdA-U4|IHvHsz24ze2 z3IPj+e^>c?vd&Mq#)z9-TXnIgn71=XFikbaZ_j>*nm5WpGx5mwfh%KR|A}lA3V-N6 zNbQr4EED7Z3=GQOC@inXLPDr5`Bu+QSRu)9g#1R;;rJcN6-saH|C0CeSbz% zqMIZwxS&M`q3~5Ohm25KV(M7;pOE`{wtBWgnbTIktpPnxD9o9EOC}9L6)`s7O*~}C zY|X_x#uDOvy)I$_JwmQPWF9_zRYIO4qzaCe|3*Dc&a-YnT)H&GJpuk2+%U<{P4sYl zlJ|pa5B0gY1;U$Ot2NKYOl6{787q~#P)Y$i%|kgdob?{Y0&s?-_X&vCSIV@N$7 zrZpTHKW9HoA*csd6LaAJhkER)V)IaVo`nc9xo2XienX0X28Qi@^Q+`aNv~PL{;?;) zz)anrm?FI_ry8o0I05P0P*%%s_z;jIe3TDU22xc$qA@2w&(g>aw^}ne)jYxcn0kZ~ z&JC>j1RNMk&67nbIM#X^Tp2)zN5oDbmm8cp9|@8pU=|n4vQ?mnTq)EJobgur>b1Jg zhftb)CxElL^E`QGIjk<%7wiLJfvCnJ8ec?7l$8&5uK6$cM9*>e)AddH@X!Uxv>pPO zqu;3fFE5Ld)C_H9Y>dsah5{lto?yfUHVk8qK|?l?J8=fnP|ezY zQ}&%Eb0YD&3E|6DSQSazuoT=dK4AR=_$XkSLdg_^8Z%mALfJG_Z&3;iRV(14vrnt~ z*~UW2O@sjkXP39J6!No>1V!9eLuB={!Vo^~MiU9C?u3~4j|1vfPhveof#$wWK~jU7 zr&>K^u|<`&pzw9_Ox97!;T(u_ILDLKam{xe$}MocJhluIr(33m1j8c~toR?vSL~aV zs1b)5Iy%-CHUo7q->GDead%~-O-)+pQJ9`z0^O|ZQ@xR48T&k)LaFA7A}*I_EfmrN z!A>!Hh^-)#R}B_Vznc~6ifpl&89`yElDa6NOKM3v6_Bi=c^9#J{-@l1P!*Ngl(ihna3WpumNg zrGJh?tDUAm!m<1@^{vkHK56)pHEtW&RtPPv>Inc}YKXAU*>PyGjY;S>j$EoubxUYM z;|ew?&JxtjMa3Fg92!5TG3nsGQ{=`cz~TBW^s6>E_!%kK9$FV72Q)_Xil-LFNK{GZ z{t)zTJBEZe0k%_Njhaf-iH)Q6Xm+5qCKm^^V-Etmdp}rX)5SS{RDsg*>!j*hiMeBnxo4vz zO6x^|ScsProwKVHVXvnLL$y?=(ZqVX9A_=lUbccxT+M8&R+xzyvd{_~ZcTAUr|z^b zxVAm(FL~UAqE!rj;oi;>&$C%Rn@yss0X1u&%y%P&(F|+{Zw^uUcv@qfquR-16ZKVl zXwW(`cc$j-=LkQR+^9obm>5Z@F?)RMkP*5hRaVSEH0wmMH+U%k|@>cp9QB% z;w`0`8bDs}(Mn*4vTK{KIZ!z`CM((MzAj57uAApmq7oe)tXgz=nc|JM$xTmqAT$Fy zF2+v1O1HE&?Tea`1@e*1O>j%gTA@%ne%ry@Td#bzErkQuj0l>ijnK?8Zd`G@z*HQY zvf6@fG)XzU6)@iFI9rO#%*gnb$&pUC3K6pDVXFnos_8bvvgWe$v8_+%Mk0{8BT&dA z<$aK4iw#a)MYK;bUj*@dOzB2_^P2kV-K6Cbue%c2s^$VKawPil!*z4E`<{Wsnn)N0YcSc~6tOn}DZ$+pA>#G_+WsuqTt7`#b3nRImY;C?S&ccggg3u)8mUr1skk`3liJQi zuT5+I3O>^xu*hoj0WKiI{iJ{r!Zal;{|md-rw;TLE-$a7r5eWMBkp1y7DIo-GRFJ3 zg1v+MIldQ@9Zlu7eVqvd7pi%Gq~%Np97NX&jYLj%+RZ1y;}{PVb0xgRH%T4ow2Ek) zJAY|>pZq8(m`Z58vT{k8Rf;~yibb0A6x+?zQOy*aE>qsBnrekea+^#xs$x8;Om*XG zLitu0_x~157AK0zl#=kR2!r%2{2BElu|UvOrPh7g)h*&r6O!H)75V)B9#B zwS>)bmGPz;hv(S@1%_-^NBvf8$pJ5hx7W<MJjdYG%#STJMrLcoNIK35$a8X}Vv8 z+GsL`^=o!TBXLuP4g9CtJ(-QRf%Q1-qBzsL(P$Vn1RNOZFLv`u} z;E-Zbqm^vlT<^EN&5>DBUh_?+O1ZWSw@ck@bBOY%iolFqCzgwp6gJ6`urEyHgV>O- z((Ath1=+I;<}f*6dO*@~_U^4v+3KK@Jq0Wi#ZH0D7a^-*HyB2-S{^P^y+&aSOw<*3 zga;)k{K$U_yZ|)W7oxb#N8zMM6dl?%k<3*LOE!hblDq4F434r(DcPGm%mSxpxZQ>Z z62wQWCY!h+dbaXBi&8eWXneF6)Y~#vFOWhx#}HkK zTi}iTH&Shr7{8aizQI%N{asUk$B87pcW9j^V#V*UY_pgK7Ta#hHLa{RfZRTIvLVN4Ovvl_V(;AQ zsC6=IEm6bL*iovzRaK`LaQcqNL8NBaRk&n&Zo^*`?hRDlQOt!{(e~XrajL~zuQSzJ zN1U|>qSa2GwQ<*K1%}bC&G%R?KAgaMy%`G72szVoWYy-4zCh%2U|KsW`8X^sn?Y^9 zguJ+GCqffRC0tC>8jPHnj+~rNs|PA8 z{W@3lGFqrRlG)B84yzTBue+!WQrv#v9Y~Y*XwK0jB}^=wnMs}ZNX{E~sdA#gtV{SV zu8qD&ih(_lP*lOg3E)EJdby2?v=@ z#nm#`q{Bd*B%x;T1N=0Kl54Hg15U9tqQMqt;)OqzJ_s_$j$GKpb_pLsg}UxFok4SI z4pwmjV!lYez*D7SKxj(ORaHB{oaP!?BI{h3xqjYk6C;+vMILLy+|*suBX!&nM@2`| zUB)A&0E)6%@aRC$2s`DFFy)rXpg1V*w-+V5(rCw}n%C{QO5hklX`CXe8Q7vR69hFOsV#UbAn&Q=4BV-sDV#~BpDOx|2HQEfIxlb5?Y#VXsg2 z8e9-N)e}G&JxGJVi*c4~C!)3b`exCdQ$w3`46-$(T&mxK& zBl?3NEv2IT%Feb)IORZfNvl}1OF2DrVqRE2POoKZc$^uJ-vl(HzE2~Xr{QRCwVmL) z_Y)W(k;j-4xITavtpCr?R7<}GyT3)9x}7*MJb?MI@D<$CFbn=(=KJ%`e`jz7?Tjyh zvx*?yQwA15Q81$?h3+-FltRabvJ$cv&Dq8%!4JH@er?Pfwr6{j5Ez>URL&^IfIrw-~)aLB^>`g7!??DJsgmaVl>g3jwsDKw%1 ziV7oobdVl2Qj|3SWhIs?Iw~rX?pfub!T$tX~f1tEG5bW+C?+qfiI{;wN6ooGa^4@of*d25l;jI~no$W|_ z^31N0=~WxuT@&XCz(Y&G`_hnvAaI~@@~X%oTqi$fzXzWJXaYtDN{|t-7-TRi0u54{h9gRq!t1nbH%+tpvc>0aepPTEoSZ=d_()nHZguprGw-Ozv4j@q5hdC?A^Hm z5dez#(Fm?8)P?6ue^aOv1SXBlLREss@YR=1;REI8v%9gG425mnp~TLo#uM0i47QKd zcohoL(C+ys=$?b#+jlcLU=|2sGhsqyFZpC_J z945jJV_3KoM4GCRkf$6>4R;UQJ)}GF92X5X zNm#bEr!3mr*4bURes$e~@QL!%#x6fN9>=nT(crM>FiA9xz>snVDPr&Qny4u_-N9W4 z2*QiR1ix=v`Gq~(Uheqsn7_>GIJ@C3G!^HO-+B4v(NCA^fPfUGYk>8j(Z2dJ7ao=G z^LFBlWT3O-|2>b;)XUH_Rin4- zx6d18{?|W#3{+KCv71`J?nj^PP`^+3i5Kk(iuVYxRy`oovxIFhG0EF!St z%jBM!{^~fEd)rHL(#z!Jm&=i#p1^X?{N(*F$tk2tL0VxHR@;@+cjew={EEeL@BQt* z25C|TZ7>#Vzf9j3{C^om!ud;Q&z!$}=HhLLzIf)sHsW?ZPu=v=!}i6O9`Ryy% fs.statSync('test/results/image-gz-fail.png')['size'], 'render is smaller than unpacked render'); server.close(t.end); }); });