aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-21 03:51:59 +0900
committernsfisis <nsfisis@gmail.com>2026-06-21 03:51:59 +0900
commit27b73a9d4e27027bd34c0068989ce0609bdc6e9f (patch)
treed23681a1a78ba3c75d8b3eff738a0ad10c50f926 /crates/shirabe/tests
parent25d368d3edf77fe9833c7d2cdefc6242cfec8ebe (diff)
downloadphp-shirabe-27b73a9d4e27027bd34c0068989ce0609bdc6e9f.tar.gz
php-shirabe-27b73a9d4e27027bd34c0068989ce0609bdc6e9f.tar.zst
php-shirabe-27b73a9d4e27027bd34c0068989ce0609bdc6e9f.zip
test: port ClassLoader/HttpDownloader/Reinstall command tests
ClassLoader::getPrefixes verified; loadClass/serializability rely on PHP runtime class loading and serialize() (stubbed). HttpDownloader and Reinstall need curl/ApplicationTester (stubbed). Wires up the autoload test target. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests')
-rw-r--r--crates/shirabe/tests/autoload/class_loader_test.rs25
-rw-r--r--crates/shirabe/tests/autoload/main.rs1
-rw-r--r--crates/shirabe/tests/command/main.rs1
-rw-r--r--crates/shirabe/tests/command/reinstall_command_test.rs6
-rw-r--r--crates/shirabe/tests/util/http_downloader_test.rs12
-rw-r--r--crates/shirabe/tests/util/main.rs1
6 files changed, 46 insertions, 0 deletions
diff --git a/crates/shirabe/tests/autoload/class_loader_test.rs b/crates/shirabe/tests/autoload/class_loader_test.rs
index 02fb48f..68a0ba4 100644
--- a/crates/shirabe/tests/autoload/class_loader_test.rs
+++ b/crates/shirabe/tests/autoload/class_loader_test.rs
@@ -1 +1,26 @@
//! ref: composer/tests/Composer/Test/Autoload/ClassLoaderTest.php
+
+use shirabe::autoload::class_loader::ClassLoader;
+
+// In PHP, loadClass() includes the matching .php fixture and the assertion checks
+// class_exists(). There is no equivalent runtime notion of loading and defining a
+// class in Rust, so this case cannot be ported faithfully.
+#[test]
+#[ignore = "relies on PHP loadClass()/class_exists() runtime class loading, which has no Rust equivalent"]
+fn test_load_class() {
+ todo!()
+}
+
+#[test]
+fn test_get_prefixes_with_no_psr0_configuration() {
+ let loader = ClassLoader::new(None);
+ assert!(loader.get_prefixes().is_empty());
+}
+
+// In PHP this serializes the loader and unserializes it, then compares every getter.
+// PHP serialize()/unserialize() has no Rust equivalent here.
+#[test]
+#[ignore = "relies on PHP serialize()/unserialize() round-tripping of the ClassLoader, which is not ported"]
+fn test_serializability() {
+ todo!()
+}
diff --git a/crates/shirabe/tests/autoload/main.rs b/crates/shirabe/tests/autoload/main.rs
new file mode 100644
index 0000000..769d9e8
--- /dev/null
+++ b/crates/shirabe/tests/autoload/main.rs
@@ -0,0 +1 @@
+mod class_loader_test;
diff --git a/crates/shirabe/tests/command/main.rs b/crates/shirabe/tests/command/main.rs
index fd40768..381649a 100644
--- a/crates/shirabe/tests/command/main.rs
+++ b/crates/shirabe/tests/command/main.rs
@@ -3,3 +3,4 @@ mod audit_command_test;
mod clear_cache_command_test;
mod diagnose_command_test;
mod exec_command_test;
+mod reinstall_command_test;
diff --git a/crates/shirabe/tests/command/reinstall_command_test.rs b/crates/shirabe/tests/command/reinstall_command_test.rs
index 3cf6712..df0b618 100644
--- a/crates/shirabe/tests/command/reinstall_command_test.rs
+++ b/crates/shirabe/tests/command/reinstall_command_test.rs
@@ -1 +1,7 @@
//! ref: composer/tests/Composer/Test/Command/ReinstallCommandTest.php
+
+#[test]
+#[ignore = "requires the ApplicationTester/initTempComposer harness, which is not yet ported"]
+fn test_reinstall_command() {
+ todo!()
+}
diff --git a/crates/shirabe/tests/util/http_downloader_test.rs b/crates/shirabe/tests/util/http_downloader_test.rs
index e7fcb7b..238fe83 100644
--- a/crates/shirabe/tests/util/http_downloader_test.rs
+++ b/crates/shirabe/tests/util/http_downloader_test.rs
@@ -1 +1,13 @@
//! ref: composer/tests/Composer/Test/Util/HttpDownloaderTest.php
+
+#[test]
+#[ignore = "constructs a real HttpDownloader (curl_multi_init is todo!()) and mocks a Config; performs a network request"]
+fn test_capture_authentication_params_from_url() {
+ todo!()
+}
+
+#[test]
+#[ignore = "constructs a real HttpDownloader (curl_multi_init is todo!()) and mocks a Config; performs a network request"]
+fn test_output_warnings() {
+ todo!()
+}
diff --git a/crates/shirabe/tests/util/main.rs b/crates/shirabe/tests/util/main.rs
index 4327bda..6165e54 100644
--- a/crates/shirabe/tests/util/main.rs
+++ b/crates/shirabe/tests/util/main.rs
@@ -2,6 +2,7 @@ mod config_validator_test;
mod error_handler_test;
mod forgejo_url_test;
mod http;
+mod http_downloader_test;
mod metadata_minifier_test;
mod no_proxy_pattern_test;
mod package_sorter_test;