From 3dd0b2cdd3632d844e1126ec3c58d4eb8de12c6b Mon Sep 17 00:00:00 2001 From: nivetha-nagalingam Date: Mon, 27 Jan 2025 19:01:35 +0530 Subject: [PATCH 1/4] Migrated the ContextMenu related test cases --- .../android/ContextActionsIconImageSource.png | Bin 0 -> 15461 bytes ...ntextActionsIconImageSourceInYellowBox.png | Bin 0 -> 19773 bytes ...xtActionsIconImageSourceWithCoffeeIcon.png | Bin 0 -> 19773 bytes ...estShowContextMenuItemsInTheRightOrder.png | Bin 0 -> 24830 bytes .../Issues/XFIssue/Issue1658.cs | 4 +- .../Tests/Issues/Bugzilla/Bugzilla57317.cs | 27 ++++--- .../Tests/Issues/Bugzilla/Bugzilla58833.cs | 68 ++++++++--------- .../Tests/Issues/Bugzilla/Bugzilla58875.cs | 45 +++++------ .../Tests/Issues/Bugzilla/Bugzilla59580.cs | 27 +++---- .../Tests/Issues/Issue3653.cs | 70 +++++++++--------- .../Tests/Issues/XFIssue/GitHub1331.cs | 36 +++++---- .../Tests/Issues/XFIssue/Issue1658.cs | 26 +++---- .../Tests/Issues/XFIssue/Issue2414.cs | 34 ++++----- .../Tests/Issues/XFIssue/Issue6258.cs | 22 +++--- .../src/UITest.Appium/HelperExtensions.cs | 29 ++++++++ 15 files changed, 208 insertions(+), 180 deletions(-) create mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSource.png create mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceInYellowBox.png create mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceWithCoffeeIcon.png create mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/TestShowContextMenuItemsInTheRightOrder.png diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSource.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSource.png new file mode 100644 index 0000000000000000000000000000000000000000..42454b2effd8387f5f71b8731842a8a6ba23740b GIT binary patch literal 15461 zcmeHuXIzt6w=ar9f~VK5{j^l`kST_5OKOkQ9+@3Gckb9JDZNit`IHtw{o-D^13M*m?Nc}eIHRkk zVJLs-nB=bA3P)6c8ldA^W`|Tx?Ak58OG^4M;N*|m=BMXtD$SNFBQ&$K5Du4Kx{9$FFCP>4~<_zf9BdVtXXY^$E zAK59nTlK8|N!_0nk84Qnl{u+<>70r62_3N9p<^d>emZArt$a#b_MoE5X&rULUlo5i ztN6pYqiX60m5)nE>^P+S9~f5sm-yI7k2KHR5${V z*?&YN67l(bHk-Yjp?3kwS~GBW=9>#xkr%(1btii(Q9zP|bS zc|0CpUS3{RRW&d$(A?bo_U&5?2J_|1m%6&T>FMe5@$t5{ww|7zj*gC(FJI2i&c1v1 zZgFuDg+hgfh87hSB_$=1$>fNLh=qlP*x1;FgoLoLu$GpV&!0b+m6he@=7xudM@2=& z$Hya)$Y;-BZI*xC@2^m9mQg?X=!OA zBO{+aeJU<4E-5KNAP|54`Da5zLt4V~*nd#|htq(cu7jSYz$A1i62GsA>W*=j_h_tPS66|2Pe3@@wShA*qf~d6-_&ub@ClvXlLffchO!9gY3+6Hg&C zzUn1U=g=y_vy^Xgj%GFy{C$qX(RmBNcIT}1L2)xUTSj0eOJnVXYd81A`F+AX8KHb} z1;Ouc&u}5jZZ{9eyS5u&d!(3zeI^9BJ3p0Fife5jMRRGbJA2A{20O z4A?Cuj*AoJN0z*J^6Bx~a3rU!a;Q%=73$#(0rx{wS-f;5TOfSVg8+nq}C?)n>_CqKARHLXU_CrrU05iS7%BzeLW5h!!UKR~q+;O}$$^asipieNJQWN1mfQ8;%2D z0N$M2h9@JVPz5h4M6TimYxjzN0!@L|b)kGu5g&lHH(xIYZ^RJ7eKD|4{_|*2C&^q$ zf512{_#|z+m4n`-#Z^X#*Y492^?}1g7M|wlnU9G$5jt{B1ZvEYkp`g6na-k(JTOQw zDki)tE$R_1VdZBcdoPHm4XBfuUy&Oo{q0Pgf~Z?0_!GcT&ii1TS1>2)CM<=yKN$oOd66Ng57mKom<91d(&rS!?YLZmGw(-^aS#wyoW8WRyc@ zQdScB_Eun!`Yq+tM=un_1ur~EhGuO{=ck_lpbOL^IF5{pz0Rez(=U9%L&w@#Y75H#i>T=gxZ-%tQw&HlyzObkc8Wwqf2{OnjOk5D2tIH+(IwOm8 z-_XqJ;n~&GVrs@neT0~txdVh`coYv>d`kxiA|NYgM4c^PWr#izcB+Liz(iB|b&x%+ zG}jhnKVAR{^4*Nj_RE45SrRn?#K#(m^Sg|WMtiin+=2`ziPwmpA(}BPeRE)Mnvz=l z5e-L%OWR=MWwoImo)gx|z9PfS?yusAza%wT8^$_C(i&|n=&$ql_ZPhM^7h+ofsmjR z5zLm^wW~$=6^>Tq0?HddUQc?m;z@73&sTM;^>*>r#s(UjFmOKnW891hL37WA3uI?e zFoPbMU4|naRfH;QGI0+#Uh8W5E;t*6^znNI^AJBIvMtih>%A-$|dqlKnK=KE5yX-+AKxP^a?*))m+yseL$L?5uoAA&zq|%fppvOwdS1WySRHS_h(%< zBimM)=+dLZ+&SJYBt4U#mj3%8UD*ue=9G$CBdk6DD$N)8m?ax@TaP&ZBK^>PLUlHH zM7guemW{6#EtI<_(D}>*ngcAk-<(8p{Op|Ud+YabUsWM$n`2N;o+<0|{AS3{)m0xJ z_T#i4#NBm(3@b$XI6!=Xq^LurJ7Zb_TD8@ZdGZlsWL0om$Loixk1hvfO4H;N;^1w# zFBZDxEq&c}#Tfe5Kx)*WkCIEvI?Qxjl~lQs*+5z9`bb0~vnC_o z3Aw$tiCWOFEty>(L&5?U~dmF}+1KGxiPe(t8V9P#dD)mL3Q2T-(-mx8H2_Y09VxQ#VI zsoo@iYyPnXM=-lbEgu8t6NAlGFv9EX=TF)%nqWX{`bbk#K$fzJXc4S| zCijCur?Hh)ZdBLRKKTrt)irV^i27n%a7viAE@1T0X$R0LK;mF}Bf~wU$JLz2eH0E_ zTp5q(&f<@ma7pYO#`4|yBC|Y|srX!L((TfPwR&-sftMl6s*Q* zXOGw|Uc-`aF!D3=?4!KpCQ{wPVBVfxbcZD?_@dlojc*9TYof+iW{#a1QHD%rB|x}m zZ+Ym-`ZQ#_t|HiKqZ{rnQ+6HM%9$Zv&`!gF8W^hgNOB|$lv2#*;OZ+=`v4;3#fl*g zPV1$+Eh3N|Y*|@~xg4d-ALYdVV7aXYhJt(?zaFVgqPZbV%}My;wNXsCU)LMei@JcA z6-{{$@@_4Gfv0R^ZHRheU7y$koI=$G;w}eZ+iK_(?X_Qw(^~e4Egh#H$g1gXGb1fo zWg9AcM$a@xD#e*_zX>tCpBYNdNLTQ|950o{`pEagdDKtH`#xcp9gyCkh)_W@xq7ym zEiwtOywGS5q%TQFZT49;xluYG?4P)O`h%-}gchE$=dhw*zU12MD#Ob=_C0U75(#De zR+-$5zKG#85}I^GH>B5$+US7Hjb@5_cL8P?KIv?SHp8Mcv#S|aCmfxDUz;>~CN%n+ z2-&V=-Hw&~zNb!cgiTsPCQ=JRAf01xayPw9?mq7w=%R=>F$IbuBp^}S*K_^ z{!CZe)zzD#gf^A+T*ljYYm0rmpKt(`Th?-xQX9C6spf@y1qH*8^%Izc<~d5YS-{3{ zgK&a-;$~X#HAs_AO0X3~urRU~TY|x~HqWuyjouCMeDW&atpF;|L0%(BkNc?rEQ{?h zWw?3_+YKE6^m5tMipegvVIb_TLS%_smsP*eQaG?>-x(r807pi8FyJa2`h(!(?g4mdEw^ z&b4B+;p=`P5%0MpQ(eJ=Kd(xN+j#wa(|V>OB}gWEh2M*BJ^=bTn<`n&C* z31;+*NuglLZ%K8)`JtKN2fTQn9!DM_m^hy9#uq1YZBvKCrGvsix`dk}-7VTww^euP zZnceBu_)tj2r!;dh5k0IC#rz5$HLC|bFz#Dt>-Nr#Msx;JAMQgqFoMr-dCl*C@K+H zPSV0vT=o&WdCndRj;`8I_)u%)3{gJ8p)SS7&K(HE4K$fNnu%vKL^WsBFeNoB(rV+rJNOT<^Zk&S7^d;MJf|(a7 zXNpVte5hKxQ~33A04m+hw=2{k>~2hp|q4O_J$g-h|b|R zgx;<3k$|MM-fH2)A#4?NSyKfiRCL=H7p@Jxa-k zx<>Ff$yA0CeEqRk+uEKq>k=f(!G4fO|G6@+a@CUEGQvWf4iVdZ1BqV?6Pk@S6|Xg6 zc*1pxCTmyO^A$~558-Zw;His}Xh&~KN_w!8%>+_104;5|?a_gMXsMtc=5llnL}zb` za+*JH$Kc=nKQG)0Ins2ZYG>Sv(U;_@Z=+MmKEejcp^ZBES}fDk*%^ z6lD}lFXwW^C@dmmxw-xafcmhAp>}=K;t2$_HusLP=PNP^vT`riuY zfo}jm*kbW&lP+w?nx_;zTg2CViBUqi=Wn(p**8Xjl)cr85-Ut{m-%aZ>bX)Acilo7 z3+f_}K`>H66dqQ&4KGV1QdDz=+*mQVEbMnP0I)yDk#u)a9%aQw^t(?_y&rC=N|27#I(+s5)Sc3Y;dQRY z(=!`nw6K%Ci_6AOyiGb{#ro#OwsUw;Pec+_)Gds@1#d992NY9%8LY9 z_T!u&o-ZdF+#*(3X2s=z#fj*8tl1Ju_{ZD57G8)6_?CRh(w6%|o8@tU%wQiQpetT5 z=_xjFntvyF;8_GJjL>_x-+Vyi%G%YXGS=~^%MtK1S22Vr5CAcXLEPp=q0zR^xmEVC z{MEPyAt88^Lz!%thN=0iL@%|q+#Kuf(-xn}R+Y%{QfW)UNu|V=fTrvEHt=Y!3#edlOvqh8sMyBY$qE#sF}+i8!AL#YS=yLaO^ z#*Tr?MZ7JEh&Bo*7aa(!@397u+wcvKC!zWtVhO8O+0B%1@Mghhm)*mLcEB|KjB0k$ zvg(BAT#7oG$5-F8ulAi~bTn*UMXr*4V9iI<0V#X<=;F(ra|PhsDdJk-61{ zi)eg>iPw^V-P#eH$-2S%@F~ySOecl%zIXf_!jA=Xad34*tb<7tx}@&>(h6Sy`kp(K z^<+V}6fu=5m}mx@`Q9!LOXjrwhYlWs(iD$FJT=Kdq@*rYk(=6`tMInIJ;qHIClolq z_uljXq~FX46jPP`;)E!k3LCizl-F|LTTHl%Xe{3@f zE6T^vfXCciJGvcW!66}FjJg{*V}0cP*JjO3=Z1Q4z%_q_;Q*drs+lPrFU}Un*Op5{!*@WS%nx^2;*O?E3 zZ->n~$STA+XK6&w%%(;7=byGvofT2%T@Q`UGEt|Bk zcXC}JYMtRrpM3OUwgpl}<>3rdcz2-(x>j z5^Fli!B(yDyfcGtUixsdz^cb~l#@*^BH6mxDRuU}FNe9X(s5##)DJ2_fs zJtpNh((5eR-9^|dZ6K})^fj(D=`e02e-6+r4o!{o7$y(E@p;3HQIncKdJ$lw-`fnG zOMPl9;EZpzUsd%V%*F}Ji~t-o?+WWS=c|Rj77&q-)yvSg#gCZX2G;UAUMmo7d}wd( zbz-MD|1Rd1l9uh?Vg{*oM)dSj_SqUOUs4+l z=&C0-b)eJqivxrw;JEUTnTihQ+EuFA@Jq9?a$%ZTgTi?ePg>C{Bbwvno!5n!ejL0< z|By-WliRIfG_}P8ojMO%cWbSfKj`l^GJmfQWUZ@0D(GouiPzyV!!4Z0q7j#Y7>dt$ zoo9b{0yuUhqiO1nq*jSIb+HD^dNS}QKnn8SVm?uf3}N;;G`WfPDhExf$>Cb^34(76 z@k>sb`b51)4f&W0;2{rpbF6h;>bD~?9uyp9g3XnspFd+Ab+*LU?9hur-?THRsQ-TS;(#qbCqL6K-1dHPGQ+og`t^d6(Nm}q(5u`0t2<^r0l z)6>=oHq=~-4uUlIfDz7EU9sL8n=1#t`9#+4}UyH#(3YFzzWkHiVW zM=(T#=j8a%=hZH?ze`g=r29SPhn<>_J;8=L2h+~&fqAv}o+BOd!ZZYX*tYZDnsx5L-!v^4KaTYK2bGD5ZV-T{SCemxqbl-6^(2s1p~ zWk%S_i}c!F_9VbUFZzUkfH)Nkc^E;Sk3M0-j`_!9C&>9oEc*^#{A$QPVS(Zp(4kl| z7P&-?S9G$o;ZG-bZ!DIOrTr1X{!B8Jb@!;EIvElCpXIsG^INfWg_TBr#fs;6K(L7Z zMd*cxiwk_AYxFyJx15$NgUv_@nL&mwHG;{*ae4<)uNb}sipCMNIChl&_-c|W7mA;4 zx0Z=vqVI~n)j!(WJep{{6ocX2X6^lKt7+JyuW+|Q@K;xQY@Tq#FV%7LOWVsHISp}g zfMY%q9e8UcMWc%AS$WIIdLvAalDU+wuI;xODvmcym>Y4R9I?^y%f*dmh zmYQhx9Lom&Xx|e|B|il4UtE41=dlj=7BynJ)imeUG2ul*##V>)j9@w@^EnfntUtNI zI|s2~>|}Zf|4?GwXdxS9@OAEj|}looq>?5w3oW#HqS23co$d*~B~85Pb%l zmudj24;fVdNmSGBS-4oo@q7^EX;QYCVa7cYR}~m}JpyV6X(Ho`D{#Vs%bC7G=B{<6 zxZEmcGqG@SpnGE@`K>-Whe6VSt+& z!urQqL?Za^(D+ObHuMU@Qgn|cn(nhmPof%C;W3flG+3Lo>K2`m^Q}n=hPirwGq!k{ z)%x>+#mcaNJor1eN%UGO@8q&tLJn+zwjdMbkmXxk3Z9&BBjbd`n;~lRNHS@49_Isd ze&B*gfj-t+8jn1lE9+Go-NL1-k?rfM`Dcj=zLVy)+}R>Tl=}VT79FlwSAHapr6}!c z(=-CD<~RM>)OJ_~I8O2p&;TTMI&H!{ECUGp&ctQo1cJ7ywet{m9ve9f8Dy!z?F^PD z8bTg}x{ELjIsAqtMAavpeE-BY~OqrLRV%A4KtKf#!7Bs5>hpQe%HPH z9Cx(BiYA8ZAvkQ^iFaJ-rS5XupUy;kc$+O5#=7Y%r0OZ$tFnErvb0lQq>xD8u4T*) zJJFC1-Zg!HN?Dyjlp1*oKjQ0wFMU}WQHdDMXb+*-!pAvL*@4`5F+ziRDgFA=B9BuJ$UX_n-OB0?o3$|?R z+rkGbkiDCv4GaK|^-|>iv|_!F%?B+fz14i?$p&E$H-74B>2~3chqnp1lX&D+5EY2T zwVqc8J41%oFSxoWcyc$W^3=LAyuM2e?2Uu@NXqnh+0GY~5toFz{H$7P0zEr=uvz+o za_6l*#N6<{wj3?=a%OfV!QYZmV~JQ1^!7?Wa;i*<)pNY$U%LdyLWWj=<0or32ZwC0 z%MrK4mRFmz`Damc4cWZb>}E<{*t4zGYd`!~T6&SEIYN-%CWqCe6|&Cg(~8bE=NAr* zieTKVuMb+vsbA^7Nesv!*Fw=CIQFGN0iwcIKE#4cCi0~W_jVUoVnr1irKD=_VeG?y z*YK^$Kf@Ob5s8q&XVsZ&rVS)`?S9l+JL#9q6cziQbO2p@g9vZmHow+5nkCNXsh4xL zCQP>K%3*r1oq#OvCC1I(QOf+?JCMl*9}`E2iG||Ozp1vJ&{PU{p5q8tp2{rxjgv%6 zCQIh1O|daC|B`953vtLZ?dj&hm!$jmQO=Y`lM|TiPIl9V(*sWJ1`TQ?{%kSSMH* z5ube5NDWmQ(#|RZx=t(|Cfs!0boY4ix50SKJbUf{*YX*!^@nZNGy^LxfsVTR;Wr0H z*S{*|0dpfrc)nqBqT z_|69{y{6Y@*H$3G1+SkYn7(5(=Ie{@0XwiV@(4XHp}<`u_Bg+cX= znPS>oP1CW4kUYH}v*H+Fnyf|G93kOsmz>5s0E$X)BT2bs2;16hJbe-T`>Uy3xb%U# z_c(3N0E*tlZQv!RH_$nHif?6zZ|Q9I^N`#}JqAV}b50$`IgotGT}juv{`Z zC#H*Vpr-9Vka0eB$ZA#Db{Je%Y$|rfsJ!3C?et_W~euDII32hs)>q#2lAP zzOmt&9cD@V;Y`SoVvkqkbPiC@4(`Bko^ey|YTO3rcXdmYH=Jl0xMze{R!r$IUqGea zV(jM5P|lP@co7d%V~=Rh4VF6?YF$FIbDbjtxh(eJBGv28Qkvqm%<|A-Uk3w)!gcvU zs=<0dx@f-s)hWLwyioX{p*t);teR@qG<;KBDWZ2w4<{=4&B~?%`uYx@#t%OdDl?YA zW{;t)TnSHC{wH02gM(j|8c@_%K~)tag`{}1tcG7|Qc(1M=XlmuE7~v-sYM^#dQx3_ z81;{M=EWfT3sVX3Ei@zZ4`($Mo3LP5_5%lQht*ZZur)RT7*T}8eyN~<>detv=}O~Y zj$JhRICSuIoU?Pj#a8E3ymQtH5;<9-O2F>Fqm1;v6MzCwPB)h=?s79Kf6p(?y4Z6> zT1pZ>S9b|ysR8xvoE3vqE>3b}JCzC)r&0v$hx!8U1?SR9-K~xCn5DFtHB|WnKmJYV z&`KVb{NZ6R$T*psRj>DWT{cze7JTn(!b)I6*?LW^;qrVIIM4N4<6nYLvE|G}P4ALz zgf0!lY+k`So%RiAF#Okc&P21yfgQFdlT)6How}2^Ji-EwvJ#q9NOrDci1ysf z6T=lf^!!y|7c;w=P3l56g@M>N!aI}NJ;&ya0M&dmB*(9jhgeqY5;ge;;j>d&O z|I9mB`%NhOp8o0mFTUyZ-(86Kzh8#(<|$^Sg6?ch2w5`7iyZ<2%TF2bu36^BrWqgUr9=lezy-cr8Cfmfz14?P$!Xn$a|u z%ol&`cPj7~$H4pd0v{NAJb55)Bra-S)IYDSbN-^?Z5?gni#o=7x*FQr#@gDabzBYp z%LHHOeXoaM|MLU~AL79u!nmP>@7g%Z^fMRHTtEDusYF3DOgiXaQ1+Kq)E$ zLJAR(HXuDAiPA-d1nJu(#0Vh?5FjLhv|p%m?m6dv@3`arbI%y>kNTBl@3q&SbIoVY zxz@Ah%EQY}_G;VqY*SKFQoHc;*{e!Q-+`5sHWRlfE3UkKZs?)-_|fm@tBy)a@rFuD z_mY&9M2buIW|fqpOqG<_HxQ}LG}BcyA6&Qf$X=aYW#S_Qv1h) z8#Zjv*?VZCva-^K4cmXv-u1V`%9}QC*s$@t&098aQQfd{3_cI=)ry zhmFeLZPU;M95B;22B~ZAR{n02hL$eS7`)fSMpM_|yG<(JZC2R{*!MS6+x_NecN-kt zq_TCB$~MCjXAhpd2t0gpi>mrT%S*;K&il?)wu~Ubv9rx@v z-M&Ld*YKDT=x3cD59<7QNL$}%$DX}PN*gry{Oxb1Hk(wo9JX;jXn9d>$1Yt%(_MRw zjjf$_?>oA2qq2q;K=peqxm?a>vu9^#M@B~0*49QxN0CTmb91v;EKW>JeEIU_($dnz z#6(F+No{TI^78V#ckhOVhGJu5qoShTym=!K2;6kADCC_o=BV8jZ$a zFhn9zQ&ZExzyO&{e)8nW+}zy4!a`bFT6}zbZf>qnC}c93Jv}`yUc5+3N}8UYrcfvk z9z6K%x8KUk%Vjdz^y?XleXTwGjTU2Sb`&B(||O-;q)@hB9E%jF^vh?JC+($dnLoSebI!LhNi&!0aR78Y_i zoUE)YTo!wW0?iw4U9vwLeAT~50edBt$P13=R9G8y)qXG}a}LKVDP1^q;p|V>V#ntx z@y|eQ<3QWI})I?(a_T zTB+H7{B(lm&)OS1I=#1yXhXi+wZHB34ZP~7QEjtbAr4Aem<^32RCO;i0n6+bzk)-A zzAWE|M25=m>Ex4WAyXQMX4*iwYwuMQ(hcVWH*DFe^1Y_|kA{F#4&Zw)VM@p7O1IiJ zbR;SN_P=+7YJ^-#1WNjzw;ZM46F$_Cjba#vgOjlg&P%#huQIX6RLCd2OH>zEYpO z4<$26xO$0D3wQmI2)r@Cu=Ek6=G02du&UYnq&ax+j9ig|A+xm{CguO2lvj~Fn zIIv8Fk)LmP{(PIgk79&}gu!-8ps&Jo*a;$1xm_j_XE`tBtK**+`2~6RuEJO9-L~`2^L&~6u>|R9AD>^H7mUh`mKB3W)1zrYH!j$*QIiMGdt%13)_q*9HKv5+@7-RUH zQ3#Y<$%RlvU@1i*ZiFBAbTD7me&>5kTo|FG7+D zlyT(C5QzYjfexl)5P*FEnBn#1#vv2Qxq-waW%52nWZS0Us!cqjHMQ?Q9re}&sQ8rX zkNf`T(E7@gGmH^zaWV-A^_c%*=T?=H!IECvfcg}e=UD7QT&^2@`~FL+#I;-yqTv$F!)ocET~lWI@;R@v-lL2=I`8Uj8BDhj=nHF(3lYBbwW=Pj zmlaZOOVIA_OJelT`(#y49Fv;__#itwF8N${bw3i7>hA7ZA5m~*P`BxJeaY=Fb)Udm z6Nj8ucc?@i7Z#yl%#7vVFJUU9=gCA<`goVmRrHdoaYN>%e10i|Qro2K%(WcO^YUqg zuZiFF=fLJFMGbS~1A5>1d|KGc$WpDX#JVFDH86*~$1XLM{YfU_myMzz+FOXly5)%6 z7p4!u0OQ*A-kxu_=Twxn1l=A}^mD%L3N{Wd2I4*BOD`^D9eUs=EXwk=)OGmyXJp8TfpuxqxFtxbb8A#n4SRCip%d%o_76iN32=N^L}_8G6t(#C@&Mg zXaX6Leg=D1Vg?yFRKcZ62XHa;hGVh;<`l2r^J!(9J27O-*|9Dq;i9j{uty@-vNjLr6o`i{|DOj*ZQ6P)y&f zp~ZYND>%biG}>8fpn1G5`H7iY662jHq|n(9y81OaMPMgdbr%Q%;TZj=kUp|knI?B?cLPctI0Jb+Vk zDR*OPbHFu3Xv*d`UQHMX0rPmglA9j>Ey` z^Jf@n%Zj$24mrH9gAE!{tZP3OID49B7Wv{NPjh5=G<&8!T*@8x8auc75+y(|s&z>oW51m}hIhpN8N;#W7d^~RsCi$aGHuR+_#(H9oYy%pW zk41&q0WiQyIa2sSkWY3{C-x+hfLMo1SYIz^Q%jlz)Ib&lJ_C8+tCM5wOH2G~Qjax@M z;E}>83+10~sX-K{jEv|ez##z_G}KtHL_jR3OxDP2DH-N0NU*r~YW zmOvWN^Y=mq+Tx%1=$1GOp*}M7d)ZLcz@buEH-?T?`gYF^uT z&`mEJkCrbCclmLLQI@{Ixv?=nKDvQSR(HOMa4Ewt-HAZs@QV$U>G~7MVqdVWJMcxH zJAsVpMTj-|w}+us@y_4UH3HvB%|NZ&s zyKr3oLIvu3z$zUd7LlV@s=wM665M{B)DLbPj|yq1XXIkpb`VSOYX*N0t7jmQw4ZuM zUQ;zxuWJ}mUWZBqr9ZSH;GEorDdWZD7c(V@5Xry;SMbltTVL)-SBAQ~a(STxDYpKk zo$cWe=zV-lgzFaK>gH|6EygeT6uvECV(!b3W23E29Y$*Q`~@|C#uF{3rw{jNI`;b> z0;bY;SDOvF?-ajz)J(!Rg#Plg?gER#51~Dox4uSr zEn6}R@+y+*wuC#3uZ@j}GhEqwsJ5{+OH0nWZuB3u3~yWn4-b`0T3Mot3Y@*nieTFh zf4Nk3DA_Mkxk$?fT2t%W+dYwonph1BxUI@5s$0pin`2u$9{0*(RH>;t_%mY4*h0_l z$gAz)Q;?C&cz`}H?;6c1KZB{;A8sB7=x%t{V zOvE3LbXG5NYd)Xj*Q?u5Tw9L;%gQhUGVBWTVS&zO3+Yuv1>BiETqBlzF=cD&2g*=x z2qUK8&Lv)EY%v}!Z65vxd#o0-*mW$9IWp4tG`jm}sW6N))wzv2h zD?Nj5xP6fhhE6Te_y3!=oPt&=0(pzr62pc-5rS!@VUVXx#P#%33|Rqaxe zjFyvix+>rNkEfxOfZ2;WqX=i=7i8R&Y5L)$wYL~IOpaH`sT|$=?j}58OKv^1>l+^BIvlv*SEm&m!Jm#CXL*yj(MNY^GxHL2}h^) zr7#{n$s*_K>>5sU;(dG^rkl5v&riObURl|nodZk29KxmWRdFegLUplbzJM?HviU|~ zSZM*L3cGOQBp^>Up_%uKC>>;#ar~0%O{7sSaASte5I@oBeQ^>akG{d?sw+QlN*P{W zNO~RnM?^l*VcadeDKiXUU?smQd_L`kHQC8O>b6Jz?WUIcRo1rRq(bD`rMb}r?FY6| zq@8WyQ70C!PM@X+T3q(-<7r!Q%s@k^7G|;Wh?f58?F-V;e%)=v5{~^DGli)dA-#<+ zm~WC8OFUio5SDFMs2Z(83>q{CI6eoZKSqUwJ|{=|gZwnoS`!PU$A5~tA;W;8)4Mj( z!IFhjdyG;T60+ZOQQvBeA+FVekV!22VZ?~Odet>Akn3PWgOpPz`y|h})|hww^wGgM zg=5~Rk6}#xH)Bk?ljPgbL1)k{x3|%okf!FTTkXTo^?J=!G+H3*rH4Z6xv%KPyQt!& zBGAtC_Icthmy&nk_CrTS?_NEFMFOwcdONoVw~J+GPso3X1*Ffo*@|q*HTABRE+zn6 z$p~|(k$q>%4H3cIO<*&X(^-+G~ENoDNL5;=LGVO`9eG@h=H(6@Qg=V5sm$A`0H*R=j`_dih0eLAM0hQ5E zKbfl$%@{^$7zK*P>7xU!r{tYaP|X#2v-n!84EGXhH2yNMH3e(;tie&$J|cB3ad-~D z1_C@jqHu~3*-8g_gKj1)B%!t?fY?JCsv_6h4NI8C4<|g`z|>$nw^FVLP`5?aziOmW z4*UJ0yXk%ae_m2hvvznpf}L|PsjykO57jHY)po_ZuN_dRn-AN%f1@9Glw>LcoL{}BE8yhf};-sdjS2l$0c>lujKjMLb;LPR*m z>{fH)-D*D;A$;%i-~y)X8F>()JQ_ePEsIG3E|Oc#Ru?8}*;c>mda6!FH>f3S@s9`J zt||kT14_#<&ep&2tm39fOU$rD*q|q zaURKu*IIr(NPo*sNBhJBiL>h=$Wj{{FCSJT_TZ^l6R%X&KjHtaq89-Ef+`E`oyyBE zkQysOEX;cp83K+vq)SvWgqAwp0q0~iMJ<#FiBgzr-iR)**c3p@nMXwztzCInSl6&E zfQ_4OZ8iceb5=M@)`RHw!udEfaw5BQCWG3Ab5Y2478@adhK^0NTC4nUKk_^J+mhuz zP7CubDj%Ro{}RUMl*0TDn*6S-bm9rebn-HK^=`1}TD1LL-{5Sg zFt9}k$99bZ6w>b-?K%2VJH5atuO&xS=sT9+_w7jU8LwR@UF2uNNCSWXH6MRodI^K8bq?d#RcnWFr)GHy^}?6Am468+V7r=w)+X}i5d-I{T$%o z?i#~K|9&Ja_&WV1#T~bHTkg11nyS@h=f7@}CWT2}o{W(VpIA@sJ@hs4ig1DB6m9mH zs(Uib%K>~*ks1CLfM_4%VNO-){`PTE_WXr!g#6njiWw3oZVDN{7R{vBC>8^gusXC4 z*cQByJyCuKD%Lxxi>@k8E^O{glYM;SdB!(Kqk1Ed-x zme)7b&i|M}cChR~kW!9d0?7ilGD&^%`20o_3uf%iNHX(J{o1K_QE;Bh0>?V#WfG(G zj_kwQlRL8Tm~gM|ZT7q$O4p)Jn$H{jTOK!u?rZjs-2SJrblKt+`w29!spX(I{9Qo) z{E;tYCR1m-ebApFcVuFGV$HiPm@lPDr(@DzyzmvD2@}?HBVI*Si>q3LT*koW^7gx* zobH0vt*^TFs@YbAREjC040N7VcpOvttEM6Zj9Lqqxp-^y@kX{L4ZrwVh)4P&`bts^ zqmZhMfE+mjkgM=5jG7IpM%*IucFu45nmp59Gm>!o>)r*gkpyJih#zw@z8a^DaloDu z50G4t$GWGSsC@~)h$vjhij}=DrVQQ!yz3PS&e8cA4-J9(UH}W@8xH>+xHYx- z`n80~GZBz6UL^0`=gu=DeReKEtRaQRe)NeTKXlK5e6A4=B^SSID8%QSL+l+gH#!NJ zr^%7>FHMbv>ro*mj~xM!YF&qB11dZ@jjlHK4^Rak-fMS}%@=jw=cE|4LzM`^PFXXW zL*1Q?oM@gMm#G8hZSUnr-iLDxB;Q6~X>5;z8JUa?0Y7r)CwvsE4mi^;(u^mPn5Z8L z3y!0|jH}{p9qHo$b>+|2CjsC2PYoYK$yRj^R&g?nn zQA0qomdy=?TaK@Jqn?fUo=ni<1spnzvjk|&v3!H z;+W)oR&LIXux7q0DdLN>gEhd+1Vm)?Jy}|??MG(yydY(zIk2a+&-a?ITG{7X^(ff? z&to)}r0u!XL@nXb-SJT7!@|5^`Dxz8pLocRpLCjPh3^96_HO5Xn@h~QKZj`H)j@Wo z4|6pVYzy$+37vI+S}?Rg{!KPjmy!No@n)c{&td+$f!|Bh6-A&&MlM|xYwlp?M-V%C znbP6L+)eQ?9*+c{(fJ{L=}$F%?ZQMzW>z!~F|mjRKOmdqR|MwJPVAf@8m9jewbM5I zP;f?!-P!uX#=!J*qoSUr?uMh1>$xN9KthPbeU0qxV;#3OAg7V_jzOe)t~7JtJBaC! zhL;&StPXGeHhRY@%fXzHSLRpsgS4m(Y<}yqq3fj!+Hx=Qq;tYUB#9(nb_JuT9mNjqg)hEor zmo=R&k?0fsl?k)VmP^{Uauz$8tY7s$@3diaJd{6q*RG;Ip=9WhZ9=Hrc;^e|vy?)9 zb_$l3!4qhZzj?We>-kd5QTd~nbJ-E9(9Dz5PK8=h_QX)FF>h*ZFr{#49M*2E|4-8o9Q=g#6C!eHr+K@tir{|J5VdcG>1k4^~Xm z3JNN1BezH%xg1L?c{r4l_H~=bK+5eUfUlI0s8L{EH3!dT;q>W3Y6&297jBVo+NN>^F;Xyv{7xWM=%zYPHw!53+? zYZD0HdekujgFBdGI;z!rYVBP~w1r`U&XwMAYjc~nntNu}fXZz6NSn#SJvE+maD8pf zDe&-20qckKO|MvVk4(2Cfb#mRZqE(nr@`7k0?HM4trc>7+CuC~J-Rw>pn>3=jmY;uCCGXdkM+2#4dfr#$O z$#&And=KdaVbAKr=4KTyFM`4^Q3H1r2t6G0LPIZ!Km3VLsW@(VNL-NAMJ!n|}v*hRdL1q z00|=r7y4GR4{0F2ZVSc>-l6AHT4+BvHf^$=8dT^=TA1Bqf;JB=s7wHd1>%br@;Ku( ztPn>9nc}Gl%0m>daR%FsQ#4}&M{yTsP|%*kx8f}t2y|Y)E=TTNdkP#DhJRSw50YQt`hU$h$y%blua4x`b;cD$NRBv3^r~Wt; z| zWSjw)$ffh7jB#E|R#_HtO||D*_-v-T2d7yk3~Z#9Swa?CK5nvxYK86Ayd4ul(sIse z_~K>@zzSW5u$)}!9l^{1g;iP>D&&TRS_{I4#24T5ICd1-S)2hU7YfItei(>=NK5QI z>;}dceXTw!515%*O(bBKhR4RTsWa48$s-0=%~zC0Ey4tQZ-mh#KD$I=fw-Fj|-XP9`?BnJN$x96hS^&u~um!Lk8 z@FT|DrBjirZ<6k|Hi$i@UzAzKFuv-*Xm=)$f3CH{&s;Qe^a)fXC*v~qJQ*`f@#yWG z$FbtxM68p8>{l}yy6h#r`N@c!wYxYAiz8qgs9r^xie>7zr{!e_ozpFHv1Phl{Y4<3 zp|rECI=v_#Aop?k_0`_T-VmBz44!!&@%f`oTZmPjmb=ylEX&1H-5j^Z_XM8FJ z4f2YIbi$p4*eZ4inu4{j!{S|{fBC?QE5e`UUYVjRcCIIQvLb>NjODiu&~lU3#u!a$ z2-7Wgde$L2r7?8MstlN2cc};g+&wod@T`o-&EHlh)JN9=Mt7p1wgX!E>sDp*b+0tELU3u_upj^Ey(|{Pp;& z;|Qa@0LSH{0GZ8F;(&|YP6SRyTd?$@&7lk8$RhTp;(+!S_lX46qeK<402;yevvlmWrThQeJWn<#FSQZ6BCbwV)~HT zt9%(f_xtpJXX==-+KTbEHyuo1YFn;L+)7FY&4!*C+iprdNKQ#4ZU7@UR|UA5{{WyXhl8Z)4EfNlRijuzBW zWW{n?SqtX*;i;d>!@GA)tlQr6fo2K!7lfPt%$gV)jDI9th|(-BxqeOAq#jL)Yq&YS zVlLDWakJAD%mzVjQ?(v2f~#g8<|$h!>VtY#k2JSlQcWtX!*#jm7RFG!K5+Eah&t@{ zHJH%IQCJXg^I9kDyECMiu!1vJw-IL_WkYItI)^n1>X%6Dd_6OeJJ!;D&4Y)g3->;| zU1t7zlbeTTiCrK`v0Kfr{AGiN6~FOuO{MnmF76$~_^viVX zC*bgq`>ZkZ(GOsNFuL)}@VYn6NDMN#j}+Txz};~(_b$dT#=d&5Sb&_D(D?TmPdvWB}pg42Y6u($I z=guR3A?3*@KsR?g<>Q}g5PR+`OYH;UEe8)f^!8XK5@f6jQPr0RKy9w8_dr1Y-~9@RZ6IX5DswrH_{J;Vvv8lBgp!$(*kUo zkO^Fof+mZ94Y&S><8wcMy>!@8K@GX&h?l<~9}x~3Q%ahd?A$M*%0dGp^0jbBC&~;5f$U6k z;XJW)Uf3-Ex+-MfChmBuhgA-Pm7?vXi_RL8VUwSHMTi^%G<%{;o%7x-uM=kOP7&Ws_zAS5XdtI@g%-Wq@2*j2sGwy-xJS~U zk<`y#lSN-cgKtzP&)4Ud0mjj1LV{w8yloimxrA8Pi0*5K(8QREK} z6*;v<0Qgbd`PMxG&%ADFAvc4A!H8an1fBDCdR1o8bv&^e8}48~0rhQaxvtheV8#nU zkmegfQMT$f2_CtL@$IX(atSN*xJ%H47WVnqvE!Al_0uvzpt@p7nNul&bJ@JmVBqI$ z6ve8g$mh_4`27vliHTKjSDUd{%ctcZKEK~2%IW>!+xKdING0b3?Rd~N<*YoE=gqz| z^W7%L=)XUX%7(fi=ZC4ZhUDuUGI;XtZ^Brz*)_3B$slB*bw)r7>G0-$;+q`+AjR z6Cxv6ROCX(H20cUmwGVo6nCU&~0=8G#il%*5ymO<>(R$DP;a|u=KX2Iu!91c}S%!F6P2qTGwxXcFJF&XFL zQADjc!|SMJ%v^PTpuD?a_zkSCL1=<_y{=H!96N)<59re7w(=)LOsnH&;aQ)>wsxaS z^EOw2;*uHY<_JHX*>x6cDno#tIPmz6?45FL&1`{SI_m)N>5{u^m%9UPaWdKxP4N|o-nQYBrBn{{#bz)3~Lyl;bjJGB>E*CD8w^{44L=d`TP`YY9FT*=XbMyMAk z3PF-NF&lAns34guBMoEjQ$e<2rl%51O85!_XjX4hlE6F9=wr4*!VI~6!yT}?XzHMM ze0L=z(D$dfTgySU8qr<#LYCFG)EMf5!Mt!NWXxI~mc8V2h%1)dAT~7C$l`cwRNa?H zxi%iVTTbkmCvMITxOtRI$D}GH8MhNQXn5p#oezq(ABkOi6Qnw?m^2F5HM~X)5YFQ@IcDkE z35FLhs0;&Xc-i|msv)?!RkKXnd%STvBg;`<+3JNpi5wdy*LI_GqdhrK1JY3ul>5V{ zZ&&Hleo@3R{kgw2xKCo?8G3|}In#`cJ8eCO@4oGB>S#-O6HsG(duw98wafkix6vLM zdulOaaA~9ObFcH^>q#JPce*p}(^lem^ckPt5$*6j+ne!a3*Pg`Dzvz{u%6ZtREw;E zTDz%e;KozpX6iORQi$J5G#(PR^ltRN!uNfAG;gzJg`LMdrCL&c(ySHIRs)B+`b2e; z)x0uJm|U{6v|^bb7;9ow8Y|Xr-Q9#@vkvioKxMZ;00}Fr!v3-xbb0Y~z>_%-*@?Wp zR1iH7F+*Q)*TP8?^#+_0!{Os58Tb~7v878Zs;%!%XcPUp>QPC*4%cVad{@1+Q`$)Q zwlzJDTLM!uKKuVG(yojKTTrn#+aUK&1iQA^Fp6f}mF5mfl3zRKf}paVWlV8>JwCsH zd!;FsH>3I@-rwaF;Z^yOg}Kp>?(yXXndafC=--Fl<Y{=*MlLCnBF3hAnB{z5QF;v52?%zhTj>yyY4~ zMNXybhtr&uojcU&V1sk?K;(Y$fbJ#K^%HG1?~?rXZ?z|Cl--fv{|a#deTB4tz#BrY?f#JbTlN#@oJFP#V;~@p!^~i)I=}^DXLa%PJ%!& z!yh5z{~~YhbCnOj8U(%j&>j&X{FI^$%ocGycyA#+_G@Y3 z$h_Ukih$as)7sD{4YfH2in&r=ui$yaz?S)ne&|8(jyGy1dHsg^A)!)PrdUpTvlTn{ z>Wo;!2d}7bSCo}CQPB~b2|tBL>cVGc@HE{iIDcu+TCzmfq-9D`R<}~AiGx~kCX?3d z?|vyEKJc}?b;imn{9AHqZrxB{BAE3%0N+|$Ih+^~fwRf36S)O`b(77aeaGo9^Efik zN_I07E{6@1D4Ah%RTULGE%z@641bne=n+~!{ z80y-1WJQdB&>sFN54VJ<6q5+5J`=>y|gzp2g5 zJ$s^4T-7?Xl;~l*4@;of`16LD@w5d{9KW)sqf*jmM>40s3_|jtQM`zlA-N4!?0?tf zgwebdhs~Aa`qBl1usT8^k1r(&?;%RWZq02MY#6$)zE5X14Ar(^)}l#l@+PF&(q*u3 zs5&uM!)83>288+X2rQH#p0KTI97f@=h=*qk?3%SfL5Y`2S|8?4xWt8qw<&m{n3X?y zB9|@1G&IIJp+p*rYSe$(lqS+n@Dq;|oq)DB-(Ky05f*qs^9ZV+tG zgP`Qr|EF7`Zv1ruBH?+wti1qj!aZICyKD=?yD!J`~_;Tyh zwIZ`{O{g!jb4mC}Ga4erpsJC@^>m!Txx5cHcu?|ZwHC>dRrGM8DFz}WPA9s`v9s9d z5&23OFZsDUsFCOFJjv=Ga?&8yt=q6}sQ;(K=?iJphN?gsq6K+>sBwp8PPP=v#uj6lb0nQ7b}qK1nCcG~=(E1( zc$=tj1&y_PyFKEWf{KZ%ZGL)5yS3q~LL>eYvI&+Vb#l!!t84Cb@g}R6xUx?Gr}xkxO?< z9{908s=Bz3-(mguf()vzbaanuKNiZb?C7Xm?X#06{DBy4R7*IxWWbk)m2&U#7pCT` zxITI;N%&PT`_lY8<+(T{;G(J#U&{i#7Z4+~jk?>Khr*#3Z#EEOwGmdM6mEI6l@ zj<`+I;sd=}Xm==<0V}}_ZL1(@ky(%?&ei8-wL3d?MV|;fn#9OoFpvw*Q*#qW+0R>o z8?yh%wa04-@N3uQw-9D|+0_G`<#~J3OV=?LR9=+mVM&WoX^5)OO%E!E?l%nU%#g84 z)QNGfCq~4a;&=%AJ8l{GH-7K(HR<=YE-M%4Z-L6l`k3W&u6)ere+VrdA>FRpQ!e}M zf(dbfb2yE)F6xJoEyBmhCu_HiDhZK>p zQFTK-A`XSPYBgNx1qv!jb+UkIO+b2g`_%<&pUQ_)7r=jynzK*dKy&_0ye4V(0;e`VDU7()ejkA@^(`X>za?5I*pnGXptx zXfAT?PD!!?j+atUZPzmNI@;E#WtcD@Ze19-xDx;TWs{bjsH8xn4mI~U;bZ;U6z4s2 zBy0|W<0Zk&GY+SCLoC-_D7ig6A@*m6B8ab2?uVlM3xbWg+&b9de@P?yFn!VnkTMaI zWu(_2>L-=oV`eyycVQYJBNc+Y0V~_&yrYo$I+%lA9BVPFBwq5PHn|bGXfdWntozfu zzuL>qSMCd((pt+4ntjw-L+LYR@zv54#p=Q~{?$?AJacnmA+*p#QInBejITJpQ^AZ( zw0|%{BiA|}YQ{WoJ9bxL!94BsbIzVn*5SH`ZAmA(3Gz3SE3iniC9AsL)2hpNe0FTD zi<396H&1Z66eIOVgGB`{}bn0|H9Q@xcUoM|C=Yp|MIB6JnAox`pcvK?|<;{7fSv@ z$zLe>kNjQBUrG3{B>ewicpX(iZvSybuKXn~c}b{lr}!%}rTvlTJR*O&8R>87ch_I> zp>*8z_=zK?$BrBaT{~uGc?@J}1~xV|wKO$V>5TLFZx4h*e+jxB_dh=n{qh4{@xXz9 jz9BLw)ITEfW+?1`er9jll&#_!r3>er&Q_hi@$3Hwn%=yD literal 0 HcmV?d00001 diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceWithCoffeeIcon.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceWithCoffeeIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..ebee6c9f7a1d80856bc4b68193a48305f9b237e5 GIT binary patch literal 19773 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 literal 0 HcmV?d00001 diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/TestShowContextMenuItemsInTheRightOrder.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/TestShowContextMenuItemsInTheRightOrder.png new file mode 100644 index 0000000000000000000000000000000000000000..53186e89d06e61c86a3823b418ea267af0102652 GIT binary patch literal 24830 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 literal 0 HcmV?d00001 diff --git a/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs b/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs index e0ee29bfaa89..4a20269af44a 100644 --- a/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs +++ b/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs @@ -46,7 +46,9 @@ protected override void Init() new Label() { Text = "Right click on any item within viewcell (including this label) should trigger context action on this row and you should see a coffee cup. Tap on colored box should change box color", - AutomationId = "ListViewItem" + AutomationId = "ListViewItem", + VerticalOptions = LayoutOptions.Center, + HorizontalOptions = LayoutOptions.FillAndExpand }, box } diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs index 6a7f74799d07..80e5ec76a3f8 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +#if WINDOWS || ANDROID +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -6,8 +7,6 @@ namespace Microsoft.Maui.TestCases.Tests.Issues; public class Bugzilla57317 : _IssuesUITest { - const string Success = "Success"; - const string BtnAdd = "btnAdd"; public Bugzilla57317(TestDevice testDevice) : base(testDevice) { @@ -15,16 +14,16 @@ public Bugzilla57317(TestDevice testDevice) : base(testDevice) public override string Issue => "Modifying Cell.ContextActions can crash on Android"; - // [Test] - // [Category(UITestCategories.TableView)] - // [FailsOnIOSWhenRunningOnXamarinUITest] - // public void Bugzilla57317Test() - // { - // App.WaitForFirstElement("Cell"); + [Test] + [Category(UITestCategories.TableView)] + public void Bugzilla57317Test() + { + App.WaitForFirstElement("Cell"); - // App.ActivateContextMenu("Cell"); + App.ContextActions("Cell"); - // App.WaitForFirstElement("Self-Deleting item"); - // App.Tap(c => c.Marked("Self-Deleting item")); - // } -} \ No newline at end of file + App.WaitForFirstElement("Self-Deleting item"); + App.Tap("Self-Deleting item"); + } +} +#endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs index aff3727be02c..15d0f2ef03e3 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +#if WINDOWS || ANDROID +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -12,35 +13,36 @@ public Bugzilla58833(TestDevice testDevice) : base(testDevice) public override string Issue => "ListView SelectedItem Binding does not fire"; - // [Test] - // [Category(UITestCategories.ListView)] - // [Ignore("Failing without explanation on XTC, please run manually")] - // public void Bugzilla58833Test() - // { - // // Item #1 should not have a tap gesture, so it should be selectable - // App.WaitForElement(q => q.Marked("Item #1")); - // App.Tap(q => q.Marked("Item #1")); - // App.WaitForElement(q => q.Marked(ItemSelectedSuccess)); - - // // Item #2 should have a tap gesture - // App.WaitForElement(q => q.Marked("Item #2")); - // App.Tap(q => q.Marked("Item #2")); - // App.WaitForElement(q => q.Marked(TapGestureSucess)); - - // // Both items should allow access to the context menu - // App.ActivateContextMenu("Item #2"); - // App.WaitForElement("2 Action"); - // #if __ANDROID__ - // App.Back(); - // #else - // App.Tap(q => q.Marked("Item #3")); - - - // App.ActivateContextMenu("Item #1"); - // App.WaitForElement("1 Action"); - // #if __ANDROID__ - // App.Back(); - // #else - // App.Tap(q => q.Marked("Item #3")); - // } -} \ No newline at end of file + [Test] + [Category(UITestCategories.ListView)] + public void Bugzilla58833Test() + { + // Item #1 should not have a tap gesture, so it should be selectable + App.WaitForElement("Item #1"); + App.Tap("Item #1"); + App.WaitForElement("ItemSelected Success"); + + // Item #2 should have a tap gesture + App.WaitForElement("Item #2"); + App.Tap("Item #2"); + App.WaitForElement("TapGesture Fired"); + + // Both items should allow access to the context menu + App.ContextActions("Item #2"); + App.WaitForElement("2 Action"); +#if ANDROID + App.TapBackArrow(); +#else + App.Tap("Item #3"); +#endif + + App.ContextActions("Item #1"); + App.WaitForElement("1 Action"); +#if ANDROID + App.TapBackArrow(); +#else + App.Tap("Item #3"); +#endif + } +} +#endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs index 587dfe84e4ca..deae0b04333c 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +#if WINDOWS || ANDROID +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -6,31 +7,31 @@ namespace Microsoft.Maui.TestCases.Tests.Issues; public class Bugzilla58875 : _IssuesUITest { + const string Button1Id = "Button1Id"; + const string Target = "Swipe me"; public Bugzilla58875(TestDevice testDevice) : base(testDevice) { } public override string Issue => "Back navigation disables Context Action in whole app, if Context Action left open"; - // [Test] - // [Category(UITestCategories.ContextActions)] - // public void Bugzilla58875Test() - // { - // App.WaitForElement(q => q.Marked(Button1Id)); - // App.Tap(q => q.Marked(Button1Id)); - // App.WaitForElement(q => q.Marked(Target)); - // App.ActivateContextMenu(Target); - // App.WaitForElement(q => q.Marked(ContextAction)); - // App.Back(); - - // #if ANDROID - // App.Back(); // back button dismisses the ContextAction first, so we need to hit back one more time to get to previous page - // #endif + [Test] + [Category(UITestCategories.ContextActions)] + public void Bugzilla58875Test() + { + App.WaitForElement(Button1Id); + App.Tap(Button1Id); + App.WaitForElement(Target); + App.ContextActions(Target); + App.WaitForElement("More"); + App.TapBackArrow(); + App.TapBackArrow(); // back button dismisses the ContextAction first, so we need to hit back one more time to get to previous page - // App.WaitForElement(q => q.Marked(Button1Id)); - // App.Tap(q => q.Marked(Button1Id)); - // App.WaitForElement(q => q.Marked(Target)); - // App.ActivateContextMenu(Target); - // App.WaitForElement(q => q.Marked(ContextAction)); - // } -} \ No newline at end of file + App.WaitForElement(Button1Id); + App.Tap(Button1Id); + App.WaitForElement(Target); + App.ContextActions(Target); + App.WaitForElement("More"); + } +} +#endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs index aa7905ba86d7..06a8ad7ccf28 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +#if WINDOWs || ANDROID +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -12,17 +13,17 @@ public Bugzilla59580(TestDevice testDevice) : base(testDevice) public override string Issue => "Raising Command.CanExecutChanged causes crash on Android"; - // [Test] - // [Category(UITestCategories.TableView)] - // [FailsOnIOSWhenRunningOnXamarinUITest] - // public void RaisingCommandCanExecuteChangedCausesCrashOnAndroid() - // { - // App.WaitForElement(c => c.Marked("Cell")); + [Test] + [Category(UITestCategories.TableView)] + public void RaisingCommandCanExecuteChangedCausesCrashOnAndroid() + { + App.WaitForElement("Cell"); - // App.ActivateContextMenu("Cell"); + App.ContextActions("Cell"); - // App.WaitForElement(c => c.Marked("Fire CanExecuteChanged")); - // App.Tap(c => c.Marked("Fire CanExecuteChanged")); - // App.WaitForElement("Cell"); - // } -} \ No newline at end of file + App.WaitForElement("Fire CanExecuteChanged"); + App.Tap("Fire CanExecuteChanged"); + App.WaitForElement("Cell"); + } +} +#endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs index b7e8eb5a6942..63a4cabd3d0b 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs @@ -1,50 +1,48 @@ -#if !WINDOWS +#if WINDOWS || ANDROID using NUnit.Framework; using UITest.Appium; using UITest.Core; namespace Microsoft.Maui.TestCases.Tests.Issues; -public class Issue3653 : _IssuesUITest +public class Issue3652 : _IssuesUITest { - public Issue3653(TestDevice testDevice) : base(testDevice) + public Issue3652(TestDevice testDevice) : base(testDevice) { } public override string Issue => "Loses the correct reference to the cell after adding and removing items to a ListView"; - // [Test] - // [Category(UITestCategories.ContextActions)] - // [FailsOnAndroid] - // [FailsOnIOSWhenRunningOnXamarinUITest] - // public void TestRemovingContextMenuItems() - // { - // for (int i = 1; i <= 3; i++) - // { - // string searchFor = $"Remove me using the context menu. #{i}"; - // App.WaitForElement(searchFor); - - // App.ActivateContextMenu(searchFor); - // App.WaitForElement(c => c.Marked("Remove")); - // App.Tap(c => c.Marked("Remove")); - // } - - // for (int i = 4; i <= 6; i++) - // { - // App.Tap("Add an item"); - // string searchFor = $"Remove me using the context menu. #{i}"; - - // App.ActivateContextMenu(searchFor); - // App.WaitForElement(c => c.Marked("Remove")); - // App.Tap(c => c.Marked("Remove")); - // } - - - // for (int i = 1; i <= 6; i++) - // { - // string searchFor = $"Remove me using the context menu. #{i}"; - // App.WaitForNoElement(c => c.Marked("Remove")); - // } - // } + [Test] + [Category(UITestCategories.ContextActions)] + public void TestRemovingContextMenuItems() + { + for (int i = 1; i <= 3; i++) + { + string searchFor = $"Remove me using the context menu. #{i}"; + App.WaitForElement(searchFor); + + App.ContextActions(searchFor); + App.WaitForElement("Remove"); + App.Tap("Remove"); + } + + for (int i = 4; i <= 6; i++) + { + App.Tap("Add an item"); + string searchFor = $"Remove me using the context menu. #{i}"; + + App.ContextActions(searchFor); + App.WaitForElement("Remove"); + App.Tap("Remove"); + } + + + for (int i = 1; i <= 6; i++) + { + string searchFor = $"Remove me using the context menu. #{i}"; + App.WaitForNoElement(searchFor); + } + } } #endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs index 6800e6573489..aef84084d577 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs @@ -1,4 +1,4 @@ -#if ANDROID // This test only makes sense on platforms using Long Press to activate context menus +#if WINDOWs || ANDROID using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -7,28 +7,32 @@ namespace Microsoft.Maui.TestCases.Tests.Issues; public class GitHub1331 : _IssuesUITest { + const string Action = "Action 1"; + const string ActionItemTapped = "Action Item Tapped"; + const string CellItem = "item 1"; + public GitHub1331(TestDevice testDevice) : base(testDevice) { } public override string Issue => "[Android] ViewCell shows ContextActions on tap instead of long press"; - // [Test] - // [Category(UITestCategories.Gestures)] - // public void SingleTapOnCellDoesNotActivateContext() - // { - // App.WaitForElement(Action); + [Test] + [Category(UITestCategories.Gestures)] + public void SingleTapOnCellDoesNotActivateContext() + { + App.WaitForElement(Action); - // App.Tap(Action); - // App.WaitForElement(ActionItemTapped); + App.Tap(Action); + App.WaitForElement(ActionItemTapped); - // // Tapping the part of the cell without a tap gesture should *not* display the context action - // App.Tap(CellItem); - // App.WaitForNoElement("Context Action"); + // Tapping the part of the cell without a tap gesture should *not* display the context action + App.Tap(CellItem); + App.WaitForNoElement("Context Action"); - // // But a Long Press *should* still display the context action - // App.TouchAndHold(CellItem); - // App.WaitForElement("Context Action"); - // } + // But a Long Press *should* still display the context action + App.ContextActions(CellItem); + App.WaitForElement("Context Action"); + } } -#endif \ No newline at end of file +#endif diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs index 58d028e8e2a8..28a13f34014b 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs @@ -1,4 +1,4 @@ -#if MACCATALYST +#if WINDOWS || ANDROID using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -12,19 +12,17 @@ public Issue1658(TestDevice testDevice) : base(testDevice) } public override string Issue => "[macOS] GestureRecognizer on ListView Item not working"; - - // [Test] - // [Category(UITestCategories.ListView)] - // public void ContextActionsIconImageSource() - // { - // App.ActivateContextMenu("ListViewItem"); - // App.WaitForElement("coffee.png"); - // App.DismissContextMenu(); - // App.WaitForElement("ColorBox"); - // App.Screenshot("Box should be red"); - // App.Tap("ColorBox"); - // App.Screenshot("Box should be yellow"); - // } + [Test] + [Category(UITestCategories.ActivityIndicator)] + public void ContextActionsIconImageSource() + { + App.WaitForElement("ListViewItem"); + App.ContextActions("ListViewItem"); + VerifyScreenshot(TestContext.CurrentContext.Test.MethodName + "WithCoffeeIcon"); + App.WaitForElement("ColorBox"); + App.Tap("ColorBox"); + VerifyScreenshot(TestContext.CurrentContext.Test.MethodName + "InYellowBox"); + } } #endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs index 07d72fdd7d71..a3bd08c4c778 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +#if WINDOWs || ANDROID +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -12,24 +13,15 @@ public Issue2414(TestDevice testDevice) : base(testDevice) public override string Issue => "NullReferenceException when swiping over Context Actions"; - // [Test] - // [Category(UITestCategories.TableView)] - // [FailsOnIOSWhenRunningOnXamarinUITest] - // public void TestDoesntCrashShowingContextMenu() - // { - // App.ActivateContextMenu("Swipe ME"); - // App.WaitForElement(c => c.Marked("Text0")); - // App.Screenshot("Didn't crash"); - // App.Tap(c => c.Marked("Text0")); - // } - - // [Test] - // [FailsOnIOSWhenRunningOnXamarinUITest] - // public void TestShowContextMenuItemsInTheRightOrder() - // { - // App.ActivateContextMenu("Swipe ME"); - // App.WaitForElement(c => c.Marked("Text0")); - // App.Screenshot("Are the menuitems in the right order?"); - // App.Tap(c => c.Marked("Text0")); - // } + [Test] + [Category(UITestCategories.TableView)] + public void TestShowContextMenuItemsInTheRightOrder() + { + App.WaitForElement("Swipe ME"); + App.ContextActions("Swipe ME"); + App.WaitForElement("Text0"); + VerifyScreenshot(); + App.Tap("Text0"); + } } +#endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs index 5ad689296f6e..8314e965396e 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +#if WINDOWs || ANDROID +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -12,12 +13,13 @@ public Issue6258(TestDevice testDevice) : base(testDevice) public override string Issue => "[Android] ContextActions icon not working"; - //[Test] - //[Category(UITestCategories.ListView)] - //public void ContextActionsIconImageSource() - //{ - // App.WaitForElement("ListViewItem"); - // App.ActivateContextMenu("ListViewItem"); - // App.WaitForElement("coffee.png"); - //} -} \ No newline at end of file + [Test] + [Category(UITestCategories.ListView)] + public void ContextActionsIconImageSource() + { + App.WaitForElement("ListViewItem"); + App.ContextActions("ListViewItem"); + VerifyScreenshot(); + } +} +#endif \ No newline at end of file diff --git a/src/TestUtils/src/UITest.Appium/HelperExtensions.cs b/src/TestUtils/src/UITest.Appium/HelperExtensions.cs index e05673eb585d..d28698d812e8 100644 --- a/src/TestUtils/src/UITest.Appium/HelperExtensions.cs +++ b/src/TestUtils/src/UITest.Appium/HelperExtensions.cs @@ -2288,6 +2288,35 @@ public static IUIElement WaitForTabElement(this IApp app, string tabName) return app.WaitForElementTillPageNavigationSettled(tabName); } + ///

