aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/util
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-21 03:55:22 +0900
committernsfisis <nsfisis@gmail.com>2026-06-21 03:55:22 +0900
commitd5334c9e88a1fc6e88c7609830351170bbcf5db3 (patch)
treed7f9885d002fb0c174dcea6a3249dbbeab2b9918 /crates/shirabe/tests/util
parent27b73a9d4e27027bd34c0068989ce0609bdc6e9f (diff)
downloadphp-shirabe-d5334c9e88a1fc6e88c7609830351170bbcf5db3.tar.gz
php-shirabe-d5334c9e88a1fc6e88c7609830351170bbcf5db3.tar.zst
php-shirabe-d5334c9e88a1fc6e88c7609830351170bbcf5db3.zip
test: port IniHelperTest and RepositoryUtilsTest
IniHelper cases reach XdebugHandler::get_all_ini_files (todo!()); RepositoryUtils filterRequiredPackages is fully modeled but building linked packages via ArrayLoader parses constraints with a look-around regex the regex crate cannot compile. Both ignored. setUp/tearDown not ported. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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;