aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/util
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/tests/util')
-rw-r--r--crates/shirabe/tests/util/ini_helper_test.rs55
-rw-r--r--crates/shirabe/tests/util/main.rs1
2 files changed, 56 insertions, 0 deletions
diff --git a/crates/shirabe/tests/util/ini_helper_test.rs b/crates/shirabe/tests/util/ini_helper_test.rs
index 69f6f1b..54ab250 100644
--- a/crates/shirabe/tests/util/ini_helper_test.rs
+++ b/crates/shirabe/tests/util/ini_helper_test.rs
@@ -1 +1,56 @@
//! ref: composer/tests/Composer/Test/Util/IniHelperTest.php
+
+use shirabe::util::ini_helper::IniHelper;
+use shirabe_php_shim::{PATH_SEPARATOR, putenv};
+
+fn set_env(paths: &[&str]) {
+ putenv(&format!("COMPOSER_ORIGINAL_INIS={}", paths.join(PATH_SEPARATOR)));
+}
+
+#[test]
+#[ignore = "IniHelper::get_all reaches XdebugHandler::get_all_ini_files, which is todo!()"]
+fn test_with_no_ini() {
+ let paths = [""];
+
+ set_env(&paths);
+ assert!(IniHelper::get_message().contains("does not exist"));
+ assert_eq!(
+ paths.iter().map(|s| s.to_string()).collect::<Vec<_>>(),
+ IniHelper::get_all()
+ );
+}
+
+#[test]
+#[ignore = "IniHelper::get_all reaches XdebugHandler::get_all_ini_files, which is todo!()"]
+fn test_with_loaded_ini_only() {
+ let paths = ["loaded.ini"];
+
+ set_env(&paths);
+ assert!(IniHelper::get_message().contains("loaded.ini"));
+}
+
+#[test]
+#[ignore = "IniHelper::get_all reaches XdebugHandler::get_all_ini_files, which is todo!()"]
+fn test_with_loaded_ini_and_additional() {
+ let paths = ["loaded.ini", "one.ini", "two.ini"];
+
+ set_env(&paths);
+ assert!(IniHelper::get_message().contains("multiple ini files"));
+ assert_eq!(
+ paths.iter().map(|s| s.to_string()).collect::<Vec<_>>(),
+ IniHelper::get_all()
+ );
+}
+
+#[test]
+#[ignore = "IniHelper::get_all reaches XdebugHandler::get_all_ini_files, which is todo!()"]
+fn test_without_loaded_ini_and_additional() {
+ let paths = ["", "one.ini", "two.ini"];
+
+ set_env(&paths);
+ assert!(IniHelper::get_message().contains("multiple ini files"));
+ assert_eq!(
+ paths.iter().map(|s| s.to_string()).collect::<Vec<_>>(),
+ IniHelper::get_all()
+ );
+}
diff --git a/crates/shirabe/tests/util/main.rs b/crates/shirabe/tests/util/main.rs
index 6165e54..1955f8d 100644
--- a/crates/shirabe/tests/util/main.rs
+++ b/crates/shirabe/tests/util/main.rs
@@ -3,6 +3,7 @@ mod error_handler_test;
mod forgejo_url_test;
mod http;
mod http_downloader_test;
+mod ini_helper_test;
mod metadata_minifier_test;
mod no_proxy_pattern_test;
mod package_sorter_test;