+ /// Performs platform-specific context actions (e.g., long press, swipe, or touch-and-hold) on a specified element in the app. + /// - On Android, it performs a long press gesture on the element. + /// - On Windows, it simulates a right-click (touch-and-hold) on the element. + /// - On iOS, it performs a swipe from right to left on the element. + /// + /// Represents the main gateway to interact with an app. + + public static void ContextActions(this IApp app, string element) + { + var uiElement = FindElement(app, element); + if (app is AppiumAndroidApp) + { + app.LongPress(element); + } + else if (app is AppiumWindowsApp) + { + app.TouchAndHold(uiElement); + } + else if (app is AppiumIOSApp) + { + app.SwipeRightToLeft(uiElement, swipePercentage: 0.9, swipeSpeed: 500, withInertia: true); + } + else if (app is AppiumCatalystApp) + { + app.ScrollRight(uiElement); + } + } + static IUIElement Wait(Func query, Func satisfactory, string? timeoutMessage = null, From 4c92923672bdf786afc64d3775b4870d949535d3 Mon Sep 17 00:00:00 2001 From: nivetha-nagalingam Date: Tue, 28 Jan 2025 17:53:45 +0530 Subject: [PATCH 2/4] Addressed the feedback and added one more case --- .../Issues/XFIssue/Issue4314.cs | 172 +++++++++++++++--- .../Tests/Issues/Bugzilla/Bugzilla31330.cs | 41 ++--- .../Tests/Issues/Bugzilla/Bugzilla57317.cs | 5 +- .../Tests/Issues/Bugzilla/Bugzilla58833.cs | 7 +- .../Tests/Issues/Bugzilla/Bugzilla58875.cs | 7 +- .../Tests/Issues/Bugzilla/Bugzilla59580.cs | 5 +- .../Tests/Issues/Issue3653.cs | 7 +- .../Tests/Issues/XFIssue/GitHub1331.cs | 5 +- .../Tests/Issues/XFIssue/Issue1658.cs | 5 +- .../Tests/Issues/XFIssue/Issue2414.cs | 5 +- .../Tests/Issues/XFIssue/Issue4314.cs | 38 ++-- .../Tests/Issues/XFIssue/Issue6258.cs | 5 +- .../src/UITest.Appium/HelperExtensions.cs | 35 ++-- 13 files changed, 235 insertions(+), 102 deletions(-) diff --git a/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue4314.cs b/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue4314.cs index 708577eb4eb1..439833729bc8 100644 --- a/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue4314.cs +++ b/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue4314.cs @@ -1,25 +1,147 @@ -//using Microsoft.Maui.Controls.CustomAttributes; -//using Microsoft.Maui.Controls.Internals; - -//namespace Maui.Controls.Sample.Issues; - -//[Issue(IssueTracker.Github, 4314, "When ListView items is removed and it is empty, Xamarin Forms crash", PlatformAffected.iOS)] -//public class Issue4314 : TestNavigationPage -//{ -// const string Success = "Success"; - -// MessagesViewModel viewModel; -// protected override void Init() -// { -// var page = new ContextActionsGallery(false, true, 2) { Title = "Swipe and delete both" }; -// viewModel = page.BindingContext as MessagesViewModel; -// viewModel.Messages.CollectionChanged += (s, e) => -// { -// if (viewModel.Messages.Count == 0) -// { -// Navigation.PushAsync(new ContentPage { Title = "Success", Content = new Label { Text = Success } }); -// } -// }; -// Navigation.PushAsync(page); -// } -//} \ No newline at end of file +using Microsoft.Maui.Controls.CustomAttributes; +using Microsoft.Maui.Controls.Internals; +using System.Collections.ObjectModel; +using System.Windows.Input; + +namespace Maui.Controls.Sample.Issues; + +[Issue(IssueTracker.Github, 4314, "When ListView items is removed and it is empty, Xamarin Forms crash", PlatformAffected.iOS)] +public class Issue4314 : TestNavigationPage +{ + const string Success = "Success"; + + MessagesViewModel viewModel; + protected override void Init() + { + var page = new ContextActionsGallery(false, true, 2) { Title = "Swipe and delete both" }; + viewModel = page.BindingContext as MessagesViewModel; + viewModel.Messages.CollectionChanged += (s, e) => + { + if (viewModel.Messages.Count == 0) + { + Navigation.PushAsync(new ContentPage { Title = "Success", Content = new Label { Text = Success } }); + } + }; + Navigation.PushAsync(page); + } +} + +internal class MessagesViewModel : ViewModelBase +{ + public MessagesViewModel(int messagesCount) + { + Messages = new ObservableCollection(Enumerable.Range(0, messagesCount).Select(i => + { + return new MessageViewModel { Subject = "Subject Line " + i, MessagePreview = "Lorem ipsum dolorem monkeys bonkers " + i }; + })); + + MessagingCenter.Subscribe(this, "DeleteMessage", (vm, vm2) => + { + Messages.Remove(vm); + }); + } + + public ObservableCollection Messages + { + get; + private set; + } +} + +[Preserve(AllMembers = true)] +public class MessageViewModel : ViewModelBase +{ + public MessageViewModel() + { + Delete = new Command(() => MessagingCenter.Send(this, "DeleteMessage", this)); + Move = new Command(() => MessagingCenter.Send(this, "MoveMessage", this)); + } + + public string Subject + { + get; + set; + } + + public string MessagePreview + { + get; + set; + } + + public ICommand Delete + { + get; + private set; + } + + public ICommand Move + { + get; + private set; + } +} + +internal class ContextActionsGallery : ContentPage +{ + class MessageCell : TextCell + { + public MessageCell() + { + this.SetBinding(TextProperty, "Subject"); + this.SetBinding(DetailProperty, "MessagePreview"); + + var delete = new MenuItem { Text = "Delete", IsDestructive = true }; + delete.SetBinding(MenuItem.CommandProperty, "Delete"); + + var mark = new MenuItem { Text = "Mark", IconImageSource = "calculator.png" }; + var move = new MenuItem { Text = "Move" }; + + //move.Clicked += async (sender, e) => await Navigation.PopAsync(); + + ContextActions.Add(mark); + ContextActions.Add(delete); + ContextActions.Add(move); + + var clear = new MenuItem { Text = "Clear Items" }; + clear.Clicked += (sender, args) => ContextActions.Clear(); + ContextActions.Add(clear); + } + } + + public ContextActionsGallery(bool tableView = false, bool hasUnevenRows = false, int messagesCount = 100) + { + BindingContext = new MessagesViewModel(messagesCount); + + View list; + if (!tableView) + { + list = new ListView + { + HasUnevenRows = hasUnevenRows + }; + list.SetBinding(ListView.ItemsSourceProperty, "Messages"); + ((ListView)list).ItemTemplate = new DataTemplate(typeof(MessageCell)); + } + else + { + var section = new TableSection(); + section.Add(new TextCell { Text = "I have no ContextActions", Detail = "Sup" }); + foreach (var msg in ((MessagesViewModel)BindingContext).Messages) + { + section.Add(new MessageCell { BindingContext = msg }); + } + + list = new TableView(); + ((TableView)list).Root = new TableRoot { section }; + } + + Content = new StackLayout + { + Children = { + new Label { Text = "Email" }, + list + } + }; + } +} \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs index ba65aa5d7e1d..9960b96ab26d 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs @@ -1,4 +1,6 @@ -using NUnit.Framework; +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -12,23 +14,20 @@ public Bugzilla31330(TestDevice testDevice) : base(testDevice) public override string Issue => "Disabled context actions appear enabled"; - // TODO: porting over from Xamarin.UITest - // We don't seem to have "ActivateContextMenu" (yet)? - // [FailsOnAndroidWhenRunningOnXamarinUITest] - // [FailsOnIOSWhenRunningOnXamarinUITest] - // [Test] - //[Category(UITestCategories.ListView)] - // public void Bugzilla31330Test() - // { - // App.WaitForElement("Something 2"); - // App.ActivateContextMenu("Something 1"); - // App.WaitForElement("Delete"); - // App.Tap("Delete"); - // App.DismissContextMenu(); - // App.Tap("Something 2"); - // App.ActivateContextMenu("Something 2"); - // App.WaitForElement("Delete"); - // App.Tap("Delete"); - // App.WaitForNoElement("Something 2"); - // } -} \ No newline at end of file + [Test] + [Category(UITestCategories.ListView)] + public void Bugzilla31330Test() + { + App.WaitForElement("Something 2"); + App.ActivateContextMenu("Something 1"); + App.WaitForElement("Delete"); + App.Tap("Delete"); + App.TapCoordinates(150,150); + App.Tap("Something 2"); + App.ActivateContextMenu("Something 2"); + App.WaitForElement("Delete"); + App.Tap("Delete"); + App.WaitForNoElement("Something 2"); + } +} +#endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs index 80e5ec76a3f8..1f8974e1c63b 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla57317.cs @@ -1,4 +1,5 @@ -#if WINDOWS || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -20,7 +21,7 @@ public void Bugzilla57317Test() { App.WaitForFirstElement("Cell"); - App.ContextActions("Cell"); + App.ActivateContextMenu("Cell"); App.WaitForFirstElement("Self-Deleting item"); App.Tap("Self-Deleting item"); diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs index 15d0f2ef03e3..626ebb896c7a 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs @@ -1,4 +1,5 @@ -#if WINDOWS || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -28,7 +29,7 @@ public void Bugzilla58833Test() App.WaitForElement("TapGesture Fired"); // Both items should allow access to the context menu - App.ContextActions("Item #2"); + App.ActivateContextMenu("Item #2"); App.WaitForElement("2 Action"); #if ANDROID App.TapBackArrow(); @@ -36,7 +37,7 @@ public void Bugzilla58833Test() App.Tap("Item #3"); #endif - App.ContextActions("Item #1"); + App.ActivateContextMenu("Item #1"); App.WaitForElement("1 Action"); #if ANDROID App.TapBackArrow(); diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs index deae0b04333c..6c08b3314ae6 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs @@ -1,4 +1,5 @@ -#if WINDOWS || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -22,7 +23,7 @@ public void Bugzilla58875Test() App.WaitForElement(Button1Id); App.Tap(Button1Id); App.WaitForElement(Target); - App.ContextActions(Target); + App.ActivateContextMenu(Target); App.WaitForElement("More"); App.TapBackArrow(); App.TapBackArrow(); // back button dismisses the ContextAction first, so we need to hit back one more time to get to previous page @@ -30,7 +31,7 @@ public void Bugzilla58875Test() App.WaitForElement(Button1Id); App.Tap(Button1Id); App.WaitForElement(Target); - App.ContextActions(Target); + App.ActivateContextMenu(Target); App.WaitForElement("More"); } } diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs index 06a8ad7ccf28..c7edf4eeb97a 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla59580.cs @@ -1,4 +1,5 @@ -#if WINDOWs || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -19,7 +20,7 @@ public void RaisingCommandCanExecuteChangedCausesCrashOnAndroid() { App.WaitForElement("Cell"); - App.ContextActions("Cell"); + App.ActivateContextMenu("Cell"); App.WaitForElement("Fire CanExecuteChanged"); App.Tap("Fire CanExecuteChanged"); diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs index 63a4cabd3d0b..97f089b29823 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Issue3653.cs @@ -1,4 +1,5 @@ -#if WINDOWS || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -22,7 +23,7 @@ public void TestRemovingContextMenuItems() string searchFor = $"Remove me using the context menu. #{i}"; App.WaitForElement(searchFor); - App.ContextActions(searchFor); + App.ActivateContextMenu(searchFor); App.WaitForElement("Remove"); App.Tap("Remove"); } @@ -32,7 +33,7 @@ public void TestRemovingContextMenuItems() App.Tap("Add an item"); string searchFor = $"Remove me using the context menu. #{i}"; - App.ContextActions(searchFor); + App.ActivateContextMenu(searchFor); App.WaitForElement("Remove"); App.Tap("Remove"); } diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs index aef84084d577..49675590a98c 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/GitHub1331.cs @@ -1,4 +1,5 @@ -#if WINDOWs || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -31,7 +32,7 @@ public void SingleTapOnCellDoesNotActivateContext() App.WaitForNoElement("Context Action"); // But a Long Press *should* still display the context action - App.ContextActions(CellItem); + App.ActivateContextMenu(CellItem); App.WaitForElement("Context Action"); } } diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs index 28a13f34014b..a36b46a6d45b 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs @@ -1,4 +1,5 @@ -#if WINDOWS || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -18,7 +19,7 @@ public Issue1658(TestDevice testDevice) : base(testDevice) public void ContextActionsIconImageSource() { App.WaitForElement("ListViewItem"); - App.ContextActions("ListViewItem"); + App.ActivateContextMenu("ListViewItem"); VerifyScreenshot(TestContext.CurrentContext.Test.MethodName + "WithCoffeeIcon"); App.WaitForElement("ColorBox"); App.Tap("ColorBox"); diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs index a3bd08c4c778..2c842663e101 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs @@ -1,4 +1,5 @@ -#if WINDOWs || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -18,7 +19,7 @@ public Issue2414(TestDevice testDevice) : base(testDevice) public void TestShowContextMenuItemsInTheRightOrder() { App.WaitForElement("Swipe ME"); - App.ContextActions("Swipe ME"); + App.ActivateContextMenu("Swipe ME"); App.WaitForElement("Text0"); VerifyScreenshot(); App.Tap("Text0"); diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue4314.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue4314.cs index 6e674f99dd97..86f7655bc492 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue4314.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue4314.cs @@ -1,4 +1,6 @@ -using NUnit.Framework; +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 +using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -12,20 +14,20 @@ public Issue4314(TestDevice testDevice) : base(testDevice) public override string Issue => "When ListView items is removed and it is empty, Xamarin Forms crash"; - // TODO: See HostApp UI class for this, some supporting types are missing from code there. We probably need to get those our of the ControlGallery project or replace them - //[Test] - //[Category(UITestCategories.ContextActions)] - //public void Issue4341Test() - //{ - // App.WaitForElement(c => c.Marked("Email")); - // App.ActivateContextMenu("Subject Line 0"); - // App.WaitForElement("Delete"); - // App.Tap("Delete"); - // App.ActivateContextMenu("Subject Line 1"); - // App.Tap("Delete"); - // App.WaitForElement(c => c.Marked(Success)); - // App.Back(); - // App.WaitForElement(c => c.Marked("Email")); - // App.SwipeRightToLeft(); - //} -} \ No newline at end of file + [Test] + [Category(UITestCategories.ContextActions)] + public void Issue4341Test() + { + App.WaitForElement("Email"); + App.ActivateContextMenu("Subject Line 0"); + App.WaitForElement("Delete"); + App.Tap("Delete"); + App.ActivateContextMenu("Subject Line 1"); + App.Tap("Delete"); + App.WaitForElement("Success"); + App.TapBackArrow(); + App.WaitForElement("Email"); + App.SwipeRightToLeft(); + } +} +#endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs index 8314e965396e..d605bea7c5b0 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs @@ -1,4 +1,5 @@ -#if WINDOWs || ANDROID +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. +//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -18,7 +19,7 @@ public Issue6258(TestDevice testDevice) : base(testDevice) public void ContextActionsIconImageSource() { App.WaitForElement("ListViewItem"); - App.ContextActions("ListViewItem"); + App.ActivateContextMenu("ListViewItem"); VerifyScreenshot(); } } diff --git a/src/TestUtils/src/UITest.Appium/HelperExtensions.cs b/src/TestUtils/src/UITest.Appium/HelperExtensions.cs index d28698d812e8..a561be6d5fde 100644 --- a/src/TestUtils/src/UITest.Appium/HelperExtensions.cs +++ b/src/TestUtils/src/UITest.Appium/HelperExtensions.cs @@ -2293,28 +2293,29 @@ public static IUIElement WaitForTabElement(this IApp app, string tabName) /// - On Android, it performs a long press gesture on the element. /// - On Windows, it simulates a right-click (touch-and-hold) on the element. /// - On iOS, it performs a swipe from right to left on the element. + /// - On Catalyst, it performs a scroll from right to left on the element. /// /// Represents the main gateway to interact with an app. - - public static void ContextActions(this IApp app, string element) + /// The element on which to perform the context action. + public static void ActivateContextMenu(this IApp app, string element) { - var uiElement = FindElement(app, element); - if (app is AppiumAndroidApp) - { - app.LongPress(element); - } - else if (app is AppiumWindowsApp) - { - app.TouchAndHold(uiElement); - } - else if (app is AppiumIOSApp) + var uiElement = WaitForElement(app, element); + + switch (app) { - app.SwipeRightToLeft(uiElement, swipePercentage: 0.9, swipeSpeed: 500, withInertia: true); + case AppiumAndroidApp _: + app.LongPress(element); + break; + case AppiumWindowsApp _: + app.TouchAndHold(uiElement); + break; + case AppiumIOSApp _: + app.SwipeRightToLeft(uiElement, swipePercentage: 5, swipeSpeed: 500, withInertia: true); + break; + case AppiumCatalystApp _: + app.ScrollRight(uiElement, swipePercentage: 5, swipeSpeed: 500, withInertia: true); + break; } - else if (app is AppiumCatalystApp) - { - app.ScrollRight(uiElement); - } } static IUIElement Wait(Func query, From 367e1b9e3c896e98d3c7f031ea96cda4d036484b Mon Sep 17 00:00:00 2001 From: nivetha-nagalingam Date: Tue, 28 Jan 2025 19:13:30 +0530 Subject: [PATCH 3/4] Removed snapshots and updated the some test cases --- .../android/ContextActionsIconImageSource.png | Bin 15461 -> 0 bytes ...ntextActionsIconImageSourceInYellowBox.png | Bin 19773 -> 0 bytes ...xtActionsIconImageSourceWithCoffeeIcon.png | Bin 19773 -> 0 bytes ...estShowContextMenuItemsInTheRightOrder.png | Bin 24830 -> 0 bytes .../Issues/XFIssue/Issue1658.cs | 14 ++++++------ .../Tests/Issues/Bugzilla/Bugzilla31330.cs | 2 +- .../Tests/Issues/Bugzilla/Bugzilla58833.cs | 12 ++--------- .../Tests/Issues/Bugzilla/Bugzilla58875.cs | 3 +-- .../Tests/Issues/XFIssue/Issue1658.cs | 9 ++++---- .../Tests/Issues/XFIssue/Issue2414.cs | 2 +- .../Tests/Issues/XFIssue/Issue6258.cs | 1 + .../src/UITest.Appium/HelperExtensions.cs | 20 ++++++++++++++++++ 12 files changed, 37 insertions(+), 26 deletions(-) delete mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSource.png delete mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceInYellowBox.png delete mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceWithCoffeeIcon.png delete mode 100644 src/Controls/tests/TestCases.Android.Tests/snapshots/android/TestShowContextMenuItemsInTheRightOrder.png diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSource.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSource.png deleted file mode 100644 index 42454b2effd8387f5f71b8731842a8a6ba23740b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15461 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 diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceWithCoffeeIcon.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/ContextActionsIconImageSourceWithCoffeeIcon.png deleted file mode 100644 index ebee6c9f7a1d80856bc4b68193a48305f9b237e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19773 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 diff --git a/src/Controls/tests/TestCases.Android.Tests/snapshots/android/TestShowContextMenuItemsInTheRightOrder.png b/src/Controls/tests/TestCases.Android.Tests/snapshots/android/TestShowContextMenuItemsInTheRightOrder.png deleted file mode 100644 index 53186e89d06e61c86a3823b418ea267af0102652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24830 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 diff --git a/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs b/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs index 4a20269af44a..bb28984a4263 100644 --- a/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs +++ b/src/Controls/tests/TestCases.HostApp/Issues/XFIssue/Issue1658.cs @@ -24,20 +24,18 @@ protected override void Init() AutomationId = "coffee.png" }); - var box = new BoxView + var label = new Label { - WidthRequest = 30, - HeightRequest = 30, - Color = Colors.Red, - AutomationId = "ColorBox" + Text = "Tap label", + AutomationId = "labelId" }; var gr = new TapGestureRecognizer(); gr.Command = new Command(() => { - box.Color = box.Color == Colors.Red ? Colors.Yellow : Colors.Red; + label.Text = label.Text == "Tap label" ? "Success" : "Tap label"; }); - box.GestureRecognizers.Add(gr); + label.GestureRecognizers.Add(gr); cells.View = new StackLayout() { Orientation = StackOrientation.Horizontal, @@ -50,7 +48,7 @@ protected override void Init() VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.FillAndExpand }, - box + label } }; diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs index 9960b96ab26d..cacefeaad897 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla31330.cs @@ -22,7 +22,7 @@ public void Bugzilla31330Test() App.ActivateContextMenu("Something 1"); App.WaitForElement("Delete"); App.Tap("Delete"); - App.TapCoordinates(150,150); + App.DismissContextMenu(); App.Tap("Something 2"); App.ActivateContextMenu("Something 2"); App.WaitForElement("Delete"); diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs index 626ebb896c7a..088393871a42 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58833.cs @@ -31,19 +31,11 @@ public void Bugzilla58833Test() // Both items should allow access to the context menu App.ActivateContextMenu("Item #2"); App.WaitForElement("2 Action"); -#if ANDROID - App.TapBackArrow(); -#else - App.Tap("Item #3"); -#endif + App.DismissContextMenu(); App.ActivateContextMenu("Item #1"); App.WaitForElement("1 Action"); -#if ANDROID - App.TapBackArrow(); -#else - App.Tap("Item #3"); -#endif + App.DismissContextMenu(); } } #endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs index 6c08b3314ae6..d768bc6ebce2 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/Bugzilla/Bugzilla58875.cs @@ -25,9 +25,8 @@ public void Bugzilla58875Test() App.WaitForElement(Target); App.ActivateContextMenu(Target); App.WaitForElement("More"); + App.DismissContextMenu(); App.TapBackArrow(); - App.TapBackArrow(); // back button dismisses the ContextAction first, so we need to hit back one more time to get to previous page - App.WaitForElement(Button1Id); App.Tap(Button1Id); App.WaitForElement(Target); diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs index a36b46a6d45b..ad00c5dc4703 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs @@ -20,10 +20,11 @@ public void ContextActionsIconImageSource() { App.WaitForElement("ListViewItem"); App.ActivateContextMenu("ListViewItem"); - VerifyScreenshot(TestContext.CurrentContext.Test.MethodName + "WithCoffeeIcon"); - App.WaitForElement("ColorBox"); - App.Tap("ColorBox"); - VerifyScreenshot(TestContext.CurrentContext.Test.MethodName + "InYellowBox"); + App.WaitForElement(AppiumQuery.ByAccessibilityId("coffee.png")); + App.DismissContextMenu(); + Assert.That(App.WaitForElement("labelId").GetText(), Is.EqualTo("Tap label")); + App.Tap("labelId"); + Assert.That(App.WaitForElement("labelId").GetText(), Is.EqualTo("Success")); } } #endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs index 2c842663e101..088edae023a8 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue2414.cs @@ -21,8 +21,8 @@ public void TestShowContextMenuItemsInTheRightOrder() App.WaitForElement("Swipe ME"); App.ActivateContextMenu("Swipe ME"); App.WaitForElement("Text0"); - VerifyScreenshot(); App.Tap("Text0"); + App.WaitForElement("Swipe ME"); } } #endif \ No newline at end of file diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs index d605bea7c5b0..f5dfe48aab13 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs @@ -21,6 +21,7 @@ public void ContextActionsIconImageSource() App.WaitForElement("ListViewItem"); App.ActivateContextMenu("ListViewItem"); VerifyScreenshot(); + App.WaitForElement(AppiumQuery.ByAccessibilityId("coffee.png")); } } #endif \ No newline at end of file diff --git a/src/TestUtils/src/UITest.Appium/HelperExtensions.cs b/src/TestUtils/src/UITest.Appium/HelperExtensions.cs index a561be6d5fde..7f2b37012398 100644 --- a/src/TestUtils/src/UITest.Appium/HelperExtensions.cs +++ b/src/TestUtils/src/UITest.Appium/HelperExtensions.cs @@ -2318,6 +2318,26 @@ public static void ActivateContextMenu(this IApp app, string element) } } + ///

