summaryrefslogtreecommitdiffstatshomepage
path: root/tests/phpunit/tests/filesystem/find_folder.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/tests/filesystem/find_folder.php')
-rw-r--r--tests/phpunit/tests/filesystem/find_folder.php107
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/phpunit/tests/filesystem/find_folder.php b/tests/phpunit/tests/filesystem/find_folder.php
new file mode 100644
index 0000000000..b623ac664b
--- /dev/null
+++ b/tests/phpunit/tests/filesystem/find_folder.php
@@ -0,0 +1,107 @@
+<?php
+
+/**
+ * @group filesystem
+ * @group wp-filesystem
+ */
+class WP_Filesystem_find_folder_UnitTestCases extends WP_Filesystem_UnitTestCase {
+
+ function test_ftp_has_root_access() {
+ global $wp_filesystem;
+ $fs = $wp_filesystem;
+ $fs->init('
+ /var/www/wordpress/
+ /var/www/wordpress/wp-includes/
+ /var/www/wordpress/index.php
+ ');
+
+ $path = $fs->find_folder( '/var/www/wordpress/' );
+ $this->assertEquals( '/var/www/wordpress/', $path );
+
+ $path = $fs->find_folder( '/this/directory/doesnt/exist/' );
+ $this->assertFalse( $path );
+
+ }
+
+ function test_sibling_wordpress_in_subdir() {
+ global $wp_filesystem;
+ $fs = $wp_filesystem;
+ $fs->init('
+ /www/example.com/wordpress/
+ /www/example.com/wordpress/wp-includes/
+ /www/example.com/wordpress/index.php
+ /www/wp.example.com/wordpress/
+ /www/wp.example.com/wordpress/wp-includes/
+ /www/wp.example.com/wordpress/wp-content/
+ /www/wp.example.com/wordpress/index.php
+ /www/index.php
+ ');
+
+ $path = $fs->find_folder( '/var/www/example.com/wordpress/' );
+ $this->assertEquals( '/www/example.com/wordpress/', $path );
+
+ $path = $fs->find_folder( '/var/www/wp.example.com/wordpress/wp-content/' );
+ $this->assertEquals( '/www/wp.example.com/wordpress/wp-content/', $path );
+
+ }
+
+ /**
+ * Two WordPress installs, with one contained within the other
+ * FTP / = /var/www/example.com/ on Disk
+ * example.com at /
+ * wp.example.com at /wp.example.com/wordpress/
+ */
+ function test_subdir_of_another() {
+ global $wp_filesystem;
+ $fs = $wp_filesystem;
+ $fs->init('
+ /wp.example.com/index.php
+ /wp.example.com/wordpress/
+ /wp.example.com/wordpress/wp-includes/
+ /wp.example.com/wordpress/index.php
+ /wp-includes/
+ /index.php
+ ');
+
+ $path = $fs->abspath( '/var/www/example.com/wp.example.com/wordpress/' );
+ $this->assertEquals( '/wp.example.com/wordpress/', $path );
+
+ $path = $fs->abspath( '/var/www/example.com/' );
+ $this->assertEquals( '/', $path );
+
+ }
+
+ /**
+ * Test the WordPress ABSPATH containing TWO tokens (www) of which exists in the current FTP home.
+ *
+ * @ticket 20934
+ */
+ function test_multiple_tokens_in_path1() {
+ global $wp_filesystem;
+ $fs = $wp_filesystem;
+ $fs->init('
+ # www.example.com
+ /example.com/www/index.php
+ /example.com/www/wp-includes/
+ /example.com/www/wp-content/plugins/
+
+ # sub.example.com
+ /example.com/sub/index.php
+ /example.com/sub/wp-includes/
+ /example.com/sub/wp-content/plugins/
+ ');
+
+ // www.example.com
+ $path = $fs->abspath( '/var/www/example.com/www/' );
+ $this->assertEquals( '/example.com/www/', $path );
+
+ // sub.example.com
+ $path = $fs->abspath( '/var/www/example.com/sub/' );
+ $this->assertEquals( '/example.com/sub/', $path );
+
+ // sub.example.com - Plugins
+ $path = $fs->find_folder( '/var/www/example.com/sub/wp-content/plugins/' );
+ $this->assertEquals( '/example.com/sub/wp-content/plugins/', $path );
+ }
+
+} \ No newline at end of file