render: expose WebGL as unavailable without backend

This commit is contained in:
SGavrl committed 2026-07-26 11:14:43 +00:00
1 parent 7618b3276a
commit 29d0bce3f5
2 files changed
+36 -45

No files matched your search

+30
View File
@@ -2794,6 +2794,36 @@ mod tests {
assert_eq!(result, serde_json::json!([1, 1, true, ""]));
}
#[test]
fn unavailable_webgl_context_does_not_claim_success() {
let mut rt = setup_runtime("<html><body><canvas></canvas></body></html>");
let result = rt
.evaluate(
r#"
(() => {
const canvas = document.querySelector('canvas');
const fallback = document.createElement('p');
if (!canvas.getContext('webgl')) {
fallback.textContent = 'static fallback';
document.body.appendChild(fallback);
}
return [
canvas.getContext('webgl'),
canvas.getContext('webgl2'),
canvas.getContext('experimental-webgl'),
fallback.isConnected,
fallback.textContent,
];
})()
"#,
)
.unwrap();
assert_eq!(
result,
serde_json::json!([null, null, null, true, "static fallback"])
);
}
#[test]
fn test_script_execution() {
let mut rt = setup_runtime("<ul><li>A</li><li>B</li></ul>");