LibWeb: Add support HTMLScriptElement.supports

See 33ff054a6c
This commit is contained in:
Luke Wilde 2021-09-03 21:01:10 +01:00 committed by Andreas Kling
parent ed97ee902b
commit 2f426765a6
Notes: sideshowbarker 2024-07-18 04:49:47 +09:00
3 changed files with 33 additions and 0 deletions

View file

@ -32,6 +32,12 @@ public:
virtual void inserted() override;
// https://html.spec.whatwg.org/multipage/scripting.html#dom-script-supports
static bool supports(String const& type)
{
return type.is_one_of("classic", "module");
}
private:
void prepare_script();
void script_became_ready();

View file

@ -6,6 +6,8 @@ interface HTMLScriptElement : HTMLElement {
[Reflect] attribute boolean defer;
[Reflect] attribute DOMString integrity;
static boolean supports(DOMString type);
[Reflect] attribute DOMString charset;
[Reflect] attribute DOMString event;
[Reflect=for] attribute DOMString htmlFor;

View file

@ -0,0 +1,25 @@
describe("HTMLScriptElement.supports", () => {
loadLocalPage("/res/html/misc/blank.html");
afterInitialPageLoad(page => {
test("length is 1", () => {
expect(page.HTMLScriptElement.supports).toHaveLength(1);
});
test("Basic functionality", () => {
expect(page.HTMLScriptElement.supports("classic")).toBeTrue();
expect(page.HTMLScriptElement.supports("module")).toBeTrue();
expect(page.HTMLScriptElement.supports("abc")).toBeFalse();
// Is case sensitive.
expect(page.HTMLScriptElement.supports("Classic")).toBeFalse();
expect(page.HTMLScriptElement.supports("Module")).toBeFalse();
// Doesn't strip whitespace.
expect(page.HTMLScriptElement.supports(" classic ")).toBeFalse();
expect(page.HTMLScriptElement.supports(" module ")).toBeFalse();
});
});
waitForPageToLoad();
});