1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:04:59 +00:00

LibWeb+headless-browser: Include paint tree in layout test output

This will give us a more comprehensive look at what actually gets
rendered in the end, and also allows us to catch more behavior changes.
This commit is contained in:
Andreas Kling 2023-08-03 09:59:12 +02:00
parent 7d7c419ce6
commit 09eed8eea2
347 changed files with 4397 additions and 4 deletions

View file

@ -84,6 +84,11 @@ public:
return String::from_deprecated_string(client().dump_layout_tree());
}
ErrorOr<String> dump_paint_tree()
{
return String::from_deprecated_string(client().dump_paint_tree());
}
ErrorOr<String> dump_text()
{
return String::from_deprecated_string(client().dump_text());
@ -207,7 +212,11 @@ static ErrorOr<String> run_one_test(HeadlessWebContentView& view, StringView inp
// It also causes a lot more code to run, which is good for finding bugs. :^)
(void)view.take_screenshot();
result = view.dump_layout_tree().release_value_but_fixme_should_propagate_errors();
StringBuilder builder;
builder.append(view.dump_layout_tree().release_value_but_fixme_should_propagate_errors());
builder.append("\n"sv);
builder.append(view.dump_paint_tree().release_value_but_fixme_should_propagate_errors());
result = builder.to_string().release_value_but_fixme_should_propagate_errors();
loop.quit(0);
};
} else if (mode == TestMode::Text) {
@ -422,8 +431,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
view->on_load_finish = [&](auto const&) {
(void)view->take_screenshot();
auto layout_tree = view->dump_layout_tree().release_value_but_fixme_should_propagate_errors();
auto paint_tree = view->dump_paint_tree().release_value_but_fixme_should_propagate_errors();
out("{}", layout_tree);
out("{}\n{}", layout_tree, paint_tree);
fflush(stdout);
event_loop.quit(0);