Tests: Fix AK/TestJSON.cpp by not relying on disk resources

The following commit broke Tests/AK/TestJSON.cpp as it removed the
file that the test loaded from disk to validate JSON parsing.

    commit ad141a2286
    Author: Andreas Kling <kling@serenityos.org>
    Date:   Sat Jul 31 15:26:14 2021 +0200

        Base: Remove "test.frm" from HackStudio test project

Instead of restoring the file, lets just embed a bit of JSON in the
test case to avoid using external resources, as they obviously are
surprising and make the test less portable across environments.
This commit is contained in:
Brian Gianforcaro 2021-07-31 14:13:38 -07:00 committed by Gunnar Beutner
parent 05faca91d5
commit c54ae3afd6
Notes: sideshowbarker 2024-07-18 07:40:37 +09:00
3 changed files with 22 additions and 17 deletions

View file

@ -71,6 +71,3 @@ set(AK_TEST_SOURCES
foreach(source ${AK_TEST_SOURCES})
serenity_test(${source} AK)
endforeach()
get_filename_component(TEST_FRM_RESOLVED ./test.frm REALPATH)
install(FILES ${TEST_FRM_RESOLVED} DESTINATION usr/Tests/AK)

View file

@ -15,20 +15,29 @@
TEST_CASE(load_form)
{
FILE* fp = fopen("test.frm", "r");
VERIFY(fp);
String raw_form_json = R"(
{
"name": "Form1",
"widgets": [
{
"enabled": true,
"forecolor": "#000000ff",
"ruler_visible": false,
"autofill": false,
"x": 155,
"tooltip": null,
"height": 121,
"width": 126,
"y": 10,
"class": "GTextEditor",
"text": "Hi",
"backcolor": "#c0c0c0ff",
"visible":true
}
]
})";
StringBuilder builder;
for (;;) {
char buffer[1024];
if (!fgets(buffer, sizeof(buffer), fp))
break;
builder.append(buffer);
}
fclose(fp);
JsonValue form_json = JsonValue::from_string(builder.to_string()).value();
JsonValue form_json = JsonValue::from_string(raw_form_json).value();
EXPECT(form_json.is_object());

View file

@ -1 +0,0 @@
../../Base/home/anon/Source/little/test.frm