Fix ThemeDB initialization in tests
Also fixes class name shadowing in Viewport/Window tests.
This commit is contained in:
@@ -43,8 +43,8 @@
|
||||
|
||||
namespace TestViewport {
|
||||
|
||||
class NotificationControl : public Control {
|
||||
GDCLASS(NotificationControl, Control);
|
||||
class NotificationControlViewport : public Control {
|
||||
GDCLASS(NotificationControlViewport, Control);
|
||||
|
||||
protected:
|
||||
void _notification(int p_what) {
|
||||
@@ -63,11 +63,11 @@ public:
|
||||
bool mouse_over = false;
|
||||
};
|
||||
|
||||
// `NotificationControl`-derived class that additionally
|
||||
// `NotificationControlViewport`-derived class that additionally
|
||||
// - allows start Dragging
|
||||
// - stores mouse information of last event
|
||||
class DragStart : public NotificationControl {
|
||||
GDCLASS(DragStart, NotificationControl);
|
||||
class DragStart : public NotificationControlViewport {
|
||||
GDCLASS(DragStart, NotificationControlViewport);
|
||||
|
||||
public:
|
||||
MouseButton last_mouse_button;
|
||||
@@ -93,9 +93,9 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// `NotificationControl`-derived class that acts as a Drag and Drop target.
|
||||
class DragTarget : public NotificationControl {
|
||||
GDCLASS(DragTarget, NotificationControl);
|
||||
// `NotificationControlViewport`-derived class that acts as a Drag and Drop target.
|
||||
class DragTarget : public NotificationControlViewport {
|
||||
GDCLASS(DragTarget, NotificationControlViewport);
|
||||
|
||||
public:
|
||||
Variant drag_data;
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
|
||||
namespace TestWindow {
|
||||
|
||||
class NotificationControl : public Control {
|
||||
GDCLASS(NotificationControl, Control);
|
||||
class NotificationControlWindow : public Control {
|
||||
GDCLASS(NotificationControlWindow, Control);
|
||||
|
||||
protected:
|
||||
void _notification(int p_what) {
|
||||
@@ -69,7 +69,7 @@ TEST_CASE("[SceneTree][Window]") {
|
||||
w->set_content_scale_size(Size2i(200, 200));
|
||||
w->set_content_scale_mode(Window::CONTENT_SCALE_MODE_CANVAS_ITEMS);
|
||||
w->set_content_scale_aspect(Window::CONTENT_SCALE_ASPECT_KEEP);
|
||||
NotificationControl *c = memnew(NotificationControl);
|
||||
NotificationControlWindow *c = memnew(NotificationControlWindow);
|
||||
w->add_child(c);
|
||||
c->set_size(Size2i(100, 100));
|
||||
c->set_position(Size2i(-50, -50));
|
||||
|
||||
+8
-9
@@ -212,7 +212,6 @@ struct GodotTestCaseListener : public doctest::IReporter {
|
||||
PhysicsServer2D *physics_server_2d = nullptr;
|
||||
NavigationServer3D *navigation_server_3d = nullptr;
|
||||
NavigationServer2D *navigation_server_2d = nullptr;
|
||||
ThemeDB *theme_db = nullptr;
|
||||
|
||||
void test_case_start(const doctest::TestCaseData &p_in) override {
|
||||
reinitialize();
|
||||
@@ -238,6 +237,10 @@ struct GodotTestCaseListener : public doctest::IReporter {
|
||||
RenderingServerDefault::get_singleton()->init();
|
||||
RenderingServerDefault::get_singleton()->set_render_loop_enabled(false);
|
||||
|
||||
// ThemeDB requires RenderingServer to initialize the default theme.
|
||||
// So we have to do this for each test case.
|
||||
ThemeDB::get_singleton()->initialize_theme_noproject();
|
||||
|
||||
physics_server_3d = PhysicsServer3DManager::get_singleton()->new_default_server();
|
||||
physics_server_3d->init();
|
||||
|
||||
@@ -252,9 +255,6 @@ struct GodotTestCaseListener : public doctest::IReporter {
|
||||
memnew(InputMap);
|
||||
InputMap::get_singleton()->load_default();
|
||||
|
||||
theme_db = memnew(ThemeDB);
|
||||
theme_db->initialize_theme_noproject();
|
||||
|
||||
memnew(SceneTree);
|
||||
SceneTree::get_singleton()->initialize();
|
||||
if (!DisplayServer::get_singleton()->has_feature(DisplayServer::Feature::FEATURE_SUBWINDOWS)) {
|
||||
@@ -294,11 +294,6 @@ struct GodotTestCaseListener : public doctest::IReporter {
|
||||
memdelete(SceneTree::get_singleton());
|
||||
}
|
||||
|
||||
if (theme_db) {
|
||||
memdelete(theme_db);
|
||||
theme_db = nullptr;
|
||||
}
|
||||
|
||||
if (navigation_server_3d) {
|
||||
memdelete(navigation_server_3d);
|
||||
navigation_server_3d = nullptr;
|
||||
@@ -326,6 +321,10 @@ struct GodotTestCaseListener : public doctest::IReporter {
|
||||
}
|
||||
|
||||
if (RenderingServer::get_singleton()) {
|
||||
// ThemeDB requires RenderingServer to finalize the default theme.
|
||||
// So we have to do this for each test case.
|
||||
ThemeDB::get_singleton()->finalize_theme();
|
||||
|
||||
RenderingServer::get_singleton()->sync();
|
||||
RenderingServer::get_singleton()->global_shader_parameters_clear();
|
||||
RenderingServer::get_singleton()->finish();
|
||||
|
||||
Reference in New Issue
Block a user