mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-06-12 01:56:19 -04:00
--inject-script: testable injected scripts
This commit is contained in:
12
src/browser/tests/inject_script.html
Normal file
12
src/browser/tests/inject_script.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="./testing.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script id=inject-script-runs>
|
||||
testing.expectEqual(true, window.__injected);
|
||||
testing.expectEqual(42, window.__injectValue);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -338,12 +338,20 @@ pub var test_notification: *Notification = undefined;
|
||||
pub var test_session: *Session = undefined;
|
||||
|
||||
const WEB_API_TEST_ROOT = "src/browser/tests/";
|
||||
const HtmlRunnerOpts = struct {};
|
||||
const HtmlRunnerOpts = struct {
|
||||
inject_script: ?[]const u8 = null,
|
||||
};
|
||||
|
||||
pub fn htmlRunner(comptime path: []const u8, opts: HtmlRunnerOpts) !void {
|
||||
_ = opts;
|
||||
defer reset();
|
||||
|
||||
var inject_scripts: [1][]const u8 = undefined;
|
||||
if (opts.inject_script) |script| {
|
||||
inject_scripts[0] = script;
|
||||
test_session.inject_scripts = inject_scripts[0..1];
|
||||
}
|
||||
defer test_session.inject_scripts = &.{};
|
||||
|
||||
const root = try std.fs.path.joinZ(arena_allocator, &.{ WEB_API_TEST_ROOT, path });
|
||||
const stat = std.fs.cwd().statFile(root) catch |err| {
|
||||
std.debug.print("Failed to stat file: '{s}'", .{root});
|
||||
|
||||
Reference in New Issue
Block a user