1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 16:47:44 +00:00

LibWeb: Implement CSSStyleSheet.addRule()

This is a legacy method that has been superseded by `insertRule()`,
although it is supported by all modern browser engines.
This commit is contained in:
Tim Ledbetter 2024-02-24 07:46:59 +00:00 committed by Andreas Kling
parent 87b52a1816
commit 3ea318ca8b
5 changed files with 68 additions and 1 deletions

View file

@ -0,0 +1,9 @@
addValue() return value: -1
Rule count after calling addRule() with no arguments: 1
Rule text: undefined { }
Rule count after calling addRule with no index: 2
Second rule text: .test { font-size: 14px; }
Rule count after calling addRule with index 0: 3
Rule text: .test { padding: 100px; }
Exception thrown when given a negative index: IndexSizeError
Exception thrown when index out of range: IndexSizeError

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<script src="../include.js"></script>
<script>
test(() => {
const sheet = new CSSStyleSheet();
println(`addValue() return value: ${sheet.addRule()}`);
println(`Rule count after calling addRule() with no arguments: ${sheet.cssRules.length}`);
println(`Rule text: ${sheet.cssRules[0].cssText}`);
sheet.addRule(".test", "font-size: 14px");
println(`Rule count after calling addRule with no index: ${sheet.cssRules.length}`);
println(`Second rule text: ${sheet.cssRules[1].cssText}`);
sheet.addRule(".test", "padding: 100px", 0);
println(`Rule count after calling addRule with index 0: ${sheet.cssRules.length}`);
println(`Rule text: ${sheet.cssRules[0].cssText}`);
try {
sheet.addRule(".test", "padding: 10px", -1);
println("FAIL");
} catch (e) {
println(`Exception thrown when given a negative index: ${e.name}`);
}
try {
sheet.addRule(".test", "padding: 10px", 4);
println("FAIL");
} catch (e) {
println(`Exception thrown when index out of range: ${e.name}`);
}
});
</script>