blob: d6593ab24462e5ffc4bf291845e9adf5dbb38f74 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package io.flutter.plugins.webviewflutter;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import io.flutter.plugins.webviewflutter.WebChromeClientHostApiImpl.WebChromeClientCreator;
import io.flutter.plugins.webviewflutter.WebChromeClientHostApiImpl.WebChromeClientImpl;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
public class WebChromeClientTest {
@Rule public MockitoRule mockitoRule = MockitoJUnit.rule();
@Mock public WebChromeClientFlutterApiImpl mockFlutterApi;
@Mock public WebView mockWebView;
@Mock public WebViewClient mockWebViewClient;
InstanceManager instanceManager;
WebChromeClientHostApiImpl hostApiImpl;
WebChromeClientImpl webChromeClient;
@Before
public void setUp() {
instanceManager = new InstanceManager();
instanceManager.addInstance(mockWebView, 0L);
instanceManager.addInstance(mockWebViewClient, 1L);
final WebChromeClientCreator webChromeClientCreator =
new WebChromeClientCreator() {
@Override
public WebChromeClientImpl createWebChromeClient(
WebChromeClientFlutterApiImpl flutterApi, WebViewClient webViewClient) {
webChromeClient = super.createWebChromeClient(flutterApi, webViewClient);
return webChromeClient;
}
};
hostApiImpl =
new WebChromeClientHostApiImpl(instanceManager, webChromeClientCreator, mockFlutterApi);
hostApiImpl.create(2L, 1L);
}
@Test
public void onProgressChanged() {
webChromeClient.onProgressChanged(mockWebView, 23);
verify(mockFlutterApi).onProgressChanged(eq(webChromeClient), eq(mockWebView), eq(23L), any());
reset(mockFlutterApi);
webChromeClient.release();
webChromeClient.onProgressChanged(mockWebView, 11);
verify(mockFlutterApi, never()).onProgressChanged((WebChromeClient) any(), any(), any(), any());
}
}