aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/downloader
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-21 05:09:56 +0900
committernsfisis <nsfisis@gmail.com>2026-06-21 05:09:56 +0900
commit25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0 (patch)
tree0974de4f5e7a19415f2bcda9adc34cb95263b2e9 /crates/shirabe/tests/downloader
parentb07f3a9f51d7ce5ea8ee4dc45da7fe9a55b7f1d4 (diff)
downloadphp-shirabe-25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0.tar.gz
php-shirabe-25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0.tar.zst
php-shirabe-25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0.zip
test: port downloader/installer/io/json/event-dispatcher/functional stubs
All ignored: these mock IO/HttpDownloader (curl)/ProcessExecutor/installers, use ZipArchive/JsonManipulator todo!()s, need Symfony console or schema validation, reflect into ClassLoader, or run end-to-end install/functional fixtures. Wires up the event_dispatcher test target. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/downloader')
-rw-r--r--crates/shirabe/tests/downloader/download_manager_test.rs44
-rw-r--r--crates/shirabe/tests/downloader/file_downloader_test.rs22
-rw-r--r--crates/shirabe/tests/downloader/git_downloader_test.rs29
-rw-r--r--crates/shirabe/tests/downloader/main.rs4
-rw-r--r--crates/shirabe/tests/downloader/zip_downloader_test.rs21
5 files changed, 120 insertions, 0 deletions
diff --git a/crates/shirabe/tests/downloader/download_manager_test.rs b/crates/shirabe/tests/downloader/download_manager_test.rs
index b13420b..a047420 100644
--- a/crates/shirabe/tests/downloader/download_manager_test.rs
+++ b/crates/shirabe/tests/downloader/download_manager_test.rs
@@ -1 +1,45 @@
//! ref: composer/tests/Composer/Test/Downloader/DownloadManagerTest.php
+
+// These mock IO and individual downloaders to drive DownloadManager's selection/download/
+// update/remove logic; mocking is not available here.
+macro_rules! stub {
+ ($name:ident) => {
+ #[test]
+ #[ignore = "mocks IO and individual downloaders to drive DownloadManager; mocking is not available"]
+ fn $name() {
+ todo!()
+ }
+ };
+}
+
+stub!(test_set_get_downloader);
+stub!(test_get_downloader_for_incorrectly_installed_package);
+stub!(test_get_downloader_for_correctly_installed_dist_package);
+stub!(test_get_downloader_for_incorrectly_installed_dist_package);
+stub!(test_get_downloader_for_correctly_installed_source_package);
+stub!(test_get_downloader_for_incorrectly_installed_source_package);
+stub!(test_get_downloader_for_metapackage);
+stub!(test_full_package_download);
+stub!(test_full_package_download_failover);
+stub!(test_bad_package_download);
+stub!(test_dist_only_package_download);
+stub!(test_source_only_package_download);
+stub!(test_metapackage_package_download);
+stub!(test_full_package_download_with_source_preferred);
+stub!(test_dist_only_package_download_with_source_preferred);
+stub!(test_source_only_package_download_with_source_preferred);
+stub!(test_bad_package_download_with_source_preferred);
+stub!(test_update_dist_with_equal_types);
+stub!(test_update_dist_with_not_equal_types);
+stub!(test_get_available_sources_update_sticks_to_same_source);
+stub!(test_update_metapackage);
+stub!(test_remove);
+stub!(test_metapackage_remove);
+stub!(test_install_preference_without_preference_dev);
+stub!(test_install_preference_without_preference_no_dev);
+stub!(test_install_preference_without_match_dev);
+stub!(test_install_preference_without_match_no_dev);
+stub!(test_install_preference_with_match_auto_dev);
+stub!(test_install_preference_with_match_auto_no_dev);
+stub!(test_install_preference_with_match_source);
+stub!(test_install_preference_with_match_dist);
diff --git a/crates/shirabe/tests/downloader/file_downloader_test.rs b/crates/shirabe/tests/downloader/file_downloader_test.rs
index 54afad4..4e9cbc6 100644
--- a/crates/shirabe/tests/downloader/file_downloader_test.rs
+++ b/crates/shirabe/tests/downloader/file_downloader_test.rs
@@ -1 +1,23 @@
//! ref: composer/tests/Composer/Test/Downloader/FileDownloaderTest.php
+
+// These construct a FileDownloader with a mocked IO/HttpDownloader (curl_multi_init todo!())
+// and a mocked Cache/Package to drive download/checksum behaviour.
+macro_rules! stub {
+ ($name:ident) => {
+ #[test]
+ #[ignore = "mocks IO/HttpDownloader (curl_multi_init todo!()) and Cache/Package"]
+ fn $name() {
+ todo!()
+ }
+ };
+}
+
+stub!(test_download_for_package_without_dist_reference);
+stub!(test_download_to_existing_file);
+stub!(test_get_file_name);
+stub!(test_download_but_file_is_unsaved);
+stub!(test_download_with_custom_processed_url);
+stub!(test_download_with_custom_cache_key);
+stub!(test_cache_garbage_collection_is_called);
+stub!(test_download_file_with_invalid_checksum);
+stub!(test_downgrade_shows_appropriate_message);
diff --git a/crates/shirabe/tests/downloader/git_downloader_test.rs b/crates/shirabe/tests/downloader/git_downloader_test.rs
index 3c30177..c332b5d 100644
--- a/crates/shirabe/tests/downloader/git_downloader_test.rs
+++ b/crates/shirabe/tests/downloader/git_downloader_test.rs
@@ -1 +1,30 @@
//! ref: composer/tests/Composer/Test/Downloader/GitDownloaderTest.php
+
+// These construct a GitDownloader with a mocked IO/Config and a mocked ProcessExecutor to
+// feed git command output; mocking is not available, and a real HttpDownloader reaches
+// curl_multi_init (todo!()).
+macro_rules! stub {
+ ($name:ident) => {
+ #[test]
+ #[ignore = "mocks ProcessExecutor/IO and needs an HttpDownloader (curl_multi_init todo!())"]
+ fn $name() {
+ todo!()
+ }
+ };
+}
+
+stub!(test_download_for_package_without_source_reference);
+stub!(test_download);
+stub!(test_download_with_cache);
+stub!(test_download_uses_various_protocols_and_sets_push_url_for_github);
+stub!(test_download_and_set_push_url_use_custom_various_protocols_for_github);
+stub!(test_download_throws_runtime_exception_if_git_command_fails);
+stub!(test_updatefor_package_without_source_reference);
+stub!(test_update);
+stub!(test_update_with_new_repo_url);
+stub!(test_update_throws_runtime_exception_if_git_command_fails);
+stub!(test_update_doesnt_throws_runtime_exception_if_git_command_fails_at_first_but_is_able_to_recover);
+stub!(test_downgrade_shows_appropriate_message);
+stub!(test_not_using_downgrading_with_references);
+stub!(test_remove);
+stub!(test_get_installation_source);
diff --git a/crates/shirabe/tests/downloader/main.rs b/crates/shirabe/tests/downloader/main.rs
index cf52ccd..6e39b85 100644
--- a/crates/shirabe/tests/downloader/main.rs
+++ b/crates/shirabe/tests/downloader/main.rs
@@ -1,5 +1,9 @@
mod archive_downloader_test;
+mod download_manager_test;
+mod file_downloader_test;
mod fossil_downloader_test;
+mod git_downloader_test;
mod hg_downloader_test;
mod perforce_downloader_test;
mod xz_downloader_test;
+mod zip_downloader_test;
diff --git a/crates/shirabe/tests/downloader/zip_downloader_test.rs b/crates/shirabe/tests/downloader/zip_downloader_test.rs
index 8b53dac..0c8657c 100644
--- a/crates/shirabe/tests/downloader/zip_downloader_test.rs
+++ b/crates/shirabe/tests/downloader/zip_downloader_test.rs
@@ -1 +1,22 @@
//! ref: composer/tests/Composer/Test/Downloader/ZipDownloaderTest.php
+
+// These construct a ZipDownloader with a mocked IO/HttpDownloader/ProcessExecutor and rely
+// on ZipArchive extraction (todo!() in the php-shim) plus mocked unzip behaviour.
+macro_rules! stub {
+ ($name:ident) => {
+ #[test]
+ #[ignore = "mocks IO/HttpDownloader/ProcessExecutor and uses ZipArchive (todo!())"]
+ fn $name() {
+ todo!()
+ }
+ };
+}
+
+stub!(test_error_messages);
+stub!(test_zip_archive_only_failed);
+stub!(test_zip_archive_extract_only_failed);
+stub!(test_zip_archive_only_good);
+stub!(test_system_unzip_only_failed);
+stub!(test_system_unzip_only_good);
+stub!(test_non_windows_fallback_good);
+stub!(test_non_windows_fallback_failed);