Skip to content

Commit f040309

Browse files
committed
cdp: fix tests for setchildnodes
1 parent 8b9084c commit f040309

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

src/cdp/domains/dom.zig

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ fn performSearch(cmd: anytype) !void {
9494
fn dispatchSetChildNodes(cmd: anytype, nodes: []*parser.Node) !void {
9595
const arena = cmd.arena;
9696
const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded;
97+
const session_id = bc.session_id orelse return error.SessionIdNotLoaded;
9798

9899
var parents: std.ArrayListUnmanaged(*parser.Node) = .{};
99100
for (nodes) |_n| {
@@ -125,35 +126,41 @@ fn dispatchSetChildNodes(cmd: anytype, nodes: []*parser.Node) !void {
125126
continue;
126127
}
127128

129+
// Register the node.
130+
const node = try bc.node_registry.register(n);
128131
// If the node has no parent, it's the root node.
129132
// We don't dispatch event for it because we assume the root node is
130133
// dispatched via the DOM.getDocument command.
131-
const p = try parser.nodeParentNode(n) orelse break;
132-
// Register the node.
133-
const node = try bc.node_registry.register(n);
134+
const p = try parser.nodeParentNode(n) orelse continue;
135+
134136
// Retrieve the parent from the registry.
135-
const parent_node = bc.node_registry.lookup_by_node.get(p) orelse unreachable;
137+
const parent_node = try bc.node_registry.register(p);
136138

137139
try cmd.sendEvent("DOM.setChildNodes", .{
138140
.parentId = parent_node.id,
139141
.nodes = .{bc.nodeWriter(node, .{})},
140142
}, .{
141-
.session_id = bc.session_id.?,
143+
.session_id = session_id,
142144
});
143145
}
144146

145147
// now dispatch the event for the node list.
146148
for (nodes) |n| {
147-
const node = bc.node_registry.lookup_by_node.get(n) orelse unreachable;
149+
// Register the node.
150+
const node = try bc.node_registry.register(n);
151+
// If the node has no parent, it's the root node.
152+
// We don't dispatch event for it because we assume the root node is
153+
// dispatched via the DOM.getDocument command.
148154
const p = try parser.nodeParentNode(n) orelse continue;
155+
149156
// Retrieve the parent from the registry.
150-
const parent_node = bc.node_registry.lookup_by_node.get(p) orelse unreachable;
157+
const parent_node = try bc.node_registry.register(p);
151158

152159
try cmd.sendEvent("DOM.setChildNodes", .{
153160
.parentId = parent_node.id,
154161
.nodes = .{bc.nodeWriter(node, .{})},
155162
}, .{
156-
.session_id = bc.session_id.?,
163+
.session_id = session_id,
157164
});
158165
}
159166
}

src/cdp/testing.zig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ const TestContext = struct {
120120
}
121121

122122
if (opts.html) |html| {
123+
if (bc.session_id == null) bc.session_id = "SID-X";
123124
parser.deinit();
124125
try parser.init();
125126
const page = try bc.session.createPage();

0 commit comments

Comments
 (0)