From 869799a716ba6463d5135d0b55d7ed27ea16fa41 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Thu, 22 Feb 2018 11:33:03 +0100 Subject: [PATCH] [tests] Added a test for getting resources from the database This test would have flagged the Qt regression. --- .gitignore | 4 ++- .../offline_database/satellite_test.db | Bin 0 -> 114688 bytes test/storage/offline_database.test.cpp | 34 ++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/offline_database/satellite_test.db diff --git a/.gitignore b/.gitignore index 0f4fa7785..b32baaac0 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ xcuserdata /test/fixtures/api/2.png /test/fixtures/offline_database/offline.db /test/fixtures/offline_database/offline.db-* +/test/fixtures/offline_database/satellite.db +/test/fixtures/offline_database/satellite.db-* /test/fixtures/offline_database/invalid.db /test/fixtures/offline_database/invalid.db-* /test/fixtures/offline_database/migrated.db @@ -38,4 +40,4 @@ test/fixtures/storage/assets.zip # Generated list files from code generation /scripts/generate-cmake-files.list /scripts/generate-shaders.list -/scripts/generate-style-code.list \ No newline at end of file +/scripts/generate-style-code.list diff --git a/test/fixtures/offline_database/satellite_test.db b/test/fixtures/offline_database/satellite_test.db new file mode 100644 index 0000000000000000000000000000000000000000..95dd8617ff90c40ae6ddd29c1036a92e0db74602 GIT binary patch literal 114688 zcmeF)1z6ooqac3VifeHx6nFPRky5m{ySux)6e|>WE5)t2YjJmXhvE)@+V|~y-*4}C zckk~0_j&HOn>^=Cl9^;O`OTb=Avrm6A0$ld4Tub_Y%O%`iI_o(lrPobRGzzAyOA2Iy@P|?u$q` zwHH#bqHrWI+c5Dk$j^zu00;mAfB+x>2mk{Ajes#CG!`ovs1LY_rM`i)t$~q=m8F)w ziMfH@uTaZG|L<|gZ)JrAG?`!^T^M9oiQT(3#Sqv$7C@e}WP_ti! z_+v+P^q#kGXQ2OU4)Gth^^Xhu%>7pk5ykIyC^cU|VKEYdy8XFRzxU>M`tMEKA^bzW ze?@EkUht2S|GE0#^7m1Og~lQy1NF7D*U>dM_`CVvr(gV;y}W>+gz$e;18_vYBTV$4 zt4>~6R9KcsN?M*sN>S)pdkFS27Wax6MdTBc~HVpvco}PiIahX{Gzk7F@HW? z)Y5UVxB4~zT&sU;i;RDtgZHt9hQ^|$1@%MwyUAase=hsiJnTQS`74!(;{QLN-{mj(DO5eoL z#Ne-w(a$&odmW=+#rx&-tU>e>=;w@{m4)?l2G7T*-+BCH`uqtM5m1njCt~=y;O`^J zzgz5QqJ@K<{qsl4QODdw|EI*iI}H3oR=+>Cf5)RC`WqGvkt+?6GYyf;bJL`Rgu>#* z`j49Cud35x{567>0f)k(rUq5{RoQ=j;_VD<91JXt|9J%ctKozHLq2~+|1USDf8U0F{weu)ob0*k7^F;X>p#BWdeg^121B{;m=Fb2N z@;Lzi75rQS>SrA8^BWid0YCr{00aO5KmZT`1ONd*01yBK00BVY|ER#v&NwL2-Op{{ z{4x4Jx;Y?oKmZT`1OS15DFNRoN-zWv4NwRW1^;v$SO^#k9cx`HXD)hrJ8RqL3xam^ ze?-vRJzupj|9Od!){&FW+R_M8H6qtnksqn(zM36fY`kROo2FHWfI z^3uO`wV@klS+IKL;QcatEoZuN=Xxc;CW!Uz50BwIH_Fj_YF z7-aK!vC*l6CN8a!7Tdk9>4hAeDv9YzM-%xq z3Daej;DVX`Cl)d(X-Yp%Kr=0SD{VLrv}iFXEH4mdrYW#tYIK}%)C|;D#Gs)Vb60&e z8G^>t(GO;)6DSm@1Ba;5pFB5$@t`>Z#ow))?93o_r^r;u*w)m4e|iP6P(Vsfyn1TR zE7|#a)|iEfNJoDQL?@L#i~uR4K?6vLap>uGzzGh#}*OIeSt$NKtl$xhr$}H|<0;xyt%V z`qrLNyvZKN_NNV9QDQ8(0wL0^!7oVRV`KNwK0^BZcx5`I`k-EOL##ssDLckPE@w1U6)KO$~49!%v7js z*!;Y-FFR`Jbd&g2#PYS(U-(d)IP~S|d*2lbo$M%9p^67UimzBm}p)HfoP<|PG z4C+89Y7^FO1clf~)`U&3Ht5py@|xmwfc=MD*@7vtW(jX&v$TQSJ@@K01!3QuY7AK> zmv_fos!gNgnm(yiT8o(|EQ-SL-eFcAaK{i2TVY4Y>ARq+V(aMqSwxr4J|`0Vac zc3fGk#Ynp_T(FhV7!y}EM^&vJ+HyVqOmJt`ilI-=wP#hXYTB~sPDNkuofpEXEcD15Wy6A=-0h0r(e=M7Gv`X2 z9a=A!F@$*v2u#(YSv+ZH(nTspgbQFf2$F_pP@{NIES9V?cYc?aP=By{0i~&IcZl07 zJVIyBl6;Y5cBKmcRRevRK%^VP1lo_!myY!wk>$K!z9zlDV>D3daFp5yn(WP%8OHwF z{2K_Va;vv7M+F9LQ{F=XajBNsmV0yT_IlD|XoxU#Q%mPLeRbj(XGNK_l>LS%Fj}>K zAJ}T>#*6GK6Z5Dc`36nR=vQotcRN*?ny#pymQ!zJX;inVn^X!k+@f$r=?dlCNUl$< zXTO$ds2dAMeM^PoS@={6x=YEM?-Hy(k!gAEXt1Q{K`EvgI7kBR)=>0%H3L&*7|5qf(?gi0E|p z2EF3&a?}#bgs66U!&&6Vw1(U_;!}9xdk)|0Y-RZ9EN9v3bMCuMDTzd%-uWe+xGSVW zW?GWtH=^|qh7G!jq%TPouNMw-VmKX=Ix8+brSywM_8n@_D9i1)Nd~9xD1!NMKZL4+ zePzgf*%6Og;`TOQA9|8Zv4I3iAt;b{Fim*#aqiNnFZb1`ydG&1qeCf~T1~=iURO`-Ivy(_ZW zY1xk*#;>J`MEPJ~(-vNbew#7ge%o%-PpVeeDcP0G%ei-DW8OCucLvq+()K)rusL$< z+w|ANQT&3aXloqA<8!P$d)*`?qQt`xi-3|y_qGOmHO;6t^|$j{6td+cotwV$bhW`A zLQt)5V>3DN-bF`!zjro{q?gFp00GA$Sx|7XRH~4MQd^!T5bnm(FJ`1$rsTIpkIHX2 z70PBgU>0}x*~-0#&)2!?`k)0RwIxn&!_mrZ_d_~GngV_gU+mU%TyIND8ex7)IV8;< zCS@q;+9fK6W5Mv$4Vr+KdcI_JJehRtnz%LPEg>J-%I2ma3(M(>IBOesjV%NPTBdJJ zaLs_}rr>8=omuC;vJfTJnaM2U*S zk#(tbjy%_JF7d3+46lSJu};*SkKOdI1^L3PgJ^~`xxR!ZzVt2$S&1~RO~_X&d7BG2 zEL#>8~u`(K2U9z zTPBS(VJTxN9u;+bLeVKEG0$f{D1K0&@E~%q5Fm2?`u}h`Vej&MQ`JZRW--8@sj}Du=OGXx>f?3Eq&j>XK*rzxu=?5(5F6N@^a3+y}~a z{`roMF}hG=TVo*hli;VdQqiVi#Blip_%;fndUR84b`MY5D(`6h6-vsNbXbvD350jf z<*I zqQ5}6bSI%$h8jWGr{1b+Bb(p&wne0rAZkJRWno0)@Z$?k8?{Be&dOT;1+Xv5G^M_e z+=K2d4#ya?l5WM=+QT+-!JMw79D4|sk0 zl;$w;dCPKGBAqJR?4=hd=0f*#Jz#^uJ%t)0Rcb&5C8-K z0YCr{00aO5KmZT`1OS2mA_Dl}{GfkbEcs)C?yrj^5VYW0|CajSyOd&TXJrXa1FrF( zTl)FJ3)pLLIoQ88Z1*4jTLt0S2^?u21nC@U^LYdefB+x>2mk_r03ZMe00MvjAOHve z0)PM@@UJBR0}hS_`|F7g2w>oZp#S#We>hNZT-ZOKDe|-b4+s<8Ddwc)wA{f1!s|UTC^Yh!q z!|m5I-aP1>40NqkBZcx6nS5GFSoK(Rm^k!xbaWWl7<3s8^f)J#{*$R};f+1Fvlq8FoVg~NJH$sS>WkW{< zB;PABdR>N&`6bj#->@cW*CM~)_y!|AdTo7?k= z$c-ltFO^5=xt_D-gGSox`F#4#^x>8XSE+{@Beveh=@G02`g*Ua$FsfZvosTr#7ode zkB6YgFGU`EULj9m2cQq&577I^4Nliu4=pn{BexAt(zm7FTHDJDUMIKPPq&x*cd1WL zi}aV=PbN(f55`4PW-RrwF(I96N<$A4^OEevK8xMBZ(Z<)B5(D1#Id>r{nz~HBwhCF z*WuK-hg`pt1oWhs5681q_5}FG!v@)cz}|4%tpwm>osEFXthCSAHit;&8Hkgu+@R#} zYg>Ii>XEp8sd2>lgROGi2q&^|O_& zqe@o=RlO0)lf{zsYTM6?dW7^@((UP}+aEXShp`hV`)HlyVh?ES)M|m~^fk8~^zPq?!FO=5RHBb5=}op^@yv83ZD9 z;rvzeu<*x;my4}lG3nNH_|A$@W2~?ubDy=DUzoP+j!Kiwf{5<=5g7~rNO>sCdfUcq zL`b1XRx=Z)toDYjf4wEtG4M0b`;Y!7nBbUx23(ep+V73xwDFzI%4&UN*!XXWa1t_g z1Um)qgHZw#Wf7Y={IRDzn$%imHt94eZFfO7gk3fdfxN>rU@z(3u0`&~cXfadQ&C0~jhan} zOhhDlz$P4o5R5TdUVL5f6O^W&~m{0uMXL*L%*3lg8qUy+I!D*|Q7N@)o;Z=yfTo=X@-x?a(NZjwEik zSt+pIjpN3=YkVmt%t=7KG#i^=s9WLBS2ptl#hFKB3CeBZNKBcYh`7`rD}|5oDqaKx z0{=-LkFDl75o!(ptjAiLz@po%Cx4+!vcZmop8K}1d(3ddhx_WJM-G)l5Jti&Vx_Cm zjqBTf8*zaeckY%LtRr#yrh{)h3fHH%u<{Q1>l+pUPR!(HaO)G*WXovWr_$e`xtq#M z)J}7Bdry*h)bVP#Q|0B^tToanm#J8?&=86nu({ljf<-+LgSEcbOd8{gpwAxY=3xv3 z;>{G-4)E)LWBN$B+&)4t3k`AJx7J(LEyDy`3x9AK`#>|QglooYS+7L?d~nD8dH+8s zQX9zg3m52mk_r03ZMe00MvjAn?B_;DZ4Q3F1o&;zsi8yZBnqzu8E_ zMe?8cf<6fiiLRA{rM?{rml_ib9TNvT4J{)RD;+BXI|mI5CmkCj!*dK98yzz%JBtPl ziG_)!maCPO1ql}e9mDgij`QDV|MugMBwUPi3?4uG{}4#KAV_ye7f8p?6Tkon00Mvj zAOHve0)PM@00;mAfB+x>2mk{Ax&jao;IN?2!E*=>0rnh%frEm>!v696|E-_>|8t~6 zq^*D59Rx}a2mk_r03ZMe00MvjAOHve0)PM@00{iQE&v4q3;Nvo|1|;!|1|;wgMfgA zh5h6H|GVe@|NrYo!2SaQfB+x>2mk_r03ZMe00MvjAOHve0{>SE{B`{w^ttm7^#A{_ ztYcuO00BS%5C8-K0YCr{00aO5KmZT`1OS0w*Z=>x|9=tW`MdvHNQ+3<01F@h2mk_r z03ZMe00MvjAOHve0)PM@00{hx3BZ6ufT~6$Z$tc^0RKG!1`Q4Ys~VAd^vCc2U4sBU z|9`Q%1&Rv@00MvjAOHve0)PM@00;mAfB+x>2>d4m{^2mk_r03ZMe00Mx(|AxTN{{QppsJ&{8ZBSF2 zUu(!g<|!0jd+8@KASUH}wRC@T6#O-Lk!EHu$?WcX-ss|;=`llIPSem%@p++rl!6XIvs9DHI8Jun-DP7 z%HCP0{P@%aC2tc+MYU>=nSP~I)qffP!uV#;+hNH`X^(oU|55}4tSwshGe&0Ugw;X! zOK@;ipR{8yTL=Z#L<=r!6S=Hp8cl1co4P``qN&h4a%z>LwADjbA!M7STvho7oUt9) z8*6<!`mQ?8(W_Z6rf%Nvaa3+=I>pkX_*V-HJHh6986aQvmMrp6gh&n z80wkL_fy5ho0yH&Knf65BW`?gaNHudiY{o4*xnz#-z#eOt@ji-h=Q^(8 zm$rSh5crWMxohV{)e_b$KgX7Mr$I_2KvPWa&~3VbYeC~j_TD*4fl~fM-u#TnpuB#6 zzH-qg3&PxF$af>9I9-S?j(7UCwxTHu{RmD=1bnET{>pn2FCa*#)JnK|bSUQn%|Bfs zRXk+&b8BGtdaks2?y`WHXp$$_ zCLBiDgxDirqjOd3wGh(&PV)jaO<}FWW-T`+r6%=VPDYeI)=jgO9-WqQ#Xhkd1my~i-xews(RXh7MX~-J_B#oQu~Qm2)~wMS3I#_4DuT6_eg$;yx!W3-V{E_l@~pZCke&Wm6}*F=on1X=_OKY z%MF%z8fC;b(dlQO1>aPzG02u5DqMr@CtO2HZWm!6x!;dT31#JzC&!Xyf(V?_e1B2=Z;9y4Z(Fs{~X z`3)2^=B~JAEoh-#n^Zh%`a}X0aVBF*<2vRCl3+vPRzDb>tq+!IOjW$u##!k-{oDEK z4-i_$bxFMOW~SdXvGzEvbtV%R`@-Yan%0mtyJf8}<@L_lY3sqx=nT~eAnmOqZ3Wi zaQ0Q)1Xo6DUFhyq?OA(vopjP0D!bU_<#j!C-!9>ihX(y1RJ_E$>3lf8A;f77j8UyX z$&%o4VjTZw{HXdE({80-3*W&M2#NmX0Tq-DA^`n|Iex*wM{SHb=C%|YFIceBY>K6; zyw;5w7e}Pt`<6u4;Q$dw6#W{xtxnrUh|#j4ohw_zXe?}@&hXidt`|PiwCV}pWF5m ziTDqsQI`Dbehi&v4aMy6l}{cAY^nLk-A%H=7%f<7MG^R;W;>fYH;3pR$Gz#DfBAr2 zpu(qKa%ySyeeF&y=6#sDWs8BH01M5Ib5?5U``np3JMfB2Ui^})K$Lu81tBF_qJXBN z&yxNnji!f|C(yAxJQ_;|>tm=W!g_Wjy<(=Iy+25@!4}TBoG}L_9nvQF^uz(Zc9kdLOkS)g z#;(t~qu)Z|8)F+I zQc3N-k~b$Mh!kR96A!U7ry%Oc!8{31WS)r9^A3(~3AbOxPnU^*HGN!rIZN{Gp%%&Z zJ%XF9aLz=P{%oLM^qjAquCA($OD4VJwG&-nnYa;RwK(V{PYI!w)Y4rT73QL zkHQ*Oi{Fs2*1M>=kw#LNct7##VrBFi()^cg(;aWJd5v;cYRj^~PC|#5vnS0Ye>l$C z#tt~Sq{ZrcC6Jo#B&FxR4B1zGN+l?rA{k&LW*XqKy}?K~PA1)gKl64jZE4 zHl>+WnHJG)-yva_Nf zUSoNE!!82X^{H-N;jE`6WIKWN`XlDYYR@^MDyYSQIYHhJ?Ac? zkT{WT2_>ULcZ|8tgPlJ_?PQZg`>zOxU0Yl_%zG7LQas>eN{{TAlMxjz{bk;;{h--K z-(U<3#$A|vEdFYh67Dv+Yd<$(81m{$BsLc=r*E2o&~95?p2@umvrd@vK?PgT#d(O` zLv{T{2qMJgyG+Rs+x)&{MqdV?OFr+FC?c3^oV#H-d}dD=`AXZQTfS!7Ul7mmHui+* ztygYkWLa#1A*`XlXvVeys$;d@%^oh|=$r9u-YUPA;>asv7t4dg-gP*O;{JX!zGaD| zis^THEC6+iwEC>T?2Jf4QgiZ(-c5_J*qa7~nFev$3K z42il;VWwU4zAz1?#im$;i02!q#1|2;$wBHV_F7^#9dV0#^KUO%J}9&53dhN(y2zQ$ zf-6vja&@I@wd3ohg{2V7Dc_3idLDqh#@p3C9VYG!gT_yoxD4mTfe0v=Pn*B&Zx%e0 zlV7js*H#=TXNi}FN+=3v-0BR=DOD1HU~+s_#h0kw)K>%lAh|4W`{cta3HWGMoxLXZJcUCo> z%etW2A1k2=h0z$_oJKbFMxH^o+pi#-%V7A6p>mM^#V zk^jK)_DHeq+WVGsgw|YsOYHE`8Hc$Vx>E6Umq(>Zee^2^@_+%>z&^&?1ZqZ=G9wO4iERR?=zt5Z05OF-pfF8i$bSRYJ!FVhi^mfqiXnvcEOCT-{#elhg>L0)o5U$4S8~ev5-D{zIrO6W(0!^&*L|*wd3_cnS!h! z?v>-}K{A6l@X*K;HVnTCuT|(eFLH$s!duDy>d+s+gjmn+3?9|UJ=Gow5swA4%-v7c zX_3pCa*V?gw!iNO<3QsFi5yvD^EEK=^$R(7aYMDFr{s$(YH489gYQ_F8?hE()db4*_<) zd-geWSZ~qo!5Pbi7(Y<_IJfNG=gi;0rgsZnY8(&CahD*O>_S1Y1bfx@W}+nSsLkIk zy}A;DY^Kg{tSx%EYZ=_dUAHvSUi4_ByJD|fu&9-#p1Wno;9M*5wLg!2;rmer!ns$% z>7Yv@U6mH`sg0aaL5)`ZwRo4zBZD?Xr)VrF3ZOH&>Wf2_V5<18G_j&>{LilPSm!SA}*WEU1ZAO|}#9vbj9 z!Dn(gZ!mY4RCEl#wBo*oCXrFO@HehcsmZE<*IL-HAs$Pu2wkgx3(hrBX#J{R;=12~ zXOvX5eaEUxlAttjeYxzTA}ps>!K&;BeI0&6$oGe=pkI*N%LBqy*r(5EonOUAKZ31W zy?BVWuwz7UiHVW}nW7U~9z}B7D|0e&Kc!Mky~Rj#6&N0a{_!<4v+th%^)|Dv(*=5P z?yj1$wV>?oBYfyoAn2V9t}qzDbvfA*rs&@8RCbW zAKUqa%F?o!!;wFj)7z^od1A=;7Jr++gYH7Jqkg3Cn524G0-0G9@FgIHCD|E#Ja~NJ z4_n~Hz@zqj%_$K@`kVX{7Sx*(7RCwHq?me=Qch%>2H<6y&Lb zN2YA&T+tmvN86qEtFI3u2o7!ox`Nr-9j636#kZ)G!h^j2$q7!Ulrc+g;mrn1gNQgh z#X3)4%x*b!)XjH?kxnD4DrH)+rngm=#~hkrP9s~CMFO7Uky^Y@(dG-P38>l)IMYI+ zy{-2#thef(?0$_lM)lvD9j#ZbU(%8hG)%nGeL?+sumW^dEqoKN+xXL}B^v8dosLhA zbV9SAV|{bZgEtlWDe||1*!aZJG|zE4iF&93t|X&A37_3pVK8DaUR1c7<@#CjJm!;K zBHZK?#P{m$k)nNF0R@Ws;_=F42~jzg;7K`me783T=}~mt!|6&`N}^{-BpMf+H12sO@%yW;`X64K_pAQrH0fi0RkpZl>bOdcfigdC8^VDYAI#Z z)+q#1$}eC&`D1gj-G$XETWLHQC60^rpyBXmBIGU}zQF2@3G{O1z&qnN`L=F*7*J5> zh&=duIQqvj?xU>zgR9@NRSkM%^O7U+e0CMT7QKSQWPJb~zlrpBdpUQczn8{`B7v74zsXg-k|%QIYL5qU`7tGGhFXy?n*NFmGCI}Xe-P}8~j zYa|bD5yZ5rN!TWzbdxW;_&pXQOqcqg^sDUE$lFs(GV%judmx*+Q6DScPw-M2$OxkK z%$T-0Wi7R!xC&L~Cr~Tx<`jPpl|OtTm2uV|^-4p`0u&+ArzW&L#f3`!#*=ZE{6bWIq47XXkH@@YqS?P-NZry4bEVz{)n44#fy)Y8ll!G}3T{N0 zuF;RYFXGop8I1drDM@%cb<@T>1Vet`_>iMS$Vqb8AB*|~E=K#Fh(OmBR}+boSg6fD z92>TU>@z_j!lHh^L5_)XRZxy*MyX3ET*Ba-N{zyKDJp564YMs#)`nn3$qzFwoA3j= zo}6hQqbl9q&t{>yMRlLkn+e5>LyI1vTVPWMd!Ypya*7q2JCZ^p{);ncB}gBb9rdwUFrO5p7jabfc5!hO}c#C<3OdJyllOe7Iv;t zT30@JE3n-LTOpA{R{kK4TG~4%C+nnym>{%kA?dbbLA)<(2L94X>l+qNVsLA^^h`_V zn>cfjsvLpwQw_}(!W$|k{Y6Rjt{f5E)`ey7UL>b{8bz3RdGGFl6Z=xAQ~;+8`_oAE z;4VKQtl?;f3O-de<)y#=buYEnQeEX<|76FEY> zI#B$GVh3-+C?8NTjSs3@l-H5l2l`*yfcl1aRtymJzCtG#SKO#s_oYCa}L#v*y5{ZvnaOU zlk!wY&w{MdDHfM#;df4eyvQ;rQ#{WaB^--y(;F#1yHkf7&44h9OwOiLGR+f7J{<*R zO-hm9>NM*+;<3mzl+icz6%;XM$F06h&34ftaeaU)CKLZGj8)%f^eFKW@4NeACRov; z4Vv@g34z-#Y<%QBgb18@vPokEb~FJk?%)cG(E!=Ioi`+x*;{6*MwflJ`DY`r7&v3J zDBocd=CO_}AGr#=(6*h4T^R7hutf@bCNy}*NRPw>6@%^@#u>>5E(W<)AFDQ9a6W?= zXefHr+Ki9;Oc02!Kxr0s$Z4Q3S-w3QF0EW9LX);r{BE6Qz=|It@-V?zF6oU|?Zq&! z$n@jPVfdt)G}P9mp{L_`r}b^rv66!+X~s+oCC^Yp3DjPN)JN+U{`aG<{dpBy3JPxA z4Y}NrY9HQBiE*LmMZ%%K4#z!oJ=}0>96hWSMC`g`d*iJVLN8V?Up8*=+DtF7-d}qn zvmjQbMYt1kxVTfF0Nad{ajOxlSmRaf9{x7vSPW%${YLkK3C26~tU8&<(A7_!*CGpV zPZ>Hhee7dX#%xxiSp))DzG#}>es|R^tV_T4+|feNj6`e3Ad1vP{AfgFEAPdncg3Z5 z-|Oz^(7kLwlz{yHt}wpQ!-{Q%h+eurMmB7}qTDbGJnsGqc_bm$kILSUY#Y{8j1tSA zsOQ#V-gxn(p97x+aziLAMcVzopiZ$>Q4&mMJOIX%v8Z=t^O477_PbYghbRAeTG$Wb zT(_Hf^)sp9Zyzc5hUuWbr+qf1Z75_h?5L^S=eO{SsSazsW2mp@k7^DMSYKrDu39a; zT^{3WWs1v}yphRdqfPzHXEu*{lpig`@okhrh|#coI$(7adL_lZ=>#V~&}WaSb=AB3 zDnK}6)N^15O*!}-IhCsn(MX@e$Q}QZj@~i!mUGt^6Pg!miGwTw9W$9-U2FCz~0kh8E6gA&7-Q(*+MAd{P=;-z_Se=<@h{ea) zg4_FBu2^7Sp6agsl(X3UXatg6B9R~4BR6z?KpXiFwPY^@!{#KFcb=$F>i*bjha!Te zE>o(#RFxccGOo=Xd7n${AL>u31Sb9Iy1<$DmE=<#)AEdzd#K2dm?3D5Ai%goA>(?k=7%yy5A=HX}BmqH5c^qaI2sZH_-5UyekFnYC0<36*fYW;Kj&>*;~fd##UUpGf6XBVUwlga8!fu zugaCnPy)X(u0un6l3@#5Emo$;!F1H4Z+#sSuBchQTKYC&+0k9OqCa8bum>Zm)* zNJuYwDEJ&*GIS7kN~eNOr=KXhWT{rR32vh1OU=Re4&0s+QgE;0X2qekZ9Wpj z2O9bxd_3Keai(wSS88}8`yPsJ4yoy2Sn_sVuO{fR36I+acGYpj=wxqZtONfugMboTNp75zTSW>YM{c@tEnBhRiL-+ z9^<}Pt6bx4;9*A8+%vnwhT4J3Ov3pJi3sa2IvrRH8boMLjtLS^V#*DNB8#aHBN4JxUQv*$h{X?x4u_SQIaIUG)_He%|BZmA)n!RXiibczsl+?|Vy)$hivR9+=FSh1g}X=o&2cBx$p zf{S1WU#OwuNwpB&Kp+Q4QNONtN7$_`s0^IvQw*cGXGo}uN%*#j>F@=6S14P1Wwlo~ zA_{pOrw;KOM@~9tvLjiH3-asG@`TLDMN2frocZa>S!&YHv5ZCc-@`if#`mwWr=yZR zKegSNCOa_|Y2Zw=X4Dd;-+cA6*fCD`%8k6}xY=sQ4Em&MP_@U>jia?m9}xj}cOwWw zg z?V6fxOA?z|^#F)0{IXEBlK=q+c(iV*%>W%&XGg-OW|UGXUxTHuo%C|JZ}}T~ZuS_u z+vo&Os3rYdS$<+e!|O7bL+4%y626vKVqJg+{K3l4B30hOla8z09@nHRdQp7x@WP@PZ4nzMzIRYq1D%$soE5`9A1V zEgT*M=ZH;Rh z?M~gUR>dlU?Mpv5iE8w~V(YstnOERJEWT^4J3%Tb(04d|sQ$Vb;aM6(AQ%TkREm+U zouiUTuprV44Qdn2k|bD^$I|vRH9ZfagHp|7`5-gr$l?g-SfytT6EEUIW{~|%Z5j*l zpljilU-q__H$c~&2PHGn%&}TK*WO`Ig9I!xRX&|itDZp;>ddt9V8bML+?w|eJ6_K& zyDN~ZRGaxFU$k$!)8>A8I!&W!*C<)vXhT6YPf#>(@!uRB2MrBdZ)0oWX!pHwYl(gJ z{T8><`eul3-m`jVJ2>q}J)I|wL8yZeUqW)kPODO2F^=+P*g@h#nI>AP;H5d2$4^M)bW+`I#``7YM(yrK9PV~E* z5$M!9*g^`0p-b&GSjj2_j9=GO@kYFAK^$CdCUR|6 zk)HmrbYBr?-6~j=qvmPj=8Ly2bz~qvGOD9CPX(%)z%b%^Rq&RMB@q>SarxT_1WH)R z=D0POH0jEky#lQG*$G4;Qv6`?kM^8{Sk!7+5d|^@OMK%)G^owY!W-?! z8}WP<)1PHv&_itS#&P9U?C|+lTLn{t z=_PUmNtI0kV3!R(z41|yYns!Ztp9S}bRc|WCl(jM8F;)TkE~{l#KX)8eeB1gZy5=9L5%2ca#>`^9w}UwQs%b8+8wbP)$B}{B^&`)hY4W@i_`HtS zzC`cpm|9I?5gg2+H|E_?3(`P|jc<7d85*(&r4|BBow zPf08I+FKyx*|3W?cz%6K%RJ&PK~|DcMOez@9CXWaBatB%^tj-+Nt1q8uLd?dP`%)h z8(`qn?anaOR=Y7PE*O?hP||pK)-al2lxxL7A0<)oxMkFci@8|!9Y+A?Je5g7RUVu2 zunQ-CQgdIKr_=H~_d9dnJs0a5O2%QFRuSWxz)_}1^A3H?s!bXU(^`8rZw;rg1C(yi z?k>|8hV3+s>Al8Q-1S#+M45S}ic}j0ytPSUi6pCMIFwLY6S7B>T6j|W9LBT1B~*FT5m^c3B`;8jA&o!^GZ zm}9qH%mJ}}&E%WtSHHqR@cf(5$rd0xRK8ip;3A~qn{)->6}^vppfslU`fC@x)!8gMOX zY`~=uOnc?lVK{n$G@TfozEeK4Fm~k&Ra-=VnV=~=JH7U*na>7AMvLFx6ZszBQ(LGa z=IFEUi`3&f>kKT1ROD7`C)@y&+W2=t^t5a9#kQTBPKY)&d364{yb{y_v$oa*cwf`s z=}tL{q(|?MUpy8MQAkU7e<54WaN*m$Fm5YbJ*g>0>btp@zjNmS9a@c3)N?*e%F^2(yAORQmpc;cY-YEX2i*>~eKrBG@E_oiyETGA}_^^oL` z`iX~}iKho~{oy-15Mn@W$g0SsTqqWVYs&1v-rVRsnGJrL`P?8f$d8HpR`L^DI6FqU zpU=QtyF-~CimUdgu<`Y1`7BccD(lCW!;EpcY9CP7=gp8ECsS8-N~;t|ERNd{lk0|H z30f0}XSE>671XJbWfdPN@^=z{gxyzA2vzfauxlO)s zDQ%_U_Ek&S5wa7bEtAW+o$6MpSS3{785CC~9nbGE&kSXAWa0aE6F^dIVmZ8zw-H2L zx3gNxpF$jnZ-iLeVAGw7Lq1c#tO+K1DrH!;GDe_zyT@FDDT?{xy3#ucU8o5GOZINz zQ+>&8O%kGZ!+C%Vkv$sP3i|#u(#ch1ab7F>#{1^Q@t9(_j_$-(68P{?L4tvAQmb;M z{qw_#zDP|H!scW%C$3mz-0zQ=l%^g|ei+a8T%0l5GS4)H(_H!{aK|a5clPy^p!VvE z7&W5#7Ai;JN^^Ac)NQvLUnL4D>U76ZuYBu1;mDn`AIti2WA|>`yq9OPE38-xY(jEP zb{DqDm>gom(U1n&ZHRn16B=^UqKpbI^v&^t?{qC>eGmwmttq~PC6(-J`W{oFdlqlx z`K>mOxGK3$&my&|Q;#!cxjNu$3Wcs|?kI!-OYl828ukJySV-+F1O$bJ7D(3KQ*}A7 zkg^7*I_}hI(lNs^uaN|bP;x$YTOy*MrLcO?>)WN&h%ciybBEVG%_>pVy4&A*%QYRV zJTqUND!C2mRluJf&OYuYkxX5lESY!}MlY+J+6TnxMH4?{HZnKo7Z#QlagDpH)Ut^P z;X6d>k~8eX>M9a%hs-RWbk%R1SAAVTf+_%C%P505YrnJRJV+0VX3sh^W9^*9AVKg9 zhu5y#4(mcMq`jI##(vM6uMs>+jI(z5eu6kFI+T>+^SEh77HvSIS0`CNqzH2W~ypqllA%194uR zU>6GDA2^%gF^})q)$xt5NmW1ZH;b|dz~we!9h{A4k2y~?CGW!p>uVU(JcNqggN0n{ z&kd=j2+tu!h6fE6(c$T%Q8wIJ9q!ylyGvA1SUWAIJ({3Lw$QA76nr$AvMoU-wLqq(graqh@uuB4V0D6_0L z3WtgL{r0a{l)>W;rAtxlG=&#g66?(d*X)lF?o3k@4>a-yq>$OZO z<^xP+TY_fV4)Y+XojKttf9qKKiK3#ZfH1 z;Csb_{*7DFVYC7z=?Ir_#sdw#hLQ!T%7y%89G2^9}X>4=*&%-M!#uPC}L=#eFp1?_xs9-UL$Ct5^xJ+2x3C zr`Mu(l_S|pwQa21ldP4QelRw0!ggS=*r5PrHJV$n)DMhZ$5MNl$BV_qA2oC;@)nuC zCih1w%@*sulOz>=B$kA|A}Qjs4yl2P?%;Q$xnY`ek(Q+e+IE^I_e~aT@KYQ+?k8Yif+U~dQQSOYKr~b~-O!oC-;*nv zcEzxVFNpm1ftg|Y-7giI4&#jhbjHgP?t!f#% zC);(@z#Q+2=oTFByk~4K(fFt>BTXT<>pHI5@@Yp*F(<%cj4Qmmo4m5&NsmAcUwSVu zp6-IeSt{-TBGF@b^#21pK*YaG>M+n@15WNh)P$w1rU84#QbRS5@4|4H_)#j-(*glx zC=VKm#5pxVUxE(;dC*TvZo`KL!y}~4{7|pbC;;GxXA4{(0f?G;{#TQEM)1)TxBs(+ zuT5^5Oh7tF6h#mkaV4TxiA>e=2>Y}dyj)X@Aaa3>&uoTy?L&v}mJYyaF4Q{N5ch4j zJe(LcmPpF%uGRg!fV7?=AP}8m$(-XwX=2Eczj3>AJF^uWlvVhct7e$Yp#0ZbP&HGB>>)Dmn%MLCr?bb$$1`Jz z#B`I!hk)d0X+exdop{n~nL?WJ7U}}{EvGI(bKdX#y4kSgR@Y}^Bdt+rWZo?rHA}Y-l zf8+9xkBtE#d=b8Q?e-{U5R%Q8Bv4NhBTml$^F|Vq$h0JkvSQfJfaLc&z?4izOF#4q zu{sMK-N<*ZJ0#oy#JIWhFLAU@r!^&a_Si@zn`G3fm@|tc*+9NOI9FRRmz|w59*4}3 zA7*At)&}qgIbzF$_-P@DkSjQzrghR~CjnY3#n#AhQv!jJUm{}kzU{gAQzv-MoTq(V zcjX9}@e4;|`2C0QbnXI-UlPu({$&RRi{wVQ#X`LzJ_Wadw2PfKG+ zk9TGxks-Nnso6r)m4Y|?gp%e-^-lquD#GI7pS|1AIwMX*w~EJStuB`;(4f+q6fyUQ zvu5FoYcx<2qcHC|Eig@nibFc{!{lrUvidR6`EsX`E7NZ@24{^l6eBHg0r~HpEAORv zP}RGQyd~iFrNW}b6+Z^fj`g_d^6>375*Bwg_dSF?)Sb{?k2qnU{hu#Zwqvi(0pkIMF;qurx2SX|Fno1^7YNV*eOofZw|tMaq|Q)=>3 zX0&g)eM9dV*J5bCpmtJjO?Atshx8Exa2(x)TL8{z&DwA&LYksv2_sm1XyI|F`Y4?> zUf46gBN+5~*C1cS@Dq4_^~XkGZ7}Pj?5$QkTDGe$YC3R~ciuilE%^@sR)xy9vl?+J z+`l#vCukbbkYB+2;TZ^t?mykonjq#M;wzoVDPN8(dtFA6ESC(3$(!+k{ih>bHz#1g z1-$2}ZTG}Y1N6i{gi;u1V{lYU6^u7dluIXKCcGSP*GEDV5nB)GKyC);J36 zxXGJee%0Il zOiD3sRxq&$5i@@4@3?D zyh^~!DUV^dvt-^6h`CVUCK%_zOQEj7soKC&!Evd0Cb$HJzauF<(iaRy2Xr8FI;tT% ze2dCw(sw}lRIi#5<~3GMlZW4M&Zj!nyMW}FgZcf0Y@>koE!4$eSJLCK&Q)6*JTrJ& zEJa4ZZq3ZOg!3feON)k14U4f^vGV~Pin05@x}`sj3pt5WLHiGZAAEv zgED5#|1o{CI4@Rc>@JB}I$f!+I=AiRfV9i7wp$&TGhYK4_1)a6-kU;FYE7ac^=&QK zyed+N^+7UO6CmqA-at5hJ3$qh(vqVbQ4<6MhxT3W^+Ay9q3p}UW~4S;v)g{7bbgbt z@v)hj0MZqaNXx2K$S3qEZvGh!0!AxV^yTGGMX({nwfB~PQOmw8O*z0yyJ|C_X_2uk z7!kuLmy6+!O-2=%oDYaL!7E%?yZ6%VeYQ zy%A*^XfK*D3UVI<_SY|8I;!@wovv-0=x8GxsXcrw>bchO`}ODo^C4R9{JA6H=#n&2 z&|wjw^9g(^j&_g_*_wWr;!Avs3aqOJiHj8tFxZwlKsk3!U5>67*J9$$L-P>Y@orr& zh^8q{>Nfoj&;gVjW@{H8PH3*y=C5A%#C+uNv<0;1;=?)178}g4rx~X zZj*t||5%V%5E_iWJEN?@&Xk$f+7Yh!>c76o%-!=x+&&T7!skDnL6C}`S<~B0{iC)B z;!^bIalPBJRqVe{NYoPOfxfHEY&S_I{&XDX8#5=4dC4RM5&a*1zly?~1(ml^`=zyc_W=vG(iU84=QMPujA%^y#-s8V=9$?rC>%jn-xb?hq$GF zXe|T%CNc)m$aL4A-C$B@P5Xnf6ygyg^%5WRd(|YK)-Xpt`W1H^3hKa@{>F?N)S z;l^0p!|fnA03f1U_$BXAUk#^agOn`C(pQ-~cGtZc=oN2($6zLWF$PYV%p15ba}F|y z&RkEu+FPS#@t*$RMg!R})eaPat!L=krq|(_hm6af-5lCw?Jx`?{Y~<(pIL|VTRMxL z)hBqG6Iea`;aIwKZVyj|3N2LFs>f(FfZC8{M*l}!#5Rd}7hG&$iP&MsB4hcGt5#|P zL|iyv;C(ug8rp)`JWG(RXM=u(sCKADf;a5?+R$|MXN|cDr!Y?4KYzdgqWAdJzZta(*jFD}~^faR#h zC2#v~h8>-bYl+EKLHXcf$5fq90`E16XrSSOQbF`TW)otq_4Kz+{riX1n?mUiI*Vi; z*rC$iwWP{;3QgMziWkaE79?l7J!snbw2FB?#m2(~amF4`9}wa#~0trlJ`*&1+@s}|Ar9ngCHNE=EX zzCrFU`ls91i23wo&1#!OwQW=gqxXUK?qjiSc$gUYVV|sobUact@c~{3|7jf^NQKfJ?DZW<$})gst7NRqZ>o-Va0`c9Gw?}6obCHZsiqNY zb+hyO)^Coc&;#8a?tTTbp=rUM&Rf?agX5`VFFOTkZJXvoKOTl%sDU`Y;ioFz1}ckN z9}2&JiNb9^(-^3-n@Dw9bD<(8-FJTu?UG8O)s@9#xbh|MY9OBU{SK{#y!MqN(L&JC zKGTKb<@@m&A83PAZAD*|9R$aMxh5=~m|tr$!Nq#hdKr10#(YuyH6e(p$Lw_=0;hm2 z;^kKJ0d@1A}2FRF7ie-BTAhz z4|V^Cu5${m?2ER3PHd;+bjP-BJL%X-$F|Y2Z95&?wrzKu6Wh3*|M&LYx-aKt*QwgI zYVS42nsbcbHdC>I`=>ACVz_x@g#8VRZl^!=O*+vra+B3cL=mbb$KwurKTe>!i>98h zQ-?5c!Z?5%uArFzp3Ie6^spcCfQmpRa$)vj*S5s=H5FelmK0B<`0Q z+uDzK%fP=~u$UAKVF)rUX>65R)p6ra$tBuMQ@mMwwUmh4c^}S@WqK{ne0#&JGZ>ujn%R(s>^&OTQXl7*{B5^ix0f4VVx05<&9T&11g3GI^(xYzKlJ#D1DD>sW5 zFty&w0N+?1)`d&y8?|%R>TZ)4Y`|QK5eeF-F={qP;Pi2O+r~?{6Ssok7-2JOFyd^! z)vqiTIP9^OdLsS;KgX%AlFpHd%xu!ZW?V+?HAcEvNz&9JZ@^ypVNZogH-60cyi#kl zd`C*$qXLh+n&^14PF|pRtSGe(v5IS`Df+lquV%c7O?{7_}y9dA>3H zljtU?&MhV&{syAycU- zO=#QtZ@e>Fm%>Z$ zTZLShj^sh)E?R5*L*-!Q1edjC=2V*G4vnEyIrc&VB3P#J5z4mhf=KM}jc31T(?_g& zZ0;_Goa~ZCGXK@;Lzew<=EKi8kE;<~-{ygH#= z%jHbb0%m%31Za(L-WDU&nZ&+PeS6ur$&8Zm_$Y!u*8>v=gQqM#y^!%zS)_#Hs*6H# ze!X?Na#Y9B^@+*Z1`9uf&QZ zEnasH!XAxc5@?hW4N*M45lhpuiPTG!j2~;bzPDaSy+I_D#CHqC?E`mx*brsyDTbj} zbP=cQ7Ok?I@C_lLsX*@KmMcrOT#IRGP@p=t9WxxT@uKaCF4~i74aPMP{vy8HYwU$~ z`qTR96^*7ZkX>3Ykm12ReZODN<}z99T`;-)EZ$_d;o)iw>EL?XdxUR0&`t!Z4kfON z)2xHqC(!py(ZoUDG}-91n_y9FPiJ}ZFrMo}bDzh6wIq@z7xlM1y{krilhQ4j&8PUc zy|2`pPN`R`$qWo7{8b&cL6+W(MYn-O-NmM?VIX5mdy?bXh2Vk#}Kd zr6GgH@1H!jz@A=^2ebaQdCY@G?tPW&t=Sf7O6D4=oi-^%hQH;zGq<+}Gc4MjIkWrc z<$TR`mRaAkGNfY$P>DSdZ-m?OMpWD{RMhJGt_bieTh*s z%P)R-`t#^(nnIMb%;ibi+!o%$XpEVY$Psh;r}!s7=Vbpg zW(C$y#Fr~QD-bGc^p9L~r^JeD=f{EL+}9-2CdXE zNkVL6iQ|YN!=SL95Lk+OV{TtF5`WgkF|&%?uc8uZG-RUf2PsoefRB$QTcUk*J4r3RIj8BMih^d$mDLCRFzHK#7rq9M%TqF?>ws9dk|J1M1<$Ue7P5YJG zz8VIzdlhLX8{}_xnKc?M;LfimiEK`mD%E@_S9heMO@EPAs@zU1fazj_X@e{8pf_!+ z)5BN+FVM4Y?8wPZjJ#zQ6L4(|0Y6^@n3(1lu5=Q_hhnWT|2 zF8dyZ-+GnweB|kT5{7uma9d6dgWzIJjZhJBdmakdMhMHAwVJd?n-kKBwcp61JYNLM z`SF1+Da{_wQ}G}e0q2MR4&)W^(^-OkYu%*eWIjx`TRhfi@slHk5{14jkh$@wsNpp% zCJIQnTu#$pX$m_Jhnb$=+(qy|k9>Hw&d~gp+|N?~?UDi+cZ>z%mzbAVal`rbKqya0 zFsV+@hYkP9gdIKa#+29=NPWUd3taB!Dhq@7LJn|RI9VSmRh&9+m@t05$~DllWH*$E zRCz8c`v6#S$h1^|aVeDCA6)s91VY(;gTi?=1g4M#VV_! zPz_OR*i03mB3vFVc$N>(n2(}$rqe-9U=Q*l?yS&_EfO*HoFqFUBR{FtDmd8n9GIv) zW7H2&fP;!a;_uJiOYb%%RwF5C&Nd?;wg8JcUY)}%)uHnX@vm#NKOj5wM7?nb z-`{$kuVl2swV*-ls)g28Y~nrDaXWegjr}LBeP#mNu))BT5965QGp*LuUycf!gZ

