Merge pull request #80819 from sepTN/test-packed-scene-v3
Improve PackedScene unit test by covering more methods
This commit is contained in:
commit
8ac674287c
|
@ -150,6 +150,71 @@ TEST_CASE("[PackedScene] Instantiate Packed Scene With Children") {
|
|||
memdelete(instance);
|
||||
}
|
||||
|
||||
TEST_CASE("[PackedScene] Set Path") {
|
||||
// Create a scene to pack.
|
||||
Node *scene = memnew(Node);
|
||||
scene->set_name("TestScene");
|
||||
|
||||
// Pack the scene.
|
||||
PackedScene packed_scene;
|
||||
packed_scene.pack(scene);
|
||||
|
||||
// Set a new path for the packed scene.
|
||||
const String new_path = "NewTestPath";
|
||||
packed_scene.set_path(new_path);
|
||||
|
||||
// Check if the path has been set correctly.
|
||||
Ref<SceneState> state = packed_scene.get_state();
|
||||
CHECK(state.is_valid());
|
||||
CHECK(state->get_path() == new_path);
|
||||
|
||||
memdelete(scene);
|
||||
}
|
||||
|
||||
TEST_CASE("[PackedScene] Replace State") {
|
||||
// Create a scene to pack.
|
||||
Node *scene = memnew(Node);
|
||||
scene->set_name("TestScene");
|
||||
|
||||
// Pack the scene.
|
||||
PackedScene packed_scene;
|
||||
packed_scene.pack(scene);
|
||||
|
||||
// Create another scene state to replace with.
|
||||
Ref<SceneState> new_state = memnew(SceneState);
|
||||
new_state->set_path("NewPath");
|
||||
|
||||
// Replace the state.
|
||||
packed_scene.replace_state(new_state);
|
||||
|
||||
// Check if the state has been replaced.
|
||||
Ref<SceneState> state = packed_scene.get_state();
|
||||
CHECK(state.is_valid());
|
||||
CHECK(state == new_state);
|
||||
|
||||
memdelete(scene);
|
||||
}
|
||||
|
||||
TEST_CASE("[PackedScene] Recreate State") {
|
||||
// Create a scene to pack.
|
||||
Node *scene = memnew(Node);
|
||||
scene->set_name("TestScene");
|
||||
|
||||
// Pack the scene.
|
||||
PackedScene packed_scene;
|
||||
packed_scene.pack(scene);
|
||||
|
||||
// Recreate the state.
|
||||
packed_scene.recreate_state();
|
||||
|
||||
// Check if the state has been recreated.
|
||||
Ref<SceneState> state = packed_scene.get_state();
|
||||
CHECK(state.is_valid());
|
||||
CHECK(state->get_node_count() == 0); // Since the state was recreated, it should be empty.
|
||||
|
||||
memdelete(scene);
|
||||
}
|
||||
|
||||
} // namespace TestPackedScene
|
||||
|
||||
#endif // TEST_PACKED_SCENE_H
|
||||
|
|
Loading…
Reference in New Issue