Skip to content

Commit c6c7f97

Browse files
committed
Added both options for overrides
- Added the previous settings override in base again - Added a system property to override the settings folder within tests
1 parent 6506465 commit c6c7f97

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

‎app/src/processing/app/Base.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2218,6 +2218,10 @@ static public InputStream getLibStream(String filename) throws IOException{
22182218
* @deprecated use processing.utils.Settings.getFolder() instead, this method will invoke AWT
22192219
*/
22202220
staticpublicFilegetSettingsFolder(){
2221+
varoverride = getSettingsOverride();
2222+
if (override != null){
2223+
returnoverride;
2224+
}
22212225
try{
22222226
returnprocessing.utils.Settings.getFolder();
22232227
} catch (processing.utils.Settings.SettingsFolderExceptione){

‎app/utils/src/main/java/processing/utils/Settings.java‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ public static File getFolder() throws SettingsFolderException{
1818
}
1919

2020
privatestaticFilegetFolderForPlatform() throwsSettingsFolderException{
21-
// TODO: Detect override file,
21+
varsettingsOverride = System.getProperty("processing.settings.folder");
22+
if (settingsOverride != null && !settingsOverride.isEmpty()){
23+
returnnewFile(settingsOverride);
24+
}
2225

2326
if (Platform.isWindows()){
2427
varoptions = newString[]{
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
importorg.junit.jupiter.api.Test;
2+
importprocessing.utils.Settings;
3+
4+
importjava.io.IOException;
5+
importjava.nio.file.Files;
6+
7+
publicclassSettingsTest{
8+
9+
/**
10+
* Requesting the settings folder should create it if it doesn't exist
11+
*/
12+
@Test
13+
publicvoidtestSettingsFolder(){
14+
try{
15+
varfolder = Settings.getFolder();
16+
assert (folder.exists());
17+
} catch (Settings.SettingsFolderExceptione){
18+
assert (false);
19+
}
20+
}
21+
22+
/**
23+
* Overriding the settings folder via system property should work
24+
*/
25+
@Test
26+
publicvoidtestOverrideFolder() throwsIOException{
27+
varsettings = Files.createTempDirectory("settings_test");
28+
System.setProperty("processing.settings.folder", settings.toString());
29+
30+
try{
31+
varfolder = Settings.getFolder();
32+
assert (folder.toPath().toString().equals(settings.toString()));
33+
} catch (Settings.SettingsFolderExceptione){
34+
assert (false);
35+
} finally{
36+
System.clearProperty("processing.settings.folder");
37+
Files.deleteIfExists(settings);
38+
}
39+
}
40+
}

0 commit comments

Comments
(0)