1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119<!DOCTYPE html> 120<html devsite> 121<head> 122 123 124 <meta name="top_category" value="develop" /> 125 126 <meta name="subcategory" value="reference" /> 127 128 129 <meta name="book_path" value="/reference/android/support/test/_book.yaml" /> 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145<title>CountingIdlingResource</title> 146 147 148</head> 149 150<body class="gc-documentation develop reference api apilevel-"> 151<div id="doc-api-level" class="" style="display:none"></div> 152 153 154 155 156<div id="naMessage"></div> 157 158<div id="api-info-block"> 159<div class="api-level"> 160 161 162 163 164</div> 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183<div class="sum-details-links"> 184 185Summary: 186 187 188 189 190 191 192 193 194 195 <a href="#pubctors">Ctors</a> 196 197 198 199 200 | <a href="#pubmethods">Methods</a> 201 202 203 204 205 | <a href="#inhmethods">Inherited Methods</a> 206 207| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a> 208 209</div><!-- end sum-details-links --> 210</div><!-- end api-info-block --> 211 212<div class="api apilevel-" id="jd-content"> 213 214<!-- ======== START OF CLASS DATA ======== --> 215 216<h1 class="api-title">CountingIdlingResource</h1> 217<p> 218<code class="api-signature"> 219 public 220 221 final 222 223 class 224 CountingIdlingResource 225</code> 226<br> 227 228 229<code class="api-signature"> 230 231 extends Object 232 233 234 235</code> 236 237<code class="api-signature"> 238 239 240 implements 241 242 <a href="/reference/android/support/test/espresso/IdlingResource.html">IdlingResource</a> 243 244 245 246</code> 247 248</p><table class="jd-inheritance-table"> 249 250 251 <tr> 252 253 <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object 254 </td> 255 </tr> 256 257 258 <tr> 259 260 <td class="jd-inheritance-space"> ↳</td> 261 262 <td colspan="1" class="jd-inheritance-class-cell">android.support.test.espresso.contrib.CountingIdlingResource 263 </td> 264 </tr> 265 266 267</table> 268 269 270 271 272<br><hr><p> 273 <p class="caution"><strong> 274 This class is deprecated.</strong><br/> 275 Use <code><a href="/reference/android/support/test/espresso/idling/CountingIdlingResource.html">CountingIdlingResource</a></code> instead. 276 This class has been moved to a different module to avoid a dependency on espresso-contrib in your 277 production code. This class will be removed in a future release. 278 279 </p> 280 281 282 <p>An implementation of <code><a href="/reference/android/support/test/espresso/IdlingResource.html">IdlingResource</a></code> that determines idleness by maintaining an internal 283 counter. When the counter is 0 - it is considered to be idle, when it is non-zero it is not 284 idle. This is very similar to the way a <code><a href="/reference/java/util/concurrent/Semaphore.html">Semaphore</a></code> behaves. 285 <p> 286 The counter may be incremented or decremented from any thread. If it reaches an illogical state 287 (like counter less than zero) it will throw an IllegalStateException. 288 </p> 289 <p> 290 This class can then be used to wrap up operations that while in progress should block tests from 291 accessing the UI. 292 </p> 293 294 <pre> 295 <code>public interface FooServer { 296 public Foo newFoo(); 297 public void updateFoo(Foo foo); 298 } 299 300 public DecoratedFooServer implements FooServer { 301 private final FooServer realFooServer; 302 private final CountingIdlingResource fooServerIdlingResource; 303 304 public DecoratedFooServer(FooServer realFooServer, 305 CountingIdlingResource fooServerIdlingResource) { 306 this.realFooServer = checkNotNull(realFooServer); 307 this.fooServerIdlingResource = checkNotNull(fooServerIdlingResource); 308 } 309 310 public Foo newFoo() { 311 fooServerIdlingResource.increment(); 312 try { 313 return realFooServer.newFoo(); 314 } finally { 315 fooServerIdlingResource.decrement(); 316 } 317 } 318 319 public void updateFoo(Foo foo) { 320 fooServerIdlingResource.increment(); 321 try { 322 realFooServer.updateFoo(foo); 323 } finally { 324 fooServerIdlingResource.decrement(); 325 } 326 } 327 } 328 </code> 329 </pre> 330 331 Then in your test setup: 332 <pre> 333 <code>public void setUp() throws Exception { 334 super.setUp(); 335 FooServer realServer = FooApplication.getFooServer(); 336 CountingIdlingResource countingResource = new CountingIdlingResource("FooServerCalls"); 337 FooApplication.setFooServer(new DecoratedFooServer(realServer, countingResource)); 338 Espresso.registerIdlingResource(countingResource); 339 } 340 </code> 341 </pre></p> 342 343 344 345 346 347 348 349<h2 class="api-section">Summary</h2> 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373<!-- ======== CONSTRUCTOR SUMMARY ======== --> 374<table id="pubctors" class="responsive constructors"> 375<tr><th colspan="2"><h3>Public constructors</h3></th></tr> 376 377 378 379 380 <tr class="api apilevel-" > 381 382 383 <td width="100%"> 384 <code> 385 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#CountingIdlingResource(java.lang.String)">CountingIdlingResource</a>(String resourceName) 386 </code> 387 388 <p>Creates a CountingIdlingResource without debug tracing. 389 390 391</p> 392 393 </td> 394 </tr> 395 396 397 398 <tr class="api apilevel-" > 399 400 401 <td width="100%"> 402 <code> 403 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#CountingIdlingResource(java.lang.String, boolean)">CountingIdlingResource</a>(String resourceName, boolean debugCounting) 404 </code> 405 406 <p>Creates a CountingIdlingResource. 407 408 409</p> 410 411 </td> 412 </tr> 413 414 415 416</table> 417 418 419 420 421 422 423<!-- ========== METHOD SUMMARY =========== --> 424<table id="pubmethods" class="responsive methods"> 425<tr><th colspan="2"><h3>Public methods</h3></th></tr> 426 427 428 429 430 <tr class="api apilevel-" > 431 432 433 <td><code> 434 435 436 437 438 439 void</code> 440 </td> 441 442 <td width="100%"> 443 <code> 444 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#decrement()">decrement</a>() 445 </code> 446 447 <p>Decrements the count of in-flight transactions to the resource being monitored. 448 449 450</p> 451 452 </td> 453 </tr> 454 455 456 457 <tr class="api apilevel-" > 458 459 460 <td><code> 461 462 463 464 465 466 void</code> 467 </td> 468 469 <td width="100%"> 470 <code> 471 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#dumpStateToLogs()">dumpStateToLogs</a>() 472 </code> 473 474 <p>Prints the current state of this resource to the logcat at info level. 475 476 477</p> 478 479 </td> 480 </tr> 481 482 483 484 <tr class="api apilevel-" > 485 486 487 <td><code> 488 489 490 491 492 493 String</code> 494 </td> 495 496 <td width="100%"> 497 <code> 498 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#getName()">getName</a>() 499 </code> 500 501 <p>Returns the name of the resources (used for logging and idempotency of registration). 502 503 504</p> 505 506 </td> 507 </tr> 508 509 510 511 <tr class="api apilevel-" > 512 513 514 <td><code> 515 516 517 518 519 520 void</code> 521 </td> 522 523 <td width="100%"> 524 <code> 525 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#increment()">increment</a>() 526 </code> 527 528 <p>Increments the count of in-flight transactions to the resource being monitored. 529 530 531</p> 532 533 </td> 534 </tr> 535 536 537 538 <tr class="api apilevel-" > 539 540 541 <td><code> 542 543 544 545 546 547 boolean</code> 548 </td> 549 550 <td width="100%"> 551 <code> 552 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#isIdleNow()">isIdleNow</a>() 553 </code> 554 555 <p>Returns <code>true</code> if resource is currently idle. 556 557 558</p> 559 560 </td> 561 </tr> 562 563 564 565 <tr class="api apilevel-" > 566 567 568 <td><code> 569 570 571 572 573 574 void</code> 575 </td> 576 577 <td width="100%"> 578 <code> 579 <a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html#registerIdleTransitionCallback(android.support.test.espresso.IdlingResource.ResourceCallback)">registerIdleTransitionCallback</a>(<a href="/reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a> resourceCallback) 580 </code> 581 582 <p>Registers the given <code><a href="/reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a></code> with the resource. 583 584 585</p> 586 587 </td> 588 </tr> 589 590 591 592</table> 593 594 595 596 597 598 599 600<!-- ========== METHOD SUMMARY =========== --> 601<table id="inhmethods" class="methods inhtable"> 602<tr><th><h3>Inherited methods</h3></th></tr> 603 604 605<tr class="api apilevel-" > 606<td colspan="2"> 607 608 <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed" 609 ><img height="34" id="inherited-methods-java.lang.Object-trigger" 610 src="/assets/images/styles/disclosure_down.png" 611 class="jd-expando-trigger-img" /></a>From 612class 613<code> 614 615 java.lang.Object 616 617</code> 618<div id="inherited-methods-java.lang.Object"> 619 <div id="inherited-methods-java.lang.Object-list" 620 class="jd-inheritedlinks"> 621 </div> 622 <div id="inherited-methods-java.lang.Object-summary" style="display: none;"> 623 <table class="jd-sumtable-expando responsive"> 624 625 626 627 628 <tr class="api apilevel-" > 629 630 631 <td><code> 632 633 634 635 636 637 Object</code> 638 </td> 639 640 <td width="100%"> 641 <code> 642 clone() 643 </code> 644 645 </td> 646 </tr> 647 648 649 650 <tr class="api apilevel-" > 651 652 653 <td><code> 654 655 656 657 658 659 boolean</code> 660 </td> 661 662 <td width="100%"> 663 <code> 664 equals(Object arg0) 665 </code> 666 667 </td> 668 </tr> 669 670 671 672 <tr class="api apilevel-" > 673 674 675 <td><code> 676 677 678 679 680 681 void</code> 682 </td> 683 684 <td width="100%"> 685 <code> 686 finalize() 687 </code> 688 689 </td> 690 </tr> 691 692 693 694 <tr class="api apilevel-" > 695 696 697 <td><code> 698 699 700 701 final 702 703 Class<?></code> 704 </td> 705 706 <td width="100%"> 707 <code> 708 getClass() 709 </code> 710 711 </td> 712 </tr> 713 714 715 716 <tr class="api apilevel-" > 717 718 719 <td><code> 720 721 722 723 724 725 int</code> 726 </td> 727 728 <td width="100%"> 729 <code> 730 hashCode() 731 </code> 732 733 </td> 734 </tr> 735 736 737 738 <tr class="api apilevel-" > 739 740 741 <td><code> 742 743 744 745 final 746 747 void</code> 748 </td> 749 750 <td width="100%"> 751 <code> 752 notify() 753 </code> 754 755 </td> 756 </tr> 757 758 759 760 <tr class="api apilevel-" > 761 762 763 <td><code> 764 765 766 767 final 768 769 void</code> 770 </td> 771 772 <td width="100%"> 773 <code> 774 notifyAll() 775 </code> 776 777 </td> 778 </tr> 779 780 781 782 <tr class="api apilevel-" > 783 784 785 <td><code> 786 787 788 789 790 791 String</code> 792 </td> 793 794 <td width="100%"> 795 <code> 796 toString() 797 </code> 798 799 </td> 800 </tr> 801 802 803 804 <tr class="api apilevel-" > 805 806 807 <td><code> 808 809 810 811 final 812 813 void</code> 814 </td> 815 816 <td width="100%"> 817 <code> 818 wait(long arg0, int arg1) 819 </code> 820 821 </td> 822 </tr> 823 824 825 826 <tr class="api apilevel-" > 827 828 829 <td><code> 830 831 832 833 final 834 835 void</code> 836 </td> 837 838 <td width="100%"> 839 <code> 840 wait(long arg0) 841 </code> 842 843 </td> 844 </tr> 845 846 847 848 <tr class="api apilevel-" > 849 850 851 <td><code> 852 853 854 855 final 856 857 void</code> 858 </td> 859 860 <td width="100%"> 861 <code> 862 wait() 863 </code> 864 865 </td> 866 </tr> 867 868 869 870 </table> 871 </div> 872</div> 873</td></tr> 874 875 876 877<tr class="api apilevel-" > 878<td colspan="2"> 879 880 <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.support.test.espresso.IdlingResource" class="jd-expando-trigger closed" 881 ><img height="34" id="inherited-methods-android.support.test.espresso.IdlingResource-trigger" 882 src="/assets/images/styles/disclosure_down.png" 883 class="jd-expando-trigger-img" /></a>From 884interface 885<code> 886 887 <a href="/reference/android/support/test/espresso/IdlingResource.html">android.support.test.espresso.IdlingResource</a> 888 889</code> 890<div id="inherited-methods-android.support.test.espresso.IdlingResource"> 891 <div id="inherited-methods-android.support.test.espresso.IdlingResource-list" 892 class="jd-inheritedlinks"> 893 </div> 894 <div id="inherited-methods-android.support.test.espresso.IdlingResource-summary" style="display: none;"> 895 <table class="jd-sumtable-expando responsive"> 896 897 898 899 900 <tr class="api apilevel-" > 901 902 903 <td><code> 904 abstract 905 906 907 908 909 String</code> 910 </td> 911 912 <td width="100%"> 913 <code> 914 <a href="/reference/android/support/test/espresso/IdlingResource.html#getName()">getName</a>() 915 </code> 916 917 <p>Returns the name of the resources (used for logging and idempotency of registration). 918 919 920</p> 921 922 </td> 923 </tr> 924 925 926 927 <tr class="api apilevel-" > 928 929 930 <td><code> 931 abstract 932 933 934 935 936 boolean</code> 937 </td> 938 939 <td width="100%"> 940 <code> 941 <a href="/reference/android/support/test/espresso/IdlingResource.html#isIdleNow()">isIdleNow</a>() 942 </code> 943 944 <p>Returns <code>true</code> if resource is currently idle. 945 946 947</p> 948 949 </td> 950 </tr> 951 952 953 954 <tr class="api apilevel-" > 955 956 957 <td><code> 958 abstract 959 960 961 962 963 void</code> 964 </td> 965 966 <td width="100%"> 967 <code> 968 <a href="/reference/android/support/test/espresso/IdlingResource.html#registerIdleTransitionCallback(android.support.test.espresso.IdlingResource.ResourceCallback)">registerIdleTransitionCallback</a>(<a href="/reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a> callback) 969 </code> 970 971 <p>Registers the given <code><a href="/reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a></code> with the resource. 972 973 974</p> 975 976 </td> 977 </tr> 978 979 980 981 </table> 982 </div> 983</div> 984</td></tr> 985 986 987</table> 988 989 990 991<!-- XML Attributes --> 992 993 994<!-- Enum Values --> 995 996 997<!-- Constants --> 998 999 1000<!-- Fields --> 1001 1002 1003<!-- Public ctors --> 1004 1005 1006<!-- ========= CONSTRUCTOR DETAIL ======== --> 1007<h2 class="api-section">Public constructors</h2> 1008 1009 1010 1011<A NAME="CountingIdlingResource(java.lang.String)"></A> 1012 1013<div class="api apilevel-"> 1014 <h3 class="api-name">CountingIdlingResource</h3> 1015 <div class="api-level"> 1016 <div></div> 1017 1018 1019 1020 </div> 1021<pre class="api-signature no-pretty-print"> 1022CountingIdlingResource (String resourceName)</pre> 1023 1024 1025 1026 1027 <p>Creates a CountingIdlingResource without debug tracing.</p> 1028 <table class="responsive"> 1029 <tr><th colspan=2>Parameters</th></tr> 1030 <tr> 1031 <td><code>resourceName</code></td> 1032 <td width="100%"> 1033 <code>String</code>: 1034 the resource name this resource should report to Espresso. 1035</td> 1036 </tr> 1037 </table> 1038 1039</div> 1040 1041 1042<A NAME="CountingIdlingResource(java.lang.String, boolean)"></A> 1043 1044<div class="api apilevel-"> 1045 <h3 class="api-name">CountingIdlingResource</h3> 1046 <div class="api-level"> 1047 <div></div> 1048 1049 1050 1051 </div> 1052<pre class="api-signature no-pretty-print"> 1053CountingIdlingResource (String resourceName, 1054 boolean debugCounting)</pre> 1055 1056 1057 1058 1059 <p>Creates a CountingIdlingResource.</p> 1060 <table class="responsive"> 1061 <tr><th colspan=2>Parameters</th></tr> 1062 <tr> 1063 <td><code>resourceName</code></td> 1064 <td width="100%"> 1065 <code>String</code>: 1066 the resource name this resource should report to Espresso.</td> 1067 </tr> 1068 <tr> 1069 <td><code>debugCounting</code></td> 1070 <td width="100%"> 1071 <code>boolean</code>: 1072 if true increment & decrement calls will print trace information to logs. 1073</td> 1074 </tr> 1075 </table> 1076 1077</div> 1078 1079 1080 1081 1082 1083<!-- ========= CONSTRUCTOR DETAIL ======== --> 1084<!-- Protected ctors --> 1085 1086 1087 1088<!-- ========= METHOD DETAIL ======== --> 1089<!-- Public methdos --> 1090 1091<h2 class="api-section">Public methods</h2> 1092 1093 1094 1095<A NAME="decrement()"></A> 1096 1097<div class="api apilevel-"> 1098 <h3 class="api-name">decrement</h3> 1099 <div class="api-level"> 1100 <div></div> 1101 1102 1103 1104 </div> 1105<pre class="api-signature no-pretty-print"> 1106void decrement ()</pre> 1107 1108 1109 1110 1111 <p>Decrements the count of in-flight transactions to the resource being monitored. 1112 1113 If this operation results in the counter falling below 0 - an exception is raised.</p> 1114 <table class="responsive"> 1115 <tr><th colspan=2>Throws</th></tr> 1116 <tr> 1117 <td><code>IllegalStateException</code></td> 1118 <td width="100%">if the counter is below 0. 1119</td> 1120 </tr> 1121 </table> 1122 1123 1124</div> 1125 1126 1127<A NAME="dumpStateToLogs()"></A> 1128 1129<div class="api apilevel-"> 1130 <h3 class="api-name">dumpStateToLogs</h3> 1131 <div class="api-level"> 1132 <div></div> 1133 1134 1135 1136 </div> 1137<pre class="api-signature no-pretty-print"> 1138void dumpStateToLogs ()</pre> 1139 1140 1141 1142 1143 <p>Prints the current state of this resource to the logcat at info level. 1144</p> 1145 1146</div> 1147 1148 1149<A NAME="getName()"></A> 1150 1151<div class="api apilevel-"> 1152 <h3 class="api-name">getName</h3> 1153 <div class="api-level"> 1154 <div></div> 1155 1156 1157 1158 </div> 1159<pre class="api-signature no-pretty-print"> 1160String getName ()</pre> 1161 1162 1163 1164 1165 <p>Returns the name of the resources (used for logging and idempotency of registration). 1166</p> 1167 <table class="responsive"> 1168 <tr><th colspan=2>Returns</th></tr> 1169 <tr> 1170 <td><code>String</code></td> 1171 <td width="100%"><!-- no returns description in source --></td> 1172 </tr> 1173 </table> 1174 1175</div> 1176 1177 1178<A NAME="increment()"></A> 1179 1180<div class="api apilevel-"> 1181 <h3 class="api-name">increment</h3> 1182 <div class="api-level"> 1183 <div></div> 1184 1185 1186 1187 </div> 1188<pre class="api-signature no-pretty-print"> 1189void increment ()</pre> 1190 1191 1192 1193 1194 <p>Increments the count of in-flight transactions to the resource being monitored. 1195 1196 This method can be called from any thread. 1197</p> 1198 1199</div> 1200 1201 1202<A NAME="isIdleNow()"></A> 1203 1204<div class="api apilevel-"> 1205 <h3 class="api-name">isIdleNow</h3> 1206 <div class="api-level"> 1207 <div></div> 1208 1209 1210 1211 </div> 1212<pre class="api-signature no-pretty-print"> 1213boolean isIdleNow ()</pre> 1214 1215 1216 1217 1218 <p>Returns <code>true</code> if resource is currently idle. Espresso will <b>always</b> call this 1219 method from the main thread, therefore it should be non-blocking and return immediately. 1220</p> 1221 <table class="responsive"> 1222 <tr><th colspan=2>Returns</th></tr> 1223 <tr> 1224 <td><code>boolean</code></td> 1225 <td width="100%"><!-- no returns description in source --></td> 1226 </tr> 1227 </table> 1228 1229</div> 1230 1231 1232<A NAME="registerIdleTransitionCallback(android.support.test.espresso.IdlingResource.ResourceCallback)"></A> 1233 1234<div class="api apilevel-"> 1235 <h3 class="api-name">registerIdleTransitionCallback</h3> 1236 <div class="api-level"> 1237 <div></div> 1238 1239 1240 1241 </div> 1242<pre class="api-signature no-pretty-print"> 1243void registerIdleTransitionCallback (<a href="/reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a> resourceCallback)</pre> 1244 1245 1246 1247 1248 <p>Registers the given <code><a href="/reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a></code> with the resource. Espresso will call this method: 1249 <ul> 1250 <li>with its implementation of <code><a href="/reference/android/support/test/espresso/IdlingResource.ResourceCallback.html">IdlingResource.ResourceCallback</a></code> so it can be notified asynchronously 1251 that your resource is idle 1252 <li>from the main thread, but you are free to execute the callback's onTransitionToIdle from 1253 any thread 1254 <li>once (when it is initially given a reference to your IdlingResource) 1255 </ul> 1256 <br> 1257 You only need to call this upon transition from busy to idle - if the resource is already idle 1258 when the method is called invoking the call back is optional and has no significant impact. 1259</p> 1260 <table class="responsive"> 1261 <tr><th colspan=2>Parameters</th></tr> 1262 <tr> 1263 <td><code>resourceCallback</code></td> 1264 <td width="100%"> 1265 <code>IdlingResource.ResourceCallback</code> 1266 <!-- no parameter comment --></td> 1267 </tr> 1268 </table> 1269 1270</div> 1271 1272 1273 1274 1275 1276<!-- ========= METHOD DETAIL ======== --> 1277 1278 1279 1280<!-- ========= END OF CLASS DATA ========= --> 1281 1282</div><!-- end jd-content --> 1283 1284 1285 1286<div class="data-reference-resources-wrapper"> 1287 1288 <ul data-reference-resources> 1289 1290 1291 <li><h2>Interfaces</h2> 1292 <ul> 1293 <li class="api apilevel-"><a href="/reference/android/support/test/espresso/contrib/RecyclerViewActions.PositionableRecyclerViewAction.html">RecyclerViewActions.PositionableRecyclerViewAction</a></li> 1294 </ul> 1295 </li> 1296 1297 <li><h2>Classes</h2> 1298 <ul> 1299 <li class="api apilevel-"><a href="/reference/android/support/test/espresso/contrib/AccessibilityChecks.html">AccessibilityChecks</a></li> 1300 <li class="selected api apilevel-"><a href="/reference/android/support/test/espresso/contrib/CountingIdlingResource.html">CountingIdlingResource</a></li> 1301 <li class="api apilevel-"><a href="/reference/android/support/test/espresso/contrib/DrawerActions.html">DrawerActions</a></li> 1302 <li class="api apilevel-"><a href="/reference/android/support/test/espresso/contrib/DrawerMatchers.html">DrawerMatchers</a></li> 1303 <li class="api apilevel-"><a href="/reference/android/support/test/espresso/contrib/NavigationViewActions.html">NavigationViewActions</a></li> 1304 <li class="api apilevel-"><a href="/reference/android/support/test/espresso/contrib/PickerActions.html">PickerActions</a></li> 1305 <li class="api apilevel-"><a href="/reference/android/support/test/espresso/contrib/RecyclerViewActions.html">RecyclerViewActions</a></li> 1306 </ul> 1307 </li> 1308 1309 1310 1311 </ul> 1312 1313</div> 1314 1315 1316 1317</body> 1318</html> 1319