1package io.flutter.embedding.android;
3import static org.mockito.Mockito.any;
4import static org.mockito.Mockito.mock;
5import static org.mockito.Mockito.times;
6import static org.mockito.Mockito.verify;
8import androidx.test.ext.junit.runners.AndroidJUnit4;
9import io.flutter.embedding.engine.dart.DartExecutor;
10import io.flutter.embedding.engine.systemchannels.KeyboardChannel;
11import io.flutter.plugin.common.BinaryMessenger;
12import io.flutter.plugin.common.MethodCall;
13import io.flutter.plugin.common.MethodChannel;
14import io.flutter.plugin.common.StandardMethodCodec;
15import java.nio.ByteBuffer;
16import java.util.HashMap;
18import org.junit.runner.RunWith;
19import org.mockito.ArgumentCaptor;
20import org.robolectric.annotation.Config;
23@RunWith(AndroidJUnit4.class)
26 private static BinaryMessenger.BinaryReply sendToBinaryMessageHandler(
27 BinaryMessenger.BinaryMessageHandler binaryMessageHandler, String method, Object
args) {
29 ByteBuffer encodedMethodCall = StandardMethodCodec.INSTANCE.encodeMethodCall(methodCall);
30 BinaryMessenger.BinaryReply reply = mock(BinaryMessenger.BinaryReply.class);
31 binaryMessageHandler.onMessage((ByteBuffer) encodedMethodCall.flip(), reply);
35 @SuppressWarnings(
"deprecation")
39 ArgumentCaptor<BinaryMessenger.BinaryMessageHandler> binaryMessageHandlerCaptor =
40 ArgumentCaptor.forClass(BinaryMessenger.BinaryMessageHandler.class);
41 DartExecutor mockBinaryMessenger = mock(DartExecutor.class);
42 KeyboardChannel.KeyboardMethodHandler mockHandler =
43 mock(KeyboardChannel.KeyboardMethodHandler.class);
44 KeyboardChannel keyboardChannel =
new KeyboardChannel(mockBinaryMessenger);
46 verify(mockBinaryMessenger,
times(1))
47 .setMessageHandler(any(String.class), binaryMessageHandlerCaptor.capture());
49 BinaryMessenger.BinaryMessageHandler binaryMessageHandler =
50 binaryMessageHandlerCaptor.getValue();
52 keyboardChannel.setKeyboardMethodHandler(mockHandler);
53 sendToBinaryMessageHandler(binaryMessageHandler,
"getKeyboardState",
null);
55 verify(mockHandler,
times(1)).getKeyboardState();
62 KeyboardChannel keyboardChannel =
new KeyboardChannel(mock(DartExecutor.class));
64 MethodChannel.Result
result = mock(MethodChannel.Result.class);
65 keyboardChannel.parsingMethodHandler.onMethodCall(methodCall,
result);
67 verify(
result).success(
new HashMap());
static SkISize times(const SkISize &size, float factor)
void repliesWhenNoKeyboardChannelHandler()
void respondsToGetKeyboardStateChannelMessage()
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args