Merge pull request #166 from lightpanda-io/xhr

XHR
This commit is contained in:
Pierre Tachoire
2024-02-15 16:54:06 +01:00
committed by GitHub
14 changed files with 3112 additions and 11 deletions

View File

@@ -7,6 +7,7 @@ const generate = @import("generate.zig");
const parser = @import("netsurf.zig");
const apiweb = @import("apiweb.zig");
const Window = @import("html/window.zig").Window;
const xhr = @import("xhr/xhr.zig");
const documentTestExecFn = @import("dom/document.zig").testExecFn;
const HTMLDocumentTestExecFn = @import("html/document.zig").testExecFn;
@@ -23,6 +24,8 @@ const NodeListTestExecFn = @import("dom/nodelist.zig").testExecFn;
const AttrTestExecFn = @import("dom/attribute.zig").testExecFn;
const EventTargetTestExecFn = @import("dom/event_target.zig").testExecFn;
const EventTestExecFn = @import("events/event.zig").testExecFn;
const XHRTestExecFn = xhr.testExecFn;
const ProgressEventTestExecFn = @import("xhr/progress_event.zig").testExecFn;
pub const Types = jsruntime.reflect(apiweb.Interfaces);
@@ -78,6 +81,8 @@ fn testsAllExecFn(
AttrTestExecFn,
EventTargetTestExecFn,
EventTestExecFn,
XHRTestExecFn,
ProgressEventTestExecFn,
};
inline for (testFns) |testFn| {
@@ -93,6 +98,11 @@ pub fn main() !void {
}
}
test {
const TestAsync = @import("async/test.zig");
std.testing.refAllDecls(TestAsync);
}
test "jsruntime" {
// generate tests
try generate.tests();
@@ -157,3 +167,20 @@ test "DocumentHTML is a libdom event target" {
const et = parser.toEventTarget(parser.DocumentHTML, doc);
_ = try parser.eventTargetDispatchEvent(et, event);
}
test "XMLHttpRequest.validMethod" {
// valid methods
for ([_][]const u8{ "get", "GET", "head", "HEAD" }) |tc| {
_ = try xhr.XMLHttpRequest.validMethod(tc);
}
// forbidden
for ([_][]const u8{ "connect", "CONNECT" }) |tc| {
try std.testing.expectError(parser.DOMError.Security, xhr.XMLHttpRequest.validMethod(tc));
}
// syntax
for ([_][]const u8{ "foo", "BAR" }) |tc| {
try std.testing.expectError(parser.DOMError.Syntax, xhr.XMLHttpRequest.validMethod(tc));
}
}