You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-23 15:16:17 +00:00
Use ProjectSettings functions instead of hard-coded folder name in tests
This commit is contained in:
@@ -65,6 +65,7 @@ String ProjectSettings::get_resource_path() const {
|
|||||||
return resource_path;
|
return resource_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This returns paths like "res://.godot/imported".
|
||||||
String ProjectSettings::get_imported_files_path() const {
|
String ProjectSettings::get_imported_files_path() const {
|
||||||
return get_project_data_path().path_join("imported");
|
return get_project_data_path().path_join("imported");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class ProjectSettings : public Object {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
typedef HashMap<String, Variant> CustomMap;
|
typedef HashMap<String, Variant> CustomMap;
|
||||||
|
// This constant is used to make the ".godot" folder and paths like "res://.godot/editor".
|
||||||
static inline const String PROJECT_DATA_DIR_NAME_SUFFIX = "godot";
|
static inline const String PROJECT_DATA_DIR_NAME_SUFFIX = "godot";
|
||||||
static inline const String EDITOR_SETTING_OVERRIDE_PREFIX = PNAME("editor_overrides") + String("/");
|
static inline const String EDITOR_SETTING_OVERRIDE_PREFIX = PNAME("editor_overrides") + String("/");
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
<method name="get_project_settings_dir" qualifiers="const">
|
<method name="get_project_settings_dir" qualifiers="const">
|
||||||
<return type="String" />
|
<return type="String" />
|
||||||
<description>
|
<description>
|
||||||
Returns the project-specific editor settings path. Projects all have a unique subdirectory inside the settings path where project-specific editor settings are saved.
|
Returns the relative path to the editor settings for this project. This is usually [code]"res://.godot/editor"[/code]. Projects all have a unique subdirectory inside the settings path where project-specific editor settings are saved.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="get_self_contained_file" qualifiers="const">
|
<method name="get_self_contained_file" qualifiers="const">
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ String EditorPaths::get_debug_keystore_path() const {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This returns paths like "res://.godot/editor".
|
||||||
String EditorPaths::get_project_settings_dir() const {
|
String EditorPaths::get_project_settings_dir() const {
|
||||||
return get_project_data_dir().path_join("editor");
|
return get_project_data_dir().path_join("editor");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,20 +43,21 @@ namespace TestDDS {
|
|||||||
String init(const String &p_test, const String &p_copy_target = String()) {
|
String init(const String &p_test, const String &p_copy_target = String()) {
|
||||||
String old_resource_path = TestProjectSettingsInternalsAccessor::resource_path();
|
String old_resource_path = TestProjectSettingsInternalsAccessor::resource_path();
|
||||||
Error err;
|
Error err;
|
||||||
// Setup project settings since it's needed for the import process.
|
// Setup project settings with `res://` set to a temporary path.
|
||||||
String project_folder = TestUtils::get_temp_path(p_test.get_file().get_basename());
|
String project_folder = TestUtils::get_temp_path(p_test.get_file().get_basename());
|
||||||
Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
|
||||||
da->make_dir_recursive(project_folder.path_join(".godot").path_join("imported"));
|
|
||||||
// Initialize res:// to `project_folder`.
|
|
||||||
TestProjectSettingsInternalsAccessor::resource_path() = project_folder;
|
TestProjectSettingsInternalsAccessor::resource_path() = project_folder;
|
||||||
err = ProjectSettings::get_singleton()->setup(project_folder, String(), true);
|
ProjectSettings *ps = ProjectSettings::get_singleton();
|
||||||
|
err = ps->setup(project_folder, String(), true);
|
||||||
|
|
||||||
|
// Create the imported files folder as the editor import process expects it to exist.
|
||||||
|
Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
|
||||||
|
da->make_dir_recursive(ps->globalize_path(ps->get_imported_files_path()));
|
||||||
|
|
||||||
if (p_copy_target.is_empty()) {
|
if (p_copy_target.is_empty()) {
|
||||||
return old_resource_path;
|
return old_resource_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy all the necessary test data files to the res:// directory.
|
// Copy all the necessary test data files to the res:// directory.
|
||||||
da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
|
||||||
String test_data = String("tests/data").path_join(p_test);
|
String test_data = String("tests/data").path_join(p_test);
|
||||||
da = DirAccess::open(test_data);
|
da = DirAccess::open(test_data);
|
||||||
CHECK_MESSAGE(da.is_valid(), "Unable to open folder.");
|
CHECK_MESSAGE(da.is_valid(), "Unable to open folder.");
|
||||||
|
|||||||
@@ -134,20 +134,21 @@ static Node *gltf_export_then_import(Node *p_root, const String &p_test_name) {
|
|||||||
void init(const String &p_test, const String &p_copy_target = String()) {
|
void init(const String &p_test, const String &p_copy_target = String()) {
|
||||||
Error err;
|
Error err;
|
||||||
|
|
||||||
// Setup project settings since it's needed for the import process.
|
// Setup project settings with `res://` set to a temporary path.
|
||||||
String project_folder = TestUtils::get_temp_path(p_test.get_file().get_basename());
|
String project_folder = TestUtils::get_temp_path(p_test.get_file().get_basename());
|
||||||
Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
|
||||||
da->make_dir_recursive(project_folder.path_join(".godot").path_join("imported"));
|
|
||||||
// Initialize res:// to `project_folder`.
|
|
||||||
TestProjectSettingsInternalsAccessor::resource_path() = project_folder;
|
TestProjectSettingsInternalsAccessor::resource_path() = project_folder;
|
||||||
err = ProjectSettings::get_singleton()->setup(project_folder, String(), true);
|
ProjectSettings *ps = ProjectSettings::get_singleton();
|
||||||
|
err = ps->setup(project_folder, String(), true);
|
||||||
|
|
||||||
|
// Create the imported files folder as the editor import process expects it to exist.
|
||||||
|
Ref<DirAccess> da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
|
||||||
|
da->make_dir_recursive(ps->globalize_path(ps->get_imported_files_path()));
|
||||||
|
|
||||||
if (p_copy_target.is_empty()) {
|
if (p_copy_target.is_empty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy all the necessary test data files to the res:// directory.
|
// Copy all the necessary test data files to the res:// directory.
|
||||||
da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
|
||||||
String test_data = String("modules/gltf/tests/data/").path_join(p_test);
|
String test_data = String("modules/gltf/tests/data/").path_join(p_test);
|
||||||
da = DirAccess::open(test_data);
|
da = DirAccess::open(test_data);
|
||||||
CHECK_MESSAGE(da.is_valid(), "Unable to open folder.");
|
CHECK_MESSAGE(da.is_valid(), "Unable to open folder.");
|
||||||
|
|||||||
Reference in New Issue
Block a user