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/auth_helper_test.rs7
-rw-r--r--crates/shirabe/tests/util/bitbucket_test.rs7
-rw-r--r--crates/shirabe/tests/util/error_handler_test.rs21
-rw-r--r--crates/shirabe/tests/util/filesystem_test.rs48
-rw-r--r--crates/shirabe/tests/util/git_test.rs7
-rw-r--r--crates/shirabe/tests/util/http/proxy_manager_test.rs37
-rw-r--r--crates/shirabe/tests/util/ini_helper_test.rs35
-rw-r--r--crates/shirabe/tests/util/perforce_test.rs8
-rw-r--r--crates/shirabe/tests/util/stream_context_factory_test.rs33
9 files changed, 202 insertions, 1 deletions
diff --git a/crates/shirabe/tests/util/auth_helper_test.rs b/crates/shirabe/tests/util/auth_helper_test.rs
index ebdd1f1..91bd9dd 100644
--- a/crates/shirabe/tests/util/auth_helper_test.rs
+++ b/crates/shirabe/tests/util/auth_helper_test.rs
@@ -2,6 +2,13 @@
// These mock IO/Config to drive AuthHelper's header/option building and interactive auth
// storage; mocking is not available here.
+
+#[allow(dead_code)]
+fn set_up() {
+ // Builds mocked IOInterface/Config and a real AuthHelper; mocking is not available.
+ todo!()
+}
+
macro_rules! stub {
($name:ident) => {
#[test]
diff --git a/crates/shirabe/tests/util/bitbucket_test.rs b/crates/shirabe/tests/util/bitbucket_test.rs
index 2eb015a..a89b85e 100644
--- a/crates/shirabe/tests/util/bitbucket_test.rs
+++ b/crates/shirabe/tests/util/bitbucket_test.rs
@@ -2,6 +2,13 @@
// These mock IO/Config/HttpDownloader to drive Bitbucket's OAuth/access-token flow; mocking
// is not available and a real HttpDownloader reaches curl_multi_init (todo!()).
+
+#[allow(dead_code)]
+fn set_up() {
+ // Builds mocked IO/HttpDownloader/Config and records time(); mocking is not available.
+ todo!()
+}
+
macro_rules! stub {
($name:ident) => {
#[test]
diff --git a/crates/shirabe/tests/util/error_handler_test.rs b/crates/shirabe/tests/util/error_handler_test.rs
index 92ce4e8..8f42bca 100644
--- a/crates/shirabe/tests/util/error_handler_test.rs
+++ b/crates/shirabe/tests/util/error_handler_test.rs
@@ -5,6 +5,27 @@
// trigger those by undefined-index access / array_merge misuse. There is no equivalent
// runtime mechanism in Rust to port faithfully.
+#[allow(dead_code)]
+fn set_up() {
+ // ErrorHandler::register() installs a PHP set_error_handler; no Rust equivalent.
+ todo!()
+}
+
+#[allow(dead_code)]
+fn tear_down() {
+ // restore_error_handler() is PHP runtime machinery; no Rust equivalent.
+ todo!()
+}
+
+#[allow(dead_code)]
+struct TearDown;
+
+impl Drop for TearDown {
+ fn drop(&mut self) {
+ tear_down();
+ }
+}
+
#[test]
#[ignore = "relies on PHP's set_error_handler converting an undefined-array-key notice into an ErrorException; no Rust equivalent"]
fn test_error_handler_capture_notice() {
diff --git a/crates/shirabe/tests/util/filesystem_test.rs b/crates/shirabe/tests/util/filesystem_test.rs
index 4ed9c14..e101c79 100644
--- a/crates/shirabe/tests/util/filesystem_test.rs
+++ b/crates/shirabe/tests/util/filesystem_test.rs
@@ -3,6 +3,54 @@
// These exercise Filesystem path helpers and on-disk operations (sizes, copy, symlinks and
// junctions over a temp tree). The filesystem fixtures and platform-specific symlink/junction
// behaviour are not ported.
+use shirabe::util::filesystem::Filesystem;
+use shirabe_php_shim::{dirname, is_dir, is_file};
+
+#[allow(dead_code)]
+struct SetUp {
+ fs: Filesystem,
+ working_dir: String,
+ test_file: String,
+}
+
+#[allow(dead_code)]
+fn set_up() -> SetUp {
+ let fs = Filesystem::new(None);
+ // getUniqueTmpDirectory is base TestCase infrastructure that is not ported.
+ let working_dir: String = todo!();
+ #[allow(unreachable_code)]
+ let unique_tmp: String = todo!();
+ #[allow(unreachable_code)]
+ let test_file: String = format!("{unique_tmp}/composer_test_file");
+ #[allow(unreachable_code)]
+ SetUp {
+ fs,
+ working_dir,
+ test_file,
+ }
+}
+
+#[allow(dead_code)]
+fn tear_down(set_up: &mut SetUp) {
+ if is_dir(&set_up.working_dir) {
+ let _ = set_up.fs.remove_directory(&set_up.working_dir);
+ }
+ if is_file(&set_up.test_file) {
+ let _ = set_up.fs.remove_directory(dirname(&set_up.test_file));
+ }
+}
+
+#[allow(dead_code)]
+struct TearDown {
+ set_up: SetUp,
+}
+
+impl Drop for TearDown {
+ fn drop(&mut self) {
+ tear_down(&mut self.set_up);
+ }
+}
+
macro_rules! stub {
($name:ident) => {
#[test]
diff --git a/crates/shirabe/tests/util/git_test.rs b/crates/shirabe/tests/util/git_test.rs
index 69539ef..4802180 100644
--- a/crates/shirabe/tests/util/git_test.rs
+++ b/crates/shirabe/tests/util/git_test.rs
@@ -2,6 +2,13 @@
// These mock IO/Config/ProcessExecutor to drive Git::runCommand and mirror syncing; mocking
// is not available here.
+
+#[allow(dead_code)]
+fn set_up() {
+ // Builds mocked IO/Config/ProcessExecutor/Filesystem and a real Git; mocking is not available.
+ todo!()
+}
+
macro_rules! stub {
($name:ident) => {
#[test]
diff --git a/crates/shirabe/tests/util/http/proxy_manager_test.rs b/crates/shirabe/tests/util/http/proxy_manager_test.rs
index 50be143..0ed059d 100644
--- a/crates/shirabe/tests/util/http/proxy_manager_test.rs
+++ b/crates/shirabe/tests/util/http/proxy_manager_test.rs
@@ -2,11 +2,48 @@
// ProxyManager reads HTTP(S)_PROXY / CGI_HTTP_PROXY / no_proxy environment variables; the
// env-dependent setup (without its setUp/tearDown isolation) is not ported.
+use shirabe::util::http::proxy_manager::ProxyManager;
+use shirabe::util::platform::Platform;
+
+fn set_up() {
+ Platform::clear_env("HTTP_PROXY");
+ Platform::clear_env("http_proxy");
+ Platform::clear_env("HTTPS_PROXY");
+ Platform::clear_env("https_proxy");
+ Platform::clear_env("NO_PROXY");
+ Platform::clear_env("no_proxy");
+ Platform::clear_env("CGI_HTTP_PROXY");
+ Platform::clear_env("cgi_http_proxy");
+ ProxyManager::reset();
+}
+
+fn tear_down() {
+ Platform::clear_env("HTTP_PROXY");
+ Platform::clear_env("http_proxy");
+ Platform::clear_env("HTTPS_PROXY");
+ Platform::clear_env("https_proxy");
+ Platform::clear_env("NO_PROXY");
+ Platform::clear_env("no_proxy");
+ Platform::clear_env("CGI_HTTP_PROXY");
+ Platform::clear_env("cgi_http_proxy");
+ ProxyManager::reset();
+}
+
+struct TearDown;
+
+impl Drop for TearDown {
+ fn drop(&mut self) {
+ tear_down();
+ }
+}
+
macro_rules! stub {
($name:ident) => {
#[test]
#[ignore = "not yet ported (ProxyManager is driven by proxy environment variables)"]
fn $name() {
+ let _tear_down = TearDown;
+ set_up();
todo!()
}
};
diff --git a/crates/shirabe/tests/util/ini_helper_test.rs b/crates/shirabe/tests/util/ini_helper_test.rs
index e214a78..59dc967 100644
--- a/crates/shirabe/tests/util/ini_helper_test.rs
+++ b/crates/shirabe/tests/util/ini_helper_test.rs
@@ -1,7 +1,40 @@
//! ref: composer/tests/Composer/Test/Util/IniHelperTest.php
use shirabe::util::ini_helper::IniHelper;
-use shirabe_php_shim::{PATH_SEPARATOR, putenv};
+use shirabe::util::platform::Platform;
+use shirabe_php_shim::{PATH_SEPARATOR, getenv, putenv};
+
+#[allow(dead_code)]
+fn set_up() -> TearDown {
+ // Register our name with XdebugHandler.
+ // TODO: XdebugHandler is the external composer/xdebug-handler package and is not ported.
+ todo!();
+ // Save current state
+ #[allow(unreachable_code)]
+ let env_original = getenv("COMPOSER_ORIGINAL_INIS");
+ TearDown { env_original }
+}
+
+#[allow(dead_code)]
+fn tear_down(env_original: &Option<String>) {
+ // Restore original state
+ if let Some(env_original) = env_original {
+ putenv(&format!("COMPOSER_ORIGINAL_INIS={env_original}"));
+ } else {
+ Platform::clear_env("COMPOSER_ORIGINAL_INIS");
+ }
+}
+
+#[allow(dead_code)]
+struct TearDown {
+ env_original: Option<String>,
+}
+
+impl Drop for TearDown {
+ fn drop(&mut self) {
+ tear_down(&self.env_original);
+ }
+}
fn set_env(paths: &[&str]) {
putenv(&format!(
diff --git a/crates/shirabe/tests/util/perforce_test.rs b/crates/shirabe/tests/util/perforce_test.rs
index 3958b83..59b9fd8 100644
--- a/crates/shirabe/tests/util/perforce_test.rs
+++ b/crates/shirabe/tests/util/perforce_test.rs
@@ -2,6 +2,14 @@
// These mock IO and a ProcessExecutor to drive Perforce client/stream/command behaviour;
// mocking is not available here.
+
+#[allow(dead_code)]
+fn set_up() {
+ // Builds mocked ProcessExecutor/IO, the test repo config, and a Windows-flagged Perforce;
+ // mocking is not available.
+ todo!()
+}
+
macro_rules! stub {
($name:ident) => {
#[test]
diff --git a/crates/shirabe/tests/util/stream_context_factory_test.rs b/crates/shirabe/tests/util/stream_context_factory_test.rs
index 6f484fa..f75c78d 100644
--- a/crates/shirabe/tests/util/stream_context_factory_test.rs
+++ b/crates/shirabe/tests/util/stream_context_factory_test.rs
@@ -3,11 +3,44 @@
// These build a stream context and assert proxy/option handling driven by HTTP(S)_PROXY /
// no_proxy environment variables; the env-dependent setup (without its setUp/tearDown
// isolation) is not ported.
+use shirabe::util::http::proxy_manager::ProxyManager;
+use shirabe::util::platform::Platform;
+
+fn set_up() {
+ Platform::clear_env("HTTP_PROXY");
+ Platform::clear_env("http_proxy");
+ Platform::clear_env("HTTPS_PROXY");
+ Platform::clear_env("https_proxy");
+ Platform::clear_env("NO_PROXY");
+ Platform::clear_env("no_proxy");
+ ProxyManager::reset();
+}
+
+fn tear_down() {
+ Platform::clear_env("HTTP_PROXY");
+ Platform::clear_env("http_proxy");
+ Platform::clear_env("HTTPS_PROXY");
+ Platform::clear_env("https_proxy");
+ Platform::clear_env("NO_PROXY");
+ Platform::clear_env("no_proxy");
+ ProxyManager::reset();
+}
+
+struct TearDown;
+
+impl Drop for TearDown {
+ fn drop(&mut self) {
+ tear_down();
+ }
+}
+
macro_rules! stub {
($name:ident) => {
#[test]
#[ignore = "not yet ported (StreamContextFactory proxy/option building is driven by proxy env vars)"]
fn $name() {
+ let _tear_down = TearDown;
+ set_up();
todo!()
}
};