Bug 1466910 - 2. Allow @AssertCalled(count = 0) in waitUntilCalled; r=me
Allow some methods to be annotated with @AssertCalled(count = 0) for the
object passed to waitUntilCalled.
MozReview-Commit-ID: 1pqpQV3OyKS
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt
@@ -342,16 +342,30 @@ class GeckoSessionTestRuleTest : BaseSes
sessionRule.waitUntilCalled(object : Callbacks.ProgressDelegate {
@AssertCalled
override fun onPageStop(session: GeckoSession, success: Boolean) {
throw IllegalStateException()
}
})
}
+ @Test fun waitUntilCalled_zeroCount() {
+ // Support having @AssertCalled(count = 0) annotations for waitUntilCalled calls.
+ sessionRule.session.loadTestPath(HELLO_HTML_PATH)
+ sessionRule.waitUntilCalled(object : Callbacks.ProgressDelegate, Callbacks.ScrollDelegate {
+ @AssertCalled(count = 1)
+ override fun onPageStop(session: GeckoSession, success: Boolean) {
+ }
+
+ @AssertCalled(count = 0)
+ override fun onScrollChanged(session: GeckoSession, scrollX: Int, scrollY: Int) {
+ }
+ })
+ }
+
@Test fun forCallbacksDuringWait_anyMethod() {
sessionRule.session.loadTestPath(HELLO_HTML_PATH)
sessionRule.waitForPageStop()
var counter = 0
sessionRule.forCallbacksDuringWait(object : Callbacks.ProgressDelegate {
override fun onPageStop(session: GeckoSession, success: Boolean) {
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java
@@ -1701,17 +1701,17 @@ public class GeckoSessionTestRule extend
final Method callbackMethod;
try {
callbackMethod = callback.getClass().getMethod(method.getName(),
method.getParameterTypes());
} catch (final NoSuchMethodException e) {
throw new RuntimeException(e);
}
final AssertCalled ac = getAssertCalled(callbackMethod, callback);
- if (ac != null && ac.value()) {
+ if (ac != null && ac.value() && ac.count() != 0) {
methodCalls.add(new MethodCall(session, method,
ac, /* target */ null));
}
}
isSessionCallback = true;
}
assertThat("Delegate should implement a GeckoSession delegate " +