Skip to content

Commit 8a970dc

Browse files
committed
Ensure tests pass in other languages
1 parent 98e5384 commit 8a970dc

File tree

4 files changed

+24
-61
lines changed

4 files changed

+24
-61
lines changed

common/src/web/fedcm/fedcm.html

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,20 @@
11
<!DOCTYPE html>
2-
<html>
3-
<head>
4-
<title>FedCM Example</title>
5-
</head>
6-
<body>
7-
<button id="triggerButton" onclick="triggerFedCm()">Trigger FedCM</button>
8-
<div id="result"></div>
2+
<script>
93

10-
<script>
11-
// Use a relative path for the configURL
12-
let configURL = `https://${location.host}/fedcm/config.json`;
13-
console.log(configURL)
14-
let result = null;
4+
let configURL = `http://${location.host}/fedcm/config.json`;
5+
let promise = null;
156

16-
async function triggerFedCm() {
17-
console.log("Config URL:", configURL);
18-
try {
19-
let promise = await navigator.credentials.get({
20-
identity: {
21-
providers: [{
22-
configURL: configURL,
23-
clientId: '1',
24-
}]
25-
}
26-
});
27-
result = promise;
28-
document.getElementById('result').innerText = JSON.stringify(result);
29-
} catch (error) {
30-
console.error("FedCM Error:", error);
31-
result = { error: error.message };
32-
document.getElementById('result').innerText = JSON.stringify(result);
33-
}
34-
}
35-
</script>
36-
</body>
37-
</html>
7+
function triggerFedCm() {
8+
console.log(configURL);
9+
promise = navigator.credentials.get({
10+
identity: {
11+
providers: [{
12+
configURL: configURL,
13+
clientId: '1',
14+
}]
15+
}
16+
});
17+
return promise;
18+
}
19+
20+
</script>

java/test/org/openqa/selenium/federatedcredentialmanagement/FederatedCredentialManagementTest.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,30 +23,25 @@
2323
import static org.junit.jupiter.api.Assertions.assertThrows;
2424
import static org.openqa.selenium.testing.drivers.Browser.CHROME;
2525

26-
import java.net.MalformedURLException;
27-
import java.net.URL;
2826
import java.time.Duration;
2927
import java.util.List;
3028
import org.junit.jupiter.api.AfterEach;
3129
import org.junit.jupiter.api.BeforeEach;
3230
import org.junit.jupiter.api.Test;
33-
import org.openqa.selenium.By;
31+
import org.openqa.selenium.JavascriptExecutor;
3432
import org.openqa.selenium.NoAlertPresentException;
3533
import org.openqa.selenium.WebDriver;
36-
import org.openqa.selenium.WebElement;
3734
import org.openqa.selenium.chrome.ChromeDriver;
3835
import org.openqa.selenium.chrome.ChromeOptions;
3936
import org.openqa.selenium.environment.InProcessTestEnvironment;
4037
import org.openqa.selenium.environment.webserver.AppServer;
4138
import org.openqa.selenium.support.ui.WebDriverWait;
42-
import org.openqa.selenium.testing.NeedsSecureServer;
4339

44-
@NeedsSecureServer
4540
class FederatedCredentialManagementTest {
4641

4742
private HasFederatedCredentialManagement fedcmDriver;
4843
private WebDriver localDriver;
49-
InProcessTestEnvironment environment = new InProcessTestEnvironment(true);
44+
InProcessTestEnvironment environment = new InProcessTestEnvironment(false);
5045
AppServer appServer = environment.getAppServer();
5146

5247
@BeforeEach
@@ -57,7 +52,7 @@ public void setup() {
5752

5853
assumeThat(localDriver).isInstanceOf(HasFederatedCredentialManagement.class);
5954
fedcmDriver = (HasFederatedCredentialManagement) localDriver;
60-
localDriver.get(appServer.whereIsSecure("/fedcm/fedcm.html"));
55+
localDriver.get(appServer.whereIs("/fedcm/fedcm.html"));
6156
}
6257

6358
@AfterEach
@@ -74,23 +69,12 @@ private void waitForDialog() {
7469
!= null);
7570
}
7671

77-
private int getSecurePort() {
78-
String urlString = appServer.whereIsSecure("/");
79-
try {
80-
return new URL(urlString).getPort();
81-
} catch (MalformedURLException ex) {
82-
// This should not happen.
83-
return 0;
84-
}
85-
}
86-
8772
@Test
8873
void testDismissDialog() {
8974
fedcmDriver.setDelayEnabled(false);
9075
assertNull(fedcmDriver.getFederatedCredentialManagementDialog());
9176

92-
WebElement triggerButton = localDriver.findElement(By.id("triggerButton"));
93-
triggerButton.click();
77+
((JavascriptExecutor) localDriver).executeScript("triggerFedCm();");
9478

9579
waitForDialog();
9680

@@ -111,8 +95,7 @@ void testDismissDialog() {
11195
void testSelectAccount() {
11296
assertNull(fedcmDriver.getFederatedCredentialManagementDialog());
11397

114-
WebElement triggerButton = localDriver.findElement(By.id("triggerButton"));
115-
triggerButton.click();
98+
((JavascriptExecutor) localDriver).executeScript("triggerFedCm();");
11699

117100
waitForDialog();
118101

@@ -132,8 +115,7 @@ void testSelectAccount() {
132115
void testGetAccounts() {
133116
assertNull(fedcmDriver.getFederatedCredentialManagementDialog());
134117

135-
WebElement triggerButton = localDriver.findElement(By.id("triggerButton"));
136-
triggerButton.click();
118+
((JavascriptExecutor) localDriver).executeScript("triggerFedCm();");
137119

138120
waitForDialog();
139121

py/test/selenium/webdriver/common/fedcm_tests.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
@pytest.mark.xfail_firefox(reason="FedCM not supported")
2525
@pytest.mark.xfail_ie(reason="FedCM not supported")
2626
@pytest.mark.xfail_remote(reason="FedCM not supported, since remote uses Firefox")
27-
@pytest.mark.xfail_chrome(reason="FedCM supported but test suite needs to support secure webserver")
28-
@pytest.mark.xfail_edge(reason="FedCM supported but test suite needs to support secure webserver")
2927
class TestFedCM:
3028
@pytest.fixture(autouse=True)
3129
def setup(self, driver, webserver):

rb/spec/integration/selenium/webdriver/fedcm_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
module Selenium
2323
module WebDriver
2424
module FedCM
25-
describe FedCM, exclusive: [{bidi: false, reason: 'Not yet implemented with BiDi'}, {browser: [ ]}] do
25+
describe FedCM, exclusive: [{bidi: false, reason: 'Not yet implemented with BiDi'}, {browser: %i[chrome edge]}] do
2626
let(:dialog) { driver.fedcm_dialog }
2727

2828
before do

0 commit comments

Comments
 (0)