blob: af7ca766d38593328afb322a45c30f3067b45051 [file] [log] [blame]
// Copyright (c) 2019 The Chromium Embedded Framework 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 tests.junittests;
import org.cef.browser.CefBrowser;
import org.cef.browser.CefFrame;
import org.cef.callback.CefCallback;
import org.cef.security.CefCertStatus;
import org.cef.security.CefSSLInfo;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(TestSetupExtension.class)
@Disabled
class SelfSignedSSLTest {
@Test
@Disabled("Until local test server setup.")
void certificateAccepted() {
var frame = new TestFrame() {
public CefSSLInfo sslInfo = null;
@Override
protected void setupTest() {
createBrowser("https://untrusted-root.badssl.com/");
super.setupTest();
}
@Override
public void onLoadEnd(CefBrowser browser, CefFrame frame, int httpStatusCode) {
super.onLoadEnd(browser, frame, httpStatusCode);
terminateTest();
}
@Override
public boolean onCertificateError(CefBrowser browser, ErrorCode cert_error, String request_url, CefSSLInfo sslInfo, CefCallback callback) {
this.sslInfo = sslInfo;
callback.Continue();
return true;
}
};
frame.awaitCompletion();
Assertions.assertNotNull(frame.sslInfo);
Assertions.assertNotNull(frame.sslInfo.certificate);
Assertions.assertTrue(CefCertStatus.CERT_STATUS_AUTHORITY_INVALID.hasStatus(frame.sslInfo.statusBiset));
}
@Test
@Disabled("Until local test server setup.")
void certificateRejected() {
var frame = new TestFrame() {
boolean isOnCertificateErrorCalled = false;
boolean isOnLoadErrorCalled = false;
@Override
protected void setupTest() {
createBrowser("https://self-signed.badssl.com/");
super.setupTest();
}
@Override
public void onLoadEnd(CefBrowser browser, CefFrame frame, int httpStatusCode) {
super.onLoadEnd(browser, frame, httpStatusCode);
terminateTest();
}
@Override
public void onLoadError(CefBrowser browser, CefFrame frame, ErrorCode errorCode, String errorText, String failedUrl) {
isOnLoadErrorCalled = true;
super.onLoadError(browser, frame, errorCode, errorText, failedUrl);
}
@Override
public boolean onCertificateError(CefBrowser browser, ErrorCode cert_error, String request_url, CefSSLInfo sslInfo, CefCallback callback) {
isOnCertificateErrorCalled = true;
return false;
}
};
frame.awaitCompletion();
Assertions.assertTrue(frame.isOnCertificateErrorCalled);
Assertions.assertTrue(frame.isOnLoadErrorCalled);
}
}