From e899a70eb0beb4e35b557ad9544c737cafdfa79f Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Sat, 25 Jun 2016 05:53:04 -0400 Subject: [PATCH] Fix most tests --- .../assets/views/NumberView/render.png | Bin 5279 -> 0 bytes .../NumberView/renderDifferentParams.png | Bin 3951 -> 0 bytes .../views/NumberView/renderLongLabel.png | Bin 13081 -> 0 bytes .../FrequencyChart}/render.png | Bin .../FrequencyChart}/renderDataOffset.png | Bin .../FrequencyChart}/renderDifferentSize.png | Bin .../FrequencyChart}/renderTransparent.png | Bin .../HistoryChart}/render.png | Bin .../HistoryChart}/renderDataOffset.png | Bin .../HistoryChart}/renderDifferentSize.png | Bin .../HistoryChart}/renderTransparent.png | Bin .../views/{ => common}/RingView/render.png | Bin .../RingView/renderDifferentParams.png | Bin .../ScoreChart}/render.png | Bin .../ScoreChart}/renderDataOffset.png | Bin .../ScoreChart}/renderDifferentSize.png | Bin .../ScoreChart}/renderMonthly.png | Bin .../ScoreChart}/renderTransparent.png | Bin .../ScoreChart}/renderYearly.png | Bin .../StreakChart}/render.png | Bin .../StreakChart}/renderSmallSize.png | Bin .../StreakChart}/renderTransparent.png | Bin .../render_explicit_check.png | Bin .../render_implicit_check.png | Bin .../CheckmarkButtonView/render_unchecked.png | Bin .../habits/list/CheckmarkPanelView/render.png | Bin .../CheckmarkWidgetView}/checked.png | Bin .../implicitly_checked.png | Bin .../CheckmarkWidgetView}/large_size.png | Bin .../CheckmarkWidgetView}/unchecked.png | Bin .../uhabits/espresso/MainActivityActions.java | 229 ++++++++---------- .../org/isoron/uhabits/espresso/MainTest.java | 10 +- .../views/FrequencyChartTest.java | 36 +-- .../ui/common/views/HistoryChartTest.java | 119 +++++++++ .../show => common}/views/RingViewTest.java | 27 ++- .../show => common}/views/ScoreChartTest.java | 32 +-- .../views/StreakChartTest.java | 34 ++- .../list/views/CheckmarkButtonViewTest.java | 6 +- .../list/views/CheckmarkPanelViewTest.java | 6 +- .../show/views/HabitHistoryChartTest.java | 127 ---------- .../views/CheckmarkWidgetViewTest.java | 15 +- .../CheckmarkButtonControllerTest.java | 20 +- .../HabitCardControllerTest.java | 4 +- .../HabitCardListControllerTest.java | 20 +- .../{views => controllers}/package-info.java | 2 +- 45 files changed, 321 insertions(+), 366 deletions(-) delete mode 100644 app/src/androidTest/assets/views/NumberView/render.png delete mode 100644 app/src/androidTest/assets/views/NumberView/renderDifferentParams.png delete mode 100644 app/src/androidTest/assets/views/NumberView/renderLongLabel.png rename app/src/androidTest/assets/views/{HabitFrequencyView => common/FrequencyChart}/render.png (100%) rename app/src/androidTest/assets/views/{HabitFrequencyView => common/FrequencyChart}/renderDataOffset.png (100%) rename app/src/androidTest/assets/views/{HabitFrequencyView => common/FrequencyChart}/renderDifferentSize.png (100%) rename app/src/androidTest/assets/views/{HabitFrequencyView => common/FrequencyChart}/renderTransparent.png (100%) rename app/src/androidTest/assets/views/{HabitHistoryView => common/HistoryChart}/render.png (100%) rename app/src/androidTest/assets/views/{HabitHistoryView => common/HistoryChart}/renderDataOffset.png (100%) rename app/src/androidTest/assets/views/{HabitHistoryView => common/HistoryChart}/renderDifferentSize.png (100%) rename app/src/androidTest/assets/views/{HabitHistoryView => common/HistoryChart}/renderTransparent.png (100%) rename app/src/androidTest/assets/views/{ => common}/RingView/render.png (100%) rename app/src/androidTest/assets/views/{ => common}/RingView/renderDifferentParams.png (100%) rename app/src/androidTest/assets/views/{HabitScoreView => common/ScoreChart}/render.png (100%) rename app/src/androidTest/assets/views/{HabitScoreView => common/ScoreChart}/renderDataOffset.png (100%) rename app/src/androidTest/assets/views/{HabitScoreView => common/ScoreChart}/renderDifferentSize.png (100%) rename app/src/androidTest/assets/views/{HabitScoreView => common/ScoreChart}/renderMonthly.png (100%) rename app/src/androidTest/assets/views/{HabitScoreView => common/ScoreChart}/renderTransparent.png (100%) rename app/src/androidTest/assets/views/{HabitScoreView => common/ScoreChart}/renderYearly.png (100%) rename app/src/androidTest/assets/views/{HabitStreakView => common/StreakChart}/render.png (100%) rename app/src/androidTest/assets/views/{HabitStreakView => common/StreakChart}/renderSmallSize.png (100%) rename app/src/androidTest/assets/views/{HabitStreakView => common/StreakChart}/renderTransparent.png (100%) rename app/src/androidTest/assets/views/{ui => }/habits/list/CheckmarkButtonView/render_explicit_check.png (100%) rename app/src/androidTest/assets/views/{ui => }/habits/list/CheckmarkButtonView/render_implicit_check.png (100%) rename app/src/androidTest/assets/views/{ui => }/habits/list/CheckmarkButtonView/render_unchecked.png (100%) rename app/src/androidTest/assets/views/{ui => }/habits/list/CheckmarkPanelView/render.png (100%) rename app/src/androidTest/assets/views/{CheckmarkView => widgets/CheckmarkWidgetView}/checked.png (100%) rename app/src/androidTest/assets/views/{CheckmarkView => widgets/CheckmarkWidgetView}/implicitly_checked.png (100%) rename app/src/androidTest/assets/views/{CheckmarkView => widgets/CheckmarkWidgetView}/large_size.png (100%) rename app/src/androidTest/assets/views/{CheckmarkView => widgets/CheckmarkWidgetView}/unchecked.png (100%) rename app/src/androidTest/java/org/isoron/uhabits/ui/{habits/show => common}/views/FrequencyChartTest.java (67%) create mode 100644 app/src/androidTest/java/org/isoron/uhabits/ui/common/views/HistoryChartTest.java rename app/src/androidTest/java/org/isoron/uhabits/ui/{habits/show => common}/views/RingViewTest.java (76%) rename app/src/androidTest/java/org/isoron/uhabits/ui/{habits/show => common}/views/ScoreChartTest.java (77%) rename app/src/androidTest/java/org/isoron/uhabits/ui/{habits/show => common}/views/StreakChartTest.java (69%) delete mode 100644 app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/HabitHistoryChartTest.java rename app/src/test/java/org/isoron/uhabits/ui/habits/list/{views => controllers}/CheckmarkButtonControllerTest.java (83%) rename app/src/test/java/org/isoron/uhabits/ui/habits/list/{views => controllers}/HabitCardControllerTest.java (94%) rename app/src/test/java/org/isoron/uhabits/ui/habits/list/{views => controllers}/HabitCardListControllerTest.java (90%) rename app/src/test/java/org/isoron/uhabits/ui/habits/list/{views => controllers}/package-info.java (93%) diff --git a/app/src/androidTest/assets/views/NumberView/render.png b/app/src/androidTest/assets/views/NumberView/render.png deleted file mode 100644 index 52e65b579b1cbf64c2cd59553a06325b9a997128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5279 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 diff --git a/app/src/androidTest/assets/views/NumberView/renderDifferentParams.png b/app/src/androidTest/assets/views/NumberView/renderDifferentParams.png deleted file mode 100644 index 4b4814f1a3113fab0adbececdfd3e0fa0d8aeb51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3951 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 diff --git a/app/src/androidTest/assets/views/NumberView/renderLongLabel.png b/app/src/androidTest/assets/views/NumberView/renderLongLabel.png deleted file mode 100644 index 89fe4fd328f75478c1d8c7313c882f75a6e4a703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13081 zcmb80cQjm4yzkE-dK*2WjzmwCAxaWNCWzhzQNs{5!VrBT%7|!DM-R~xf*`sCAq*nA zQ6okVF?xL`_ulpHTW`I!-n#xdW|?#LK70T6{(gU--xjT}t4>GFNeuu1-2)ATA$aWp z00=!LIrtkc=iy86Lguadz?c&J38Hks001BG0CCs&dDdpOe>%(P-a*^)80`$HFs6w= zEKk`u{q7=9*Jn?vibO_c+0Lt+NsLlItY*?5M(djGp{1A#-lWS3evbR*{HVZdE|wZj zO2+yn&np@#^HrN+7&UmJKF8@25P&TVXmt9VyS(tWY<;Aq*mcck=EDH{4`&(9Sha$o z|G}lsrDU4km{SLZ5-3B981{Ny?euu#e8s*3@(~+7MMms?b96^ApuD2NUl!ug5ImMl z&&>yzj*aRh;)-h+i^Gmo8245hC4XqPGk2cyHT;=LGJAiRH_}Sp|LS{^dZTIQq zNBqH2tjP82^{MzuO}ldXge9Zm9AWGt!p9-B&z_HtaH|~M+1lUV_j0?^Sd!1e#WkKU z-}~~RA~be8ZWUPVHNDJt-Ka?0f!~8Kf00BY3yWQ8%+SgF75KsWtgXFoi=upOZGQzA zu$w1=O$nsM(kE0Hr{G__C~{mI@xJ`|1$yCHDH=n0co)CDQ2hRV`K{V%y(E()LHA)O zeeO40jUpxvQuouQOR0L4jFNOj8dXNer^qNr3EfVB-7BQ`Mck zRkt0(<6ACc?#2rF3S6%&Z^}UPGB|f31g;V9i3#fE-1P5yHpIBjc+R#w9 z-`<#-N_Td4W3ohWWEDW70CiGD;V_3Dik?@EjZc^~*lHf<#ioaLw96W0X3kx=Zw-f7 zn49^%rs>42OsIZC$Us!?pko3T0{Ct2Yq@XAz!d%9L*rUwxj$()c{BaK#eFz(IN8hu zHcWcrUdZt+nXOw`SOi#7kmiE}M=2#lJ&-F2e>Yv}d$dEC9b2e+mK*GwVq(Is!GD9# zHpr$=B%G&f?UisnX`w^MKHdfm`vS3@yord~y(SN!0rT;Z-@xa0ANir-hYxJlwi8B2 zojx*}C5y_-%v`R9e8mzTzyAmg75=$8y#KInBk6ohuCU=~95^@psF?4a;p$qy?r9bL z+fmYnmf+WGe39qSL*CQd*tkeJ@gac@o(YE9Lv}7Y9pLsHWVM%y0WpH}%2?5nmd=J=n_yc1Bm9xfJB(x^3N{elM#w)q9X zG>=1zRj<=5qTM}VCsm{`O}T*GXg{9+3SVas7xfNK$}pz*c~NDa%owZmY}X>AlL9GM)EZY`6oG2HNLhDTtC_A z+p?AxudQ*L(8{@`Cyi29Ngal_7aqslF!!6018-pdAZ9ED85I-Kn}r5jaSopHqm`-h z@q%)45}QVsGkD-vNyE#^>lc0@*R>4%Q0m>qtNJB*u_a|wY$}zcR~Dzggb1uhG;Em1|AMRX1%t<(O-~=Ie(({LmsTEa7^1wyl028g-{+k0Xg(&h) zejQud@BRrd>^BepE)1&09xFf+!y<9(d`tI9f2Rtn_@H-Rq?~NjxCTsoB;J&^QEk5w z;da^i1IfUI-_Z^OMX$2X(-pwrlQ#AlA9L`H6K^I}U?T3_^o!_kr1DeOrZNE*3ta}l z*4h&&-oQ_vT5R*Ul9O=r@u=bi^Sz1O$f5N=Q_{%uDfY9`m z%T{dwDzIT@XqSPT@9x*2mZ2f9uGWjw<&!1f`^>Zf>2fORD_r%BQ*K!4!iwou=dimJ z8fZpIYDA44hfcpy@%h`*3JA}v_RIcumCk@psA+DM+^o(7}MMY_l=4od9zo4|N zpV@z!wxVjUM1#1L+bQ13dL4zz9la@M!;GoPfZUU-I&SCjY|GA=o<4nOWi(8SoTX`J zzOM&69tC%sB+adCK@D(tlfa3PHOk0{bDH0=uY0o+$(ke-&qdiL^Cge;DnR*kJtHIJ zi^@Idu-8w?^0PkD4hx}{J7 z>bCldQVwuDwKsQ`245aUsNSUIg6p3<{|k_x+bVBgl5t7t$Nk4gCO&jA4X5OIRnALJ zmK8t*5>~Q}e~I|yvegn(Bs`kT%gtAq*V5wbG8DJw!p-**&3}~cSyp~Us<~FS@>M@U zU)ZE<;}4*MyWhuFQ68E_4gq7IY}?tT6VtK7?Ia>`=_#so&9A)dmFT2tgNJMB+BjMF zk5g8GkM66Pt2F4`%8N zkMpP^`7iSU))GDm(Ym5bl47LlY>K+*F*dHNwEaNhPKs(26-NuGF;5Ch0=j;G@8C$c z?%co{j(niX0dMTM=@~+GU+vA+8k1Lzlafd#g9X2#!c$9;wK1|maJy--2|a_8{}FY# zhfu#!S)O^>p~dw8@A*l5$C?r@QEAoMtk4r6Tlg64Ai#kbXRooFFCt7$HFtbzc>!63 zi+IBFsUql(%J|lXX=(4>R1pM)jwbKp^koA|)!P$~ECVe<*DPe8{JaSUix#Hjp+dRq z)Rf1%o>j&R#~$#RACqfh_U==1=%`K)8=Cpe^ak%=9xva4ROMIvc^CKe@ILG~V2JtA zfqizI&r_+ZPCxIgSy-6Xj*ME7%s1wLL(KV=mrJ04LM{&qW=sXlcM7z9!I|ki@lZ075WCzA zO8+mZ!onpv6I_%evApno6n4&0M6cA{Bd0u<>t*H#Q5C>;jzAc9$;@Q9Mj%4o(^tEZ zE7`Skjm@@JnttNuq+K<5AHKQ@s6eFIWb`nN+KclQ%=eHy^9H~ZJ$Lv=^rC;E2grlU(~ zHh-9)Y576;IvaufGe|pXW`;1Bdl4eCM)j)fndu+-0b^i%zn%+O5#MFcKr#Q*R7Vv}$JCZszrPE5rOqM!m@rNI6 z5$fvQ@-S*CV&n7M=U$$D8dsU{W+o=FTE)X69g?%rY6UNphS;uKu(-IoUXdu|x=|S9 zd477tOKu(_Qc_tt*U;E_?9I*1y}Hm5RhbEQ8W39A7tx3eLSJQy4vt{dRm@g0pp>Eo zFc^1y2o?h?dZJ|Y{p(-Ur#Br)_lRcc#3{fzoezN#DIQXn0(oX)v zhYwB=j=Km+TGF`1(IPY z2jYQ8MZVXEWhxJN>)mhNMX;C5Y+;N1Ju9Ax_i?h(M@iTbwwQ);3^h3-Ul@yC1N)VN zVaq6*oETrX!|&@wuS5auI9?4AJ<;)}ABEKmNh274`M@lwZ55$(L~a;NF&xWV>wfY% zXj$&&P0l)Zn?al()6m@&3l&zV&SQeQ8@}#%4Sb2TM}-yNL_+0#mma2ltjYgG3|jPxOU%<oyF3OiVa44&6ie$ODqZE4b5Oq*6MD{xP8s2qFOxJ|4m>E-N}m-yL>HV2zq7 zGt{;L4JU|uEzz|GlwK}Znf@}EEB*NK<0C@zh#c(>XuCK&AF5tu^6wALcgG7swll7X zr5|ZkJ;cp<`rpKAD}BSo!)jm)W#7JiQ(ktR{jEBq|9Eu&%IN55)L{0lgSK-;rsz&y z%!*XWC}hb2d^7JLy`N5aJU+f&Tx<#MFO{fqdY|&Iw6tCcubhm`Bi?Altf*<7JKp9o zp$ouZ<(P-ebcTcK$ZQJCXjg?WjKAKzp9cU0ERg~5sY|pPKU1xvgPs|?S2O-t@0Q0M|1LW@j|`vc!g)ey0tw z&CM~rQ8+z#D;}G>y6V3ahCMjgY<<{slQXuJK5u1*w?lHDWZMalT`Nd`k`Z&V;XpN! zLHdsI+@_@=ZV|V+;E&(?1SY57>s#uIms4nvv!gW5umGVvY0qmgPvZ(JO@BScCGzhH z9`<{z7ybA?qRT5w)GuD-hr??!2$?B-s$m_uF=08ViJu=);ApN8mDU##680Ne<9Wi+ zm0`|2 z3Qug&(Fv3B@DYq1%DT~GN|}AGDdI;}g3BxzTJdwo=O7RleEEq$t1Et=x$5CY9eQnr zT~Xy3U-y_yhfG#1e%78N8_<2a_nZ4b-_?{rpZyv6;4j;XavlYpyNz__ht}LY+5WiIkGc zg~CHy<&=)8qB^|3he7L=!OfrA{`ebEo?cQ4J@fDWF=#(g^fZB-X)TdQ3(J$>vk#^0g8du*S zc5P9pJt4#1D#Kp*qw$t-Ox?BonQ%sC;IxT-^butKN{=>2h}UqDj)Z(1(R&0iobKy<%g{w;3P?GXsw5zAVgCdVO;dNmuz8Zc*nvv zGdTL+ah0ZKX7LULf%KziKwycH$LlV8En?b4%4CgGy%1CMWmSw>f;sta@F;IXjdI8V z#TnW6j*ZD0JY9$UrFOBk0^3Ac<&N4k!BMYpYHZ3#5NyfYI&ek9aSK6LRx zv+yxR2PJ40(o;z4eIRU-!0V-n+^U$flg8UHo_J-U!rKX0UW4_7(^K|#y~5-9uErrQ)QL-0hynzY20SuI?a(S&m8IHeI+Ga?*5v5qK_hOc(NDYRVriZg5rH zM7BbD#J~7i9ngbe&U&kog|?yjVPR+8<{ijuCxRVfH^jtb^a_#Ck2l`!k}~y0_G(T zJ)1Im>xg88j(xC{<58(!I=3VZ$k!(Yo^mZyB16Qr1WADT#y`i;4vnc+fT8D)mTBU~ z(~mS^7T3c$z_1cks%R9yn% zWnT-_VlBKDBG`R@*PytZSkQj~zQUl&H|oP-`s@9XSUQ_BlRy0pFIT7bBB}>oIxrAP zit1m#$76?0jH5EJ|(@zW}o`vPxXFNo(Fst51YZrO$1oMzT6@*?l z5>;=Q;L*%Rf$DAsc?hs_HGC9zO<$DPO89#>RYp#nrk2)MmkjBb%7$d zcPlTpGC&DBg!MmV#09;o#&2ATy0|4p{Olm@-^ln&cGuv896N3!I4V0Y>>jK9^uduX zZn`jKDA%=E+Vp(HECiOQ;g-9Z>5lJa9I8*zp+n~)@w6-{EPUPx5Ayb}0HB3PN;L4_ z6D+AqG@SL`8#Rj`u+)g;Ex*W2KVm~#!wNT~zq3+Dc#v=F)Hd;8r;XGliC=&lC%I)-Mi^W_h5>%GW~3G-3*qgsC&XJ0dFw-LiyRCZCWNxH_OYq zfDYk;UJq_N=$D}K~sg7q-T=dFh^BS-zBh3azv@(8t;U;F~p{M1YJH*7batlu-ga_fYNF}o~)#b;!{1L{;oGpAS-#Wv_=%i@)AtyYrBYUn4%tJ=~X72%yYJ=VO zj|_W>WB1@bW6gwb<>PB1Iz;6P~Fb)m4j=jge8BE1)_4$b>YHVmBP`wojHr=ba_2>SfN8vau^y z?^@kr*c0$gs#f4*p|(oaEv_^O=3`7Wr!wah6I2O6``rt}?5}GW@z7Wgy$RD(W z@xe$PK>(iXO-hhG&8Q9)<&3o+x5<5JD|t!7Nj(;Oa;!Bef-1^Tz64eEnR1}gRi*T5 z+nV^>de5okVlKAJ9yCoS=?a$sL(MIYcgfkS_aYema|2irw&Mej2eK4$f$d#w7vsqf zk#>*r$nW(I*it9loZG+Y|ABgu*YNaHx|h1T`f?BekKf^qLBRUbCo@q>-%heHx+a+i z5EU8DGurmWHF(?9PlK}Q(G)(}F;bEy-w^HLW(IVc9|yw6>?%`f`iR;~5fw$pBy5A8 zbSG~5NS#@gMW?CMc9k2o3)q)6A&rk3K)8knP#N zZ{iV}VMeM(RlyCkdu0&;pNdP53D~ZyTjX!Pu<$hnUQxx&_FVTg-1%qn*>&8`bT!h-*pv`@UPH5YW2Y5oCaZf`Y}7(Q-51_bgT~a0y;r%)7Ou z(o=D`Q?c5U%Wy3ir(pPJk?wYNa}I6DGju(Fq1zuV2=27G{=>fjtR=((7sKV@=3DV{KCiE?uhc*svQEf18fffpeMK3Q-{!auDpd;|wW> z+;?!*?_&|WS=9=x?F)bk;=lo~DRPm2GhQG+X=HzKay>;fC9g7jQGWSo%%X)OR?QQz zB{_^g7B{8R`S6O05!q@jB9F2g%D>MKYlK>kolYA%J9_YgDfa?XVsVxxkow!A@hh$q zHx8M&AMB%EaVhW>1q6)|WHexf7aNw2yqr{vw408=IXKaw1&r^^Y>1}tRc5z6Da^=W zheE~rzcr{7OeMhjfp~XPxXn;*0BAYb z{+aP;XHN8#vFKjeqP#N2_B%Tck#W=kxZeua$w1GItgPCHd2NT(qWt>_B;7!&ZC`nw2!H3~S@2wYwRp6)&4NE4v5#Rs9yniW{1XN6 zd`sn@kVW{6OgDHF>8VRtKf8kFE^}~fZr7eb=)2M6rr(mq(pjq|n6ylKSY7Qel%k2U zEY(8HQT(XzeH@YDU04Jo3CE6S7WqrTL(`hdze}T?K%Xkk8LPyG2nNmQJ<*h7Cb$jt z{3e%Rt~9ast^P_Ln7R(yFO}As+agyRJ?hV+q8Rgyw(!csx6@Y!Yx_8B!@%VCwjO>w z(ccl`;vYJhVZn-(*ZpuZX+^m}a_CfQY!SS7mTSkcn64lmet1w~P+)O9H8?r-V_f(D zUzII-WAGg#n{oHSgR~})&WIt;q0km{6B88TEqlC7hUU8w32iF`f~5UjTwENp)}u5v zX8CJ$jK~mOcMoaW#U;bB!lC4_H{?C(Qjc|E`S)l$(j_&1y1IabuBh1f_pQ~tAfxd$ z>>VUc0IAdZ&T6QH#V6rp%|c&4D?iI|l=6yeU19_c`yakSu0GtRySw|v+6To-NAnIa zL*PLe3lu)`%pgn|Iw(}KI8Gs8Rl%UK{p_Qd4K~i5veIO>tJeQnA~}F%oxVgy65(U) zn@ZE|WgVeeuKZt+X@MZJtPV6AC#OEi7zc^y9MvL!s)|a^~A99$s$-B387L%N5kG#gwIWY!ZJBs4RB^roz_KkV2`$Nr&cgU zNP7crgZ*1Wk5`riTZtzNv>!=`2d)BHHwv>V>Xi2;Pe-fYyVvOXaycnNt)g*scye2Q zXm%dU<3Wla`KJ@9m_JXPohPm}z0Uc;>j=68L)^x9xsB~HOHb6W!>$)OnAC&C7oWiW zFS4#<;)3}x$^HKaWJA%ZAkxZm3hWg4x%F?Z28WJ&P5`$H#cuj^~$D zWTE~F=t?j>oy4Ab)VVhqTw+UTsLE02N%t>I-uZk)TyEPsIXu5a!#16+TbygKrr8vs z%FnEFdwo|ccnQ~Qn0BWA`0?U((4Y8IUcNSCVA#u>mzJ?`S9qA3KUI==|&nlZ0wgibT`>Ob0!9l^K@7*IwQNW|oiHXDIp#DGh zF5m7-jpXn#sy<2wy%-woja)|>TQb%R+&^=dL>AMOn(TY4mK`rq0JgKu{;t>~SQ|Io z@5z)TQE4qy0aS*j#IDzu;g9$cEn5XItKDBg!=>Fp0+@xJGiWMaazRQFCtGJSYvP#` z*(b!qIzO7J~RuXWN;Bfcje~q<|9i>%UnBx6z=x71LJk*U6ElX zDDx1vOJH~XY{2>o*Zt?*J9<$JytCJos}|*(NaeMU{@O#Y`{@aifQLGi3RJ;CkY>qz z7_pK}B9PyFFLQHqGdH5cZm^B$$-sLaGd4Cx3S?2*Qot<0N0D@Uneq#q9@YO# z2tJgh?OI?>HL3ENq&H8Gh-tUtYG~U-5I&8L=5uCWXkf=>PU?tymL1aeN8Mfo!pHAj zzFj(+eF?7iCVc1Lzus7Du5lXlh*v8RB0c1(6K-LWZp%^zw#PvXUEz+eQbNixSYXGR zj{K-2RMn4^wvt=p5U_Xw8rW3n=kgi;{EXHt_N&KKhV~feaL*<@u5pdxjJ|z~tGo0* zvU5!sP=~=0&2ThAm_>22`aQFFpXS~t59I91ot7~DB39LD@j@SfqerHO#}k~wF4WAu zXi8j=dQM1o=+57NTu|wv?>rzJET0aS4p?q5R3Hy6fzxMye|3#sx#@Pui7rok5~4#B zq3Q)FsLwvT3lSSu1Hmp=w?9|=-!kkTsmPM~Z20@+9leHLN01t3VE=;}=7dB&Ga3U4 zdjD($_?!u0U?%cB5{L@8f*2_s2wX}r3#s^5-B3aPz8-id*}}-jTN(?JbY6qy+&F78 zO1Sctl?}B9IPeXi7rTwNQhoa)5f@ZcR&bxL(C;4QUrzYRS;?TIS#)v}!%u%Bj{kyt zA-2=2cR;c&K;*7*Kj8zCz&KLYE;O`OCN(iJ0TVtg+$j@uDdo0@t7{o;0fYW=aoH!+f=AU<{z z?%`O&lH-9)IZtMIptLs}VqA{4cr(ZV+9x>CbHtAkbaK{UW8OFLk&%(nU=5)@ZS zw450%WPt?|=5|`(mXD9m?PYo0pQsrja7ZaueFDsoO4(QeYxo1rBmAr)`=>IA1S(%( zZaa8aTMFC!zp*3YlQKFO++43GYFv$8`LedQruQ!SabdF4=Ze5+i@>@}Mtc%;HFb9C z9u-r3ckW}tz|wb@rL{STIO(<-P=o0Kw%rWol0KgTR|r_lP#kYab*u$}n+!Sz>+gT# z3Nj=G>y%!Et)ZG?4l~`W71si3VQ(7?bjEyxiw{nn`X3-sA}T{Fy&(m=#i+WGTl=)e zEqOOW1YgH%vZVkPG)s@v6wtU^G_ta?Hns%r(V#Eug{JkJVsVQy_g3q*MEqWLFY-#k zuQ5eiz&N!KnGuZT0qddCSkP=Sze_Hl>p0Y=tg;6cVe-Yer|5m`*#8?LLLAyj$W*cq z1m|pp%+Se`*L0$VQOxDuNK?w8#mly_MTWxW=&MQJt6B@kR>7^$?^SlekTK^A`rMmf zP7O+41G|carhm9+)nrnO`Mr1GL7Nxgv8og?5ia`B%RrFpv2u#x`PH5PnT!{(6)JhE zc^)8;FKM5^3YZP%Du?Q{?GOU<_DMA!&ToDHIIys>%DMcf)k@a5mH}Hs=Xqbe3oL_KYy1} zYO?-hTc3d*1gAypCE?VwzUDQtv@EQX6y_gozhFS0?S){mC!iWSO+gV3a|ta4d5H;S zRZMbqK|=2z+ZP~Tq#m*^-7 z$8`4gI919htlln)42!i9%-3k$;0rk}%bR++HCA9Z3p(loMtdc6%@30h6{aCE#3w$^ z*x8hV(*}UB_w&QQLTu%tJQPqi*qa6s^bMS!s_7lM%p&t`D{j=|z@JpI`jrN7Z!ste z`BEtV%==pAdQ5c%Xx~8t1)q2(afXxW@9KHsj&BpnuPm8~(iy(3oMvT1)finXP**Z^ zY^3g6HpyflTr8lPrHjx?Omx_1;Aetzf5pX5)dfGQ@P47fVtn$iEN@Numt0yd+=iJ{ z^b7F|E~wb>8wl9rJ5yc93qo;RpiYE@gGdOs|;f0~1b!5>8_?dA_mLQ4_TK zlXEq`x}vx9(8%TpoV10sX8A8f2q)E03T0$r9HvSWD+0Qv5++t0{T5Un4 z$d9qH{fAXsvY;1>ZEaiK3X1x(ujE9)mKv97RX3aqual^Vvjvi&(=LU)W`wOOS3EoL zC1^b+Xo#q3l5W0CFFHckyMqOBj57@6U}txph7>UV8Ubqw$y+rPoSdAg8X|KlgmG6x zu*Sq*E&C_TRDY8O7Zh;Vl?3;FP>N-cHo`8e*LN_*^P zxekX7d{=*aM~Ie4!~b!xAjRxiaEoAC>(Xq*tbYU3-|e_soMf6%aw( z7byW(6bqUcOdgm4w|kd2TL%_ffz1czfh3;|Hmj4LnN|>9se?tjTOhQml>Vw$58`}J z%Gw(L`wc11FJY37R`CkngrHyY1NVCzP7lHgMkQa<2*-~F>lut``y z(m@D`)UaL~NaXrdeFJEh=|A~+pXxusqQ6*fus&^skj8!C5)i-V`gh=ZXzi?#9N$PM zCwsZO&7*l_wr;vl?TT#$(*T3@_4NmzxQ7&)*JNwPDs4i=q5g7nn|H*E^`5r(HuA(R zW>H*oDqh2y+t`Gf@OPp4ICddlS@ZH-%uP951h2FQh%7CfnQJb{4`>6kSp(gwn98N~ zL#HIoLLLx^Z$T#LEY)hr9d@ZHt@N zLsiUxf!G@Mjq7}P$AZLjO?}*{b7+_Vc=&-A&~u5!9yQOdye?^oRm;RUrb_&~W$ZY2ITprS6rZSYp~ zl7fkme!~U0C<)gaLh4s_aQ`v>Q6cl&2!eIT_T9>m- z04cz1$@qP!F+5n*CW<`1b8z6k2)lGG-WC7C-gR24{J^qLmnXz zTp)1Q5LqU{9x;!Oh(7Rpn;e`l3a(Ni?(QQIXd$He%BN2j4Xnlji9MNdi_Mht`Y=xL z=u)p&mW?z~%;nQYkB{P=7)&+$v^&FmFj%TMSqECnm7I_vPdBG(=d=ZrdZN}FdBFo) zLCo*#NlFejl|Kj)G0RV=Fcq>oHQ#Ts#doL4$H8gZhgyqLS$F+JCYceM z{x3aOI}CsvI|BQ=h&yw+5>XcI7{mwMKWc z6VQATu}5TkLpr3RpSWJF0GDC%aYmJ?=X&-?Psnm8w&90HS`nq9N+c!jQ89tL`3$UN znZLZ&qFV@7lvlQ8;9Kug51Wmxtb$G6`l names = new LinkedList<>(); + names.add(name); + assertHabitsExist(names); + } - onView(withId(R.id.tvFreqNum)) - .perform(replaceText(num)); - onView(withId(R.id.tvFreqDen)) - .perform(replaceText(den)); + public static void assertHabitsDontExist(List names) + { + for (String name : names) + onView(withId(R.id.listView)).check(matches(Matchers.not( + HabitMatchers.containsHabit(HabitMatchers.withName(name))))); } - public static void selectHabit(String name) + public static void assertHabitsExist(List names) { - selectHabits(Collections.singletonList(name)); + for (String name : names) + onData(Matchers.allOf(is(instanceOf(Habit.class)), + HabitMatchers.withName(name))).check(matches(isDisplayed())); } - public static void selectHabits(List names) + private static void clickHiddenMenuItem(int stringId) { - boolean first = true; - for(String name : names) + try { - onData( - Matchers.allOf(is(instanceOf(HabitRecord.class)), HabitMatchers.withName(name))) - .onChildView(withId(R.id.label)) - .perform(first ? longClick() : click()); - - first = false; + // Try the ActionMode overflow menu first + onView(allOf(withContentDescription("More options"), withParent( + withParent(withClassName(containsString("Action")))))).perform( + click()); + } + catch (Exception e1) + { + // Try the toolbar overflow menu + onView(allOf(withContentDescription("More options"), withParent( + withParent(withClassName(containsString("Toolbar")))))).perform( + click()); } - } - public static void assertHabitsDontExist(List names) - { - for(String name : names) - onView(withId(R.id.listView)) - .check(matches(Matchers.not( - HabitMatchers.containsHabit(HabitMatchers.withName(name))))); + onView(withText(stringId)).perform(click()); } - public static void assertHabitExists(String name) + public static void clickMenuItem(int stringId) { - List names = new LinkedList<>(); - names.add(name); - assertHabitsExist(names); + try + { + onView(withText(stringId)).perform(click()); + } + catch (Exception e1) + { + try + { + onView(withContentDescription(stringId)).perform(click()); + } + catch (Exception e2) + { + clickHiddenMenuItem(stringId); + } + } } - public static void assertHabitsExist(List names) + public static void clickSettingsItem(String text) { - for(String name : names) - onData( - Matchers.allOf(is(instanceOf(HabitRecord.class)), HabitMatchers.withName(name))) - .check(matches(isDisplayed())); + onView(withClassName(containsString("RecyclerView"))).perform( + RecyclerViewActions.actionOnItem( + hasDescendant(withText(containsString(text))), click())); } public static void deleteHabit(String name) @@ -176,53 +149,51 @@ public class MainActivityActions { selectHabits(names); clickMenuItem(R.string.delete); - onView(withText("OK")) - .perform(click()); + onView(withText("OK")).perform(click()); assertHabitsDontExist(names); } - public static void clickMenuItem(int stringId) + public static void selectHabit(String name) { - try - { - onView(withText(stringId)).perform(click()); - } - catch (Exception e1) + selectHabits(Collections.singletonList(name)); + } + + public static void selectHabits(List names) + { + boolean first = true; + for (String name : names) { - try - { - onView(withContentDescription(stringId)).perform(click()); - } - catch(Exception e2) - { - clickHiddenMenuItem(stringId); - } + onData(Matchers.allOf(is(instanceOf(Habit.class)), + HabitMatchers.withName(name))) + .onChildView(withId(R.id.label)) + .perform(first ? longClick() : click()); + + first = false; } } - private static void clickHiddenMenuItem(int stringId) + public static void typeHabitData(String name, + String description, + String num, + String den) { + onView(withId(R.id.tvName)).perform(replaceText(name)); + onView(withId(R.id.tvDescription)).perform(replaceText(description)); + try { - // Try the ActionMode overflow menu first - onView(allOf(withContentDescription("More options"), withParent(withParent( - withClassName(containsString("Action")))))).perform(click()); + onView(allOf(withId(R.id.sFrequency), + withEffectiveVisibility(VISIBLE))).perform(click()); + onData(allOf(instanceOf(String.class), startsWith("Custom"))) + .inRoot(isPlatformPopup()) + .perform(click()); } - catch (Exception e1) + catch (NoMatchingViewException e) { - // Try the toolbar overflow menu - onView(allOf(withContentDescription("More options"), withParent(withParent( - withClassName(containsString("Toolbar")))))).perform(click()); + // ignored } - onView(withText(stringId)).perform(click()); - } - - public static void clickSettingsItem(String text) - { - onView(withClassName(containsString("RecyclerView"))) - .perform(RecyclerViewActions.actionOnItem( - hasDescendant(withText(containsString(text))), - click())); + onView(withId(R.id.tvFreqNum)).perform(replaceText(num)); + onView(withId(R.id.tvFreqDen)).perform(replaceText(den)); } } diff --git a/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java b/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java index 75798c8aa..420f90d36 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java @@ -30,7 +30,7 @@ import android.test.suitebuilder.annotation.*; import org.hamcrest.*; import org.isoron.uhabits.*; import org.isoron.uhabits.R; -import org.isoron.uhabits.models.sqlite.records.*; +import org.isoron.uhabits.models.*; import org.isoron.uhabits.utils.*; import org.junit.*; import org.junit.runner.*; @@ -121,14 +121,14 @@ public class MainTest { String name = addHabit(true); - onData(Matchers.allOf(is(instanceOf(HabitRecord.class)), + onData(Matchers.allOf(is(instanceOf(Habit.class)), HabitMatchers.withName(name))) .onChildView(withId(R.id.checkmarkPanel)) .perform(toggleAllCheckmarks()); Thread.sleep(1200); - onData(Matchers.allOf(is(instanceOf(HabitRecord.class)), + onData(Matchers.allOf(is(instanceOf(Habit.class)), HabitMatchers.withName(name))) .onChildView(withId(R.id.label)) .perform(click()); @@ -193,7 +193,7 @@ public class MainTest { String name = addHabit(); - onData(Matchers.allOf(is(instanceOf(HabitRecord.class)), + onData(Matchers.allOf(is(instanceOf(Habit.class)), HabitMatchers.withName(name))) .onChildView(withId(R.id.label)) .perform(longClick()); @@ -224,7 +224,7 @@ public class MainTest { String name = addHabit(); - onData(Matchers.allOf(is(instanceOf(HabitRecord.class)), + onData(Matchers.allOf(is(instanceOf(Habit.class)), HabitMatchers.withName(name))) .onChildView(withId(R.id.label)) .perform(click()); diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/FrequencyChartTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/FrequencyChartTest.java similarity index 67% rename from app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/FrequencyChartTest.java rename to app/src/androidTest/java/org/isoron/uhabits/ui/common/views/FrequencyChartTest.java index a076f61a8..2240254f3 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/FrequencyChartTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/FrequencyChartTest.java @@ -17,25 +17,26 @@ * with this program. If not, see . */ -package org.isoron.uhabits.ui.habits.show.views; +package org.isoron.uhabits.ui.common.views; -import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.runner.*; +import android.test.suitebuilder.annotation.*; -import org.apache.commons.lang3.*; import org.isoron.uhabits.*; -import org.isoron.uhabits.models.Habit; -import org.isoron.uhabits.ui.common.views.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.isoron.uhabits.models.*; +import org.isoron.uhabits.utils.*; +import org.junit.*; +import org.junit.runner.*; @RunWith(AndroidJUnit4.class) -@SmallTest +@MediumTest public class FrequencyChartTest extends BaseViewTest { + public static final String BASE_PATH = "common/FrequencyChart/"; + private FrequencyChart view; + @Override @Before public void setUp() { @@ -45,16 +46,15 @@ public class FrequencyChartTest extends BaseViewTest Habit habit = fixtures.createLongHabit(); view = new FrequencyChart(targetContext); - throw new NotImplementedException(""); -// view.setHabit(habit); -// refreshData(view); -// measureView(dpToPixels(300), dpToPixels(100), view); + view.setFrequency(habit.getRepetitions().getWeekdayFrequency()); + view.setColor(ColorUtils.getAndroidTestColor(habit.getColor())); + measureView(dpToPixels(300), dpToPixels(100), view); } @Test public void testRender() throws Throwable { - assertRenders(view, "HabitFrequencyView/render.png"); + assertRenders(view, BASE_PATH + "render.png"); } @Test @@ -63,20 +63,20 @@ public class FrequencyChartTest extends BaseViewTest view.onScroll(null, null, -dpToPixels(150), 0); view.invalidate(); - assertRenders(view, "HabitFrequencyView/renderDataOffset.png"); + assertRenders(view, BASE_PATH + "renderDataOffset.png"); } @Test public void testRender_withDifferentSize() throws Throwable { measureView(dpToPixels(200), dpToPixels(200), view); - assertRenders(view, "HabitFrequencyView/renderDifferentSize.png"); + assertRenders(view, BASE_PATH + "renderDifferentSize.png"); } @Test public void testRender_withTransparentBackground() throws Throwable { view.setIsBackgroundTransparent(true); - assertRenders(view, "HabitFrequencyView/renderTransparent.png"); + assertRenders(view, BASE_PATH + "renderTransparent.png"); } } diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/HistoryChartTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/HistoryChartTest.java new file mode 100644 index 000000000..af5b3f3f5 --- /dev/null +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/HistoryChartTest.java @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +package org.isoron.uhabits.ui.common.views; + +import android.support.test.runner.*; +import android.test.suitebuilder.annotation.*; + +import org.isoron.uhabits.*; +import org.isoron.uhabits.models.*; +import org.isoron.uhabits.utils.*; +import org.junit.*; +import org.junit.runner.*; + +@RunWith(AndroidJUnit4.class) +@MediumTest +public class HistoryChartTest extends BaseViewTest +{ + private static final String BASE_PATH = "common/HistoryChart/"; + + private HistoryChart chart; + + @Override + @Before + public void setUp() + { + super.setUp(); + + fixtures.purgeHabits(habitList); + Habit habit = fixtures.createLongHabit(); + + chart = new HistoryChart(targetContext); + chart.setCheckmarks(habit.getCheckmarks().getAllValues()); + chart.setColor(ColorUtils.getAndroidTestColor(habit.getColor())); + measureView(dpToPixels(400), dpToPixels(200), chart); + } + +// @Test +// public void tapDate_atInvalidLocations() throws Throwable +// { +// int expectedCheckmarkValues[] = habit.getCheckmarks().getAllValues(); +// +// chart.setIsEditable(true); +// tap(chart, 118, 13); // header +// tap(chart, 336, 60); // tomorrow's square +// tap(chart, 370, 60); // right axis +// waitForAsyncTasks(); +// +// int actualCheckmarkValues[] = habit.getCheckmarks().getAllValues(); +// assertThat(actualCheckmarkValues, equalTo(expectedCheckmarkValues)); +// } +// +// @Test +// public void tapDate_withEditableView() throws Throwable +// { +// chart.setIsEditable(true); +// tap(chart, 340, 40); // today's square +// waitForAsyncTasks(); +// +// long today = DateUtils.getStartOfToday(); +// assertFalse(habit.getRepetitions().containsTimestamp(today)); +// } +// +// @Test +// public void tapDate_withReadOnlyView() throws Throwable +// { +// chart.setIsEditable(false); +// tap(chart, 340, 40); // today's square +// waitForAsyncTasks(); +// +// long today = DateUtils.getStartOfToday(); +// assertTrue(habit.getRepetitions().containsTimestamp(today)); +// } + + @Test + public void testRender() throws Throwable + { + assertRenders(chart, BASE_PATH + "render.png"); + } + + @Test + public void testRender_withDataOffset() throws Throwable + { + chart.onScroll(null, null, -dpToPixels(150), 0); + chart.invalidate(); + + assertRenders(chart, BASE_PATH + "renderDataOffset.png"); + } + + @Test + public void testRender_withDifferentSize() throws Throwable + { + measureView(dpToPixels(200), dpToPixels(200), chart); + assertRenders(chart, BASE_PATH + "renderDifferentSize.png"); + } + + @Test + public void testRender_withTransparentBackground() throws Throwable + { + chart.setIsBackgroundTransparent(true); + assertRenders(chart, BASE_PATH + "renderTransparent.png"); + } +} diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/RingViewTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/RingViewTest.java similarity index 76% rename from app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/RingViewTest.java rename to app/src/androidTest/java/org/isoron/uhabits/ui/common/views/RingViewTest.java index 132c4bebf..7512bc107 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/RingViewTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/RingViewTest.java @@ -17,27 +17,28 @@ * with this program. If not, see . */ -package org.isoron.uhabits.ui.habits.show.views; +package org.isoron.uhabits.ui.common.views; -import android.graphics.Color; -import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; +import android.graphics.*; +import android.support.test.runner.*; +import android.test.suitebuilder.annotation.*; import org.isoron.uhabits.*; -import org.isoron.uhabits.ui.common.views.*; -import org.isoron.uhabits.utils.ColorUtils; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.isoron.uhabits.utils.*; +import org.junit.*; +import org.junit.runner.*; -import java.io.IOException; +import java.io.*; @RunWith(AndroidJUnit4.class) -@SmallTest +@MediumTest public class RingViewTest extends BaseViewTest { + private static final String BASE_PATH = "common/RingView/"; + private RingView view; + @Override @Before public void setUp() { @@ -55,7 +56,7 @@ public class RingViewTest extends BaseViewTest public void testRender_base() throws IOException { measureView(dpToPixels(100), dpToPixels(100), view); - assertRenders(view, "RingView/render.png"); + assertRenders(view, BASE_PATH + "render.png"); } @Test @@ -65,6 +66,6 @@ public class RingViewTest extends BaseViewTest view.setColor(ColorUtils.getAndroidTestColor(5)); measureView(dpToPixels(200), dpToPixels(200), view); - assertRenders(view, "RingView/renderDifferentParams.png"); + assertRenders(view, BASE_PATH + "renderDifferentParams.png"); } } diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/ScoreChartTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/ScoreChartTest.java similarity index 77% rename from app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/ScoreChartTest.java rename to app/src/androidTest/java/org/isoron/uhabits/ui/common/views/ScoreChartTest.java index ee4f86147..50346aa17 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/ScoreChartTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/ScoreChartTest.java @@ -17,24 +17,24 @@ * with this program. If not, see . */ -package org.isoron.uhabits.ui.habits.show.views; +package org.isoron.uhabits.ui.common.views; -import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; -import android.util.Log; +import android.support.test.runner.*; +import android.test.suitebuilder.annotation.*; +import android.util.*; import org.isoron.uhabits.*; -import org.isoron.uhabits.models.Habit; -import org.isoron.uhabits.ui.common.views.*; +import org.isoron.uhabits.models.*; import org.isoron.uhabits.utils.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.*; +import org.junit.runner.*; @RunWith(AndroidJUnit4.class) -@SmallTest +@MediumTest public class ScoreChartTest extends BaseViewTest { + private static final String BASE_PATH = "common/ScoreChart/"; + private Habit habit; private ScoreChart view; @@ -60,7 +60,7 @@ public class ScoreChartTest extends BaseViewTest { Log.d("HabitScoreViewTest", String.format("height=%d", dpToPixels(100))); - assertRenders(view, "HabitScoreView/render.png"); + assertRenders(view, BASE_PATH + "render.png"); } @Test @@ -69,14 +69,14 @@ public class ScoreChartTest extends BaseViewTest view.onScroll(null, null, -dpToPixels(150), 0); view.invalidate(); - assertRenders(view, "HabitScoreView/renderDataOffset.png"); + assertRenders(view, BASE_PATH + "renderDataOffset.png"); } @Test public void testRender_withDifferentSize() throws Throwable { measureView(dpToPixels(200), dpToPixels(200), view); - assertRenders(view, "HabitScoreView/renderDifferentSize.png"); + assertRenders(view, BASE_PATH + "renderDifferentSize.png"); } @Test @@ -86,14 +86,14 @@ public class ScoreChartTest extends BaseViewTest view.setBucketSize(30); view.invalidate(); - assertRenders(view, "HabitScoreView/renderMonthly.png"); + assertRenders(view, BASE_PATH + "renderMonthly.png"); } @Test public void testRender_withTransparentBackground() throws Throwable { view.setIsTransparencyEnabled(true); - assertRenders(view, "HabitScoreView/renderTransparent.png"); + assertRenders(view, BASE_PATH + "renderTransparent.png"); } @Test @@ -103,6 +103,6 @@ public class ScoreChartTest extends BaseViewTest view.setBucketSize(365); view.invalidate(); - assertRenders(view, "HabitScoreView/renderYearly.png"); + assertRenders(view, BASE_PATH + "renderYearly.png"); } } diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/StreakChartTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/StreakChartTest.java similarity index 69% rename from app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/StreakChartTest.java rename to app/src/androidTest/java/org/isoron/uhabits/ui/common/views/StreakChartTest.java index cf8bf7309..44f7c7280 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/StreakChartTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/common/views/StreakChartTest.java @@ -17,23 +17,23 @@ * with this program. If not, see . */ -package org.isoron.uhabits.ui.habits.show.views; +package org.isoron.uhabits.ui.common.views; -import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.runner.*; +import android.test.suitebuilder.annotation.*; -import org.apache.commons.lang3.*; import org.isoron.uhabits.*; -import org.isoron.uhabits.models.Habit; -import org.isoron.uhabits.ui.common.views.*; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.isoron.uhabits.models.*; +import org.isoron.uhabits.utils.*; +import org.junit.*; +import org.junit.runner.*; @RunWith(AndroidJUnit4.class) -@SmallTest +@MediumTest public class StreakChartTest extends BaseViewTest { + private static final String BASE_PATH = "common/StreakChart/"; + private StreakChart view; @Override @@ -46,32 +46,28 @@ public class StreakChartTest extends BaseViewTest Habit habit = fixtures.createLongHabit(); view = new StreakChart(targetContext); + view.setColor(ColorUtils.getAndroidTestColor(habit.getColor())); + view.setStreaks(habit.getStreaks().getBest(5)); measureView(dpToPixels(300), dpToPixels(100), view); - throw new NotImplementedException(""); - -// view.setHabit(habit); -// refreshData(view); } @Test public void testRender() throws Throwable { - assertRenders(view, "HabitStreakView/render.png"); + assertRenders(view, BASE_PATH + "render.png"); } @Test public void testRender_withSmallSize() throws Throwable { measureView(dpToPixels(100), dpToPixels(100), view); -// refreshData(view); - - assertRenders(view, "HabitStreakView/renderSmallSize.png"); + assertRenders(view, BASE_PATH + "renderSmallSize.png"); } @Test public void testRender_withTransparentBackground() throws Throwable { view.setIsBackgroundTransparent(true); - assertRenders(view, "HabitStreakView/renderTransparent.png"); + assertRenders(view, BASE_PATH + "renderTransparent.png"); } } diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkButtonViewTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkButtonViewTest.java index 21f94256f..e1c474d25 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkButtonViewTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkButtonViewTest.java @@ -20,7 +20,7 @@ package org.isoron.uhabits.ui.habits.list.views; import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; +import android.test.suitebuilder.annotation.*; import org.isoron.uhabits.models.Checkmark; import org.isoron.uhabits.BaseViewTest; @@ -33,10 +33,10 @@ import java.io.IOException; import java.util.concurrent.CountDownLatch; @RunWith(AndroidJUnit4.class) -@SmallTest +@MediumTest public class CheckmarkButtonViewTest extends BaseViewTest { - public static final String PATH = "ui/habits/list/CheckmarkButtonView/"; + public static final String PATH = "habits/list/CheckmarkButtonView/"; private CountDownLatch latch; diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkPanelViewTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkPanelViewTest.java index 1a81bfff1..684f82746 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkPanelViewTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkPanelViewTest.java @@ -20,7 +20,7 @@ package org.isoron.uhabits.ui.habits.list.views; import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; +import android.test.suitebuilder.annotation.*; import org.isoron.uhabits.models.Checkmark; import org.isoron.uhabits.models.Habit; @@ -33,10 +33,10 @@ import org.junit.runner.RunWith; import java.util.concurrent.CountDownLatch; @RunWith(AndroidJUnit4.class) -@SmallTest +@MediumTest public class CheckmarkPanelViewTest extends BaseViewTest { - public static final String PATH = "ui/habits/list/CheckmarkPanelView/"; + public static final String PATH = "habits/list/CheckmarkPanelView/"; private CountDownLatch latch; private CheckmarkPanelView view; diff --git a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/HabitHistoryChartTest.java b/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/HabitHistoryChartTest.java deleted file mode 100644 index 8e502ecd9..000000000 --- a/app/src/androidTest/java/org/isoron/uhabits/ui/habits/show/views/HabitHistoryChartTest.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (C) 2016 Álinson Santos Xavier - * - * This file is part of Loop Habit Tracker. - * - * Loop Habit Tracker is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Loop Habit Tracker is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - */ - -package org.isoron.uhabits.ui.habits.show.views; - -import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; - -import org.apache.commons.lang3.*; -import org.isoron.uhabits.*; -import org.isoron.uhabits.models.Habit; -import org.isoron.uhabits.ui.common.views.*; -import org.isoron.uhabits.utils.DateUtils; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; - -@RunWith(AndroidJUnit4.class) -@SmallTest -public class HabitHistoryChartTest extends BaseViewTest -{ - private Habit habit; - - private HistoryChart chart; - - @Before - public void setUp() - { - super.setUp(); - - fixtures.purgeHabits(habitList); - habit = fixtures.createLongHabit(); - - chart = new HistoryChart(targetContext); - throw new NotImplementedException(""); -// chart.setHabit(habit); -// measureView(dpToPixels(400), dpToPixels(200), chart); -// refreshData(chart); - } - - @Test - public void tapDate_atInvalidLocations() throws Throwable - { - int expectedCheckmarkValues[] = habit.getCheckmarks().getAllValues(); - - chart.setIsEditable(true); - tap(chart, 118, 13); // header - tap(chart, 336, 60); // tomorrow's square - tap(chart, 370, 60); // right axis - waitForAsyncTasks(); - - int actualCheckmarkValues[] = habit.getCheckmarks().getAllValues(); - assertThat(actualCheckmarkValues, equalTo(expectedCheckmarkValues)); - } - - @Test - public void tapDate_withEditableView() throws Throwable - { - chart.setIsEditable(true); - tap(chart, 340, 40); // today's square - waitForAsyncTasks(); - - long today = DateUtils.getStartOfToday(); - assertFalse(habit.getRepetitions().containsTimestamp(today)); - } - - @Test - public void tapDate_withReadOnlyView() throws Throwable - { - chart.setIsEditable(false); - tap(chart, 340, 40); // today's square - waitForAsyncTasks(); - - long today = DateUtils.getStartOfToday(); - assertTrue(habit.getRepetitions().containsTimestamp(today)); - } - - @Test - public void testRender() throws Throwable - { - assertRenders(chart, "HabitHistoryView/render.png"); - } - - @Test - public void testRender_withDataOffset() throws Throwable - { - chart.onScroll(null, null, -dpToPixels(150), 0); - chart.invalidate(); - - assertRenders(chart, "HabitHistoryView/renderDataOffset.png"); - } - - @Test - public void testRender_withDifferentSize() throws Throwable - { - measureView(dpToPixels(200), dpToPixels(200), chart); - assertRenders(chart, "HabitHistoryView/renderDifferentSize.png"); - } - - @Test - public void testRender_withTransparentBackground() throws Throwable - { - chart.setIsBackgroundTransparent(true); - assertRenders(chart, "HabitHistoryView/renderTransparent.png"); - } -} diff --git a/app/src/androidTest/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetViewTest.java b/app/src/androidTest/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetViewTest.java index 558c72cb1..9b7fc14d3 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetViewTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/widgets/views/CheckmarkWidgetViewTest.java @@ -20,7 +20,7 @@ package org.isoron.uhabits.widgets.views; import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.SmallTest; +import android.test.suitebuilder.annotation.*; import org.isoron.uhabits.*; import org.isoron.uhabits.models.Habit; @@ -33,13 +33,16 @@ import org.junit.runner.RunWith; import java.io.IOException; @RunWith(AndroidJUnit4.class) -@SmallTest +@MediumTest public class CheckmarkWidgetViewTest extends BaseViewTest { + private static final String PATH = "widgets/CheckmarkWidgetView/"; + private CheckmarkWidgetView view; private Habit habit; + @Override @Before public void setUp() { @@ -56,7 +59,7 @@ public class CheckmarkWidgetViewTest extends BaseViewTest @Test public void testRender_checked() throws IOException { - assertRenders(view, "CheckmarkView/checked.png"); + assertRenders(view, PATH + "checked.png"); } @Test @@ -69,14 +72,14 @@ public class CheckmarkWidgetViewTest extends BaseViewTest habit.getRepetitions().toggleTimestamp(today - 2 * day); view.refreshData(); - assertRenders(view, "CheckmarkView/implicitly_checked.png"); + assertRenders(view, PATH + "implicitly_checked.png"); } @Test public void testRender_largeSize() throws IOException { measureView(dpToPixels(300), dpToPixels(300), view); - assertRenders(view, "CheckmarkView/large_size.png"); + assertRenders(view, PATH + "large_size.png"); } @Test @@ -85,6 +88,6 @@ public class CheckmarkWidgetViewTest extends BaseViewTest habit.getRepetitions().toggleTimestamp(DateUtils.getStartOfToday()); view.refreshData(); - assertRenders(view, "CheckmarkView/unchecked.png"); + assertRenders(view, PATH + "unchecked.png"); } } diff --git a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkButtonControllerTest.java b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/CheckmarkButtonControllerTest.java similarity index 83% rename from app/src/test/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkButtonControllerTest.java rename to app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/CheckmarkButtonControllerTest.java index 6346c2540..fda50b089 100644 --- a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/CheckmarkButtonControllerTest.java +++ b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/CheckmarkButtonControllerTest.java @@ -17,18 +17,14 @@ * with this program. If not, see . */ -package org.isoron.uhabits.ui.habits.list.views; - -import org.isoron.uhabits.BaseUnitTest; -import org.isoron.uhabits.models.Habit; -import org.isoron.uhabits.ui.habits.list.controllers.CheckmarkButtonController; -import org.junit.Before; -import org.junit.Test; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +package org.isoron.uhabits.ui.habits.list.controllers; + +import org.isoron.uhabits.*; +import org.isoron.uhabits.models.*; +import org.isoron.uhabits.ui.habits.list.views.*; +import org.junit.*; + +import static org.mockito.Mockito.*; public class CheckmarkButtonControllerTest extends BaseUnitTest { diff --git a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/HabitCardControllerTest.java b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/HabitCardControllerTest.java similarity index 94% rename from app/src/test/java/org/isoron/uhabits/ui/habits/list/views/HabitCardControllerTest.java rename to app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/HabitCardControllerTest.java index 3accec05a..a497bba75 100644 --- a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/HabitCardControllerTest.java +++ b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/HabitCardControllerTest.java @@ -17,11 +17,11 @@ * with this program. If not, see . */ -package org.isoron.uhabits.ui.habits.list.views; +package org.isoron.uhabits.ui.habits.list.controllers; import org.isoron.uhabits.*; import org.isoron.uhabits.models.*; -import org.isoron.uhabits.ui.habits.list.controllers.*; +import org.isoron.uhabits.ui.habits.list.views.*; import org.isoron.uhabits.utils.*; import org.junit.*; diff --git a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/HabitCardListControllerTest.java b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/HabitCardListControllerTest.java similarity index 90% rename from app/src/test/java/org/isoron/uhabits/ui/habits/list/views/HabitCardListControllerTest.java rename to app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/HabitCardListControllerTest.java index 5a577d7fd..ab7ccda72 100644 --- a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/HabitCardListControllerTest.java +++ b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/HabitCardListControllerTest.java @@ -17,21 +17,17 @@ * with this program. If not, see . */ -package org.isoron.uhabits.ui.habits.list.views; +package org.isoron.uhabits.ui.habits.list.controllers; -import org.isoron.uhabits.BaseUnitTest; -import org.isoron.uhabits.models.Habit; -import org.isoron.uhabits.ui.habits.list.controllers.HabitCardListController; -import org.isoron.uhabits.ui.habits.list.model.HabitCardListAdapter; -import org.junit.Before; -import org.junit.Test; +import org.isoron.uhabits.*; +import org.isoron.uhabits.models.*; +import org.isoron.uhabits.ui.habits.list.model.*; +import org.isoron.uhabits.ui.habits.list.views.*; +import org.junit.*; -import java.util.LinkedList; +import java.util.*; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.*; public class HabitCardListControllerTest extends BaseUnitTest { diff --git a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/package-info.java b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/package-info.java similarity index 93% rename from app/src/test/java/org/isoron/uhabits/ui/habits/list/views/package-info.java rename to app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/package-info.java index 67a18717a..fde4eb82c 100644 --- a/app/src/test/java/org/isoron/uhabits/ui/habits/list/views/package-info.java +++ b/app/src/test/java/org/isoron/uhabits/ui/habits/list/controllers/package-info.java @@ -20,4 +20,4 @@ /** * Contains views for ListHabitsActivity */ -package org.isoron.uhabits.ui.habits.list.views; \ No newline at end of file +package org.isoron.uhabits.ui.habits.list.controllers; \ No newline at end of file