gbr?D5jkb+&BtL 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

g9E)}vkbb*( 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 P<>0-)YxckZT8^9O)ct9= literal 0 HcmV?d00001 diff --git a/test/storage/offline_database.test.cpp b/test/storage/offline_database.test.cpp index 94daf59c0..23117173d 100644 --- a/test/storage/offline_database.test.cpp +++ b/test/storage/offline_database.test.cpp @@ -38,6 +38,10 @@ void writeFile(const char* name, const std::string& data) { mbgl::util::write_file(name, data); } +void copyFile(const char* orig, const char* dest) { + mbgl::util::write_file(dest, mbgl::util::read_file(orig)); +} + } // namespace TEST(OfflineDatabase, TEST_REQUIRES_WRITE(Create)) { @@ -143,6 +147,36 @@ TEST(OfflineDatabase, PutResource) { EXPECT_EQ("second", *updateGetResult->data); } +TEST(OfflineDatabase, TEST_REQUIRES_WRITE(GetResourceFromOfflineRegion)) { + using namespace mbgl; + + createDir("test/fixtures/offline_database"); + deleteFile("test/fixtures/offline_database/satellite.db"); + copyFile("test/fixtures/offline_database/satellite_test.db", "test/fixtures/offline_database/satellite.db"); + + OfflineDatabase db("test/fixtures/offline_database/satellite.db", mapbox::sqlite::ReadOnly); + + Resource resource = Resource::style("mapbox://styles/mapbox/satellite-v9"); + ASSERT_TRUE(db.get(resource)); +} + +TEST(OfflineDatabase, PutAndGetResource) { + using namespace mbgl; + + OfflineDatabase db(":memory:"); + + Response response1; + response1.data = std::make_shared("foobar"); + + Resource resource = Resource::style("mapbox://example.com/style"); + + db.put(resource, response1); + + auto response2 = db.get(resource); + + ASSERT_EQ(*response1.data, *(*response2).data); +} + TEST(OfflineDatabase, PutTile) { using namespace mbgl;