+ /// Dismisses the context menu in the application. + /// + /// The IApp instance representing the application. + /// + /// For Android apps, it taps the back arrow. + /// For other platforms, it taps at coordinates (150, 150). + /// + public static void DismissContextMenu(this IApp app) + { + if (app is AppiumAndroidApp) + { + app.TapBackArrow(); + } + else + { + app.TapCoordinates(150, 150); + } + } + static IUIElement Wait(Func query, Func satisfactory, string? timeoutMessage = null, From 7ab61602b4782af44bd95eb091807d7a2a98ecb4 Mon Sep 17 00:00:00 2001 From: nivetha-nagalingam Date: Tue, 28 Jan 2025 21:36:00 +0530 Subject: [PATCH 4/4] Added the comments --- .../TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs | 4 ++-- .../TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs index ad00c5dc4703..143754b4a996 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue1658.cs @@ -1,5 +1,5 @@ -#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. -//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST && TEST_FAILS_ON_WINDOWS// The automation ID for the image icon in the Windows context menu is not working in Appium. +//ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; diff --git a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs index f5dfe48aab13..c8e36837f264 100644 --- a/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs +++ b/src/Controls/tests/TestCases.Shared.Tests/Tests/Issues/XFIssue/Issue6258.cs @@ -1,5 +1,5 @@ -#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST //ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. -//For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 +#if TEST_FAILS_ON_IOS && TEST_FAILS_ON_CATALYST && TEST_FAILS_ON_WINDOWS// The automation ID for the image icon in the Windows context menu is not working in Appium. +//ContextActions Menu Items Not Accessible via Automation on iOS and Catalyst Platforms. For more information see Issue Link: https://github.com/dotnet/maui/issues/27394 using NUnit.Framework; using UITest.Appium; using UITest.Core; @@ -20,7 +20,6 @@ public void ContextActionsIconImageSource() { App.WaitForElement("ListViewItem"); App.ActivateContextMenu("ListViewItem"); - VerifyScreenshot(); App.WaitForElement(AppiumQuery.ByAccessibilityId("coffee.png")); } }