Version Description
- Correctly set the
sslverify
argument - Fix settings URL
- Updated and extended German translation.
- Fixes admin page slug for multisite
Download this release
Release Info
Developer | pauldewouters |
Plugin | BackUpWordPress |
Version | 3.2.5.1-beta |
Comparing to | |
See all releases |
Code changes from version 3.2.5 to 3.2.5.1-beta
- admin/actions.php +51 -9
- admin/schedule-form.php +1 -1
- backupwordpress.php +1 -1
- changelog +0 -17
- changelog.txt +7 -0
- classes/class-plugin.php +3 -2
- functions/interface.php +1 -1
- languages/backupwordpress-de_DE.mo +0 -0
- languages/backupwordpress-de_DE.po +50 -46
- languages/backupwordpress.pot +12 -12
- readme.txt +9 -2
- vendor/autoload.php +1 -1
- vendor/composer/autoload_namespaces.php +0 -1
- vendor/composer/autoload_real.php +4 -4
- vendor/composer/installed.json +6 -57
- vendor/mikey179/vfsStream/CHANGELOG.md +0 -192
- vendor/mikey179/vfsStream/LICENSE +0 -27
- vendor/mikey179/vfsStream/README.md +0 -8
- vendor/mikey179/vfsStream/composer.json +0 -33
- vendor/mikey179/vfsStream/examples/Example.php +0 -54
- vendor/mikey179/vfsStream/examples/ExampleTestCaseOldWay.php +0 -48
- vendor/mikey179/vfsStream/examples/ExampleTestCaseWithVfsStream.php +0 -47
- vendor/mikey179/vfsStream/examples/FailureExample.php +0 -50
- vendor/mikey179/vfsStream/examples/FailureExampleTestCase.php +0 -58
- vendor/mikey179/vfsStream/examples/FileModeExampleTestCaseOldWay.php +0 -67
- vendor/mikey179/vfsStream/examples/FilePermissionsExample.php +0 -29
- vendor/mikey179/vfsStream/examples/FilePermissionsExampleTestCase.php +0 -44
- vendor/mikey179/vfsStream/examples/FilemodeExample.php +0 -62
- vendor/mikey179/vfsStream/examples/FilemodeExampleTestCaseWithVfsStream.php +0 -53
- vendor/mikey179/vfsStream/examples/bootstrap.php +0 -3
- vendor/mikey179/vfsStream/phpdoc.dist.xml +0 -14
- vendor/mikey179/vfsStream/phpunit.xml.dist +0 -42
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/DotDirectory.php +0 -36
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/Quota.php +0 -87
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/FileContent.php +0 -71
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/LargeFileContent.php +0 -167
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/SeekableFileContent.php +0 -129
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/StringBasedFileContent.php +0 -97
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStream.php +0 -462
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamAbstractContent.php +0 -419
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamBlock.php +0 -34
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainer.php +0 -62
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainerIterator.php +0 -94
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContent.php +0 -214
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamDirectory.php +0 -267
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamException.php +0 -20
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamFile.php +0 -394
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamWrapper.php +0 -986
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitor.php +0 -65
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitor.php +0 -108
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitor.php +0 -112
- vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamVisitor.php +0 -56
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/DirectoryIterationTestCase.php +0 -318
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/Issue104TestCase.php +0 -52
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/PermissionsTestCase.php +0 -118
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/QuotaTestCase.php +0 -81
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/UnlinkTestCase.php +0 -58
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/content/LargeFileContentTestCase.php +0 -225
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/content/StringBasedFileContentTestCase.php +0 -230
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/proxy/vfsStreamWrapperRecordingProxy.php +0 -326
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamAbstractContentTestCase.php +0 -1054
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamBlockTestCase.php +0 -89
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamContainerIteratorTestCase.php +0 -112
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamDirectoryIssue18TestCase.php +0 -81
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamDirectoryTestCase.php +0 -335
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamExLockTestCase.php +0 -56
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamFileTestCase.php +0 -306
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamGlobTestCase.php +0 -29
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamResolveIncludePathTestCase.php +0 -62
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamTestCase.php +0 -728
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamUmaskTestCase.php +0 -195
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperAlreadyRegisteredTestCase.php +0 -63
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperBaseTestCase.php +0 -99
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperDirSeparatorTestCase.php +0 -73
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperDirTestCase.php +0 -460
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTestCase.php +0 -458
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTimesTestCase.php +0 -315
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperFlockTestCase.php +0 -440
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperLargeFileTestCase.php +0 -77
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperQuotaTestCase.php +0 -224
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperSetOptionTestCase.php +0 -76
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperStreamSelectTestCase.php +0 -35
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperTestCase.php +0 -770
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperWithoutRootTestCase.php +0 -64
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamZipTestCase.php +0 -53
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitorTestCase.php +0 -99
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitorTestCase.php +0 -103
- vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitorTestCase.php +0 -86
- vendor/mikey179/vfsStream/src/test/resources/filesystemcopy/withSubfolders/aFile.txt +0 -1
- vendor/mikey179/vfsStream/src/test/resources/filesystemcopy/withSubfolders/subfolder1/file1.txt +0 -1
- vendor/symfony/finder/Symfony/Component/Finder/Adapter/AbstractFindAdapter.php +1 -1
- vendor/symfony/finder/Symfony/Component/Finder/Comparator/NumberComparator.php +2 -2
- vendor/symfony/finder/Symfony/Component/Finder/Finder.php +5 -5
- vendor/symfony/finder/Symfony/Component/Finder/README.md +1 -1
- vendor/symfony/finder/Symfony/Component/Finder/Shell/Command.php +1 -1
- vendor/symfony/finder/Symfony/Component/Finder/composer.json +0 -3
- vendor/symfony/finder/Symfony/Component/Finder/phpunit.xml.dist +2 -1
admin/actions.php
CHANGED
@@ -685,6 +685,16 @@ function hmbkp_ajax_cron_test() {
|
|
685 |
|
686 |
}
|
687 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
688 |
// Skip the test if they are using Alternate Cron
|
689 |
if ( defined( 'ALTERNATE_WP_CRON' ) ) {
|
690 |
|
@@ -696,22 +706,20 @@ function hmbkp_ajax_cron_test() {
|
|
696 |
|
697 |
}
|
698 |
|
699 |
-
$
|
700 |
|
701 |
-
|
702 |
-
$
|
703 |
-
$response2 = wp_remote_head( $url, array( 'timeout' => 30 ) );
|
704 |
-
$response3 = wp_remote_head( $url, array( 'timeout' => 30 ) );
|
705 |
|
706 |
-
if ( is_wp_error( $
|
707 |
|
708 |
-
echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'backupwordpress' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'backupwordpress' ), '<code>wp-cron.php</code>', '<code>' . $
|
709 |
|
710 |
update_option( 'hmbkp_wp_cron_test_failed', true );
|
711 |
|
712 |
-
} elseif (
|
713 |
|
714 |
-
echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'backupwordpress' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'backupwordpress' ), '<code>wp-cron.php</code>', '<code>' . esc_html(
|
715 |
|
716 |
update_option( 'hmbkp_wp_cron_test_failed', true );
|
717 |
|
@@ -728,3 +736,37 @@ function hmbkp_ajax_cron_test() {
|
|
728 |
|
729 |
}
|
730 |
add_action( 'wp_ajax_hmbkp_cron_test', 'hmbkp_ajax_cron_test' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
685 |
|
686 |
}
|
687 |
|
688 |
+
// Skip test if Cron is disabled
|
689 |
+
if ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) {
|
690 |
+
|
691 |
+
delete_option( 'hmbkp_wp_cron_test_failed' );
|
692 |
+
|
693 |
+
echo 1;
|
694 |
+
|
695 |
+
die;
|
696 |
+
}
|
697 |
+
|
698 |
// Skip the test if they are using Alternate Cron
|
699 |
if ( defined( 'ALTERNATE_WP_CRON' ) ) {
|
700 |
|
706 |
|
707 |
}
|
708 |
|
709 |
+
$spawn = hmbkp_get_cron_spawn();
|
710 |
|
711 |
+
$code = wp_remote_retrieve_response_code( $spawn );
|
712 |
+
$message = wp_remote_retrieve_response_message( $spawn );
|
|
|
|
|
713 |
|
714 |
+
if ( is_wp_error( $spawn ) ) {
|
715 |
|
716 |
+
echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'backupwordpress' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'backupwordpress' ), '<code>wp-cron.php</code>', '<code>' . $spawn->get_error_message() . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
|
717 |
|
718 |
update_option( 'hmbkp_wp_cron_test_failed', true );
|
719 |
|
720 |
+
} elseif ( 200 !== $code ) {
|
721 |
|
722 |
+
echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'backupwordpress' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. See the %3$s for more details.', 'backupwordpress' ), '<code>wp-cron.php</code>', '<code>' . esc_html( $code ) . ' ' . esc_html( $message ) . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
|
723 |
|
724 |
update_option( 'hmbkp_wp_cron_test_failed', true );
|
725 |
|
736 |
|
737 |
}
|
738 |
add_action( 'wp_ajax_hmbkp_cron_test', 'hmbkp_ajax_cron_test' );
|
739 |
+
|
740 |
+
/**
|
741 |
+
* Spawn a request to `wp-cron.php` and return the response.
|
742 |
+
*
|
743 |
+
* This function is designed to mimic the functionality in `spawn_cron()` with the addition of returning
|
744 |
+
* the result of the `wp_remote_post()` request.
|
745 |
+
*
|
746 |
+
* @return WP_Error|array The response or WP_Error on failure.
|
747 |
+
*/
|
748 |
+
function hmbkp_get_cron_spawn() {
|
749 |
+
|
750 |
+
global $wp_version;
|
751 |
+
|
752 |
+
$sslverify = version_compare( $wp_version, 4.0, '<' );
|
753 |
+
$doing_wp_cron = sprintf( '%.22F', microtime( true ) );
|
754 |
+
|
755 |
+
$cron_request = apply_filters( 'cron_request', array(
|
756 |
+
'url' => site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron ),
|
757 |
+
'key' => $doing_wp_cron,
|
758 |
+
'args' => array(
|
759 |
+
'timeout' => 3,
|
760 |
+
'blocking' => true,
|
761 |
+
'sslverify' => apply_filters( 'https_local_ssl_verify', $sslverify )
|
762 |
+
)
|
763 |
+
) );
|
764 |
+
|
765 |
+
# Enforce a blocking request in case something that's hooked onto the 'cron_request' filter sets it to false
|
766 |
+
$cron_request['args']['blocking'] = true;
|
767 |
+
|
768 |
+
$result = wp_remote_post( $cron_request['url'], $cron_request['args'] );
|
769 |
+
|
770 |
+
return $result;
|
771 |
+
|
772 |
+
}
|
admin/schedule-form.php
CHANGED
@@ -19,7 +19,7 @@ hmbkp_clear_settings_errors();
|
|
19 |
|
20 |
?>
|
21 |
|
22 |
-
<form method="post" action="<?php echo esc_url(
|
23 |
|
24 |
<input type="hidden" name="hmbkp_schedule_id" value="<?php echo esc_attr( $schedule->get_id() ); ?>" />
|
25 |
<input type="hidden" name="action" value="hmbkp_edit_schedule_submit" />
|
19 |
|
20 |
?>
|
21 |
|
22 |
+
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
|
23 |
|
24 |
<input type="hidden" name="hmbkp_schedule_id" value="<?php echo esc_attr( $schedule->get_id() ); ?>" />
|
25 |
<input type="hidden" name="action" value="hmbkp_edit_schedule_submit" />
|
backupwordpress.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: BackUpWordPress Backup Plugin
|
4 |
Plugin URI: http://bwp.hmn.md/
|
5 |
Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools → Backups</strong>. On multisite, you'll find me under the Network Settings menu.
|
6 |
-
Version: 3.2.
|
7 |
Author: Human Made Limited
|
8 |
Author URI: http://hmn.md/
|
9 |
License: GPL-2.0+
|
3 |
Plugin Name: BackUpWordPress Backup Plugin
|
4 |
Plugin URI: http://bwp.hmn.md/
|
5 |
Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools → Backups</strong>. On multisite, you'll find me under the Network Settings menu.
|
6 |
+
Version: 3.2.6
|
7 |
Author: Human Made Limited
|
8 |
Author URI: http://hmn.md/
|
9 |
License: GPL-2.0+
|
changelog
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
* Fixes an issue when evaluating expression with empty
|
2 |
-
* Fixes a fatal error on PHP 5.3
|
3 |
-
* Displays other notices
|
4 |
-
* Updates stable tag
|
5 |
-
* Adds some escaping and sanitizing
|
6 |
-
* Defines plugins dir for different environments
|
7 |
-
* Adds tests for activation and deactivation hooks
|
8 |
-
* Adds a debugging function for tests
|
9 |
-
* Symlinks plugin into tests dir
|
10 |
-
* Splits out deactivation code into separate functions
|
11 |
-
* Fixes activation and deactivation hooks not being fired
|
12 |
-
* Exclude backups folder from size calculation
|
13 |
-
* Fixes a misplaced parenthesis
|
14 |
-
* Fixes how error messages are bubbled up
|
15 |
-
* get home path should return defined value
|
16 |
-
* Removes redundant exclude statement as CVS folders are excluded by default
|
17 |
-
* Adds a flag parameter to allow get_files to return all files including default excludes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
changelog.txt
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
f170f82 (HEAD -> 3.2.5.1-beta) Merge branch 'cron-test' into 3.2.5.1-beta
|
2 |
+
cfafb2e Merge branch 'mu-settings-page' into 3.2.5.1-beta
|
3 |
+
3ce5701 (origin/cron-test, cron-test) Correctly set the `sslverify` argument
|
4 |
+
d924e1e (origin/mu-settings-page, mu-settings-page) Fix settings URL
|
5 |
+
297ab9c (origin/master, origin/HEAD, master) Merge pull request #820 from herrherrmann/master
|
6 |
+
63d1ad0 Updated and extended German translation.
|
7 |
+
29710f0 Fixes admin page slug for multisite
|
classes/class-plugin.php
CHANGED
@@ -6,7 +6,7 @@ namespace HM\BackUpWordPress;
|
|
6 |
* Class Plugin
|
7 |
*/
|
8 |
final class Plugin {
|
9 |
-
const PLUGIN_VERSION = '3.2.
|
10 |
|
11 |
/**
|
12 |
* @var Plugin The singleton instance.
|
@@ -67,7 +67,7 @@ final class Plugin {
|
|
67 |
|
68 |
add_action( 'admin_init', array( 'HM\BackUpWordPress\Setup', 'self_deactivate' ) );
|
69 |
|
70 |
-
add_action( '
|
71 |
|
72 |
return true;
|
73 |
|
@@ -101,6 +101,7 @@ final class Plugin {
|
|
101 |
|
102 |
if ( ! defined( 'HMBKP_ADMIN_PAGE' ) ) {
|
103 |
$prefix = is_multisite() ? 'settings_page_' : 'tools_page_';
|
|
|
104 |
define( 'HMBKP_ADMIN_PAGE', $prefix . HMBKP_PLUGIN_SLUG );
|
105 |
}
|
106 |
|
6 |
* Class Plugin
|
7 |
*/
|
8 |
final class Plugin {
|
9 |
+
const PLUGIN_VERSION = '3.2.6';
|
10 |
|
11 |
/**
|
12 |
* @var Plugin The singleton instance.
|
67 |
|
68 |
add_action( 'admin_init', array( 'HM\BackUpWordPress\Setup', 'self_deactivate' ) );
|
69 |
|
70 |
+
add_action( 'all_admin_notices', array( 'HM\BackUpWordPress\Setup', 'display_admin_notices' ) );
|
71 |
|
72 |
return true;
|
73 |
|
101 |
|
102 |
if ( ! defined( 'HMBKP_ADMIN_PAGE' ) ) {
|
103 |
$prefix = is_multisite() ? 'settings_page_' : 'tools_page_';
|
104 |
+
|
105 |
define( 'HMBKP_ADMIN_PAGE', $prefix . HMBKP_PLUGIN_SLUG );
|
106 |
}
|
107 |
|
functions/interface.php
CHANGED
@@ -357,7 +357,7 @@ function hmbkp_translated_schedule_title( $slug, $title ) {
|
|
357 |
|
358 |
function hmbkp_get_settings_url() {
|
359 |
|
360 |
-
$url = is_multisite() ?
|
361 |
|
362 |
HM\BackUpWordPress\schedules::get_instance()->refresh_schedules();
|
363 |
|
357 |
|
358 |
function hmbkp_get_settings_url() {
|
359 |
|
360 |
+
$url = is_multisite() ? network_admin_url( 'settings.php?page=' . HMBKP_PLUGIN_SLUG ) : admin_url( 'tools.php?page=' . HMBKP_PLUGIN_SLUG );
|
361 |
|
362 |
HM\BackUpWordPress\schedules::get_instance()->refresh_schedules();
|
363 |
|
languages/backupwordpress-de_DE.mo
CHANGED
Binary file
|
languages/backupwordpress-de_DE.po
CHANGED
@@ -2,81 +2,85 @@
|
|
2 |
# This file is distributed under the same license as the 2.x package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date:
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
9 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
-
"X-Generator:
|
11 |
"Project-Id-Version: 2.x\n"
|
|
|
|
|
|
|
|
|
12 |
|
13 |
#: ../backupwordpress.php:119
|
14 |
msgid "BackUpWordPress requires PHP version %s or greater."
|
15 |
-
msgstr ""
|
16 |
|
17 |
#: ../admin/backups.php:100
|
18 |
msgid "This is where your backups will appear once you have some."
|
19 |
-
msgstr ""
|
20 |
|
21 |
#: ../admin/backups.php:120
|
22 |
msgid "% Backups Completed"
|
23 |
-
msgstr ""
|
24 |
|
25 |
#: ../admin/backups.php:122
|
26 |
msgid "No Backups Completed"
|
27 |
-
msgstr ""
|
28 |
|
29 |
#: ../admin/backups.php:124
|
30 |
msgid "1 Backup Completed"
|
31 |
-
msgstr ""
|
32 |
|
33 |
#: ../admin/enable-support.php:3
|
34 |
msgid "Enable BackUpWordPress Support"
|
35 |
-
msgstr ""
|
36 |
|
37 |
#: ../admin/enable-support.php:5
|
38 |
msgid "BackUpWordPress uses %s to provide support. In addition to allowing you to send and receive messages we also send the following server information along with your requests:"
|
39 |
-
msgstr ""
|
40 |
|
41 |
#: ../admin/enable-support.php:58
|
42 |
msgid "You can disable support in the future by deactivating BackUpWordPress."
|
43 |
-
msgstr ""
|
44 |
|
45 |
#: ../admin/enable-support.php:68
|
46 |
msgid "No thanks"
|
47 |
-
msgstr ""
|
48 |
|
49 |
#: ../admin/enable-support.php:70
|
50 |
msgid "Yes I want to enable support"
|
51 |
-
msgstr ""
|
52 |
|
53 |
#: ../admin/page.php:10
|
54 |
msgid "Support"
|
55 |
-
msgstr ""
|
56 |
|
57 |
#: ../admin/page.php:31
|
58 |
msgid "If you're finding BackUpWordPress useful, please %1$s rate it on the plugin directory. %2$s"
|
59 |
-
msgstr ""
|
60 |
|
61 |
#: ../admin/page.php:35
|
62 |
msgid "Wish you could store your backups in a safer place? Our %1$spremium extensions%2$s enable automatic backups to Dropbox, FTP, Google Drive and more."
|
63 |
-
msgstr ""
|
64 |
|
65 |
#: ../admin/schedule-form-excludes.php:19
|
66 |
msgid "Enter new exclude rules as a comma separated list, e.g. %s"
|
67 |
-
msgstr ""
|
68 |
|
69 |
#: ../admin/schedule-form.php:45
|
70 |
msgid "Past this limit older backups will be deleted automatically. This schedule will store a maximum of %s of backups"
|
71 |
-
msgstr ""
|
72 |
|
73 |
#: ../admin/schedule.php:78
|
74 |
msgid "store only the last backup on %s"
|
75 |
-
msgstr ""
|
76 |
|
77 |
#: ../admin/schedule.php:118
|
78 |
msgid "Backup my %1$s %2$s %3$s, %4$s. %5$s Send a copy of each backup to %6$s."
|
79 |
-
msgstr ""
|
80 |
|
81 |
#: ../classes/class-schedule.php:239
|
82 |
msgid "Argument 1 for %s must be a valid integer"
|
@@ -92,11 +96,11 @@ msgstr ""
|
|
92 |
|
93 |
#: ../classes/class-schedule.php:815
|
94 |
msgid "%s dpesn't exist"
|
95 |
-
msgstr ""
|
96 |
|
97 |
#: ../classes/class-schedule.php:819
|
98 |
msgid "That backup wasn't created by this schedule"
|
99 |
-
msgstr ""
|
100 |
|
101 |
#: ../classes/class-services.php:252
|
102 |
msgid "Argument 1 for %s must be a valid filepath"
|
@@ -112,11 +116,11 @@ msgstr ""
|
|
112 |
|
113 |
#: ../functions/core.php:269
|
114 |
msgid "You can only delete directories inside your WordPress installation"
|
115 |
-
msgstr ""
|
116 |
|
117 |
#: ../admin/actions.php:508
|
118 |
msgid "Your backup completed but with the following errors / warnings, it's probably ok to ignore these."
|
119 |
-
msgstr "Dein Backup wurde fertiggestellt, aber es traten folgende Fehler/Warnungen auf. Möglicherweise
|
120 |
|
121 |
#: ../admin/actions.php:512
|
122 |
msgid "Your backup failed"
|
@@ -128,27 +132,27 @@ msgstr "Erhalte eine E-Mail, wenn ein Backup fertiggestellt wird. Wenn das Backu
|
|
128 |
|
129 |
#: ../classes/class-email.php:54
|
130 |
msgid "The maximum filesize of your backup that will be attached to your notification emails . Defaults to %s."
|
131 |
-
msgstr "Die maximale Dateigröße,
|
132 |
|
133 |
#: ../admin/actions.php:520
|
134 |
msgid "You can email details of this error to %s so they can look into the issue."
|
135 |
-
msgstr "Du kannst
|
136 |
|
137 |
#: ../functions/core.php:246
|
138 |
msgid "Once Hourly"
|
139 |
-
msgstr "
|
140 |
|
141 |
#: ../functions/core.php:247
|
142 |
msgid "Twice Daily"
|
143 |
-
msgstr "
|
144 |
|
145 |
#: ../functions/core.php:248
|
146 |
msgid "Once Daily"
|
147 |
-
msgstr "
|
148 |
|
149 |
#: ../functions/core.php:249
|
150 |
msgid "Once Weekly"
|
151 |
-
msgstr "
|
152 |
|
153 |
#: ../functions/core.php:250
|
154 |
msgid "Once Fortnightly"
|
@@ -156,7 +160,7 @@ msgstr "Alle 14 Tage"
|
|
156 |
|
157 |
#: ../functions/core.php:251
|
158 |
msgid "Once Monthly"
|
159 |
-
msgstr "
|
160 |
|
161 |
#: ../admin/actions.php:524
|
162 |
msgid "Email to Support"
|
@@ -172,7 +176,7 @@ msgstr "Hier ist die Antwort des Servers:"
|
|
172 |
|
173 |
#: ../admin/page.php:33
|
174 |
msgid "If you need help getting things working then check the FAQ by clicking on help in the top right hand corner of this page."
|
175 |
-
msgstr "Wenn du Hilfe brauchst, die Dinge zum Laufen zu bekommen, besuche die FAQ, indem du in der rechten oberen Ecke dieser Seite auf Hilfe klickst."
|
176 |
|
177 |
#: ../classes/class-schedule.php:609 ../functions/interface.php:261
|
178 |
msgid "Starting Backup"
|
@@ -265,7 +269,7 @@ msgstr "Wir berechnen die Größe deiner Seite…"
|
|
265 |
|
266 |
#: ../admin/schedule.php:12
|
267 |
msgid "The next backup will be on %1$s at %2$s"
|
268 |
-
msgstr "Das nächste Backup wird
|
269 |
|
270 |
#: ../admin/schedule.php:37
|
271 |
msgid "every 12 hours at %1$s & %2$s"
|
@@ -373,7 +377,7 @@ msgstr "Backup fehlgeschlagen"
|
|
373 |
|
374 |
#: ../functions/core.php:229
|
375 |
msgid "By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database & files. You can modify these schedules."
|
376 |
-
msgstr "Standardmäßig führt BackUpWordPress ein tägliches Backup deiner Datenbank und ein wöchentliches Backup deiner Datenbank & Dateien durch. Du kannst diesen Aufgabenplan
|
377 |
|
378 |
#: ../functions/interface.php:245
|
379 |
msgid "Legacy"
|
@@ -389,7 +393,7 @@ msgstr "Das Backup-Verzeichnis kann nicht erstellt werden, weil dein %1$s-Verzei
|
|
389 |
|
390 |
#: ../functions/core.php:229
|
391 |
msgid "BackUpWordPress has setup your default schedules."
|
392 |
-
msgstr "BackUpWordPress hat
|
393 |
|
394 |
#: ../classes/class-email.php:154
|
395 |
msgid "Backup of %s Failed"
|
@@ -397,7 +401,7 @@ msgstr "Backup von %s fehlgeschlagen"
|
|
397 |
|
398 |
#: ../classes/class-email.php:69
|
399 |
msgid "Send an email notification to %s"
|
400 |
-
msgstr "Sende E-Mail-
|
401 |
|
402 |
#: ../classes/class-email.php:100
|
403 |
msgid "%s isn't a valid email"
|
@@ -405,7 +409,7 @@ msgstr "%s ist keine gültige E-Mail-Adresse"
|
|
405 |
|
406 |
#: ../admin/schedule.php:4
|
407 |
msgid "Backups will be compressed and should be smaller than this."
|
408 |
-
msgstr "Die Backups werden komprimiert und sollten kleiner sein."
|
409 |
|
410 |
#: ../classes/class-email.php:31
|
411 |
msgid "Email notification"
|
@@ -437,7 +441,7 @@ msgstr "Diese Informationen sind für Version %1$s. Sieh dir die %2$s-Datei fü
|
|
437 |
|
438 |
#: ../admin/constants.php:23
|
439 |
msgid "The root directory that is backed up. Defaults to %s."
|
440 |
-
msgstr "Das Wurzelverzeichnis, das gesichert wird. Standard: %s"
|
441 |
|
442 |
#: ../admin/constants.php:20
|
443 |
msgid "The capability to use when calling %1$s. Defaults to %2$s."
|
@@ -459,10 +463,10 @@ msgstr "Abbrechen"
|
|
459 |
msgid "The path to your %1$s executable. Will be used for the %2$s part of the back up if available."
|
460 |
msgstr "Der Pfad zur ausführbaren %1$s-Datei. Wird für den %2$s-Teil des Backups genutzt, wenn verfügbar."
|
461 |
|
462 |
-
#: ../admin/constants.php:8 ../admin/constants.php:11
|
463 |
-
#: ../admin/constants.php:
|
464 |
-
#: ../admin/constants.php:
|
465 |
-
#: ../classes/class-email.php:54
|
466 |
msgid "e.g."
|
467 |
msgstr "z.B."
|
468 |
|
@@ -472,7 +476,7 @@ msgstr "Du kannst jede der folgenden %2$s in deinem %3$s %1$sn, um erweiterte Ei
|
|
472 |
|
473 |
#: ../admin/actions.php:250 ../admin/actions.php:256
|
474 |
msgid "%1$s is returning a %2$s response which could mean cron jobs aren't getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details."
|
475 |
-
msgstr "%1$s gibt eine %2$s-Antwort zurück. Das könnte bedeuten, dass deine Cron-Jobs nicht richtig aufgerufen werden. BackUpWordPress benutzt wp-cron, um geplante Backups auszuführen.
|
476 |
|
477 |
#: ../functions/interface.php:78
|
478 |
msgid "http://php.net/manual/en/features.safe-mode.php"
|
@@ -488,7 +492,7 @@ msgstr "Dein angepasstes Backup-Verzeichnis %1$s existiert nicht und kann nicht
|
|
488 |
|
489 |
#: ../functions/interface.php:100
|
490 |
msgid "Your custom backups directory %1$s isn't writable, new backups will be saved to %2$s instead."
|
491 |
-
msgstr "Dein angepasstes Backup-Verzeichnis %1$s ist nicht
|
492 |
|
493 |
#: ../functions/interface.php:261
|
494 |
msgid "cancel"
|
@@ -554,7 +558,7 @@ msgstr "%s passt auf keine Dateien."
|
|
554 |
|
555 |
#: ../admin/backups.php:40
|
556 |
msgid "add schedule"
|
557 |
-
msgstr "
|
558 |
|
559 |
#: ../admin/backups.php:71
|
560 |
msgid "Size"
|
@@ -622,7 +626,7 @@ msgstr "Beim Übersetzen helfen"
|
|
622 |
|
623 |
#: ../admin/page.php:27
|
624 |
msgid "You need to fix the issues detailed above before BackUpWordPress can start."
|
625 |
-
msgstr "Du musst die
|
626 |
|
627 |
#: ../admin/schedule-form-excludes.php:17
|
628 |
msgid "Preview"
|
@@ -706,4 +710,4 @@ msgstr "Backup von %s"
|
|
706 |
|
707 |
#: ../functions/core.php:334
|
708 |
msgid "This %s file ensures that other people cannot download your backup files."
|
709 |
-
msgstr "Diese %s-Datei garantiert, dass andere Leute
|
2 |
# This file is distributed under the same license as the 2.x package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2015-05-18 22:03+0100\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
9 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
10 |
+
"X-Generator: Poedit 1.7.6\n"
|
11 |
"Project-Id-Version: 2.x\n"
|
12 |
+
"POT-Creation-Date: \n"
|
13 |
+
"Last-Translator: \n"
|
14 |
+
"Language-Team: \n"
|
15 |
+
"Language: de_DE\n"
|
16 |
|
17 |
#: ../backupwordpress.php:119
|
18 |
msgid "BackUpWordPress requires PHP version %s or greater."
|
19 |
+
msgstr "BackUpWordPress benötigt die PHP-Version %s oder neuer."
|
20 |
|
21 |
#: ../admin/backups.php:100
|
22 |
msgid "This is where your backups will appear once you have some."
|
23 |
+
msgstr "Hier erscheinen deine Backups, sobald sie erstellt wurden."
|
24 |
|
25 |
#: ../admin/backups.php:120
|
26 |
msgid "% Backups Completed"
|
27 |
+
msgstr "% Backups durchgeführt"
|
28 |
|
29 |
#: ../admin/backups.php:122
|
30 |
msgid "No Backups Completed"
|
31 |
+
msgstr "Keine Backups durchgeführt"
|
32 |
|
33 |
#: ../admin/backups.php:124
|
34 |
msgid "1 Backup Completed"
|
35 |
+
msgstr "1 Backup durchgeführt"
|
36 |
|
37 |
#: ../admin/enable-support.php:3
|
38 |
msgid "Enable BackUpWordPress Support"
|
39 |
+
msgstr "BackUpWordPress-Support aktivieren"
|
40 |
|
41 |
#: ../admin/enable-support.php:5
|
42 |
msgid "BackUpWordPress uses %s to provide support. In addition to allowing you to send and receive messages we also send the following server information along with your requests:"
|
43 |
+
msgstr "BackUpWordPress benutzt %s, um Support bereitzustellen. Neben der Möglichkeit, Nachrichten zu senden und zu empfangen, werden auch folgende Serverinformationen bei der Kommunikation übertragen:"
|
44 |
|
45 |
#: ../admin/enable-support.php:58
|
46 |
msgid "You can disable support in the future by deactivating BackUpWordPress."
|
47 |
+
msgstr "Support kann ab sofort deaktiviert werden, indem BackUpWordPress deaktiviert wird."
|
48 |
|
49 |
#: ../admin/enable-support.php:68
|
50 |
msgid "No thanks"
|
51 |
+
msgstr "Nein, danke"
|
52 |
|
53 |
#: ../admin/enable-support.php:70
|
54 |
msgid "Yes I want to enable support"
|
55 |
+
msgstr "Ja, ich möchte den Support aktivieren"
|
56 |
|
57 |
#: ../admin/page.php:10
|
58 |
msgid "Support"
|
59 |
+
msgstr "Support"
|
60 |
|
61 |
#: ../admin/page.php:31
|
62 |
msgid "If you're finding BackUpWordPress useful, please %1$s rate it on the plugin directory. %2$s"
|
63 |
+
msgstr "Falls du BackUpWordPress nützlich findest, dann %1$s bewerte es bitte im Plugin-Verzeichnis. %2$s"
|
64 |
|
65 |
#: ../admin/page.php:35
|
66 |
msgid "Wish you could store your backups in a safer place? Our %1$spremium extensions%2$s enable automatic backups to Dropbox, FTP, Google Drive and more."
|
67 |
+
msgstr "Du würdest deine Backups gern an einem sichereren Ort speichern? Unsere %1$Premium-Erweiterungen%2$s ermöglichen automatische Backups zu Dropbox, FTP, Google Drive und mehr."
|
68 |
|
69 |
#: ../admin/schedule-form-excludes.php:19
|
70 |
msgid "Enter new exclude rules as a comma separated list, e.g. %s"
|
71 |
+
msgstr "Erstelle neue Ausnahmen - du kannst mehrere per Komma separieren, z.B. %s"
|
72 |
|
73 |
#: ../admin/schedule-form.php:45
|
74 |
msgid "Past this limit older backups will be deleted automatically. This schedule will store a maximum of %s of backups"
|
75 |
+
msgstr "Ältere Backups werden bei Erreichen dieses Grenzwerts automatisch gelöscht. Dieser Plan wird also maximal %s Backups speichern."
|
76 |
|
77 |
#: ../admin/schedule.php:78
|
78 |
msgid "store only the last backup on %s"
|
79 |
+
msgstr "nur das letzte Backup bei %s speichern"
|
80 |
|
81 |
#: ../admin/schedule.php:118
|
82 |
msgid "Backup my %1$s %2$s %3$s, %4$s. %5$s Send a copy of each backup to %6$s."
|
83 |
+
msgstr "Backup von %1$s %2$s %3$s, %4$s. %5$s Eine Kopie von jedem Backup an %6$s senden."
|
84 |
|
85 |
#: ../classes/class-schedule.php:239
|
86 |
msgid "Argument 1 for %s must be a valid integer"
|
96 |
|
97 |
#: ../classes/class-schedule.php:815
|
98 |
msgid "%s dpesn't exist"
|
99 |
+
msgstr "%s nicht vorhanden"
|
100 |
|
101 |
#: ../classes/class-schedule.php:819
|
102 |
msgid "That backup wasn't created by this schedule"
|
103 |
+
msgstr "Dieses Backup wurde nicht anhand dieses Plans erstellt."
|
104 |
|
105 |
#: ../classes/class-services.php:252
|
106 |
msgid "Argument 1 for %s must be a valid filepath"
|
116 |
|
117 |
#: ../functions/core.php:269
|
118 |
msgid "You can only delete directories inside your WordPress installation"
|
119 |
+
msgstr "Nur Verzeichnisse innerhalb deiner WordPress-Installation können entfernt werden."
|
120 |
|
121 |
#: ../admin/actions.php:508
|
122 |
msgid "Your backup completed but with the following errors / warnings, it's probably ok to ignore these."
|
123 |
+
msgstr "Dein Backup wurde fertiggestellt, aber es traten folgende Fehler/Warnungen auf. Möglicherweise kannst du diese ignorieren."
|
124 |
|
125 |
#: ../admin/actions.php:512
|
126 |
msgid "Your backup failed"
|
132 |
|
133 |
#: ../classes/class-email.php:54
|
134 |
msgid "The maximum filesize of your backup that will be attached to your notification emails . Defaults to %s."
|
135 |
+
msgstr "Die maximale Dateigröße, mit welcher dein Backup an E-Mail-Benachrichtigungen angehängt wird. Standardmäßig %s."
|
136 |
|
137 |
#: ../admin/actions.php:520
|
138 |
msgid "You can email details of this error to %s so they can look into the issue."
|
139 |
+
msgstr "Du kannst Fehlerdetails via E-Mail an %s senden, damit diese sich das Problem ansehen können."
|
140 |
|
141 |
#: ../functions/core.php:246
|
142 |
msgid "Once Hourly"
|
143 |
+
msgstr "Einmal pro Stunde"
|
144 |
|
145 |
#: ../functions/core.php:247
|
146 |
msgid "Twice Daily"
|
147 |
+
msgstr "Zweimal pro Tag"
|
148 |
|
149 |
#: ../functions/core.php:248
|
150 |
msgid "Once Daily"
|
151 |
+
msgstr "Einmal pro Tag"
|
152 |
|
153 |
#: ../functions/core.php:249
|
154 |
msgid "Once Weekly"
|
155 |
+
msgstr "Einmal pro Woche"
|
156 |
|
157 |
#: ../functions/core.php:250
|
158 |
msgid "Once Fortnightly"
|
160 |
|
161 |
#: ../functions/core.php:251
|
162 |
msgid "Once Monthly"
|
163 |
+
msgstr "Einmal pro Monat"
|
164 |
|
165 |
#: ../admin/actions.php:524
|
166 |
msgid "Email to Support"
|
176 |
|
177 |
#: ../admin/page.php:33
|
178 |
msgid "If you need help getting things working then check the FAQ by clicking on help in the top right hand corner of this page."
|
179 |
+
msgstr "Wenn du Hilfe brauchst, die Dinge zum Laufen zu bekommen, besuche die FAQ-Seite, indem du in der rechten oberen Ecke dieser Seite auf Hilfe klickst."
|
180 |
|
181 |
#: ../classes/class-schedule.php:609 ../functions/interface.php:261
|
182 |
msgid "Starting Backup"
|
269 |
|
270 |
#: ../admin/schedule.php:12
|
271 |
msgid "The next backup will be on %1$s at %2$s"
|
272 |
+
msgstr "Das nächste Backup wird am %1$s um %2$s durchgeführt."
|
273 |
|
274 |
#: ../admin/schedule.php:37
|
275 |
msgid "every 12 hours at %1$s & %2$s"
|
377 |
|
378 |
#: ../functions/core.php:229
|
379 |
msgid "By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database & files. You can modify these schedules."
|
380 |
+
msgstr "Standardmäßig führt BackUpWordPress ein tägliches Backup deiner Datenbank und ein wöchentliches Backup deiner Datenbank & Dateien durch. Du kannst diesen Aufgabenplan anpassen."
|
381 |
|
382 |
#: ../functions/interface.php:245
|
383 |
msgid "Legacy"
|
393 |
|
394 |
#: ../functions/core.php:229
|
395 |
msgid "BackUpWordPress has setup your default schedules."
|
396 |
+
msgstr "BackUpWordPress hat Standard-Pläne für dich eingerichtet."
|
397 |
|
398 |
#: ../classes/class-email.php:154
|
399 |
msgid "Backup of %s Failed"
|
401 |
|
402 |
#: ../classes/class-email.php:69
|
403 |
msgid "Send an email notification to %s"
|
404 |
+
msgstr "Sende eine E-Mail-Benachrichtigung an %s"
|
405 |
|
406 |
#: ../classes/class-email.php:100
|
407 |
msgid "%s isn't a valid email"
|
409 |
|
410 |
#: ../admin/schedule.php:4
|
411 |
msgid "Backups will be compressed and should be smaller than this."
|
412 |
+
msgstr "Die Backups werden komprimiert und sollten kleiner sein als angegeben."
|
413 |
|
414 |
#: ../classes/class-email.php:31
|
415 |
msgid "Email notification"
|
441 |
|
442 |
#: ../admin/constants.php:23
|
443 |
msgid "The root directory that is backed up. Defaults to %s."
|
444 |
+
msgstr "Das Wurzelverzeichnis, das gesichert wird. Standard: %s."
|
445 |
|
446 |
#: ../admin/constants.php:20
|
447 |
msgid "The capability to use when calling %1$s. Defaults to %2$s."
|
463 |
msgid "The path to your %1$s executable. Will be used for the %2$s part of the back up if available."
|
464 |
msgstr "Der Pfad zur ausführbaren %1$s-Datei. Wird für den %2$s-Teil des Backups genutzt, wenn verfügbar."
|
465 |
|
466 |
+
#: ../admin/constants.php:8 ../admin/constants.php:11
|
467 |
+
#: ../admin/constants.php:14 ../admin/constants.php:17
|
468 |
+
#: ../admin/constants.php:20 ../admin/constants.php:23
|
469 |
+
#: ../admin/constants.php:26 ../classes/class-email.php:54
|
470 |
msgid "e.g."
|
471 |
msgstr "z.B."
|
472 |
|
476 |
|
477 |
#: ../admin/actions.php:250 ../admin/actions.php:256
|
478 |
msgid "%1$s is returning a %2$s response which could mean cron jobs aren't getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details."
|
479 |
+
msgstr "%1$s gibt eine %2$s-Antwort zurück. Das könnte bedeuten, dass deine Cron-Jobs nicht richtig aufgerufen werden. BackUpWordPress benutzt wp-cron, um geplante Backups auszuführen. Sieh dir das %3$s für mehr Details an."
|
480 |
|
481 |
#: ../functions/interface.php:78
|
482 |
msgid "http://php.net/manual/en/features.safe-mode.php"
|
492 |
|
493 |
#: ../functions/interface.php:100
|
494 |
msgid "Your custom backups directory %1$s isn't writable, new backups will be saved to %2$s instead."
|
495 |
+
msgstr "Dein angepasstes Backup-Verzeichnis %1$s ist nicht beschreibbar, neue Backups werden stattdessen nach %2$s gespeichert."
|
496 |
|
497 |
#: ../functions/interface.php:261
|
498 |
msgid "cancel"
|
558 |
|
559 |
#: ../admin/backups.php:40
|
560 |
msgid "add schedule"
|
561 |
+
msgstr "Plan hinzufügen"
|
562 |
|
563 |
#: ../admin/backups.php:71
|
564 |
msgid "Size"
|
626 |
|
627 |
#: ../admin/page.php:27
|
628 |
msgid "You need to fix the issues detailed above before BackUpWordPress can start."
|
629 |
+
msgstr "Du musst die oben beschriebenen Probleme beheben, bevor BackUpWordPress gestartet werden kann."
|
630 |
|
631 |
#: ../admin/schedule-form-excludes.php:17
|
632 |
msgid "Preview"
|
710 |
|
711 |
#: ../functions/core.php:334
|
712 |
msgid "This %s file ensures that other people cannot download your backup files."
|
713 |
+
msgstr "Diese %s-Datei garantiert, dass andere Leute deine Backup-Dateien nicht herunterladen können."
|
languages/backupwordpress.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: BackUpWordPress Backup Plugin 3.2.
|
6 |
"Report-Msgid-Bugs-To: support@humanmade.co.uk\n"
|
7 |
-
"POT-Creation-Date: 2015-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -61,11 +61,11 @@ msgstr ""
|
|
61 |
msgid "Max backups must be greater than 0"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: admin/actions.php:
|
65 |
msgid "BackUpWordPress has detected a problem."
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: admin/actions.php:
|
69 |
msgid ""
|
70 |
"%1$s is returning a %2$s response which could mean cron jobs aren't getting "
|
71 |
"fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. "
|
@@ -827,34 +827,34 @@ msgstr ""
|
|
827 |
msgid "This %s file ensures that other people cannot download your backup files."
|
828 |
msgstr ""
|
829 |
|
830 |
-
#: classes/class-plugin.php:
|
831 |
msgid "Update"
|
832 |
msgstr ""
|
833 |
|
834 |
-
#: classes/class-plugin.php:
|
835 |
msgid "Cancel"
|
836 |
msgstr ""
|
837 |
|
838 |
-
#: classes/class-plugin.php:
|
839 |
msgid ""
|
840 |
"Are you sure you want to delete this schedule? All of it's backups will "
|
841 |
"also be deleted."
|
842 |
msgstr ""
|
843 |
|
844 |
-
#: classes/class-plugin.php:
|
845 |
-
#: classes/class-plugin.php:
|
846 |
msgid "'Cancel' to go back, 'OK' to delete."
|
847 |
msgstr ""
|
848 |
|
849 |
-
#: classes/class-plugin.php:
|
850 |
msgid "Are you sure you want to delete this backup?"
|
851 |
msgstr ""
|
852 |
|
853 |
-
#: classes/class-plugin.php:
|
854 |
msgid "Are you sure you want to remove this exclude rule?"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: classes/class-plugin.php:
|
858 |
msgid ""
|
859 |
"Reducing the number of backups that are stored on this server will cause "
|
860 |
"some of your existing backups to be deleted, are you sure that's what you "
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: BackUpWordPress Backup Plugin 3.2.6\n"
|
6 |
"Report-Msgid-Bugs-To: support@humanmade.co.uk\n"
|
7 |
+
"POT-Creation-Date: 2015-06-08 11:45:41+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
61 |
msgid "Max backups must be greater than 0"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: admin/actions.php:716 admin/actions.php:722
|
65 |
msgid "BackUpWordPress has detected a problem."
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: admin/actions.php:716 admin/actions.php:722
|
69 |
msgid ""
|
70 |
"%1$s is returning a %2$s response which could mean cron jobs aren't getting "
|
71 |
"fired properly. BackUpWordPress relies on wp-cron to run scheduled backups. "
|
827 |
msgid "This %s file ensures that other people cannot download your backup files."
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: classes/class-plugin.php:214
|
831 |
msgid "Update"
|
832 |
msgstr ""
|
833 |
|
834 |
+
#: classes/class-plugin.php:215
|
835 |
msgid "Cancel"
|
836 |
msgstr ""
|
837 |
|
838 |
+
#: classes/class-plugin.php:216
|
839 |
msgid ""
|
840 |
"Are you sure you want to delete this schedule? All of it's backups will "
|
841 |
"also be deleted."
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: classes/class-plugin.php:216 classes/class-plugin.php:217
|
845 |
+
#: classes/class-plugin.php:218 classes/class-plugin.php:219
|
846 |
msgid "'Cancel' to go back, 'OK' to delete."
|
847 |
msgstr ""
|
848 |
|
849 |
+
#: classes/class-plugin.php:217
|
850 |
msgid "Are you sure you want to delete this backup?"
|
851 |
msgstr ""
|
852 |
|
853 |
+
#: classes/class-plugin.php:218
|
854 |
msgid "Are you sure you want to remove this exclude rule?"
|
855 |
msgstr ""
|
856 |
|
857 |
+
#: classes/class-plugin.php:219
|
858 |
msgid ""
|
859 |
"Reducing the number of backups that are stored on this server will cause "
|
860 |
"some of your existing backups to be deleted, are you sure that's what you "
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: humanmade, willmot, pauldewouters, joehoyle, mattheu, tcrsavage, c
|
|
3 |
Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.2
|
6 |
-
Stable tag: 3.2.
|
7 |
|
8 |
Simple automated backups of your WordPress powered website.
|
9 |
|
@@ -118,6 +118,13 @@ You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> o
|
|
118 |
|
119 |
== Upgrade Notice ==
|
120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
= 3.2.5 =
|
122 |
|
123 |
* Security fixes related to add_query_arg
|
@@ -144,7 +151,7 @@ You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> o
|
|
144 |
|
145 |
== Changelog ==
|
146 |
|
147 |
-
|
148 |
|
149 |
* Fixes an issue when evaluating expression with empty
|
150 |
* Fixes a fatal error on PHP 5.3
|
3 |
Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.2
|
6 |
+
Stable tag: 3.2.6
|
7 |
|
8 |
Simple automated backups of your WordPress powered website.
|
9 |
|
118 |
|
119 |
== Upgrade Notice ==
|
120 |
|
121 |
+
= 3.2.5.1-beta =
|
122 |
+
|
123 |
+
* Correctly set the `sslverify` argument
|
124 |
+
* Fix settings URL
|
125 |
+
* Updated and extended German translation.
|
126 |
+
* Fixes admin page slug for multisite
|
127 |
+
|
128 |
= 3.2.5 =
|
129 |
|
130 |
* Security fixes related to add_query_arg
|
151 |
|
152 |
== Changelog ==
|
153 |
|
154 |
+
## 3.2.5 / 2015-04-29
|
155 |
|
156 |
* Fixes an issue when evaluating expression with empty
|
157 |
* Fixes a fatal error on PHP 5.3
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit0da939d762bd0aafc6d6e8cf94b6668f::getLoader();
|
vendor/composer/autoload_namespaces.php
CHANGED
@@ -6,6 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'org\\bovigo\\vfs\\' => array($vendorDir . '/mikey179/vfsStream/src/main/php'),
|
10 |
'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'),
|
11 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
9 |
'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'),
|
10 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit2bf0ac6fa5ac73bc9dad2e829cb16011
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
@@ -44,7 +44,7 @@ class ComposerAutoloaderInit2bf0ac6fa5ac73bc9dad2e829cb16011
|
|
44 |
}
|
45 |
}
|
46 |
|
47 |
-
function
|
48 |
{
|
49 |
require $file;
|
50 |
}
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit0da939d762bd0aafc6d6e8cf94b6668f
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit0da939d762bd0aafc6d6e8cf94b6668f', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit0da939d762bd0aafc6d6e8cf94b6668f', 'loadClassLoader'));
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
44 |
}
|
45 |
}
|
46 |
|
47 |
+
function composerRequire0da939d762bd0aafc6d6e8cf94b6668f($file)
|
48 |
{
|
49 |
require $file;
|
50 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,27 +1,24 @@
|
|
1 |
[
|
2 |
{
|
3 |
"name": "symfony/finder",
|
4 |
-
"version": "v2.6.
|
5 |
-
"version_normalized": "2.6.
|
6 |
"target-dir": "Symfony/Component/Finder",
|
7 |
"source": {
|
8 |
"type": "git",
|
9 |
"url": "https://github.com/symfony/Finder.git",
|
10 |
-
"reference": "
|
11 |
},
|
12 |
"dist": {
|
13 |
"type": "zip",
|
14 |
-
"url": "https://api.github.com/repos/symfony/Finder/zipball/
|
15 |
-
"reference": "
|
16 |
"shasum": ""
|
17 |
},
|
18 |
"require": {
|
19 |
"php": ">=5.3.3"
|
20 |
},
|
21 |
-
"
|
22 |
-
"symfony/phpunit-bridge": "~2.7"
|
23 |
-
},
|
24 |
-
"time": "2015-03-30 15:54:10",
|
25 |
"type": "library",
|
26 |
"extra": {
|
27 |
"branch-alias": {
|
@@ -50,53 +47,5 @@
|
|
50 |
],
|
51 |
"description": "Symfony Finder Component",
|
52 |
"homepage": "http://symfony.com"
|
53 |
-
},
|
54 |
-
{
|
55 |
-
"name": "mikey179/vfsStream",
|
56 |
-
"version": "dev-master",
|
57 |
-
"version_normalized": "9999999-dev",
|
58 |
-
"source": {
|
59 |
-
"type": "git",
|
60 |
-
"url": "https://github.com/mikey179/vfsStream.git",
|
61 |
-
"reference": "3a0e11a1df90d32b553bf12c012f836729a5abff"
|
62 |
-
},
|
63 |
-
"dist": {
|
64 |
-
"type": "zip",
|
65 |
-
"url": "https://api.github.com/repos/mikey179/vfsStream/zipball/3a0e11a1df90d32b553bf12c012f836729a5abff",
|
66 |
-
"reference": "3a0e11a1df90d32b553bf12c012f836729a5abff",
|
67 |
-
"shasum": ""
|
68 |
-
},
|
69 |
-
"require": {
|
70 |
-
"php": ">=5.3.0"
|
71 |
-
},
|
72 |
-
"require-dev": {
|
73 |
-
"phpunit/phpunit": "~4.5"
|
74 |
-
},
|
75 |
-
"time": "2015-04-13 17:47:24",
|
76 |
-
"type": "library",
|
77 |
-
"extra": {
|
78 |
-
"branch-alias": {
|
79 |
-
"dev-master": "1.5.x-dev"
|
80 |
-
}
|
81 |
-
},
|
82 |
-
"installation-source": "source",
|
83 |
-
"autoload": {
|
84 |
-
"psr-0": {
|
85 |
-
"org\\bovigo\\vfs\\": "src/main/php"
|
86 |
-
}
|
87 |
-
},
|
88 |
-
"notification-url": "https://packagist.org/downloads/",
|
89 |
-
"license": [
|
90 |
-
"BSD-3-Clause"
|
91 |
-
],
|
92 |
-
"authors": [
|
93 |
-
{
|
94 |
-
"name": "Frank Kleine",
|
95 |
-
"homepage": "http://frankkleine.de/",
|
96 |
-
"role": "Developer"
|
97 |
-
}
|
98 |
-
],
|
99 |
-
"description": "Virtual file system to mock the real file system in unit tests.",
|
100 |
-
"homepage": "http://vfs.bovigo.org/"
|
101 |
}
|
102 |
]
|
1 |
[
|
2 |
{
|
3 |
"name": "symfony/finder",
|
4 |
+
"version": "v2.6.4",
|
5 |
+
"version_normalized": "2.6.4.0",
|
6 |
"target-dir": "Symfony/Component/Finder",
|
7 |
"source": {
|
8 |
"type": "git",
|
9 |
"url": "https://github.com/symfony/Finder.git",
|
10 |
+
"reference": "16513333bca64186c01609961a2bb1b95b5e1355"
|
11 |
},
|
12 |
"dist": {
|
13 |
"type": "zip",
|
14 |
+
"url": "https://api.github.com/repos/symfony/Finder/zipball/16513333bca64186c01609961a2bb1b95b5e1355",
|
15 |
+
"reference": "16513333bca64186c01609961a2bb1b95b5e1355",
|
16 |
"shasum": ""
|
17 |
},
|
18 |
"require": {
|
19 |
"php": ">=5.3.3"
|
20 |
},
|
21 |
+
"time": "2015-01-03 08:01:59",
|
|
|
|
|
|
|
22 |
"type": "library",
|
23 |
"extra": {
|
24 |
"branch-alias": {
|
47 |
],
|
48 |
"description": "Symfony Finder Component",
|
49 |
"homepage": "http://symfony.com"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
}
|
51 |
]
|
vendor/mikey179/vfsStream/CHANGELOG.md
DELETED
@@ -1,192 +0,0 @@
|
|
1 |
-
1.5.0 (2015-03-29)
|
2 |
-
------------------
|
3 |
-
|
4 |
-
* implemented #91: `vfsStream::copyFromFileSystem()` should create large file instances
|
5 |
-
* implemented #92: `vfsStream::copyFromFileSystem()` should respect block devices
|
6 |
-
* fixed #107: `touch()` does not respect file permissions
|
7 |
-
* fixed #105: vfs directory structure is not reset after each test
|
8 |
-
* fixed #104: vfsStream can't handle url encoded pathes
|
9 |
-
|
10 |
-
|
11 |
-
1.4.0 (2014-09-14)
|
12 |
-
------------------
|
13 |
-
|
14 |
-
* implemented #85: Added support for emulating block devices in the virtual filesystem, feature provided by Harris Borawski
|
15 |
-
* fixed #68: Unlink a non-existing file now triggers a PHP warning
|
16 |
-
|
17 |
-
|
18 |
-
1.3.0 (2014-07-21)
|
19 |
-
------------------
|
20 |
-
|
21 |
-
* implemented #79: possibility to mock large files without large memory footprint, see https://github.com/mikey179/vfsStream/wiki/MockingLargeFiles
|
22 |
-
* implemented #67: added partial support for text-mode translation flag (i.e., no actual translation of line endings takes place) so it no longer throws an exception (provided by Anthon Pang)
|
23 |
-
* fixed issue #74: issue with trailing windows path separators (provided by Sebastian Krüger)
|
24 |
-
* fixed issue #50: difference between real file system and vfs with `RecursiveDirectoryIterator`
|
25 |
-
* fixed issue #80: touch with no arguments for modification and access time behave incorrect
|
26 |
-
* deprecated `org\bovigo\vfs\vfsStreamFile::readUntilEnd()`
|
27 |
-
* deprecated `org\bovigo\vfs\vfsStreamFile::getBytesRead()`
|
28 |
-
|
29 |
-
|
30 |
-
1.2.0 (2013-04-01)
|
31 |
-
------------------
|
32 |
-
|
33 |
-
* implemented issue #34: provide `url()` method on all `vfsStreamContent` instances
|
34 |
-
* added `org\bovigo\vfs\vfsStreamContent::url()`
|
35 |
-
* added `org\bovigo\vfs\vfsStreamContent::path()`
|
36 |
-
* fixed issue #40: flock implementation doesn't work correctly, patch provided by Kamil Dziedzic
|
37 |
-
* fixed issue #49: call to member function on a non-object when trying to delete a file one above root where a file with same name in root exists
|
38 |
-
* fixed issue #51: `unlink()` must consider permissions of directory where file is inside, not of the file to unlink itself
|
39 |
-
* fixed issue #52: `chmod()`, `chown()` and `chgrp()` must consider permissions of directory where file/directory is inside
|
40 |
-
* fixed issue #53: `chmod()`, `chown()` and `chgrp()` must consider current user and current owner of file/directoy to change
|
41 |
-
|
42 |
-
|
43 |
-
1.1.0 (2012-08-25)
|
44 |
-
------------------
|
45 |
-
|
46 |
-
* implemented issue #11: add support for `streamWrapper::stream_metadata()` vfsStream now supports `touch()`, `chown()`, `chgrp()` and `chmod()`
|
47 |
-
* implemented issue #33: add support for `stream_truncate()` (provided by https://github.com/nikcorg)
|
48 |
-
* implemented issue #35: size limit (quota) for VFS
|
49 |
-
|
50 |
-
|
51 |
-
1.0.0 (2012-05-15)
|
52 |
-
------------------
|
53 |
-
|
54 |
-
* raised requirement for PHP version to 5.3.0
|
55 |
-
* migrated codebase to use namespaces
|
56 |
-
* changed distribution from PEAR to Composer
|
57 |
-
* implemented issue #30: support "c" mode for `fopen()`
|
58 |
-
* fixed issue #31: prohibit aquiring locks when already locked / release lock on `fclose()`
|
59 |
-
* fixed issue #32: problems when subfolder has same name as folder
|
60 |
-
* fixed issue #36: `vfsStreamWrapper::stream_open()` should return false while trying to open existing non-writable file, patch provided by Alexander Peresypkin
|
61 |
-
|
62 |
-
|
63 |
-
0.11.2 (2012-01-14)
|
64 |
-
-------------------
|
65 |
-
|
66 |
-
* fixed issue #29: set permissions properly when using `vfsStream::copyFromFileSystem()`, patch provided by predakanga
|
67 |
-
* fixed failing tests under PHP > 5.3.2
|
68 |
-
|
69 |
-
|
70 |
-
0.11.1 (2011-12-04)
|
71 |
-
-------------------
|
72 |
-
|
73 |
-
* fixed issue #28: `mkdir()` overwrites existing directories/files
|
74 |
-
|
75 |
-
|
76 |
-
0.11.0 (2011-11-29)
|
77 |
-
-------------------
|
78 |
-
|
79 |
-
* implemented issue #20: `vfsStream::create()` removes old structure
|
80 |
-
* implemented issue #4: possibility to copy structure from existing file system
|
81 |
-
* fixed issue #23: `unlink()` should not remove any directory
|
82 |
-
* fixed issue #25: `vfsStreamDirectory::hasChild()` gives false positives for nested paths, patch provided by Andrew Coulton
|
83 |
-
* fixed issue #26: opening a file for reading only should not update its modification time, reported and initial patch provided by Ludovic Chabant
|
84 |
-
|
85 |
-
|
86 |
-
0.10.1 (2011-08-22)
|
87 |
-
-------------------
|
88 |
-
|
89 |
-
* fixed issue #16: replace `vfsStreamContent` to `vfsStreamContainer` for autocompletion
|
90 |
-
* fixed issue #17: `vfsStream::create()` has issues with numeric directories, patch provided by mathieuk
|
91 |
-
|
92 |
-
|
93 |
-
0.10.0 (2011-07-22)
|
94 |
-
-------------------
|
95 |
-
|
96 |
-
* added new method `vfsStreamContainer::hasChildren()` and `vfsStreamDirectory::hasChildren()`
|
97 |
-
* implemented issue #14: less verbose way to initialize vfsStream
|
98 |
-
* implemented issue #13: remove deprecated method `vfsStreamContent::setFilemtime()`
|
99 |
-
* implemented issue #6: locking meachanism for files
|
100 |
-
* ensured that `stream_set_blocking()`, `stream_set_timeout()` and `stream_set_write_buffer()` on vfsStream urls have the same behaviour with PHP 5.2 and 5.3
|
101 |
-
* implemented issue #10: method to print directory structure
|
102 |
-
|
103 |
-
|
104 |
-
0.9.0 (2011-07-13)
|
105 |
-
------------------
|
106 |
-
|
107 |
-
* implemented feature request issue #7: add support for `fileatime()` and `filectime()`
|
108 |
-
* fixed issue #3: add support for `streamWrapper::stream_cast()`
|
109 |
-
* fixed issue #9: resolve path not called everywhere its needed
|
110 |
-
* deprecated `vfsStreamAbstractContent::setFilemtime()`, use `vfsStreamAbstractContent::lastModified()` instead, will be removed with 0.10.0
|
111 |
-
|
112 |
-
|
113 |
-
0.8.0 (2010-10-08)
|
114 |
-
------------------
|
115 |
-
|
116 |
-
* implemented enhancement #6: use `vfsStream::umask()` to influence initial file mode for files and directories
|
117 |
-
* implemented enhancement #19: support of .. in the url, patch provided by Guislain Duthieuw
|
118 |
-
* fixed issue #18: `getChild()` returns NULL when child's name contains parent name
|
119 |
-
* fixed bug with incomplete error message when accessing non-existing files on root level
|
120 |
-
|
121 |
-
|
122 |
-
0.7.0 (2010-06-08)
|
123 |
-
------------------
|
124 |
-
|
125 |
-
* added new `vfsStream::setup()` method to simplify vfsStream usage
|
126 |
-
* fixed issue #15: `mkdir()` creates a subfolder in a folder without permissions
|
127 |
-
|
128 |
-
|
129 |
-
0.6.0 (2010-02-15)
|
130 |
-
------------------
|
131 |
-
|
132 |
-
* added support for `$mode` param when opening files, implements enhancement #7 and fixes issue #13
|
133 |
-
* `vfsStreamWrapper::stream_open()` now evaluates `$options` for `STREAM_REPORT_ERRORS`
|
134 |
-
|
135 |
-
|
136 |
-
0.5.0 (2010-01-25)
|
137 |
-
------------------
|
138 |
-
|
139 |
-
* added support for `rename()`, patch provided by Benoit Aubuchon
|
140 |
-
* added support for . as directory alias so that `vfs://foo/.` resolves to `vfs://foo`, can be used as workaround for bug #8
|
141 |
-
|
142 |
-
|
143 |
-
0.4.0 (2009-07-13)
|
144 |
-
------------------
|
145 |
-
|
146 |
-
* added support for file modes, users and groups (with restrictions, see http://code.google.com/p/bovigo/wiki/vfsStreamDocsKnownIssues)
|
147 |
-
* fixed bug #5: `vfsStreamDirectory::addChild()` does not replace child with same name
|
148 |
-
* fixed bug with `is_writable()` because of missing `stat()` fields, patch provided by Sergey Galkin
|
149 |
-
|
150 |
-
|
151 |
-
0.3.2 (2009-02-16)
|
152 |
-
------------------
|
153 |
-
|
154 |
-
* support trailing slashes on directories in vfsStream urls, patch provided by Gabriel Birke
|
155 |
-
* fixed bug #4: vfsstream can only be read once, reported by Christoph Bloemer
|
156 |
-
* enabled multiple iterations at the same time over the same directory
|
157 |
-
|
158 |
-
|
159 |
-
0.3.1 (2008-02-18)
|
160 |
-
------------------
|
161 |
-
|
162 |
-
* fixed path/directory separator issues under linux systems
|
163 |
-
* fixed uid/gid issues under linux systems
|
164 |
-
|
165 |
-
|
166 |
-
0.3.0 (2008-01-02)
|
167 |
-
------------------
|
168 |
-
|
169 |
-
* added support for `rmdir()`
|
170 |
-
* added `vfsStream::newDirectory()`, dropped `vfsStreamDirectory::ceate()`
|
171 |
-
* added new interface `vfsStreamContainer`
|
172 |
-
* added `vfsStreamContent::at()` which allows code like `$file = vfsStream::newFile('file.txt.')->withContent('foo')->at($otherDir);`
|
173 |
-
* added `vfsStreamContent::lastModified()`, made `vfsStreamContent::setFilemtime()` an alias for this
|
174 |
-
* moved from Stubbles development environment to bovigo
|
175 |
-
* refactorings to reduce crap index of various methods
|
176 |
-
|
177 |
-
|
178 |
-
0.2.0 (2007-12-29)
|
179 |
-
------------------
|
180 |
-
|
181 |
-
* moved `vfsStreamWrapper::PROTOCOL` to `vfsStream::SCHEME`
|
182 |
-
* added new `vfsStream::url()` method to assist in creating correct vfsStream urls
|
183 |
-
* added `vfsStream::path()` method as opposite to `vfsStream::url()`
|
184 |
-
* a call to `vfsStreamWrapper::register()` will now reset the root to null, implemented on request from David Zuelke
|
185 |
-
* added support for `is_readable()`, `is_dir()`, `is_file()`
|
186 |
-
* added `vfsStream::newFile()` to be able to do `$file = vfsStream::newFile("foo.txt")->withContent("bar");`
|
187 |
-
|
188 |
-
|
189 |
-
0.1.0 (2007-12-14)
|
190 |
-
------------------
|
191 |
-
|
192 |
-
* Initial release.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/LICENSE
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
Copyright (c) 2007-2015, Frank Kleine
|
2 |
-
All rights reserved.
|
3 |
-
|
4 |
-
Redistribution and use in source and binary forms, with or without
|
5 |
-
modification, are permitted provided that the following conditions are
|
6 |
-
met:
|
7 |
-
|
8 |
-
* Redistributions of source code must retain the above copyright
|
9 |
-
notice, this list of conditions and the following disclaimer.
|
10 |
-
* Redistributions in binary form must reproduce the above copyright
|
11 |
-
notice, this list of conditions and the following disclaimer in the
|
12 |
-
documentation and/or other materials provided with the distribution.
|
13 |
-
* Neither the name of Stubbles nor the names of its
|
14 |
-
contributors may be used to endorse or promote products derived
|
15 |
-
from this software without specific prior written permission.
|
16 |
-
|
17 |
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
18 |
-
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
19 |
-
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
20 |
-
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
21 |
-
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
22 |
-
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
23 |
-
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
24 |
-
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
25 |
-
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
26 |
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
27 |
-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/README.md
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
You can find documentation in the [wiki](https://github.com/mikey179/vfsStream/wiki).
|
2 |
-
|
3 |
-
Also you might want to check [vfsStream examples](https://github.com/mikey179/vfsStream-examples).
|
4 |
-
|
5 |
-
|
6 |
-
[![Build Status](https://secure.travis-ci.org/mikey179/vfsStream.png)](http://travis-ci.org/mikey179/vfsStream) [![Coverage Status](https://coveralls.io/repos/mikey179/vfsStream/badge.png?branch=master)](https://coveralls.io/r/mikey179/vfsStream?branch=master)
|
7 |
-
|
8 |
-
[![Latest Stable Version](https://poser.pugx.org/mikey179/vfsStream/version.png)](https://packagist.org/packages/mikey179/vfsStream) [![Latest Unstable Version](https://poser.pugx.org/mikey179/vfsStream/v/unstable.png)](//packagist.org/packages/mikey179/vfsStream)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/composer.json
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "mikey179/vfsStream",
|
3 |
-
"type": "library",
|
4 |
-
"homepage": "http://vfs.bovigo.org/",
|
5 |
-
"description": "Virtual file system to mock the real file system in unit tests.",
|
6 |
-
"license": "BSD-3-Clause",
|
7 |
-
"authors": [
|
8 |
-
{
|
9 |
-
"name": "Frank Kleine",
|
10 |
-
"homepage": "http://frankkleine.de/",
|
11 |
-
"role": "Developer"
|
12 |
-
}
|
13 |
-
],
|
14 |
-
"support": {
|
15 |
-
"issues": "https://github.com/mikey179/vfsStream/issues",
|
16 |
-
"source": "https://github.com/mikey179/vfsStream/tree/master",
|
17 |
-
"wiki": "https://github.com/mikey179/vfsStream/wiki"
|
18 |
-
},
|
19 |
-
"require": {
|
20 |
-
"php": ">=5.3.0"
|
21 |
-
},
|
22 |
-
"require-dev": {
|
23 |
-
"phpunit/phpunit": "~4.5"
|
24 |
-
},
|
25 |
-
"autoload": {
|
26 |
-
"psr-0": { "org\\bovigo\\vfs\\": "src/main/php" }
|
27 |
-
},
|
28 |
-
"extra": {
|
29 |
-
"branch-alias": {
|
30 |
-
"dev-master": "1.5.x-dev"
|
31 |
-
}
|
32 |
-
}
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/Example.php
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
/**
|
12 |
-
* Example class.
|
13 |
-
*/
|
14 |
-
class Example
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* id of the example
|
18 |
-
*
|
19 |
-
* @type string
|
20 |
-
*/
|
21 |
-
protected $id;
|
22 |
-
/**
|
23 |
-
* a directory where we do something..
|
24 |
-
*
|
25 |
-
* @type string
|
26 |
-
*/
|
27 |
-
protected $directory;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* constructor
|
31 |
-
*
|
32 |
-
* @param string $id
|
33 |
-
*/
|
34 |
-
public function __construct($id)
|
35 |
-
{
|
36 |
-
$this->id = $id;
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* sets the directory
|
41 |
-
*
|
42 |
-
* @param string $directory
|
43 |
-
*/
|
44 |
-
public function setDirectory($directory)
|
45 |
-
{
|
46 |
-
$this->directory = $directory . DIRECTORY_SEPARATOR . $this->id;
|
47 |
-
if (file_exists($this->directory) === false) {
|
48 |
-
mkdir($this->directory, 0700, true);
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
// more source code here...
|
53 |
-
}
|
54 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/ExampleTestCaseOldWay.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
require_once 'Example.php';
|
12 |
-
/**
|
13 |
-
* Test case for class Example.
|
14 |
-
*/
|
15 |
-
class ExampleTestCaseOldWay extends \PHPUnit_Framework_TestCase
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* set up test environmemt
|
19 |
-
*/
|
20 |
-
public function setUp()
|
21 |
-
{
|
22 |
-
if (file_exists(__DIR__ . '/id') === true) {
|
23 |
-
rmdir(__DIR__ . '/id');
|
24 |
-
}
|
25 |
-
}
|
26 |
-
|
27 |
-
/**
|
28 |
-
* clear up test environment
|
29 |
-
*/
|
30 |
-
public function tearDown()
|
31 |
-
{
|
32 |
-
if (file_exists(__DIR__ . '/id') === true) {
|
33 |
-
rmdir(__DIR__ . '/id');
|
34 |
-
}
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* @test
|
39 |
-
*/
|
40 |
-
public function directoryIsCreated()
|
41 |
-
{
|
42 |
-
$example = new Example('id');
|
43 |
-
$this->assertFalse(file_exists(__DIR__ . '/id'));
|
44 |
-
$example->setDirectory(__DIR__);
|
45 |
-
$this->assertTrue(file_exists(__DIR__ . '/id'));
|
46 |
-
}
|
47 |
-
}
|
48 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/ExampleTestCaseWithVfsStream.php
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
use org\bovigo\vfs\vfsStream;
|
12 |
-
require_once 'Example.php';
|
13 |
-
/**
|
14 |
-
* Test case for class Example.
|
15 |
-
*
|
16 |
-
* @package bovigo_vfs
|
17 |
-
* @subpackage examples
|
18 |
-
*/
|
19 |
-
class ExampleTestCaseWithVfsStream extends \PHPUnit_Framework_TestCase
|
20 |
-
{
|
21 |
-
/**
|
22 |
-
* root directory
|
23 |
-
*
|
24 |
-
* @type vfsStreamDirectory
|
25 |
-
*/
|
26 |
-
protected $root;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* set up test environmemt
|
30 |
-
*/
|
31 |
-
public function setUp()
|
32 |
-
{
|
33 |
-
$this->root = vfsStream::setup('exampleDir');
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @test
|
38 |
-
*/
|
39 |
-
public function directoryIsCreated()
|
40 |
-
{
|
41 |
-
$example = new Example('id');
|
42 |
-
$this->assertFalse($this->root->hasChild('id'));
|
43 |
-
$example->setDirectory(vfsStream::url('exampleDir'));
|
44 |
-
$this->assertTrue($this->root->hasChild('id'));
|
45 |
-
}
|
46 |
-
}
|
47 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/FailureExample.php
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
/**
|
12 |
-
* Example class to demonstrate testing of failure behaviour with vfsStream.
|
13 |
-
*/
|
14 |
-
class FailureExample
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* filename to write data
|
18 |
-
*
|
19 |
-
* @type string
|
20 |
-
*/
|
21 |
-
protected $filename;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* constructor
|
25 |
-
*
|
26 |
-
* @param string $id
|
27 |
-
*/
|
28 |
-
public function __construct($filename)
|
29 |
-
{
|
30 |
-
$this->filename = $filename;
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* sets the directory
|
35 |
-
*
|
36 |
-
* @param string $directory
|
37 |
-
*/
|
38 |
-
public function writeData($data)
|
39 |
-
{
|
40 |
-
$bytes = @file_put_contents($this->filename, $data);
|
41 |
-
if (false === $bytes) {
|
42 |
-
return 'could not write data';
|
43 |
-
}
|
44 |
-
|
45 |
-
return 'ok';
|
46 |
-
}
|
47 |
-
|
48 |
-
// more source code here...
|
49 |
-
}
|
50 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/FailureExampleTestCase.php
DELETED
@@ -1,58 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
use org\bovigo\vfs\vfsStream;
|
12 |
-
require_once 'FailureExample.php';
|
13 |
-
/**
|
14 |
-
* Test case for class FailureExample.
|
15 |
-
*/
|
16 |
-
class FailureExampleTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* root directory
|
20 |
-
*
|
21 |
-
* @type vfsStreamDirectory
|
22 |
-
*/
|
23 |
-
protected $root;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* set up test environmemt
|
27 |
-
*/
|
28 |
-
public function setUp()
|
29 |
-
{
|
30 |
-
$this->root = vfsStream::setup('exampleDir');
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* @test
|
35 |
-
*/
|
36 |
-
public function returnsOkOnNoFailure()
|
37 |
-
{
|
38 |
-
$example = new FailureExample(vfsStream::url('exampleDir/test.txt'));
|
39 |
-
$this->assertSame('ok', $example->writeData('testdata'));
|
40 |
-
$this->assertTrue($this->root->hasChild('test.txt'));
|
41 |
-
$this->assertSame('testdata', $this->root->getChild('test.txt')->getContent());
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @test
|
46 |
-
*/
|
47 |
-
public function returnsErrorMessageIfWritingToFileFails()
|
48 |
-
{
|
49 |
-
$file = vfsStream::newFile('test.txt', 0000)
|
50 |
-
->withContent('notoverwritten')
|
51 |
-
->at($this->root);
|
52 |
-
$example = new FailureExample(vfsStream::url('exampleDir/test.txt'));
|
53 |
-
$this->assertSame('could not write data', $example->writeData('testdata'));
|
54 |
-
$this->assertTrue($this->root->hasChild('test.txt'));
|
55 |
-
$this->assertSame('notoverwritten', $this->root->getChild('test.txt')->getContent());
|
56 |
-
}
|
57 |
-
}
|
58 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/FileModeExampleTestCaseOldWay.php
DELETED
@@ -1,67 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
require_once 'FilemodeExample.php';
|
12 |
-
/**
|
13 |
-
* Test case for class FilemodeExample.
|
14 |
-
*/
|
15 |
-
class FilemodeExampleTestCaseOldWay extends \PHPUnit_Framework_TestCase
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* set up test environmemt
|
19 |
-
*/
|
20 |
-
public function setUp()
|
21 |
-
{
|
22 |
-
if (file_exists(__DIR__ . '/id') === true) {
|
23 |
-
rmdir(__DIR__ . '/id');
|
24 |
-
}
|
25 |
-
}
|
26 |
-
|
27 |
-
/**
|
28 |
-
* clear up test environment
|
29 |
-
*/
|
30 |
-
public function tearDown()
|
31 |
-
{
|
32 |
-
if (file_exists(__DIR__ . '/id') === true) {
|
33 |
-
rmdir(__DIR__ . '/id');
|
34 |
-
}
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* test correct file mode for created directory
|
39 |
-
*/
|
40 |
-
public function testDirectoryHasCorrectDefaultFilePermissions()
|
41 |
-
{
|
42 |
-
$example = new FilemodeExample('id');
|
43 |
-
$example->setDirectory(__DIR__);
|
44 |
-
if (DIRECTORY_SEPARATOR === '\\') {
|
45 |
-
// can not really test on windows, filemode from mkdir() is ignored
|
46 |
-
$this->assertEquals(40777, decoct(fileperms(__DIR__ . '/id')));
|
47 |
-
} else {
|
48 |
-
$this->assertEquals(40700, decoct(fileperms(__DIR__ . '/id')));
|
49 |
-
}
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* test correct file mode for created directory
|
54 |
-
*/
|
55 |
-
public function testDirectoryHasCorrectDifferentFilePermissions()
|
56 |
-
{
|
57 |
-
$example = new FilemodeExample('id', 0755);
|
58 |
-
$example->setDirectory(__DIR__);
|
59 |
-
if (DIRECTORY_SEPARATOR === '\\') {
|
60 |
-
// can not really test on windows, filemode from mkdir() is ignored
|
61 |
-
$this->assertEquals(40777, decoct(fileperms(__DIR__ . '/id')));
|
62 |
-
} else {
|
63 |
-
$this->assertEquals(40755, decoct(fileperms(__DIR__ . '/id')));
|
64 |
-
}
|
65 |
-
}
|
66 |
-
}
|
67 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/FilePermissionsExample.php
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
/**
|
12 |
-
* Example showing correct file permission support introduced with 0.7.0.
|
13 |
-
*/
|
14 |
-
class FilePermissionsExample
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* reads configuration from given config file
|
18 |
-
*
|
19 |
-
* @param mixed $config
|
20 |
-
* @param string $configFile
|
21 |
-
*/
|
22 |
-
public function writeConfig($config, $configFile)
|
23 |
-
{
|
24 |
-
@file_put_contents($configFile, serialize($config));
|
25 |
-
}
|
26 |
-
|
27 |
-
// more methods here
|
28 |
-
}
|
29 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/FilePermissionsExampleTestCase.php
DELETED
@@ -1,44 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
use org\bovigo\vfs\vfsStream;
|
12 |
-
require_once 'FilePermissionsExample.php';
|
13 |
-
/**
|
14 |
-
* Test for FilePermissionsExample.
|
15 |
-
*/
|
16 |
-
class FilePermissionsExampleTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* @test
|
20 |
-
*/
|
21 |
-
public function directoryWritable()
|
22 |
-
{
|
23 |
-
vfsStream::setup('exampleDir');
|
24 |
-
$example = new FilePermissionsExample();
|
25 |
-
$example->writeConfig(array('foo' => 'bar'),
|
26 |
-
vfsStream::url('exampleDir/writable.ini')
|
27 |
-
);
|
28 |
-
|
29 |
-
// assertions here
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @test
|
34 |
-
*/
|
35 |
-
public function directoryNotWritable()
|
36 |
-
{
|
37 |
-
vfsStream::setup('exampleDir', 0444);
|
38 |
-
$example = new FilePermissionsExample();
|
39 |
-
$example->writeConfig(array('foo' => 'bar'),
|
40 |
-
vfsStream::url('exampleDir/notWritable.ini')
|
41 |
-
);
|
42 |
-
}
|
43 |
-
}
|
44 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/FilemodeExample.php
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
/**
|
12 |
-
* Example class.
|
13 |
-
*/
|
14 |
-
class FilemodeExample
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* id of the example
|
18 |
-
*
|
19 |
-
* @type string
|
20 |
-
*/
|
21 |
-
protected $id;
|
22 |
-
/**
|
23 |
-
* a directory where we do something..
|
24 |
-
*
|
25 |
-
* @type string
|
26 |
-
*/
|
27 |
-
protected $directory;
|
28 |
-
/**
|
29 |
-
* file mode for newly created directories
|
30 |
-
*
|
31 |
-
* @type int
|
32 |
-
*/
|
33 |
-
protected $fileMode;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* constructor
|
37 |
-
*
|
38 |
-
* @param string $id
|
39 |
-
* @param int $fileMode optional
|
40 |
-
*/
|
41 |
-
public function __construct($id, $fileMode = 0700)
|
42 |
-
{
|
43 |
-
$this->id = $id;
|
44 |
-
$this->fileMode = $fileMode;
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* sets the directory
|
49 |
-
*
|
50 |
-
* @param string $directory
|
51 |
-
*/
|
52 |
-
public function setDirectory($directory)
|
53 |
-
{
|
54 |
-
$this->directory = $directory . DIRECTORY_SEPARATOR . $this->id;
|
55 |
-
if (file_exists($this->directory) === false) {
|
56 |
-
mkdir($this->directory, $this->fileMode, true);
|
57 |
-
}
|
58 |
-
}
|
59 |
-
|
60 |
-
// more source code here...
|
61 |
-
}
|
62 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/FilemodeExampleTestCaseWithVfsStream.php
DELETED
@@ -1,53 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\example;
|
11 |
-
use org\bovigo\vfs\vfsStream;
|
12 |
-
require_once 'FilemodeExample.php';
|
13 |
-
/**
|
14 |
-
* Test case for class FilemodeExample.
|
15 |
-
*/
|
16 |
-
class FilemodeExampleTestCaseWithVfsStream extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* root directory
|
20 |
-
*
|
21 |
-
* @type vfsStreamDirectory
|
22 |
-
*/
|
23 |
-
protected $root;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* set up test environmemt
|
27 |
-
*/
|
28 |
-
public function setUp()
|
29 |
-
{
|
30 |
-
$this->root = vfsStream::setup('exampleDir');
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* test that the directory is created
|
35 |
-
*/
|
36 |
-
public function testDirectoryIsCreatedWithDefaultPermissions()
|
37 |
-
{
|
38 |
-
$example = new FilemodeExample('id');
|
39 |
-
$example->setDirectory(vfsStream::url('exampleDir'));
|
40 |
-
$this->assertEquals(0700, $this->root->getChild('id')->getPermissions());
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* test that the directory is created
|
45 |
-
*/
|
46 |
-
public function testDirectoryIsCreatedWithGivenPermissions()
|
47 |
-
{
|
48 |
-
$example = new FilemodeExample('id', 0755);
|
49 |
-
$example->setDirectory(vfsStream::url('exampleDir'));
|
50 |
-
$this->assertEquals(0755, $this->root->getChild('id')->getPermissions());
|
51 |
-
}
|
52 |
-
}
|
53 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/examples/bootstrap.php
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require __DIR__ . '/../vendor/.composer/autoload.php';
|
3 |
-
?>
|
|
|
|
|
|
vendor/mikey179/vfsStream/phpdoc.dist.xml
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8" ?>
|
2 |
-
<phpdoc>
|
3 |
-
<title>vfsStream API Doc</title>
|
4 |
-
<parser>
|
5 |
-
<target>docs/api</target>
|
6 |
-
<default-package-name>org\bovigo\vfs</default-package-name>
|
7 |
-
</parser>
|
8 |
-
<transformer>
|
9 |
-
<target>docs/api</target>
|
10 |
-
</transformer>
|
11 |
-
<files>
|
12 |
-
<directory>src/main/php</directory>
|
13 |
-
</files>
|
14 |
-
</phpdoc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/phpunit.xml.dist
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<phpunit backupGlobals="false"
|
3 |
-
backupStaticAttributes="false"
|
4 |
-
bootstrap="vendor/autoload.php"
|
5 |
-
colors="true"
|
6 |
-
convertErrorsToExceptions="true"
|
7 |
-
convertNoticesToExceptions="true"
|
8 |
-
convertWarningsToExceptions="true"
|
9 |
-
forceCoversAnnotation="false"
|
10 |
-
mapTestClassNameToCoveredClassName="false"
|
11 |
-
printerClass="PHPUnit_TextUI_ResultPrinter"
|
12 |
-
processIsolation="false"
|
13 |
-
stopOnError="false"
|
14 |
-
stopOnFailure="false"
|
15 |
-
stopOnIncomplete="false"
|
16 |
-
stopOnSkipped="false"
|
17 |
-
verbose="true">
|
18 |
-
<testsuites>
|
19 |
-
<testsuite>
|
20 |
-
<directory suffix="TestCase.php">./src/test/php</directory>
|
21 |
-
</testsuite>
|
22 |
-
</testsuites>
|
23 |
-
|
24 |
-
<filter>
|
25 |
-
<whitelist>
|
26 |
-
<directory>src/main/php</directory>
|
27 |
-
</whitelist>
|
28 |
-
</filter>
|
29 |
-
|
30 |
-
<logging>
|
31 |
-
<log type="coverage-html" target="docs/coverage" charset="UTF-8"
|
32 |
-
yui="true" highlight="false"
|
33 |
-
lowUpperBound="35" highLowerBound="70"/>
|
34 |
-
<log type="coverage-clover" target="docs/phpunit/clover.xml"/>
|
35 |
-
<log type="junit" target="docs/phpunit/junit.xml" logIncompleteSkipped="false"/>
|
36 |
-
<log type="testdox-html" target="docs/phpunit/testdox.html"/>
|
37 |
-
</logging>
|
38 |
-
|
39 |
-
<php>
|
40 |
-
<ini name="memory_limit" value="-1"/>
|
41 |
-
</php>
|
42 |
-
</phpunit>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/DotDirectory.php
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Directory container.
|
13 |
-
*/
|
14 |
-
class DotDirectory extends vfsStreamDirectory
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* returns iterator for the children
|
18 |
-
*
|
19 |
-
* @return vfsStreamContainerIterator
|
20 |
-
*/
|
21 |
-
public function getIterator()
|
22 |
-
{
|
23 |
-
return new \ArrayIterator(array());
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* checks whether dir is a dot dir
|
28 |
-
*
|
29 |
-
* @return bool
|
30 |
-
*/
|
31 |
-
public function isDot()
|
32 |
-
{
|
33 |
-
return true;
|
34 |
-
}
|
35 |
-
}
|
36 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/Quota.php
DELETED
@@ -1,87 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Represents a quota for disk space.
|
13 |
-
*
|
14 |
-
* @since 1.1.0
|
15 |
-
* @internal
|
16 |
-
*/
|
17 |
-
class Quota
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* unlimited quota
|
21 |
-
*/
|
22 |
-
const UNLIMITED = -1;
|
23 |
-
/**
|
24 |
-
* quota in bytes
|
25 |
-
*
|
26 |
-
* A value of -1 is treated as unlimited.
|
27 |
-
*
|
28 |
-
* @type int
|
29 |
-
*/
|
30 |
-
private $amount;
|
31 |
-
|
32 |
-
/**
|
33 |
-
* constructor
|
34 |
-
*
|
35 |
-
* @param int $amount quota in bytes
|
36 |
-
*/
|
37 |
-
public function __construct($amount)
|
38 |
-
{
|
39 |
-
$this->amount = $amount;
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* create with unlimited space
|
44 |
-
*
|
45 |
-
* @return Quota
|
46 |
-
*/
|
47 |
-
public static function unlimited()
|
48 |
-
{
|
49 |
-
return new self(self::UNLIMITED);
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* checks if a quota is set
|
54 |
-
*
|
55 |
-
* @return bool
|
56 |
-
*/
|
57 |
-
public function isLimited()
|
58 |
-
{
|
59 |
-
return self::UNLIMITED < $this->amount;
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* checks if given used space exceeda quota limit
|
64 |
-
*
|
65 |
-
*
|
66 |
-
* @param int $usedSpace
|
67 |
-
* @return int
|
68 |
-
*/
|
69 |
-
public function spaceLeft($usedSpace)
|
70 |
-
{
|
71 |
-
if (self::UNLIMITED === $this->amount) {
|
72 |
-
return $usedSpace;
|
73 |
-
}
|
74 |
-
|
75 |
-
if ($usedSpace >= $this->amount) {
|
76 |
-
return 0;
|
77 |
-
}
|
78 |
-
|
79 |
-
$spaceLeft = $this->amount - $usedSpace;
|
80 |
-
if (0 >= $spaceLeft) {
|
81 |
-
return 0;
|
82 |
-
}
|
83 |
-
|
84 |
-
return $spaceLeft;
|
85 |
-
}
|
86 |
-
}
|
87 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/FileContent.php
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\content;
|
11 |
-
/**
|
12 |
-
* Interface for actual file contents.
|
13 |
-
*
|
14 |
-
* @since 1.3.0
|
15 |
-
*/
|
16 |
-
interface FileContent
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* returns actual content
|
20 |
-
*
|
21 |
-
* @return string
|
22 |
-
*/
|
23 |
-
public function content();
|
24 |
-
|
25 |
-
/**
|
26 |
-
* returns size of content
|
27 |
-
*
|
28 |
-
* @return int
|
29 |
-
*/
|
30 |
-
public function size();
|
31 |
-
|
32 |
-
/**
|
33 |
-
* reads the given amount of bytes from content
|
34 |
-
*
|
35 |
-
* @param int $count
|
36 |
-
* @return string
|
37 |
-
*/
|
38 |
-
public function read($count);
|
39 |
-
|
40 |
-
/**
|
41 |
-
* seeks to the given offset
|
42 |
-
*
|
43 |
-
* @param int $offset
|
44 |
-
* @param int $whence
|
45 |
-
* @return bool
|
46 |
-
*/
|
47 |
-
public function seek($offset, $whence);
|
48 |
-
|
49 |
-
/**
|
50 |
-
* checks whether pointer is at end of file
|
51 |
-
*
|
52 |
-
* @return bool
|
53 |
-
*/
|
54 |
-
public function eof();
|
55 |
-
|
56 |
-
/**
|
57 |
-
* writes an amount of data
|
58 |
-
*
|
59 |
-
* @param string $data
|
60 |
-
* @return amount of written bytes
|
61 |
-
*/
|
62 |
-
public function write($data);
|
63 |
-
|
64 |
-
/**
|
65 |
-
* Truncates a file to a given length
|
66 |
-
*
|
67 |
-
* @param int $size length to truncate file to
|
68 |
-
* @return bool
|
69 |
-
*/
|
70 |
-
public function truncate($size);
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/LargeFileContent.php
DELETED
@@ -1,167 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\content;
|
11 |
-
/**
|
12 |
-
* File content implementation to mock large files.
|
13 |
-
*
|
14 |
-
* When content is written via write() the data will be written into the
|
15 |
-
* positions according to the current offset.
|
16 |
-
* When content is read via read() it will use the already written data. If no
|
17 |
-
* data is written at the offsets to read those offsets will be filled with
|
18 |
-
* spaces.
|
19 |
-
* Please note that accessing the whole content via content() will deliver a
|
20 |
-
* string with the length of the originally defined size. It is not advisable to
|
21 |
-
* do so with large sizes, except you have enough memory and time. :-)
|
22 |
-
*
|
23 |
-
* @since 1.3.0
|
24 |
-
*/
|
25 |
-
class LargeFileContent extends SeekableFileContent implements FileContent
|
26 |
-
{
|
27 |
-
/**
|
28 |
-
* byte array of written content
|
29 |
-
*
|
30 |
-
* @type char[]
|
31 |
-
*/
|
32 |
-
private $content = array();
|
33 |
-
/**
|
34 |
-
* file size in bytes
|
35 |
-
*
|
36 |
-
* @type int
|
37 |
-
*/
|
38 |
-
private $size;
|
39 |
-
|
40 |
-
/**
|
41 |
-
* constructor
|
42 |
-
*
|
43 |
-
* @param int $size file size in bytes
|
44 |
-
*/
|
45 |
-
public function __construct($size)
|
46 |
-
{
|
47 |
-
$this->size = $size;
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* create large file with given size in kilobyte
|
52 |
-
*
|
53 |
-
* @param int $kilobyte
|
54 |
-
* @return LargeFileContent
|
55 |
-
*/
|
56 |
-
public static function withKilobytes($kilobyte)
|
57 |
-
{
|
58 |
-
return new self($kilobyte * 1024);
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* create large file with given size in megabyte
|
63 |
-
*
|
64 |
-
* @param int $megabyte
|
65 |
-
* @return LargeFileContent
|
66 |
-
*/
|
67 |
-
public static function withMegabytes($megabyte)
|
68 |
-
{
|
69 |
-
return self::withKilobytes($megabyte * 1024);
|
70 |
-
}
|
71 |
-
|
72 |
-
/**
|
73 |
-
* create large file with given size in gigabyte
|
74 |
-
*
|
75 |
-
* @param int $gigabyte
|
76 |
-
* @return LargeFileContent
|
77 |
-
*/
|
78 |
-
public static function withGigabytes($gigabyte)
|
79 |
-
{
|
80 |
-
return self::withMegabytes($gigabyte * 1024);
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* returns actual content
|
85 |
-
*
|
86 |
-
* @return string
|
87 |
-
*/
|
88 |
-
public function content()
|
89 |
-
{
|
90 |
-
return $this->doRead(0, $this->size);
|
91 |
-
}
|
92 |
-
|
93 |
-
/**
|
94 |
-
* returns size of content
|
95 |
-
*
|
96 |
-
* @return int
|
97 |
-
*/
|
98 |
-
public function size()
|
99 |
-
{
|
100 |
-
return $this->size;
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* actual reading of given byte count starting at given offset
|
105 |
-
*
|
106 |
-
* @param int $offset
|
107 |
-
* @param int $count
|
108 |
-
*/
|
109 |
-
protected function doRead($offset, $count)
|
110 |
-
{
|
111 |
-
if (($offset + $count) > $this->size) {
|
112 |
-
$count = $this->size - $offset;
|
113 |
-
}
|
114 |
-
|
115 |
-
$result = '';
|
116 |
-
for ($i = 0; $i < $count; $i++) {
|
117 |
-
if (isset($this->content[$i + $offset])) {
|
118 |
-
$result .= $this->content[$i + $offset];
|
119 |
-
} else {
|
120 |
-
$result .= ' ';
|
121 |
-
}
|
122 |
-
}
|
123 |
-
|
124 |
-
return $result;
|
125 |
-
}
|
126 |
-
|
127 |
-
/**
|
128 |
-
* actual writing of data with specified length at given offset
|
129 |
-
*
|
130 |
-
* @param string $data
|
131 |
-
* @param int $offset
|
132 |
-
* @param int $length
|
133 |
-
*/
|
134 |
-
protected function doWrite($data, $offset, $length)
|
135 |
-
{
|
136 |
-
for ($i = 0; $i < $length; $i++) {
|
137 |
-
$this->content[$i + $offset] = $data{$i};
|
138 |
-
}
|
139 |
-
|
140 |
-
if ($offset >= $this->size) {
|
141 |
-
$this->size += $length;
|
142 |
-
} elseif (($offset + $length) > $this->size) {
|
143 |
-
$this->size = $offset + $length;
|
144 |
-
}
|
145 |
-
}
|
146 |
-
|
147 |
-
/**
|
148 |
-
* Truncates a file to a given length
|
149 |
-
*
|
150 |
-
* @param int $size length to truncate file to
|
151 |
-
* @return bool
|
152 |
-
*/
|
153 |
-
public function truncate($size)
|
154 |
-
{
|
155 |
-
$this->size = $size;
|
156 |
-
foreach (array_filter(array_keys($this->content),
|
157 |
-
function($pos) use ($size)
|
158 |
-
{
|
159 |
-
return $pos >= $size;
|
160 |
-
}
|
161 |
-
) as $removePos) {
|
162 |
-
unset($this->content[$removePos]);
|
163 |
-
}
|
164 |
-
|
165 |
-
return true;
|
166 |
-
}
|
167 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/SeekableFileContent.php
DELETED
@@ -1,129 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\content;
|
11 |
-
/**
|
12 |
-
* Default implementation for file contents based on simple strings.
|
13 |
-
*
|
14 |
-
* @since 1.3.0
|
15 |
-
*/
|
16 |
-
abstract class SeekableFileContent implements FileContent
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* current position within content
|
20 |
-
*
|
21 |
-
* @type int
|
22 |
-
*/
|
23 |
-
private $offset = 0;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* reads the given amount of bytes from content
|
27 |
-
*
|
28 |
-
* @param int $count
|
29 |
-
* @return string
|
30 |
-
*/
|
31 |
-
public function read($count)
|
32 |
-
{
|
33 |
-
$data = $this->doRead($this->offset, $count);
|
34 |
-
$this->offset += $count;
|
35 |
-
return $data;
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* actual reading of given byte count starting at given offset
|
40 |
-
*
|
41 |
-
* @param int $offset
|
42 |
-
* @param int $count
|
43 |
-
*/
|
44 |
-
protected abstract function doRead($offset, $count);
|
45 |
-
|
46 |
-
/**
|
47 |
-
* seeks to the given offset
|
48 |
-
*
|
49 |
-
* @param int $offset
|
50 |
-
* @param int $whence
|
51 |
-
* @return bool
|
52 |
-
*/
|
53 |
-
public function seek($offset, $whence)
|
54 |
-
{
|
55 |
-
switch ($whence) {
|
56 |
-
case SEEK_CUR:
|
57 |
-
$this->offset += $offset;
|
58 |
-
return true;
|
59 |
-
|
60 |
-
case SEEK_END:
|
61 |
-
$this->offset = $this->size() + $offset;
|
62 |
-
return true;
|
63 |
-
|
64 |
-
case SEEK_SET:
|
65 |
-
$this->offset = $offset;
|
66 |
-
return true;
|
67 |
-
|
68 |
-
default:
|
69 |
-
return false;
|
70 |
-
}
|
71 |
-
|
72 |
-
return false;
|
73 |
-
}
|
74 |
-
|
75 |
-
/**
|
76 |
-
* checks whether pointer is at end of file
|
77 |
-
*
|
78 |
-
* @return bool
|
79 |
-
*/
|
80 |
-
public function eof()
|
81 |
-
{
|
82 |
-
return $this->size() <= $this->offset;
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* writes an amount of data
|
87 |
-
*
|
88 |
-
* @param string $data
|
89 |
-
* @return amount of written bytes
|
90 |
-
*/
|
91 |
-
public function write($data)
|
92 |
-
{
|
93 |
-
$dataLength = strlen($data);
|
94 |
-
$this->doWrite($data, $this->offset, $dataLength);
|
95 |
-
$this->offset += $dataLength;
|
96 |
-
return $dataLength;
|
97 |
-
}
|
98 |
-
|
99 |
-
/**
|
100 |
-
* actual writing of data with specified length at given offset
|
101 |
-
*
|
102 |
-
* @param string $data
|
103 |
-
* @param int $offset
|
104 |
-
* @param int $length
|
105 |
-
*/
|
106 |
-
protected abstract function doWrite($data, $offset, $length);
|
107 |
-
|
108 |
-
/**
|
109 |
-
* for backwards compatibility with vfsStreamFile::bytesRead()
|
110 |
-
*
|
111 |
-
* @return int
|
112 |
-
* @deprecated
|
113 |
-
*/
|
114 |
-
public function bytesRead()
|
115 |
-
{
|
116 |
-
return $this->offset;
|
117 |
-
}
|
118 |
-
|
119 |
-
/**
|
120 |
-
* for backwards compatibility with vfsStreamFile::readUntilEnd()
|
121 |
-
*
|
122 |
-
* @return string
|
123 |
-
* @deprecated
|
124 |
-
*/
|
125 |
-
public function readUntilEnd()
|
126 |
-
{
|
127 |
-
return substr($this->content(), $this->offset);
|
128 |
-
}
|
129 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/content/StringBasedFileContent.php
DELETED
@@ -1,97 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\content;
|
11 |
-
/**
|
12 |
-
* Default implementation for file contents based on simple strings.
|
13 |
-
*
|
14 |
-
* @since 1.3.0
|
15 |
-
*/
|
16 |
-
class StringBasedFileContent extends SeekableFileContent implements FileContent
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* actual content
|
20 |
-
*
|
21 |
-
* @type string
|
22 |
-
*/
|
23 |
-
private $content;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* constructor
|
27 |
-
*
|
28 |
-
* @param string $content
|
29 |
-
*/
|
30 |
-
public function __construct($content)
|
31 |
-
{
|
32 |
-
$this->content = $content;
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* returns actual content
|
37 |
-
*
|
38 |
-
* @return string
|
39 |
-
*/
|
40 |
-
public function content()
|
41 |
-
{
|
42 |
-
return $this->content;
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* returns size of content
|
47 |
-
*
|
48 |
-
* @return int
|
49 |
-
*/
|
50 |
-
public function size()
|
51 |
-
{
|
52 |
-
return strlen($this->content);
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* actual reading of length starting at given offset
|
57 |
-
*
|
58 |
-
* @param int $offset
|
59 |
-
* @param int $count
|
60 |
-
*/
|
61 |
-
protected function doRead($offset, $count)
|
62 |
-
{
|
63 |
-
return substr($this->content, $offset, $count);
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* actual writing of data with specified length at given offset
|
68 |
-
*
|
69 |
-
* @param string $data
|
70 |
-
* @param int $offset
|
71 |
-
* @param int $length
|
72 |
-
*/
|
73 |
-
protected function doWrite($data, $offset, $length)
|
74 |
-
{
|
75 |
-
$this->content = substr($this->content, 0, $offset)
|
76 |
-
. $data
|
77 |
-
. substr($this->content, $offset + $length);
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Truncates a file to a given length
|
82 |
-
*
|
83 |
-
* @param int $size length to truncate file to
|
84 |
-
* @return bool
|
85 |
-
*/
|
86 |
-
public function truncate($size)
|
87 |
-
{
|
88 |
-
if ($size > $this->size()) {
|
89 |
-
// Pad with null-chars if we're "truncating up"
|
90 |
-
$this->content .= str_repeat("\0", $size - $this->size());
|
91 |
-
} else {
|
92 |
-
$this->content = substr($this->content, 0, $size);
|
93 |
-
}
|
94 |
-
|
95 |
-
return true;
|
96 |
-
}
|
97 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStream.php
DELETED
@@ -1,462 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
use org\bovigo\vfs\content\LargeFileContent;
|
12 |
-
use org\bovigo\vfs\visitor\vfsStreamVisitor;
|
13 |
-
/**
|
14 |
-
* Some utility methods for vfsStream.
|
15 |
-
*
|
16 |
-
* @api
|
17 |
-
*/
|
18 |
-
class vfsStream
|
19 |
-
{
|
20 |
-
/**
|
21 |
-
* url scheme
|
22 |
-
*/
|
23 |
-
const SCHEME = 'vfs';
|
24 |
-
/**
|
25 |
-
* owner: root
|
26 |
-
*/
|
27 |
-
const OWNER_ROOT = 0;
|
28 |
-
/**
|
29 |
-
* owner: user 1
|
30 |
-
*/
|
31 |
-
const OWNER_USER_1 = 1;
|
32 |
-
/**
|
33 |
-
* owner: user 2
|
34 |
-
*/
|
35 |
-
const OWNER_USER_2 = 2;
|
36 |
-
/**
|
37 |
-
* group: root
|
38 |
-
*/
|
39 |
-
const GROUP_ROOT = 0;
|
40 |
-
/**
|
41 |
-
* group: user 1
|
42 |
-
*/
|
43 |
-
const GROUP_USER_1 = 1;
|
44 |
-
/**
|
45 |
-
* group: user 2
|
46 |
-
*/
|
47 |
-
const GROUP_USER_2 = 2;
|
48 |
-
/**
|
49 |
-
* initial umask setting
|
50 |
-
*
|
51 |
-
* @type int
|
52 |
-
*/
|
53 |
-
protected static $umask = 0000;
|
54 |
-
/**
|
55 |
-
* switch whether dotfiles are enabled in directory listings
|
56 |
-
*
|
57 |
-
* @type bool
|
58 |
-
*/
|
59 |
-
private static $dotFiles = true;
|
60 |
-
|
61 |
-
/**
|
62 |
-
* prepends the scheme to the given URL
|
63 |
-
*
|
64 |
-
* @param string $path path to translate to vfsStream url
|
65 |
-
* @return string
|
66 |
-
*/
|
67 |
-
public static function url($path)
|
68 |
-
{
|
69 |
-
return self::SCHEME . '://' . str_replace('\\', '/', $path);
|
70 |
-
}
|
71 |
-
|
72 |
-
/**
|
73 |
-
* restores the path from the url
|
74 |
-
*
|
75 |
-
* @param string $url vfsStream url to translate into path
|
76 |
-
* @return string
|
77 |
-
*/
|
78 |
-
public static function path($url)
|
79 |
-
{
|
80 |
-
// remove line feeds and trailing whitespaces and path separators
|
81 |
-
$path = trim($url, " \t\r\n\0\x0B/\\");
|
82 |
-
$path = substr($path, strlen(self::SCHEME . '://'));
|
83 |
-
$path = str_replace('\\', '/', $path);
|
84 |
-
// replace double slashes with single slashes
|
85 |
-
$path = str_replace('//', '/', $path);
|
86 |
-
return urldecode($path);
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* sets new umask setting and returns previous umask setting
|
91 |
-
*
|
92 |
-
* If no value is given only the current umask setting is returned.
|
93 |
-
*
|
94 |
-
* @param int $umask new umask setting
|
95 |
-
* @return int
|
96 |
-
* @since 0.8.0
|
97 |
-
*/
|
98 |
-
public static function umask($umask = null)
|
99 |
-
{
|
100 |
-
$oldUmask = self::$umask;
|
101 |
-
if (null !== $umask) {
|
102 |
-
self::$umask = $umask;
|
103 |
-
}
|
104 |
-
|
105 |
-
return $oldUmask;
|
106 |
-
}
|
107 |
-
|
108 |
-
/**
|
109 |
-
* helper method for setting up vfsStream in unit tests
|
110 |
-
*
|
111 |
-
* Instead of
|
112 |
-
* vfsStreamWrapper::register();
|
113 |
-
* vfsStreamWrapper::setRoot(vfsStream::newDirectory('root'));
|
114 |
-
* you can simply do
|
115 |
-
* vfsStream::setup()
|
116 |
-
* which yields the same result. Additionally, the method returns the
|
117 |
-
* freshly created root directory which you can use to make further
|
118 |
-
* adjustments to it.
|
119 |
-
*
|
120 |
-
* Assumed $structure contains an array like this:
|
121 |
-
* <code>
|
122 |
-
* array('Core' = array('AbstractFactory' => array('test.php' => 'some text content',
|
123 |
-
* 'other.php' => 'Some more text content',
|
124 |
-
* 'Invalid.csv' => 'Something else',
|
125 |
-
* ),
|
126 |
-
* 'AnEmptyFolder' => array(),
|
127 |
-
* 'badlocation.php' => 'some bad content',
|
128 |
-
* )
|
129 |
-
* )
|
130 |
-
* </code>
|
131 |
-
* the resulting directory tree will look like this:
|
132 |
-
* <pre>
|
133 |
-
* root
|
134 |
-
* \- Core
|
135 |
-
* |- badlocation.php
|
136 |
-
* |- AbstractFactory
|
137 |
-
* | |- test.php
|
138 |
-
* | |- other.php
|
139 |
-
* | \- Invalid.csv
|
140 |
-
* \- AnEmptyFolder
|
141 |
-
* </pre>
|
142 |
-
* Arrays will become directories with their key as directory name, and
|
143 |
-
* strings becomes files with their key as file name and their value as file
|
144 |
-
* content.
|
145 |
-
*
|
146 |
-
* @param string $rootDirName name of root directory
|
147 |
-
* @param int $permissions file permissions of root directory
|
148 |
-
* @param array $structure directory structure to add under root directory
|
149 |
-
* @return \org\bovigo\vfs\vfsStreamDirectory
|
150 |
-
* @since 0.7.0
|
151 |
-
* @see https://github.com/mikey179/vfsStream/issues/14
|
152 |
-
* @see https://github.com/mikey179/vfsStream/issues/20
|
153 |
-
*/
|
154 |
-
public static function setup($rootDirName = 'root', $permissions = null, array $structure = array())
|
155 |
-
{
|
156 |
-
vfsStreamWrapper::register();
|
157 |
-
return self::create($structure, vfsStreamWrapper::setRoot(self::newDirectory($rootDirName, $permissions)));
|
158 |
-
}
|
159 |
-
|
160 |
-
/**
|
161 |
-
* creates vfsStream directory structure from an array and adds it to given base dir
|
162 |
-
*
|
163 |
-
* Assumed $structure contains an array like this:
|
164 |
-
* <code>
|
165 |
-
* array('Core' = array('AbstractFactory' => array('test.php' => 'some text content',
|
166 |
-
* 'other.php' => 'Some more text content',
|
167 |
-
* 'Invalid.csv' => 'Something else',
|
168 |
-
* ),
|
169 |
-
* 'AnEmptyFolder' => array(),
|
170 |
-
* 'badlocation.php' => 'some bad content',
|
171 |
-
* )
|
172 |
-
* )
|
173 |
-
* </code>
|
174 |
-
* the resulting directory tree will look like this:
|
175 |
-
* <pre>
|
176 |
-
* baseDir
|
177 |
-
* \- Core
|
178 |
-
* |- badlocation.php
|
179 |
-
* |- AbstractFactory
|
180 |
-
* | |- test.php
|
181 |
-
* | |- other.php
|
182 |
-
* | \- Invalid.csv
|
183 |
-
* \- AnEmptyFolder
|
184 |
-
* </pre>
|
185 |
-
* Arrays will become directories with their key as directory name, and
|
186 |
-
* strings becomes files with their key as file name and their value as file
|
187 |
-
* content.
|
188 |
-
*
|
189 |
-
* If no baseDir is given it will try to add the structure to the existing
|
190 |
-
* root directory without replacing existing childs except those with equal
|
191 |
-
* names.
|
192 |
-
*
|
193 |
-
* @param array $structure directory structure to add under root directory
|
194 |
-
* @param vfsStreamDirectory $baseDir base directory to add structure to
|
195 |
-
* @return vfsStreamDirectory
|
196 |
-
* @throws \InvalidArgumentException
|
197 |
-
* @since 0.10.0
|
198 |
-
* @see https://github.com/mikey179/vfsStream/issues/14
|
199 |
-
* @see https://github.com/mikey179/vfsStream/issues/20
|
200 |
-
*/
|
201 |
-
public static function create(array $structure, vfsStreamDirectory $baseDir = null)
|
202 |
-
{
|
203 |
-
if (null === $baseDir) {
|
204 |
-
$baseDir = vfsStreamWrapper::getRoot();
|
205 |
-
}
|
206 |
-
|
207 |
-
if (null === $baseDir) {
|
208 |
-
throw new \InvalidArgumentException('No baseDir given and no root directory set.');
|
209 |
-
}
|
210 |
-
|
211 |
-
return self::addStructure($structure, $baseDir);
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* helper method to create subdirectories recursively
|
216 |
-
*
|
217 |
-
* @param array $structure subdirectory structure to add
|
218 |
-
* @param vfsStreamDirectory $baseDir directory to add the structure to
|
219 |
-
* @return vfsStreamDirectory
|
220 |
-
*/
|
221 |
-
protected static function addStructure(array $structure, vfsStreamDirectory $baseDir)
|
222 |
-
{
|
223 |
-
foreach ($structure as $name => $data) {
|
224 |
-
$name = (string) $name;
|
225 |
-
if (is_array($data) === true) {
|
226 |
-
self::addStructure($data, self::newDirectory($name)->at($baseDir));
|
227 |
-
} elseif (is_string($data) === true) {
|
228 |
-
$matches = null;
|
229 |
-
preg_match('/^\[(.*)\]$/', $name, $matches);
|
230 |
-
if ($matches !== array()) {
|
231 |
-
self::newBlock($matches[1])->withContent($data)->at($baseDir);
|
232 |
-
} else {
|
233 |
-
self::newFile($name)->withContent($data)->at($baseDir);
|
234 |
-
}
|
235 |
-
}
|
236 |
-
}
|
237 |
-
|
238 |
-
return $baseDir;
|
239 |
-
}
|
240 |
-
|
241 |
-
/**
|
242 |
-
* copies the file system structure from given path into the base dir
|
243 |
-
*
|
244 |
-
* If no baseDir is given it will try to add the structure to the existing
|
245 |
-
* root directory without replacing existing childs except those with equal
|
246 |
-
* names.
|
247 |
-
* File permissions are copied as well.
|
248 |
-
* Please note that file contents will only be copied if their file size
|
249 |
-
* does not exceed the given $maxFileSize which defaults to 1024 KB. In case
|
250 |
-
* the file is larger file content will be mocked, see
|
251 |
-
* https://github.com/mikey179/vfsStream/wiki/MockingLargeFiles.
|
252 |
-
*
|
253 |
-
* @param string $path path to copy the structure from
|
254 |
-
* @param vfsStreamDirectory $baseDir directory to add the structure to
|
255 |
-
* @param int $maxFileSize maximum file size of files to copy content from
|
256 |
-
* @return vfsStreamDirectory
|
257 |
-
* @throws \InvalidArgumentException
|
258 |
-
* @since 0.11.0
|
259 |
-
* @see https://github.com/mikey179/vfsStream/issues/4
|
260 |
-
*/
|
261 |
-
public static function copyFromFileSystem($path, vfsStreamDirectory $baseDir = null, $maxFileSize = 1048576)
|
262 |
-
{
|
263 |
-
if (null === $baseDir) {
|
264 |
-
$baseDir = vfsStreamWrapper::getRoot();
|
265 |
-
}
|
266 |
-
|
267 |
-
if (null === $baseDir) {
|
268 |
-
throw new \InvalidArgumentException('No baseDir given and no root directory set.');
|
269 |
-
}
|
270 |
-
|
271 |
-
$dir = new \DirectoryIterator($path);
|
272 |
-
foreach ($dir as $fileinfo) {
|
273 |
-
switch (filetype($fileinfo->getPathname())) {
|
274 |
-
case 'file':
|
275 |
-
if ($fileinfo->getSize() <= $maxFileSize) {
|
276 |
-
$content = file_get_contents($fileinfo->getPathname());
|
277 |
-
} else {
|
278 |
-
$content = new LargeFileContent($fileinfo->getSize());
|
279 |
-
}
|
280 |
-
|
281 |
-
self::newFile(
|
282 |
-
$fileinfo->getFilename(),
|
283 |
-
octdec(substr(sprintf('%o', $fileinfo->getPerms()), -4))
|
284 |
-
)
|
285 |
-
->withContent($content)
|
286 |
-
->at($baseDir);
|
287 |
-
break;
|
288 |
-
|
289 |
-
case 'dir':
|
290 |
-
if (!$fileinfo->isDot()) {
|
291 |
-
self::copyFromFileSystem(
|
292 |
-
$fileinfo->getPathname(),
|
293 |
-
self::newDirectory(
|
294 |
-
$fileinfo->getFilename(),
|
295 |
-
octdec(substr(sprintf('%o', $fileinfo->getPerms()), -4))
|
296 |
-
)->at($baseDir),
|
297 |
-
$maxFileSize
|
298 |
-
);
|
299 |
-
}
|
300 |
-
|
301 |
-
break;
|
302 |
-
|
303 |
-
case 'block':
|
304 |
-
self::newBlock(
|
305 |
-
$fileinfo->getFilename(),
|
306 |
-
octdec(substr(sprintf('%o', $fileinfo->getPerms()), -4))
|
307 |
-
)->at($baseDir);
|
308 |
-
break;
|
309 |
-
}
|
310 |
-
}
|
311 |
-
|
312 |
-
return $baseDir;
|
313 |
-
}
|
314 |
-
|
315 |
-
/**
|
316 |
-
* returns a new file with given name
|
317 |
-
*
|
318 |
-
* @param string $name name of file to create
|
319 |
-
* @param int $permissions permissions of file to create
|
320 |
-
* @return vfsStreamFile
|
321 |
-
*/
|
322 |
-
public static function newFile($name, $permissions = null)
|
323 |
-
{
|
324 |
-
return new vfsStreamFile($name, $permissions);
|
325 |
-
}
|
326 |
-
|
327 |
-
/**
|
328 |
-
* returns a new directory with given name
|
329 |
-
*
|
330 |
-
* If the name contains slashes, a new directory structure will be created.
|
331 |
-
* The returned directory will always be the parent directory of this
|
332 |
-
* directory structure.
|
333 |
-
*
|
334 |
-
* @param string $name name of directory to create
|
335 |
-
* @param int $permissions permissions of directory to create
|
336 |
-
* @return vfsStreamDirectory
|
337 |
-
*/
|
338 |
-
public static function newDirectory($name, $permissions = null)
|
339 |
-
{
|
340 |
-
if ('/' === $name{0}) {
|
341 |
-
$name = substr($name, 1);
|
342 |
-
}
|
343 |
-
|
344 |
-
$firstSlash = strpos($name, '/');
|
345 |
-
if (false === $firstSlash) {
|
346 |
-
return new vfsStreamDirectory($name, $permissions);
|
347 |
-
}
|
348 |
-
|
349 |
-
$ownName = substr($name, 0, $firstSlash);
|
350 |
-
$subDirs = substr($name, $firstSlash + 1);
|
351 |
-
$directory = new vfsStreamDirectory($ownName, $permissions);
|
352 |
-
self::newDirectory($subDirs, $permissions)->at($directory);
|
353 |
-
return $directory;
|
354 |
-
}
|
355 |
-
|
356 |
-
/**
|
357 |
-
* returns a new block with the given name
|
358 |
-
*
|
359 |
-
* @param string $name name of the block device
|
360 |
-
* @param int $permissions permissions of block to create
|
361 |
-
* @return vfsStreamBlock
|
362 |
-
*/
|
363 |
-
public static function newBlock($name, $permissions = null)
|
364 |
-
{
|
365 |
-
return new vfsStreamBlock($name, $permissions);
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* returns current user
|
370 |
-
*
|
371 |
-
* If the system does not support posix_getuid() the current user will be root (0).
|
372 |
-
*
|
373 |
-
* @return int
|
374 |
-
*/
|
375 |
-
public static function getCurrentUser()
|
376 |
-
{
|
377 |
-
return function_exists('posix_getuid') ? posix_getuid() : self::OWNER_ROOT;
|
378 |
-
}
|
379 |
-
|
380 |
-
/**
|
381 |
-
* returns current group
|
382 |
-
*
|
383 |
-
* If the system does not support posix_getgid() the current group will be root (0).
|
384 |
-
*
|
385 |
-
* @return int
|
386 |
-
*/
|
387 |
-
public static function getCurrentGroup()
|
388 |
-
{
|
389 |
-
return function_exists('posix_getgid') ? posix_getgid() : self::GROUP_ROOT;
|
390 |
-
}
|
391 |
-
|
392 |
-
/**
|
393 |
-
* use visitor to inspect a content structure
|
394 |
-
*
|
395 |
-
* If the given content is null it will fall back to use the current root
|
396 |
-
* directory of the stream wrapper.
|
397 |
-
*
|
398 |
-
* Returns given visitor for method chaining comfort.
|
399 |
-
*
|
400 |
-
* @param vfsStreamVisitor $visitor the visitor who inspects
|
401 |
-
* @param vfsStreamContent $content directory structure to inspect
|
402 |
-
* @return vfsStreamVisitor
|
403 |
-
* @throws \InvalidArgumentException
|
404 |
-
* @since 0.10.0
|
405 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
406 |
-
*/
|
407 |
-
public static function inspect(vfsStreamVisitor $visitor, vfsStreamContent $content = null)
|
408 |
-
{
|
409 |
-
if (null !== $content) {
|
410 |
-
return $visitor->visit($content);
|
411 |
-
}
|
412 |
-
|
413 |
-
$root = vfsStreamWrapper::getRoot();
|
414 |
-
if (null === $root) {
|
415 |
-
throw new \InvalidArgumentException('No content given and no root directory set.');
|
416 |
-
}
|
417 |
-
|
418 |
-
return $visitor->visitDirectory($root);
|
419 |
-
}
|
420 |
-
|
421 |
-
/**
|
422 |
-
* sets quota to given amount of bytes
|
423 |
-
*
|
424 |
-
* @param int $bytes
|
425 |
-
* @since 1.1.0
|
426 |
-
*/
|
427 |
-
public static function setQuota($bytes)
|
428 |
-
{
|
429 |
-
vfsStreamWrapper::setQuota(new Quota($bytes));
|
430 |
-
}
|
431 |
-
|
432 |
-
/**
|
433 |
-
* checks if vfsStream lists dotfiles in directory listings
|
434 |
-
*
|
435 |
-
* @return bool
|
436 |
-
* @since 1.3.0
|
437 |
-
*/
|
438 |
-
public static function useDotfiles()
|
439 |
-
{
|
440 |
-
return self::$dotFiles;
|
441 |
-
}
|
442 |
-
|
443 |
-
/**
|
444 |
-
* disable dotfiles in directory listings
|
445 |
-
*
|
446 |
-
* @since 1.3.0
|
447 |
-
*/
|
448 |
-
public static function disableDotfiles()
|
449 |
-
{
|
450 |
-
self::$dotFiles = false;
|
451 |
-
}
|
452 |
-
|
453 |
-
/**
|
454 |
-
* enable dotfiles in directory listings
|
455 |
-
*
|
456 |
-
* @since 1.3.0
|
457 |
-
*/
|
458 |
-
public static function enableDotfiles()
|
459 |
-
{
|
460 |
-
self::$dotFiles = true;
|
461 |
-
}
|
462 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamAbstractContent.php
DELETED
@@ -1,419 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Base stream contents container.
|
13 |
-
*/
|
14 |
-
abstract class vfsStreamAbstractContent implements vfsStreamContent
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* name of the container
|
18 |
-
*
|
19 |
-
* @type string
|
20 |
-
*/
|
21 |
-
protected $name;
|
22 |
-
/**
|
23 |
-
* type of the container
|
24 |
-
*
|
25 |
-
* @type string
|
26 |
-
*/
|
27 |
-
protected $type;
|
28 |
-
/**
|
29 |
-
* timestamp of last access
|
30 |
-
*
|
31 |
-
* @type int
|
32 |
-
*/
|
33 |
-
protected $lastAccessed;
|
34 |
-
/**
|
35 |
-
* timestamp of last attribute modification
|
36 |
-
*
|
37 |
-
* @type int
|
38 |
-
*/
|
39 |
-
protected $lastAttributeModified;
|
40 |
-
/**
|
41 |
-
* timestamp of last modification
|
42 |
-
*
|
43 |
-
* @type int
|
44 |
-
*/
|
45 |
-
protected $lastModified;
|
46 |
-
/**
|
47 |
-
* permissions for content
|
48 |
-
*
|
49 |
-
* @type int
|
50 |
-
*/
|
51 |
-
protected $permissions;
|
52 |
-
/**
|
53 |
-
* owner of the file
|
54 |
-
*
|
55 |
-
* @type int
|
56 |
-
*/
|
57 |
-
protected $user;
|
58 |
-
/**
|
59 |
-
* owner group of the file
|
60 |
-
*
|
61 |
-
* @type int
|
62 |
-
*/
|
63 |
-
protected $group;
|
64 |
-
/**
|
65 |
-
* path to to this content
|
66 |
-
*
|
67 |
-
* @type string
|
68 |
-
*/
|
69 |
-
private $parentPath;
|
70 |
-
|
71 |
-
/**
|
72 |
-
* constructor
|
73 |
-
*
|
74 |
-
* @param string $name
|
75 |
-
* @param int $permissions optional
|
76 |
-
*/
|
77 |
-
public function __construct($name, $permissions = null)
|
78 |
-
{
|
79 |
-
$this->name = $name;
|
80 |
-
$time = time();
|
81 |
-
if (null === $permissions) {
|
82 |
-
$permissions = $this->getDefaultPermissions() & ~vfsStream::umask();
|
83 |
-
}
|
84 |
-
|
85 |
-
$this->lastAccessed = $time;
|
86 |
-
$this->lastAttributeModified = $time;
|
87 |
-
$this->lastModified = $time;
|
88 |
-
$this->permissions = $permissions;
|
89 |
-
$this->user = vfsStream::getCurrentUser();
|
90 |
-
$this->group = vfsStream::getCurrentGroup();
|
91 |
-
}
|
92 |
-
|
93 |
-
/**
|
94 |
-
* returns default permissions for concrete implementation
|
95 |
-
*
|
96 |
-
* @return int
|
97 |
-
* @since 0.8.0
|
98 |
-
*/
|
99 |
-
protected abstract function getDefaultPermissions();
|
100 |
-
|
101 |
-
/**
|
102 |
-
* returns the file name of the content
|
103 |
-
*
|
104 |
-
* @return string
|
105 |
-
*/
|
106 |
-
public function getName()
|
107 |
-
{
|
108 |
-
return $this->name;
|
109 |
-
}
|
110 |
-
|
111 |
-
/**
|
112 |
-
* renames the content
|
113 |
-
*
|
114 |
-
* @param string $newName
|
115 |
-
*/
|
116 |
-
public function rename($newName)
|
117 |
-
{
|
118 |
-
$this->name = $newName;
|
119 |
-
}
|
120 |
-
|
121 |
-
/**
|
122 |
-
* checks whether the container can be applied to given name
|
123 |
-
*
|
124 |
-
* @param string $name
|
125 |
-
* @return bool
|
126 |
-
*/
|
127 |
-
public function appliesTo($name)
|
128 |
-
{
|
129 |
-
if ($name === $this->name) {
|
130 |
-
return true;
|
131 |
-
}
|
132 |
-
|
133 |
-
$segment_name = $this->name.'/';
|
134 |
-
return (strncmp($segment_name, $name, strlen($segment_name)) == 0);
|
135 |
-
}
|
136 |
-
|
137 |
-
/**
|
138 |
-
* returns the type of the container
|
139 |
-
*
|
140 |
-
* @return int
|
141 |
-
*/
|
142 |
-
public function getType()
|
143 |
-
{
|
144 |
-
return $this->type;
|
145 |
-
}
|
146 |
-
|
147 |
-
/**
|
148 |
-
* sets the last modification time of the stream content
|
149 |
-
*
|
150 |
-
* @param int $filemtime
|
151 |
-
* @return $this
|
152 |
-
*/
|
153 |
-
public function lastModified($filemtime)
|
154 |
-
{
|
155 |
-
$this->lastModified = $filemtime;
|
156 |
-
return $this;
|
157 |
-
}
|
158 |
-
|
159 |
-
/**
|
160 |
-
* returns the last modification time of the stream content
|
161 |
-
*
|
162 |
-
* @return int
|
163 |
-
*/
|
164 |
-
public function filemtime()
|
165 |
-
{
|
166 |
-
return $this->lastModified;
|
167 |
-
}
|
168 |
-
|
169 |
-
/**
|
170 |
-
* sets last access time of the stream content
|
171 |
-
*
|
172 |
-
* @param int $fileatime
|
173 |
-
* @return $this
|
174 |
-
* @since 0.9
|
175 |
-
*/
|
176 |
-
public function lastAccessed($fileatime)
|
177 |
-
{
|
178 |
-
$this->lastAccessed = $fileatime;
|
179 |
-
return $this;
|
180 |
-
}
|
181 |
-
|
182 |
-
/**
|
183 |
-
* returns the last access time of the stream content
|
184 |
-
*
|
185 |
-
* @return int
|
186 |
-
* @since 0.9
|
187 |
-
*/
|
188 |
-
public function fileatime()
|
189 |
-
{
|
190 |
-
return $this->lastAccessed;
|
191 |
-
}
|
192 |
-
|
193 |
-
/**
|
194 |
-
* sets the last attribute modification time of the stream content
|
195 |
-
*
|
196 |
-
* @param int $filectime
|
197 |
-
* @return $this
|
198 |
-
* @since 0.9
|
199 |
-
*/
|
200 |
-
public function lastAttributeModified($filectime)
|
201 |
-
{
|
202 |
-
$this->lastAttributeModified = $filectime;
|
203 |
-
return $this;
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* returns the last attribute modification time of the stream content
|
208 |
-
*
|
209 |
-
* @return int
|
210 |
-
* @since 0.9
|
211 |
-
*/
|
212 |
-
public function filectime()
|
213 |
-
{
|
214 |
-
return $this->lastAttributeModified;
|
215 |
-
}
|
216 |
-
|
217 |
-
/**
|
218 |
-
* adds content to given container
|
219 |
-
*
|
220 |
-
* @param vfsStreamContainer $container
|
221 |
-
* @return $this
|
222 |
-
*/
|
223 |
-
public function at(vfsStreamContainer $container)
|
224 |
-
{
|
225 |
-
$container->addChild($this);
|
226 |
-
return $this;
|
227 |
-
}
|
228 |
-
|
229 |
-
/**
|
230 |
-
* change file mode to given permissions
|
231 |
-
*
|
232 |
-
* @param int $permissions
|
233 |
-
* @return $this
|
234 |
-
*/
|
235 |
-
public function chmod($permissions)
|
236 |
-
{
|
237 |
-
$this->permissions = $permissions;
|
238 |
-
$this->lastAttributeModified = time();
|
239 |
-
clearstatcache();
|
240 |
-
return $this;
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* returns permissions
|
245 |
-
*
|
246 |
-
* @return int
|
247 |
-
*/
|
248 |
-
public function getPermissions()
|
249 |
-
{
|
250 |
-
return $this->permissions;
|
251 |
-
}
|
252 |
-
|
253 |
-
/**
|
254 |
-
* checks whether content is readable
|
255 |
-
*
|
256 |
-
* @param int $user id of user to check for
|
257 |
-
* @param int $group id of group to check for
|
258 |
-
* @return bool
|
259 |
-
*/
|
260 |
-
public function isReadable($user, $group)
|
261 |
-
{
|
262 |
-
if ($this->user === $user) {
|
263 |
-
$check = 0400;
|
264 |
-
} elseif ($this->group === $group) {
|
265 |
-
$check = 0040;
|
266 |
-
} else {
|
267 |
-
$check = 0004;
|
268 |
-
}
|
269 |
-
|
270 |
-
return (bool) ($this->permissions & $check);
|
271 |
-
}
|
272 |
-
|
273 |
-
/**
|
274 |
-
* checks whether content is writable
|
275 |
-
*
|
276 |
-
* @param int $user id of user to check for
|
277 |
-
* @param int $group id of group to check for
|
278 |
-
* @return bool
|
279 |
-
*/
|
280 |
-
public function isWritable($user, $group)
|
281 |
-
{
|
282 |
-
if ($this->user === $user) {
|
283 |
-
$check = 0200;
|
284 |
-
} elseif ($this->group === $group) {
|
285 |
-
$check = 0020;
|
286 |
-
} else {
|
287 |
-
$check = 0002;
|
288 |
-
}
|
289 |
-
|
290 |
-
return (bool) ($this->permissions & $check);
|
291 |
-
}
|
292 |
-
|
293 |
-
/**
|
294 |
-
* checks whether content is executable
|
295 |
-
*
|
296 |
-
* @param int $user id of user to check for
|
297 |
-
* @param int $group id of group to check for
|
298 |
-
* @return bool
|
299 |
-
*/
|
300 |
-
public function isExecutable($user, $group)
|
301 |
-
{
|
302 |
-
if ($this->user === $user) {
|
303 |
-
$check = 0100;
|
304 |
-
} elseif ($this->group === $group) {
|
305 |
-
$check = 0010;
|
306 |
-
} else {
|
307 |
-
$check = 0001;
|
308 |
-
}
|
309 |
-
|
310 |
-
return (bool) ($this->permissions & $check);
|
311 |
-
}
|
312 |
-
|
313 |
-
/**
|
314 |
-
* change owner of file to given user
|
315 |
-
*
|
316 |
-
* @param int $user
|
317 |
-
* @return $this
|
318 |
-
*/
|
319 |
-
public function chown($user)
|
320 |
-
{
|
321 |
-
$this->user = $user;
|
322 |
-
$this->lastAttributeModified = time();
|
323 |
-
return $this;
|
324 |
-
}
|
325 |
-
|
326 |
-
/**
|
327 |
-
* checks whether file is owned by given user
|
328 |
-
*
|
329 |
-
* @param int $user
|
330 |
-
* @return bool
|
331 |
-
*/
|
332 |
-
public function isOwnedByUser($user)
|
333 |
-
{
|
334 |
-
return $this->user === $user;
|
335 |
-
}
|
336 |
-
|
337 |
-
/**
|
338 |
-
* returns owner of file
|
339 |
-
*
|
340 |
-
* @return int
|
341 |
-
*/
|
342 |
-
public function getUser()
|
343 |
-
{
|
344 |
-
return $this->user;
|
345 |
-
}
|
346 |
-
|
347 |
-
/**
|
348 |
-
* change owner group of file to given group
|
349 |
-
*
|
350 |
-
* @param int $group
|
351 |
-
* @return $this
|
352 |
-
*/
|
353 |
-
public function chgrp($group)
|
354 |
-
{
|
355 |
-
$this->group = $group;
|
356 |
-
$this->lastAttributeModified = time();
|
357 |
-
return $this;
|
358 |
-
}
|
359 |
-
|
360 |
-
/**
|
361 |
-
* checks whether file is owned by group
|
362 |
-
*
|
363 |
-
* @param int $group
|
364 |
-
* @return bool
|
365 |
-
*/
|
366 |
-
public function isOwnedByGroup($group)
|
367 |
-
{
|
368 |
-
return $this->group === $group;
|
369 |
-
}
|
370 |
-
|
371 |
-
/**
|
372 |
-
* returns owner group of file
|
373 |
-
*
|
374 |
-
* @return int
|
375 |
-
*/
|
376 |
-
public function getGroup()
|
377 |
-
{
|
378 |
-
return $this->group;
|
379 |
-
}
|
380 |
-
|
381 |
-
/**
|
382 |
-
* sets parent path
|
383 |
-
*
|
384 |
-
* @param string $parentPath
|
385 |
-
* @internal only to be set by parent
|
386 |
-
* @since 1.2.0
|
387 |
-
*/
|
388 |
-
public function setParentPath($parentPath)
|
389 |
-
{
|
390 |
-
$this->parentPath = $parentPath;
|
391 |
-
}
|
392 |
-
|
393 |
-
/**
|
394 |
-
* returns path to this content
|
395 |
-
*
|
396 |
-
* @return string
|
397 |
-
* @since 1.2.0
|
398 |
-
*/
|
399 |
-
public function path()
|
400 |
-
{
|
401 |
-
if (null === $this->parentPath) {
|
402 |
-
return $this->name;
|
403 |
-
}
|
404 |
-
|
405 |
-
return $this->parentPath . '/' . $this->name;
|
406 |
-
}
|
407 |
-
|
408 |
-
/**
|
409 |
-
* returns complete vfsStream url for this content
|
410 |
-
*
|
411 |
-
* @return string
|
412 |
-
* @since 1.2.0
|
413 |
-
*/
|
414 |
-
public function url()
|
415 |
-
{
|
416 |
-
return vfsStream::url($this->path());
|
417 |
-
}
|
418 |
-
}
|
419 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamBlock.php
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Block container.
|
14 |
-
*
|
15 |
-
* @api
|
16 |
-
*/
|
17 |
-
class vfsStreamBlock extends vfsStreamFile
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* constructor
|
21 |
-
*
|
22 |
-
* @param string $name
|
23 |
-
* @param int $permissions optional
|
24 |
-
*/
|
25 |
-
public function __construct($name, $permissions = null)
|
26 |
-
{
|
27 |
-
if (empty($name)) {
|
28 |
-
throw new vfsStreamException('Name of Block device was empty');
|
29 |
-
}
|
30 |
-
parent::__construct($name, $permissions);
|
31 |
-
|
32 |
-
$this->type = vfsStreamContent::TYPE_BLOCK;
|
33 |
-
}
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainer.php
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Interface for stream contents that are able to store other stream contents.
|
13 |
-
*/
|
14 |
-
interface vfsStreamContainer extends \IteratorAggregate
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* adds child to the directory
|
18 |
-
*
|
19 |
-
* @param vfsStreamContent $child
|
20 |
-
*/
|
21 |
-
public function addChild(vfsStreamContent $child);
|
22 |
-
|
23 |
-
/**
|
24 |
-
* removes child from the directory
|
25 |
-
*
|
26 |
-
* @param string $name
|
27 |
-
* @return bool
|
28 |
-
*/
|
29 |
-
public function removeChild($name);
|
30 |
-
|
31 |
-
/**
|
32 |
-
* checks whether the container contains a child with the given name
|
33 |
-
*
|
34 |
-
* @param string $name
|
35 |
-
* @return bool
|
36 |
-
*/
|
37 |
-
public function hasChild($name);
|
38 |
-
|
39 |
-
/**
|
40 |
-
* returns the child with the given name
|
41 |
-
*
|
42 |
-
* @param string $name
|
43 |
-
* @return vfsStreamContent
|
44 |
-
*/
|
45 |
-
public function getChild($name);
|
46 |
-
|
47 |
-
/**
|
48 |
-
* checks whether directory contains any children
|
49 |
-
*
|
50 |
-
* @return bool
|
51 |
-
* @since 0.10.0
|
52 |
-
*/
|
53 |
-
public function hasChildren();
|
54 |
-
|
55 |
-
/**
|
56 |
-
* returns a list of children for this directory
|
57 |
-
*
|
58 |
-
* @return vfsStreamContent[]
|
59 |
-
*/
|
60 |
-
public function getChildren();
|
61 |
-
}
|
62 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContainerIterator.php
DELETED
@@ -1,94 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Iterator for children of a directory container.
|
13 |
-
*/
|
14 |
-
class vfsStreamContainerIterator implements \Iterator
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* list of children from container to iterate over
|
18 |
-
*
|
19 |
-
* @type vfsStreamContent[]
|
20 |
-
*/
|
21 |
-
protected $children;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* constructor
|
25 |
-
*
|
26 |
-
* @param vfsStreamContent[] $children
|
27 |
-
*/
|
28 |
-
public function __construct(array $children)
|
29 |
-
{
|
30 |
-
$this->children = $children;
|
31 |
-
if (vfsStream::useDotfiles()) {
|
32 |
-
array_unshift($this->children, new DotDirectory('.'), new DotDirectory('..'));
|
33 |
-
}
|
34 |
-
|
35 |
-
reset($this->children);
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* resets children pointer
|
40 |
-
*/
|
41 |
-
public function rewind()
|
42 |
-
{
|
43 |
-
reset($this->children);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* returns the current child
|
48 |
-
*
|
49 |
-
* @return vfsStreamContent
|
50 |
-
*/
|
51 |
-
public function current()
|
52 |
-
{
|
53 |
-
$child = current($this->children);
|
54 |
-
if (false === $child) {
|
55 |
-
return null;
|
56 |
-
}
|
57 |
-
|
58 |
-
return $child;
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* returns the name of the current child
|
63 |
-
*
|
64 |
-
* @return string
|
65 |
-
*/
|
66 |
-
public function key()
|
67 |
-
{
|
68 |
-
$child = current($this->children);
|
69 |
-
if (false === $child) {
|
70 |
-
return null;
|
71 |
-
}
|
72 |
-
|
73 |
-
return $child->getName();
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* iterates to next child
|
78 |
-
*/
|
79 |
-
public function next()
|
80 |
-
{
|
81 |
-
next($this->children);
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* checks if the current value is valid
|
86 |
-
*
|
87 |
-
* @return bool
|
88 |
-
*/
|
89 |
-
public function valid()
|
90 |
-
{
|
91 |
-
return (false !== current($this->children));
|
92 |
-
}
|
93 |
-
}
|
94 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamContent.php
DELETED
@@ -1,214 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Interface for stream contents.
|
13 |
-
*/
|
14 |
-
interface vfsStreamContent
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* stream content type: file
|
18 |
-
*
|
19 |
-
* @see getType()
|
20 |
-
*/
|
21 |
-
const TYPE_FILE = 0100000;
|
22 |
-
/**
|
23 |
-
* stream content type: directory
|
24 |
-
*
|
25 |
-
* @see getType()
|
26 |
-
*/
|
27 |
-
const TYPE_DIR = 0040000;
|
28 |
-
/**
|
29 |
-
* stream content type: symbolic link
|
30 |
-
*
|
31 |
-
* @see getType();
|
32 |
-
*/
|
33 |
-
#const TYPE_LINK = 0120000;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* stream content type: block
|
37 |
-
*
|
38 |
-
* @see getType()
|
39 |
-
*/
|
40 |
-
const TYPE_BLOCK = 0060000;
|
41 |
-
|
42 |
-
/**
|
43 |
-
* returns the file name of the content
|
44 |
-
*
|
45 |
-
* @return string
|
46 |
-
*/
|
47 |
-
public function getName();
|
48 |
-
|
49 |
-
/**
|
50 |
-
* renames the content
|
51 |
-
*
|
52 |
-
* @param string $newName
|
53 |
-
*/
|
54 |
-
public function rename($newName);
|
55 |
-
|
56 |
-
/**
|
57 |
-
* checks whether the container can be applied to given name
|
58 |
-
*
|
59 |
-
* @param string $name
|
60 |
-
* @return bool
|
61 |
-
*/
|
62 |
-
public function appliesTo($name);
|
63 |
-
|
64 |
-
/**
|
65 |
-
* returns the type of the container
|
66 |
-
*
|
67 |
-
* @return int
|
68 |
-
*/
|
69 |
-
public function getType();
|
70 |
-
|
71 |
-
/**
|
72 |
-
* returns size of content
|
73 |
-
*
|
74 |
-
* @return int
|
75 |
-
*/
|
76 |
-
public function size();
|
77 |
-
|
78 |
-
/**
|
79 |
-
* sets the last modification time of the stream content
|
80 |
-
*
|
81 |
-
* @param int $filemtime
|
82 |
-
* @return vfsStreamContent
|
83 |
-
*/
|
84 |
-
public function lastModified($filemtime);
|
85 |
-
|
86 |
-
/**
|
87 |
-
* returns the last modification time of the stream content
|
88 |
-
*
|
89 |
-
* @return int
|
90 |
-
*/
|
91 |
-
public function filemtime();
|
92 |
-
|
93 |
-
/**
|
94 |
-
* adds content to given container
|
95 |
-
*
|
96 |
-
* @param vfsStreamContainer $container
|
97 |
-
* @return vfsStreamContent
|
98 |
-
*/
|
99 |
-
public function at(vfsStreamContainer $container);
|
100 |
-
|
101 |
-
/**
|
102 |
-
* change file mode to given permissions
|
103 |
-
*
|
104 |
-
* @param int $permissions
|
105 |
-
* @return vfsStreamContent
|
106 |
-
*/
|
107 |
-
public function chmod($permissions);
|
108 |
-
|
109 |
-
/**
|
110 |
-
* returns permissions
|
111 |
-
*
|
112 |
-
* @return int
|
113 |
-
*/
|
114 |
-
public function getPermissions();
|
115 |
-
|
116 |
-
/**
|
117 |
-
* checks whether content is readable
|
118 |
-
*
|
119 |
-
* @param int $user id of user to check for
|
120 |
-
* @param int $group id of group to check for
|
121 |
-
* @return bool
|
122 |
-
*/
|
123 |
-
public function isReadable($user, $group);
|
124 |
-
|
125 |
-
/**
|
126 |
-
* checks whether content is writable
|
127 |
-
*
|
128 |
-
* @param int $user id of user to check for
|
129 |
-
* @param int $group id of group to check for
|
130 |
-
* @return bool
|
131 |
-
*/
|
132 |
-
public function isWritable($user, $group);
|
133 |
-
|
134 |
-
/**
|
135 |
-
* checks whether content is executable
|
136 |
-
*
|
137 |
-
* @param int $user id of user to check for
|
138 |
-
* @param int $group id of group to check for
|
139 |
-
* @return bool
|
140 |
-
*/
|
141 |
-
public function isExecutable($user, $group);
|
142 |
-
|
143 |
-
/**
|
144 |
-
* change owner of file to given user
|
145 |
-
*
|
146 |
-
* @param int $user
|
147 |
-
* @return vfsStreamContent
|
148 |
-
*/
|
149 |
-
public function chown($user);
|
150 |
-
|
151 |
-
/**
|
152 |
-
* checks whether file is owned by given user
|
153 |
-
*
|
154 |
-
* @param int $user
|
155 |
-
* @return bool
|
156 |
-
*/
|
157 |
-
public function isOwnedByUser($user);
|
158 |
-
|
159 |
-
/**
|
160 |
-
* returns owner of file
|
161 |
-
*
|
162 |
-
* @return int
|
163 |
-
*/
|
164 |
-
public function getUser();
|
165 |
-
|
166 |
-
/**
|
167 |
-
* change owner group of file to given group
|
168 |
-
*
|
169 |
-
* @param int $group
|
170 |
-
* @return vfsStreamContent
|
171 |
-
*/
|
172 |
-
public function chgrp($group);
|
173 |
-
|
174 |
-
/**
|
175 |
-
* checks whether file is owned by group
|
176 |
-
*
|
177 |
-
* @param int $group
|
178 |
-
* @return bool
|
179 |
-
*/
|
180 |
-
public function isOwnedByGroup($group);
|
181 |
-
|
182 |
-
/**
|
183 |
-
* returns owner group of file
|
184 |
-
*
|
185 |
-
* @return int
|
186 |
-
*/
|
187 |
-
public function getGroup();
|
188 |
-
|
189 |
-
/**
|
190 |
-
* sets parent path
|
191 |
-
*
|
192 |
-
* @param string $parentPath
|
193 |
-
* @internal only to be set by parent
|
194 |
-
* @since 1.2.0
|
195 |
-
*/
|
196 |
-
public function setParentPath($parentPath);
|
197 |
-
|
198 |
-
/**
|
199 |
-
* returns path to this content
|
200 |
-
*
|
201 |
-
* @return string
|
202 |
-
* @since 1.2.0
|
203 |
-
*/
|
204 |
-
public function path();
|
205 |
-
|
206 |
-
/**
|
207 |
-
* returns complete vfsStream url for this content
|
208 |
-
*
|
209 |
-
* @return string
|
210 |
-
* @since 1.2.0
|
211 |
-
*/
|
212 |
-
public function url();
|
213 |
-
}
|
214 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamDirectory.php
DELETED
@@ -1,267 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Directory container.
|
13 |
-
*
|
14 |
-
* @api
|
15 |
-
*/
|
16 |
-
class vfsStreamDirectory extends vfsStreamAbstractContent implements vfsStreamContainer
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* list of directory children
|
20 |
-
*
|
21 |
-
* @type vfsStreamContent[]
|
22 |
-
*/
|
23 |
-
protected $children = array();
|
24 |
-
|
25 |
-
/**
|
26 |
-
* constructor
|
27 |
-
*
|
28 |
-
* @param string $name
|
29 |
-
* @param int $permissions optional
|
30 |
-
* @throws vfsStreamException
|
31 |
-
*/
|
32 |
-
public function __construct($name, $permissions = null)
|
33 |
-
{
|
34 |
-
if (strstr($name, '/') !== false) {
|
35 |
-
throw new vfsStreamException('Directory name can not contain /.');
|
36 |
-
}
|
37 |
-
|
38 |
-
$this->type = vfsStreamContent::TYPE_DIR;
|
39 |
-
parent::__construct($name, $permissions);
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* returns default permissions for concrete implementation
|
44 |
-
*
|
45 |
-
* @return int
|
46 |
-
* @since 0.8.0
|
47 |
-
*/
|
48 |
-
protected function getDefaultPermissions()
|
49 |
-
{
|
50 |
-
return 0777;
|
51 |
-
}
|
52 |
-
|
53 |
-
/**
|
54 |
-
* returns size of directory
|
55 |
-
*
|
56 |
-
* The size of a directory is always 0 bytes. To calculate the summarized
|
57 |
-
* size of all children in the directory use sizeSummarized().
|
58 |
-
*
|
59 |
-
* @return int
|
60 |
-
*/
|
61 |
-
public function size()
|
62 |
-
{
|
63 |
-
return 0;
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* returns summarized size of directory and its children
|
68 |
-
*
|
69 |
-
* @return int
|
70 |
-
*/
|
71 |
-
public function sizeSummarized()
|
72 |
-
{
|
73 |
-
$size = 0;
|
74 |
-
foreach ($this->children as $child) {
|
75 |
-
if ($child->getType() === vfsStreamContent::TYPE_DIR) {
|
76 |
-
$size += $child->sizeSummarized();
|
77 |
-
} else {
|
78 |
-
$size += $child->size();
|
79 |
-
}
|
80 |
-
}
|
81 |
-
|
82 |
-
return $size;
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* renames the content
|
87 |
-
*
|
88 |
-
* @param string $newName
|
89 |
-
* @throws vfsStreamException
|
90 |
-
*/
|
91 |
-
public function rename($newName)
|
92 |
-
{
|
93 |
-
if (strstr($newName, '/') !== false) {
|
94 |
-
throw new vfsStreamException('Directory name can not contain /.');
|
95 |
-
}
|
96 |
-
|
97 |
-
parent::rename($newName);
|
98 |
-
}
|
99 |
-
|
100 |
-
|
101 |
-
/**
|
102 |
-
* sets parent path
|
103 |
-
*
|
104 |
-
* @param string $parentPath
|
105 |
-
* @internal only to be set by parent
|
106 |
-
* @since 1.2.0
|
107 |
-
*/
|
108 |
-
public function setParentPath($parentPath)
|
109 |
-
{
|
110 |
-
parent::setParentPath($parentPath);
|
111 |
-
foreach ($this->children as $child) {
|
112 |
-
$child->setParentPath($this->path());
|
113 |
-
}
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* adds child to the directory
|
118 |
-
*
|
119 |
-
* @param vfsStreamContent $child
|
120 |
-
*/
|
121 |
-
public function addChild(vfsStreamContent $child)
|
122 |
-
{
|
123 |
-
$child->setParentPath($this->path());
|
124 |
-
$this->children[$child->getName()] = $child;
|
125 |
-
$this->updateModifications();
|
126 |
-
}
|
127 |
-
|
128 |
-
/**
|
129 |
-
* removes child from the directory
|
130 |
-
*
|
131 |
-
* @param string $name
|
132 |
-
* @return bool
|
133 |
-
*/
|
134 |
-
public function removeChild($name)
|
135 |
-
{
|
136 |
-
foreach ($this->children as $key => $child) {
|
137 |
-
if ($child->appliesTo($name)) {
|
138 |
-
$child->setParentPath(null);
|
139 |
-
unset($this->children[$key]);
|
140 |
-
$this->updateModifications();
|
141 |
-
return true;
|
142 |
-
}
|
143 |
-
}
|
144 |
-
|
145 |
-
return false;
|
146 |
-
}
|
147 |
-
|
148 |
-
/**
|
149 |
-
* updates internal timestamps
|
150 |
-
*/
|
151 |
-
protected function updateModifications()
|
152 |
-
{
|
153 |
-
$time = time();
|
154 |
-
$this->lastAttributeModified = $time;
|
155 |
-
$this->lastModified = $time;
|
156 |
-
}
|
157 |
-
|
158 |
-
/**
|
159 |
-
* checks whether the container contains a child with the given name
|
160 |
-
*
|
161 |
-
* @param string $name
|
162 |
-
* @return bool
|
163 |
-
*/
|
164 |
-
public function hasChild($name)
|
165 |
-
{
|
166 |
-
return ($this->getChild($name) !== null);
|
167 |
-
}
|
168 |
-
|
169 |
-
/**
|
170 |
-
* returns the child with the given name
|
171 |
-
*
|
172 |
-
* @param string $name
|
173 |
-
* @return vfsStreamContent
|
174 |
-
*/
|
175 |
-
public function getChild($name)
|
176 |
-
{
|
177 |
-
$childName = $this->getRealChildName($name);
|
178 |
-
foreach ($this->children as $child) {
|
179 |
-
if ($child->getName() === $childName) {
|
180 |
-
return $child;
|
181 |
-
}
|
182 |
-
|
183 |
-
if ($child->appliesTo($childName) === true && $child->hasChild($childName) === true) {
|
184 |
-
return $child->getChild($childName);
|
185 |
-
}
|
186 |
-
}
|
187 |
-
|
188 |
-
return null;
|
189 |
-
}
|
190 |
-
|
191 |
-
/**
|
192 |
-
* helper method to detect the real child name
|
193 |
-
*
|
194 |
-
* @param string $name
|
195 |
-
* @return string
|
196 |
-
*/
|
197 |
-
protected function getRealChildName($name)
|
198 |
-
{
|
199 |
-
if ($this->appliesTo($name) === true) {
|
200 |
-
return self::getChildName($name, $this->name);
|
201 |
-
}
|
202 |
-
|
203 |
-
return $name;
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* helper method to calculate the child name
|
208 |
-
*
|
209 |
-
* @param string $name
|
210 |
-
* @param string $ownName
|
211 |
-
* @return string
|
212 |
-
*/
|
213 |
-
protected static function getChildName($name, $ownName)
|
214 |
-
{
|
215 |
-
if ($name === $ownName) {
|
216 |
-
return $name;
|
217 |
-
}
|
218 |
-
|
219 |
-
return substr($name, strlen($ownName) + 1);
|
220 |
-
}
|
221 |
-
|
222 |
-
/**
|
223 |
-
* checks whether directory contains any children
|
224 |
-
*
|
225 |
-
* @return bool
|
226 |
-
* @since 0.10.0
|
227 |
-
*/
|
228 |
-
public function hasChildren()
|
229 |
-
{
|
230 |
-
return (count($this->children) > 0);
|
231 |
-
}
|
232 |
-
|
233 |
-
/**
|
234 |
-
* returns a list of children for this directory
|
235 |
-
*
|
236 |
-
* @return vfsStreamContent[]
|
237 |
-
*/
|
238 |
-
public function getChildren()
|
239 |
-
{
|
240 |
-
return array_values($this->children);
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* returns iterator for the children
|
245 |
-
*
|
246 |
-
* @return vfsStreamContainerIterator
|
247 |
-
*/
|
248 |
-
public function getIterator()
|
249 |
-
{
|
250 |
-
return new vfsStreamContainerIterator($this->children);
|
251 |
-
}
|
252 |
-
|
253 |
-
/**
|
254 |
-
* checks whether dir is a dot dir
|
255 |
-
*
|
256 |
-
* @return bool
|
257 |
-
*/
|
258 |
-
public function isDot()
|
259 |
-
{
|
260 |
-
if ('.' === $this->name || '..' === $this->name) {
|
261 |
-
return true;
|
262 |
-
}
|
263 |
-
|
264 |
-
return false;
|
265 |
-
}
|
266 |
-
}
|
267 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamException.php
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Exception for vfsStream errors.
|
13 |
-
*
|
14 |
-
* @api
|
15 |
-
*/
|
16 |
-
class vfsStreamException extends \Exception
|
17 |
-
{
|
18 |
-
// intentionally empty
|
19 |
-
}
|
20 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamFile.php
DELETED
@@ -1,394 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
use org\bovigo\vfs\content\FileContent;
|
12 |
-
use org\bovigo\vfs\content\StringBasedFileContent;
|
13 |
-
/**
|
14 |
-
* File container.
|
15 |
-
*
|
16 |
-
* @api
|
17 |
-
*/
|
18 |
-
class vfsStreamFile extends vfsStreamAbstractContent
|
19 |
-
{
|
20 |
-
/**
|
21 |
-
* content of the file
|
22 |
-
*
|
23 |
-
* @type FileContent
|
24 |
-
*/
|
25 |
-
private $content;
|
26 |
-
/**
|
27 |
-
* Resource id which exclusively locked this file
|
28 |
-
*
|
29 |
-
* @type string
|
30 |
-
*/
|
31 |
-
protected $exclusiveLock;
|
32 |
-
/**
|
33 |
-
* Resources ids which currently holds shared lock to this file
|
34 |
-
*
|
35 |
-
* @type bool[string]
|
36 |
-
*/
|
37 |
-
protected $sharedLock = array();
|
38 |
-
|
39 |
-
/**
|
40 |
-
* constructor
|
41 |
-
*
|
42 |
-
* @param string $name
|
43 |
-
* @param int $permissions optional
|
44 |
-
*/
|
45 |
-
public function __construct($name, $permissions = null)
|
46 |
-
{
|
47 |
-
$this->content = new StringBasedFileContent(null);
|
48 |
-
$this->type = vfsStreamContent::TYPE_FILE;
|
49 |
-
parent::__construct($name, $permissions);
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* returns default permissions for concrete implementation
|
54 |
-
*
|
55 |
-
* @return int
|
56 |
-
* @since 0.8.0
|
57 |
-
*/
|
58 |
-
protected function getDefaultPermissions()
|
59 |
-
{
|
60 |
-
return 0666;
|
61 |
-
}
|
62 |
-
|
63 |
-
/**
|
64 |
-
* checks whether the container can be applied to given name
|
65 |
-
*
|
66 |
-
* @param string $name
|
67 |
-
* @return bool
|
68 |
-
*/
|
69 |
-
public function appliesTo($name)
|
70 |
-
{
|
71 |
-
return ($name === $this->name);
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* alias for withContent()
|
76 |
-
*
|
77 |
-
* @param string $content
|
78 |
-
* @return vfsStreamFile
|
79 |
-
* @see withContent()
|
80 |
-
*/
|
81 |
-
public function setContent($content)
|
82 |
-
{
|
83 |
-
return $this->withContent($content);
|
84 |
-
}
|
85 |
-
|
86 |
-
/**
|
87 |
-
* sets the contents of the file
|
88 |
-
*
|
89 |
-
* Setting content with this method does not change the time when the file
|
90 |
-
* was last modified.
|
91 |
-
*
|
92 |
-
* @param string]FileContent $content
|
93 |
-
* @return vfsStreamFile
|
94 |
-
* @throws \InvalidArgumentException
|
95 |
-
*/
|
96 |
-
public function withContent($content)
|
97 |
-
{
|
98 |
-
if (is_string($content)) {
|
99 |
-
$this->content = new StringBasedFileContent($content);
|
100 |
-
} elseif ($content instanceof FileContent) {
|
101 |
-
$this->content = $content;
|
102 |
-
} else {
|
103 |
-
throw new \InvalidArgumentException('Given content must either be a string or an instance of org\bovigo\vfs\content\FileContent');
|
104 |
-
}
|
105 |
-
|
106 |
-
return $this;
|
107 |
-
}
|
108 |
-
|
109 |
-
/**
|
110 |
-
* returns the contents of the file
|
111 |
-
*
|
112 |
-
* Getting content does not change the time when the file
|
113 |
-
* was last accessed.
|
114 |
-
*
|
115 |
-
* @return string
|
116 |
-
*/
|
117 |
-
public function getContent()
|
118 |
-
{
|
119 |
-
return $this->content->content();
|
120 |
-
}
|
121 |
-
|
122 |
-
/**
|
123 |
-
* simply open the file
|
124 |
-
*
|
125 |
-
* @since 0.9
|
126 |
-
*/
|
127 |
-
public function open()
|
128 |
-
{
|
129 |
-
$this->content->seek(0, SEEK_SET);
|
130 |
-
$this->lastAccessed = time();
|
131 |
-
}
|
132 |
-
|
133 |
-
/**
|
134 |
-
* open file and set pointer to end of file
|
135 |
-
*
|
136 |
-
* @since 0.9
|
137 |
-
*/
|
138 |
-
public function openForAppend()
|
139 |
-
{
|
140 |
-
$this->content->seek(0, SEEK_END);
|
141 |
-
$this->lastAccessed = time();
|
142 |
-
}
|
143 |
-
|
144 |
-
/**
|
145 |
-
* open file and truncate content
|
146 |
-
*
|
147 |
-
* @since 0.9
|
148 |
-
*/
|
149 |
-
public function openWithTruncate()
|
150 |
-
{
|
151 |
-
$this->open();
|
152 |
-
$this->content->truncate(0);
|
153 |
-
$time = time();
|
154 |
-
$this->lastAccessed = $time;
|
155 |
-
$this->lastModified = $time;
|
156 |
-
}
|
157 |
-
|
158 |
-
/**
|
159 |
-
* reads the given amount of bytes from content
|
160 |
-
*
|
161 |
-
* Using this method changes the time when the file was last accessed.
|
162 |
-
*
|
163 |
-
* @param int $count
|
164 |
-
* @return string
|
165 |
-
*/
|
166 |
-
public function read($count)
|
167 |
-
{
|
168 |
-
$this->lastAccessed = time();
|
169 |
-
return $this->content->read($count);
|
170 |
-
}
|
171 |
-
|
172 |
-
/**
|
173 |
-
* returns the content until its end from current offset
|
174 |
-
*
|
175 |
-
* Using this method changes the time when the file was last accessed.
|
176 |
-
*
|
177 |
-
* @return string
|
178 |
-
* @deprecated since 1.3.0
|
179 |
-
*/
|
180 |
-
public function readUntilEnd()
|
181 |
-
{
|
182 |
-
$this->lastAccessed = time();
|
183 |
-
return $this->content->readUntilEnd();
|
184 |
-
}
|
185 |
-
|
186 |
-
/**
|
187 |
-
* writes an amount of data
|
188 |
-
*
|
189 |
-
* Using this method changes the time when the file was last modified.
|
190 |
-
*
|
191 |
-
* @param string $data
|
192 |
-
* @return amount of written bytes
|
193 |
-
*/
|
194 |
-
public function write($data)
|
195 |
-
{
|
196 |
-
$this->lastModified = time();
|
197 |
-
return $this->content->write($data);
|
198 |
-
}
|
199 |
-
|
200 |
-
/**
|
201 |
-
* Truncates a file to a given length
|
202 |
-
*
|
203 |
-
* @param int $size length to truncate file to
|
204 |
-
* @return bool
|
205 |
-
* @since 1.1.0
|
206 |
-
*/
|
207 |
-
public function truncate($size)
|
208 |
-
{
|
209 |
-
$this->content->truncate($size);
|
210 |
-
$this->lastModified = time();
|
211 |
-
return true;
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* checks whether pointer is at end of file
|
216 |
-
*
|
217 |
-
* @return bool
|
218 |
-
*/
|
219 |
-
public function eof()
|
220 |
-
{
|
221 |
-
return $this->content->eof();
|
222 |
-
}
|
223 |
-
|
224 |
-
/**
|
225 |
-
* returns the current position within the file
|
226 |
-
*
|
227 |
-
* @return int
|
228 |
-
* @deprecated since 1.3.0
|
229 |
-
*/
|
230 |
-
public function getBytesRead()
|
231 |
-
{
|
232 |
-
return $this->content->bytesRead();
|
233 |
-
}
|
234 |
-
|
235 |
-
/**
|
236 |
-
* seeks to the given offset
|
237 |
-
*
|
238 |
-
* @param int $offset
|
239 |
-
* @param int $whence
|
240 |
-
* @return bool
|
241 |
-
*/
|
242 |
-
public function seek($offset, $whence)
|
243 |
-
{
|
244 |
-
return $this->content->seek($offset, $whence);
|
245 |
-
}
|
246 |
-
|
247 |
-
/**
|
248 |
-
* returns size of content
|
249 |
-
*
|
250 |
-
* @return int
|
251 |
-
*/
|
252 |
-
public function size()
|
253 |
-
{
|
254 |
-
return $this->content->size();
|
255 |
-
}
|
256 |
-
|
257 |
-
|
258 |
-
/**
|
259 |
-
* locks file for
|
260 |
-
*
|
261 |
-
* @param resource|vfsStreamWrapper $resource
|
262 |
-
* @param int $operation
|
263 |
-
* @return bool
|
264 |
-
* @since 0.10.0
|
265 |
-
* @see https://github.com/mikey179/vfsStream/issues/6
|
266 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
267 |
-
*/
|
268 |
-
public function lock($resource, $operation)
|
269 |
-
{
|
270 |
-
if ((LOCK_NB & $operation) == LOCK_NB) {
|
271 |
-
$operation = $operation - LOCK_NB;
|
272 |
-
}
|
273 |
-
|
274 |
-
// call to lock file on the same file handler firstly releases the lock
|
275 |
-
$this->unlock($resource);
|
276 |
-
|
277 |
-
if (LOCK_EX === $operation) {
|
278 |
-
if ($this->isLocked()) {
|
279 |
-
return false;
|
280 |
-
}
|
281 |
-
|
282 |
-
$this->setExclusiveLock($resource);
|
283 |
-
} elseif(LOCK_SH === $operation) {
|
284 |
-
if ($this->hasExclusiveLock()) {
|
285 |
-
return false;
|
286 |
-
}
|
287 |
-
|
288 |
-
$this->addSharedLock($resource);
|
289 |
-
}
|
290 |
-
|
291 |
-
return true;
|
292 |
-
}
|
293 |
-
|
294 |
-
/**
|
295 |
-
* Removes lock from file acquired by given resource
|
296 |
-
*
|
297 |
-
* @param resource|vfsStreamWrapper $resource
|
298 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
299 |
-
*/
|
300 |
-
public function unlock($resource) {
|
301 |
-
if ($this->hasExclusiveLock($resource)) {
|
302 |
-
$this->exclusiveLock = null;
|
303 |
-
}
|
304 |
-
if ($this->hasSharedLock($resource)) {
|
305 |
-
unset($this->sharedLock[$this->getResourceId($resource)]);
|
306 |
-
}
|
307 |
-
}
|
308 |
-
|
309 |
-
/**
|
310 |
-
* Set exlusive lock on file by given resource
|
311 |
-
*
|
312 |
-
* @param resource|vfsStreamWrapper $resource
|
313 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
314 |
-
*/
|
315 |
-
protected function setExclusiveLock($resource) {
|
316 |
-
$this->exclusiveLock = $this->getResourceId($resource);
|
317 |
-
}
|
318 |
-
|
319 |
-
/**
|
320 |
-
* Add shared lock on file by given resource
|
321 |
-
*
|
322 |
-
* @param resource|vfsStreamWrapper $resource
|
323 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
324 |
-
*/
|
325 |
-
protected function addSharedLock($resource) {
|
326 |
-
$this->sharedLock[$this->getResourceId($resource)] = true;
|
327 |
-
}
|
328 |
-
|
329 |
-
/**
|
330 |
-
* checks whether file is locked
|
331 |
-
*
|
332 |
-
* @param resource|vfsStreamWrapper $resource
|
333 |
-
* @return bool
|
334 |
-
* @since 0.10.0
|
335 |
-
* @see https://github.com/mikey179/vfsStream/issues/6
|
336 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
337 |
-
*/
|
338 |
-
public function isLocked($resource = null)
|
339 |
-
{
|
340 |
-
return $this->hasSharedLock($resource) || $this->hasExclusiveLock($resource);
|
341 |
-
}
|
342 |
-
|
343 |
-
/**
|
344 |
-
* checks whether file is locked in shared mode
|
345 |
-
*
|
346 |
-
* @param resource|vfsStreamWrapper $resource
|
347 |
-
* @return bool
|
348 |
-
* @since 0.10.0
|
349 |
-
* @see https://github.com/mikey179/vfsStream/issues/6
|
350 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
351 |
-
*/
|
352 |
-
public function hasSharedLock($resource = null)
|
353 |
-
{
|
354 |
-
if (null !== $resource) {
|
355 |
-
return isset($this->sharedLock[$this->getResourceId($resource)]);
|
356 |
-
}
|
357 |
-
|
358 |
-
return !empty($this->sharedLock);
|
359 |
-
}
|
360 |
-
|
361 |
-
/**
|
362 |
-
* Returns unique resource id
|
363 |
-
*
|
364 |
-
* @param resource|vfsStreamWrapper $resource
|
365 |
-
* @return string
|
366 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
367 |
-
*/
|
368 |
-
public function getResourceId($resource) {
|
369 |
-
if (is_resource($resource)) {
|
370 |
-
$data = stream_get_meta_data($resource);
|
371 |
-
$resource = $data['wrapper_data'];
|
372 |
-
}
|
373 |
-
|
374 |
-
return spl_object_hash($resource);
|
375 |
-
}
|
376 |
-
|
377 |
-
/**
|
378 |
-
* checks whether file is locked in exclusive mode
|
379 |
-
*
|
380 |
-
* @param resource|vfsStreamWrapper $resource
|
381 |
-
* @return bool
|
382 |
-
* @since 0.10.0
|
383 |
-
* @see https://github.com/mikey179/vfsStream/issues/6
|
384 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
385 |
-
*/
|
386 |
-
public function hasExclusiveLock($resource = null)
|
387 |
-
{
|
388 |
-
if (null !== $resource) {
|
389 |
-
return $this->exclusiveLock === $this->getResourceId($resource);
|
390 |
-
}
|
391 |
-
|
392 |
-
return null !== $this->exclusiveLock;
|
393 |
-
}
|
394 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/vfsStreamWrapper.php
DELETED
@@ -1,986 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Stream wrapper to mock file system requests.
|
13 |
-
*/
|
14 |
-
class vfsStreamWrapper
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* open file for reading
|
18 |
-
*/
|
19 |
-
const READ = 'r';
|
20 |
-
/**
|
21 |
-
* truncate file
|
22 |
-
*/
|
23 |
-
const TRUNCATE = 'w';
|
24 |
-
/**
|
25 |
-
* set file pointer to end, append new data
|
26 |
-
*/
|
27 |
-
const APPEND = 'a';
|
28 |
-
/**
|
29 |
-
* set file pointer to start, overwrite existing data
|
30 |
-
*/
|
31 |
-
const WRITE = 'x';
|
32 |
-
/**
|
33 |
-
* set file pointer to start, overwrite existing data; or create file if
|
34 |
-
* does not exist
|
35 |
-
*/
|
36 |
-
const WRITE_NEW = 'c';
|
37 |
-
/**
|
38 |
-
* file mode: read only
|
39 |
-
*/
|
40 |
-
const READONLY = 0;
|
41 |
-
/**
|
42 |
-
* file mode: write only
|
43 |
-
*/
|
44 |
-
const WRITEONLY = 1;
|
45 |
-
/**
|
46 |
-
* file mode: read and write
|
47 |
-
*/
|
48 |
-
const ALL = 2;
|
49 |
-
/**
|
50 |
-
* switch whether class has already been registered as stream wrapper or not
|
51 |
-
*
|
52 |
-
* @type bool
|
53 |
-
*/
|
54 |
-
protected static $registered = false;
|
55 |
-
/**
|
56 |
-
* root content
|
57 |
-
*
|
58 |
-
* @type vfsStreamContent
|
59 |
-
*/
|
60 |
-
protected static $root;
|
61 |
-
/**
|
62 |
-
* disk space quota
|
63 |
-
*
|
64 |
-
* @type Quota
|
65 |
-
*/
|
66 |
-
private static $quota;
|
67 |
-
/**
|
68 |
-
* file mode: read only, write only, all
|
69 |
-
*
|
70 |
-
* @type int
|
71 |
-
*/
|
72 |
-
protected $mode;
|
73 |
-
/**
|
74 |
-
* shortcut to file container
|
75 |
-
*
|
76 |
-
* @type vfsStreamFile
|
77 |
-
*/
|
78 |
-
protected $content;
|
79 |
-
/**
|
80 |
-
* shortcut to directory container
|
81 |
-
*
|
82 |
-
* @type vfsStreamDirectory
|
83 |
-
*/
|
84 |
-
protected $dir;
|
85 |
-
/**
|
86 |
-
* shortcut to directory container iterator
|
87 |
-
*
|
88 |
-
* @type vfsStreamDirectory
|
89 |
-
*/
|
90 |
-
protected $dirIterator;
|
91 |
-
|
92 |
-
/**
|
93 |
-
* method to register the stream wrapper
|
94 |
-
*
|
95 |
-
* Please be aware that a call to this method will reset the root element
|
96 |
-
* to null.
|
97 |
-
* If the stream is already registered the method returns silently. If there
|
98 |
-
* is already another stream wrapper registered for the scheme used by
|
99 |
-
* vfsStream a vfsStreamException will be thrown.
|
100 |
-
*
|
101 |
-
* @throws vfsStreamException
|
102 |
-
*/
|
103 |
-
public static function register()
|
104 |
-
{
|
105 |
-
self::$root = null;
|
106 |
-
self::$quota = Quota::unlimited();
|
107 |
-
if (true === self::$registered) {
|
108 |
-
return;
|
109 |
-
}
|
110 |
-
|
111 |
-
if (@stream_wrapper_register(vfsStream::SCHEME, __CLASS__) === false) {
|
112 |
-
throw new vfsStreamException('A handler has already been registered for the ' . vfsStream::SCHEME . ' protocol.');
|
113 |
-
}
|
114 |
-
|
115 |
-
self::$registered = true;
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* sets the root content
|
120 |
-
*
|
121 |
-
* @param vfsStreamContainer $root
|
122 |
-
* @return vfsStreamContainer
|
123 |
-
*/
|
124 |
-
public static function setRoot(vfsStreamContainer $root)
|
125 |
-
{
|
126 |
-
self::$root = $root;
|
127 |
-
clearstatcache();
|
128 |
-
return self::$root;
|
129 |
-
}
|
130 |
-
|
131 |
-
/**
|
132 |
-
* returns the root content
|
133 |
-
*
|
134 |
-
* @return vfsStreamContainer
|
135 |
-
*/
|
136 |
-
public static function getRoot()
|
137 |
-
{
|
138 |
-
return self::$root;
|
139 |
-
}
|
140 |
-
|
141 |
-
/**
|
142 |
-
* sets quota for disk space
|
143 |
-
*
|
144 |
-
* @param Quota $quota
|
145 |
-
* @since 1.1.0
|
146 |
-
*/
|
147 |
-
public static function setQuota(Quota $quota)
|
148 |
-
{
|
149 |
-
self::$quota = $quota;
|
150 |
-
}
|
151 |
-
|
152 |
-
/**
|
153 |
-
* returns content for given path
|
154 |
-
*
|
155 |
-
* @param string $path
|
156 |
-
* @return vfsStreamContent
|
157 |
-
*/
|
158 |
-
protected function getContent($path)
|
159 |
-
{
|
160 |
-
if (null === self::$root) {
|
161 |
-
return null;
|
162 |
-
}
|
163 |
-
|
164 |
-
if (self::$root->getName() === $path) {
|
165 |
-
return self::$root;
|
166 |
-
}
|
167 |
-
|
168 |
-
if ($this->isInRoot($path) && self::$root->hasChild($path) === true) {
|
169 |
-
return self::$root->getChild($path);
|
170 |
-
}
|
171 |
-
|
172 |
-
return null;
|
173 |
-
}
|
174 |
-
|
175 |
-
/**
|
176 |
-
* helper method to detect whether given path is in root path
|
177 |
-
*
|
178 |
-
* @param string $path
|
179 |
-
* @return bool
|
180 |
-
*/
|
181 |
-
private function isInRoot($path)
|
182 |
-
{
|
183 |
-
return substr($path, 0, strlen(self::$root->getName())) === self::$root->getName();
|
184 |
-
}
|
185 |
-
|
186 |
-
/**
|
187 |
-
* returns content for given path but only when it is of given type
|
188 |
-
*
|
189 |
-
* @param string $path
|
190 |
-
* @param int $type
|
191 |
-
* @return vfsStreamContent
|
192 |
-
*/
|
193 |
-
protected function getContentOfType($path, $type)
|
194 |
-
{
|
195 |
-
$content = $this->getContent($path);
|
196 |
-
if (null !== $content && $content->getType() === $type) {
|
197 |
-
return $content;
|
198 |
-
}
|
199 |
-
|
200 |
-
return null;
|
201 |
-
}
|
202 |
-
|
203 |
-
/**
|
204 |
-
* splits path into its dirname and the basename
|
205 |
-
*
|
206 |
-
* @param string $path
|
207 |
-
* @return string[]
|
208 |
-
*/
|
209 |
-
protected function splitPath($path)
|
210 |
-
{
|
211 |
-
$lastSlashPos = strrpos($path, '/');
|
212 |
-
if (false === $lastSlashPos) {
|
213 |
-
return array('dirname' => '', 'basename' => $path);
|
214 |
-
}
|
215 |
-
|
216 |
-
return array('dirname' => substr($path, 0, $lastSlashPos),
|
217 |
-
'basename' => substr($path, $lastSlashPos + 1)
|
218 |
-
);
|
219 |
-
}
|
220 |
-
|
221 |
-
/**
|
222 |
-
* helper method to resolve a path from /foo/bar/. to /foo/bar
|
223 |
-
*
|
224 |
-
* @param string $path
|
225 |
-
* @return string
|
226 |
-
*/
|
227 |
-
protected function resolvePath($path)
|
228 |
-
{
|
229 |
-
$newPath = array();
|
230 |
-
foreach (explode('/', $path) as $pathPart) {
|
231 |
-
if ('.' !== $pathPart) {
|
232 |
-
if ('..' !== $pathPart) {
|
233 |
-
$newPath[] = $pathPart;
|
234 |
-
} else {
|
235 |
-
array_pop($newPath);
|
236 |
-
}
|
237 |
-
}
|
238 |
-
}
|
239 |
-
|
240 |
-
return implode('/', $newPath);
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* open the stream
|
245 |
-
*
|
246 |
-
* @param string $path the path to open
|
247 |
-
* @param string $mode mode for opening
|
248 |
-
* @param string $options options for opening
|
249 |
-
* @param string $opened_path full path that was actually opened
|
250 |
-
* @return bool
|
251 |
-
*/
|
252 |
-
public function stream_open($path, $mode, $options, $opened_path)
|
253 |
-
{
|
254 |
-
$extended = ((strstr($mode, '+') !== false) ? (true) : (false));
|
255 |
-
$mode = str_replace(array('t', 'b', '+'), '', $mode);
|
256 |
-
if (in_array($mode, array('r', 'w', 'a', 'x', 'c')) === false) {
|
257 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
258 |
-
trigger_error('Illegal mode ' . $mode . ', use r, w, a, x or c, flavoured with t, b and/or +', E_USER_WARNING);
|
259 |
-
}
|
260 |
-
|
261 |
-
return false;
|
262 |
-
}
|
263 |
-
|
264 |
-
$this->mode = $this->calculateMode($mode, $extended);
|
265 |
-
$path = $this->resolvePath(vfsStream::path($path));
|
266 |
-
$this->content = $this->getContentOfType($path, vfsStreamContent::TYPE_FILE);
|
267 |
-
if (null !== $this->content) {
|
268 |
-
if (self::WRITE === $mode) {
|
269 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
270 |
-
trigger_error('File ' . $path . ' already exists, can not open with mode x', E_USER_WARNING);
|
271 |
-
}
|
272 |
-
|
273 |
-
return false;
|
274 |
-
}
|
275 |
-
|
276 |
-
if (
|
277 |
-
(self::TRUNCATE === $mode || self::APPEND === $mode) &&
|
278 |
-
$this->content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false
|
279 |
-
) {
|
280 |
-
return false;
|
281 |
-
}
|
282 |
-
|
283 |
-
if (self::TRUNCATE === $mode) {
|
284 |
-
$this->content->openWithTruncate();
|
285 |
-
} elseif (self::APPEND === $mode) {
|
286 |
-
$this->content->openForAppend();
|
287 |
-
} else {
|
288 |
-
if (!$this->content->isReadable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
|
289 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
290 |
-
trigger_error('Permission denied', E_USER_WARNING);
|
291 |
-
}
|
292 |
-
return false;
|
293 |
-
}
|
294 |
-
$this->content->open();
|
295 |
-
}
|
296 |
-
|
297 |
-
return true;
|
298 |
-
}
|
299 |
-
|
300 |
-
$content = $this->createFile($path, $mode, $options);
|
301 |
-
if (false === $content) {
|
302 |
-
return false;
|
303 |
-
}
|
304 |
-
|
305 |
-
$this->content = $content;
|
306 |
-
return true;
|
307 |
-
}
|
308 |
-
|
309 |
-
/**
|
310 |
-
* creates a file at given path
|
311 |
-
*
|
312 |
-
* @param string $path the path to open
|
313 |
-
* @param string $mode mode for opening
|
314 |
-
* @param string $options options for opening
|
315 |
-
* @return bool
|
316 |
-
*/
|
317 |
-
private function createFile($path, $mode = null, $options = null)
|
318 |
-
{
|
319 |
-
$names = $this->splitPath($path);
|
320 |
-
if (empty($names['dirname']) === true) {
|
321 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
322 |
-
trigger_error('File ' . $names['basename'] . ' does not exist', E_USER_WARNING);
|
323 |
-
}
|
324 |
-
|
325 |
-
return false;
|
326 |
-
}
|
327 |
-
|
328 |
-
$dir = $this->getContentOfType($names['dirname'], vfsStreamContent::TYPE_DIR);
|
329 |
-
if (null === $dir) {
|
330 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
331 |
-
trigger_error('Directory ' . $names['dirname'] . ' does not exist', E_USER_WARNING);
|
332 |
-
}
|
333 |
-
|
334 |
-
return false;
|
335 |
-
} elseif ($dir->hasChild($names['basename']) === true) {
|
336 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
337 |
-
trigger_error('Directory ' . $names['dirname'] . ' already contains a director named ' . $names['basename'], E_USER_WARNING);
|
338 |
-
}
|
339 |
-
|
340 |
-
return false;
|
341 |
-
}
|
342 |
-
|
343 |
-
if (self::READ === $mode) {
|
344 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
345 |
-
trigger_error('Can not open non-existing file ' . $path . ' for reading', E_USER_WARNING);
|
346 |
-
}
|
347 |
-
|
348 |
-
return false;
|
349 |
-
}
|
350 |
-
|
351 |
-
if ($dir->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
|
352 |
-
if (($options & STREAM_REPORT_ERRORS) === STREAM_REPORT_ERRORS) {
|
353 |
-
trigger_error('Can not create new file in non-writable path ' . $names['dirname'], E_USER_WARNING);
|
354 |
-
}
|
355 |
-
|
356 |
-
return false;
|
357 |
-
}
|
358 |
-
|
359 |
-
return vfsStream::newFile($names['basename'])->at($dir);
|
360 |
-
}
|
361 |
-
|
362 |
-
/**
|
363 |
-
* calculates the file mode
|
364 |
-
*
|
365 |
-
* @param string $mode opening mode: r, w, a or x
|
366 |
-
* @param bool $extended true if + was set with opening mode
|
367 |
-
* @return int
|
368 |
-
*/
|
369 |
-
protected function calculateMode($mode, $extended)
|
370 |
-
{
|
371 |
-
if (true === $extended) {
|
372 |
-
return self::ALL;
|
373 |
-
}
|
374 |
-
|
375 |
-
if (self::READ === $mode) {
|
376 |
-
return self::READONLY;
|
377 |
-
}
|
378 |
-
|
379 |
-
return self::WRITEONLY;
|
380 |
-
}
|
381 |
-
|
382 |
-
/**
|
383 |
-
* closes the stream
|
384 |
-
*
|
385 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
386 |
-
*/
|
387 |
-
public function stream_close()
|
388 |
-
{
|
389 |
-
$this->content->lock($this, LOCK_UN);
|
390 |
-
}
|
391 |
-
|
392 |
-
/**
|
393 |
-
* read the stream up to $count bytes
|
394 |
-
*
|
395 |
-
* @param int $count amount of bytes to read
|
396 |
-
* @return string
|
397 |
-
*/
|
398 |
-
public function stream_read($count)
|
399 |
-
{
|
400 |
-
if (self::WRITEONLY === $this->mode) {
|
401 |
-
return '';
|
402 |
-
}
|
403 |
-
|
404 |
-
if ($this->content->isReadable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
|
405 |
-
return '';
|
406 |
-
}
|
407 |
-
|
408 |
-
return $this->content->read($count);
|
409 |
-
}
|
410 |
-
|
411 |
-
/**
|
412 |
-
* writes data into the stream
|
413 |
-
*
|
414 |
-
* @param string $data
|
415 |
-
* @return int amount of bytes written
|
416 |
-
*/
|
417 |
-
public function stream_write($data)
|
418 |
-
{
|
419 |
-
if (self::READONLY === $this->mode) {
|
420 |
-
return 0;
|
421 |
-
}
|
422 |
-
|
423 |
-
if ($this->content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
|
424 |
-
return 0;
|
425 |
-
}
|
426 |
-
|
427 |
-
if (self::$quota->isLimited()) {
|
428 |
-
$data = substr($data, 0, self::$quota->spaceLeft(self::$root->sizeSummarized()));
|
429 |
-
}
|
430 |
-
|
431 |
-
return $this->content->write($data);
|
432 |
-
}
|
433 |
-
|
434 |
-
/**
|
435 |
-
* truncates a file to a given length
|
436 |
-
*
|
437 |
-
* @param int $size length to truncate file to
|
438 |
-
* @return bool
|
439 |
-
* @since 1.1.0
|
440 |
-
*/
|
441 |
-
public function stream_truncate($size)
|
442 |
-
{
|
443 |
-
if (self::READONLY === $this->mode) {
|
444 |
-
return false;
|
445 |
-
}
|
446 |
-
|
447 |
-
if ($this->content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
|
448 |
-
return false;
|
449 |
-
}
|
450 |
-
|
451 |
-
if ($this->content->getType() !== vfsStreamContent::TYPE_FILE) {
|
452 |
-
return false;
|
453 |
-
}
|
454 |
-
|
455 |
-
if (self::$quota->isLimited() && $this->content->size() < $size) {
|
456 |
-
$maxSize = self::$quota->spaceLeft(self::$root->sizeSummarized());
|
457 |
-
if (0 === $maxSize) {
|
458 |
-
return false;
|
459 |
-
}
|
460 |
-
|
461 |
-
if ($size > $maxSize) {
|
462 |
-
$size = $maxSize;
|
463 |
-
}
|
464 |
-
}
|
465 |
-
|
466 |
-
return $this->content->truncate($size);
|
467 |
-
}
|
468 |
-
|
469 |
-
/**
|
470 |
-
* sets metadata like owner, user or permissions
|
471 |
-
*
|
472 |
-
* @param string $path
|
473 |
-
* @param int $option
|
474 |
-
* @param mixed $var
|
475 |
-
* @return bool
|
476 |
-
* @since 1.1.0
|
477 |
-
*/
|
478 |
-
public function stream_metadata($path, $option, $var)
|
479 |
-
{
|
480 |
-
$path = $this->resolvePath(vfsStream::path($path));
|
481 |
-
$content = $this->getContent($path);
|
482 |
-
switch ($option) {
|
483 |
-
case STREAM_META_TOUCH:
|
484 |
-
if (null === $content) {
|
485 |
-
$content = $this->createFile($path, null, STREAM_REPORT_ERRORS);
|
486 |
-
// file creation may not be allowed at provided path
|
487 |
-
if (false === $content) {
|
488 |
-
return false;
|
489 |
-
}
|
490 |
-
}
|
491 |
-
|
492 |
-
$currentTime = time();
|
493 |
-
$content->lastModified(((isset($var[0])) ? ($var[0]) : ($currentTime)))
|
494 |
-
->lastAccessed(((isset($var[1])) ? ($var[1]) : ($currentTime)));
|
495 |
-
return true;
|
496 |
-
|
497 |
-
case STREAM_META_OWNER_NAME:
|
498 |
-
return false;
|
499 |
-
|
500 |
-
case STREAM_META_OWNER:
|
501 |
-
if (null === $content) {
|
502 |
-
return false;
|
503 |
-
}
|
504 |
-
|
505 |
-
return $this->doPermChange($path,
|
506 |
-
$content,
|
507 |
-
function() use ($content, $var)
|
508 |
-
{
|
509 |
-
$content->chown($var);
|
510 |
-
}
|
511 |
-
);
|
512 |
-
|
513 |
-
case STREAM_META_GROUP_NAME:
|
514 |
-
return false;
|
515 |
-
|
516 |
-
case STREAM_META_GROUP:
|
517 |
-
if (null === $content) {
|
518 |
-
return false;
|
519 |
-
}
|
520 |
-
|
521 |
-
return $this->doPermChange($path,
|
522 |
-
$content,
|
523 |
-
function() use ($content, $var)
|
524 |
-
{
|
525 |
-
$content->chgrp($var);
|
526 |
-
}
|
527 |
-
);
|
528 |
-
|
529 |
-
case STREAM_META_ACCESS:
|
530 |
-
if (null === $content) {
|
531 |
-
return false;
|
532 |
-
}
|
533 |
-
|
534 |
-
return $this->doPermChange($path,
|
535 |
-
$content,
|
536 |
-
function() use ($content, $var)
|
537 |
-
{
|
538 |
-
$content->chmod($var);
|
539 |
-
}
|
540 |
-
);
|
541 |
-
|
542 |
-
default:
|
543 |
-
return false;
|
544 |
-
}
|
545 |
-
}
|
546 |
-
|
547 |
-
/**
|
548 |
-
* executes given permission change when necessary rights allow such a change
|
549 |
-
*
|
550 |
-
* @param string $path
|
551 |
-
* @param vfsStreamAbstractContent $content
|
552 |
-
* @param \Closure $change
|
553 |
-
* @return bool
|
554 |
-
*/
|
555 |
-
private function doPermChange($path, vfsStreamAbstractContent $content, \Closure $change)
|
556 |
-
{
|
557 |
-
if (!$content->isOwnedByUser(vfsStream::getCurrentUser())) {
|
558 |
-
return false;
|
559 |
-
}
|
560 |
-
|
561 |
-
if (self::$root->getName() !== $path) {
|
562 |
-
$names = $this->splitPath($path);
|
563 |
-
$parent = $this->getContent($names['dirname']);
|
564 |
-
if (!$parent->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
|
565 |
-
return false;
|
566 |
-
}
|
567 |
-
}
|
568 |
-
|
569 |
-
$change();
|
570 |
-
return true;
|
571 |
-
}
|
572 |
-
|
573 |
-
/**
|
574 |
-
* checks whether stream is at end of file
|
575 |
-
*
|
576 |
-
* @return bool
|
577 |
-
*/
|
578 |
-
public function stream_eof()
|
579 |
-
{
|
580 |
-
return $this->content->eof();
|
581 |
-
}
|
582 |
-
|
583 |
-
/**
|
584 |
-
* returns the current position of the stream
|
585 |
-
*
|
586 |
-
* @return int
|
587 |
-
*/
|
588 |
-
public function stream_tell()
|
589 |
-
{
|
590 |
-
return $this->content->getBytesRead();
|
591 |
-
}
|
592 |
-
|
593 |
-
/**
|
594 |
-
* seeks to the given offset
|
595 |
-
*
|
596 |
-
* @param int $offset
|
597 |
-
* @param int $whence
|
598 |
-
* @return bool
|
599 |
-
*/
|
600 |
-
public function stream_seek($offset, $whence)
|
601 |
-
{
|
602 |
-
return $this->content->seek($offset, $whence);
|
603 |
-
}
|
604 |
-
|
605 |
-
/**
|
606 |
-
* flushes unstored data into storage
|
607 |
-
*
|
608 |
-
* @return bool
|
609 |
-
*/
|
610 |
-
public function stream_flush()
|
611 |
-
{
|
612 |
-
return true;
|
613 |
-
}
|
614 |
-
|
615 |
-
/**
|
616 |
-
* returns status of stream
|
617 |
-
*
|
618 |
-
* @return array
|
619 |
-
*/
|
620 |
-
public function stream_stat()
|
621 |
-
{
|
622 |
-
$fileStat = array('dev' => 0,
|
623 |
-
'ino' => 0,
|
624 |
-
'mode' => $this->content->getType() | $this->content->getPermissions(),
|
625 |
-
'nlink' => 0,
|
626 |
-
'uid' => $this->content->getUser(),
|
627 |
-
'gid' => $this->content->getGroup(),
|
628 |
-
'rdev' => 0,
|
629 |
-
'size' => $this->content->size(),
|
630 |
-
'atime' => $this->content->fileatime(),
|
631 |
-
'mtime' => $this->content->filemtime(),
|
632 |
-
'ctime' => $this->content->filectime(),
|
633 |
-
'blksize' => -1,
|
634 |
-
'blocks' => -1
|
635 |
-
);
|
636 |
-
return array_merge(array_values($fileStat), $fileStat);
|
637 |
-
}
|
638 |
-
|
639 |
-
/**
|
640 |
-
* retrieve the underlaying resource
|
641 |
-
*
|
642 |
-
* Please note that this method always returns false as there is no
|
643 |
-
* underlaying resource to return.
|
644 |
-
*
|
645 |
-
* @param int $cast_as
|
646 |
-
* @since 0.9.0
|
647 |
-
* @see https://github.com/mikey179/vfsStream/issues/3
|
648 |
-
* @return bool
|
649 |
-
*/
|
650 |
-
public function stream_cast($cast_as)
|
651 |
-
{
|
652 |
-
return false;
|
653 |
-
}
|
654 |
-
|
655 |
-
/**
|
656 |
-
* set lock status for stream
|
657 |
-
*
|
658 |
-
* @param int $operation
|
659 |
-
* @return bool
|
660 |
-
* @since 0.10.0
|
661 |
-
* @see https://github.com/mikey179/vfsStream/issues/6
|
662 |
-
* @see https://github.com/mikey179/vfsStream/issues/31
|
663 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
664 |
-
*/
|
665 |
-
public function stream_lock($operation)
|
666 |
-
{
|
667 |
-
if ((LOCK_NB & $operation) == LOCK_NB) {
|
668 |
-
$operation = $operation - LOCK_NB;
|
669 |
-
}
|
670 |
-
|
671 |
-
return $this->content->lock($this, $operation);
|
672 |
-
}
|
673 |
-
|
674 |
-
/**
|
675 |
-
* sets options on the stream
|
676 |
-
*
|
677 |
-
* @param int $option key of option to set
|
678 |
-
* @param int $arg1
|
679 |
-
* @param int $arg2
|
680 |
-
* @return bool
|
681 |
-
* @since 0.10.0
|
682 |
-
* @see https://github.com/mikey179/vfsStream/issues/15
|
683 |
-
* @see http://www.php.net/manual/streamwrapper.stream-set-option.php
|
684 |
-
*/
|
685 |
-
public function stream_set_option($option, $arg1, $arg2)
|
686 |
-
{
|
687 |
-
switch ($option) {
|
688 |
-
case STREAM_OPTION_BLOCKING:
|
689 |
-
// break omitted
|
690 |
-
|
691 |
-
case STREAM_OPTION_READ_TIMEOUT:
|
692 |
-
// break omitted
|
693 |
-
|
694 |
-
case STREAM_OPTION_WRITE_BUFFER:
|
695 |
-
// break omitted
|
696 |
-
|
697 |
-
default:
|
698 |
-
// nothing to do here
|
699 |
-
}
|
700 |
-
|
701 |
-
return false;
|
702 |
-
}
|
703 |
-
|
704 |
-
/**
|
705 |
-
* remove the data under the given path
|
706 |
-
*
|
707 |
-
* @param string $path
|
708 |
-
* @return bool
|
709 |
-
*/
|
710 |
-
public function unlink($path)
|
711 |
-
{
|
712 |
-
$realPath = $this->resolvePath(vfsStream::path($path));
|
713 |
-
$content = $this->getContent($realPath);
|
714 |
-
if (null === $content) {
|
715 |
-
trigger_error('unlink(' . $path . '): No such file or directory', E_USER_WARNING);
|
716 |
-
return false;
|
717 |
-
}
|
718 |
-
|
719 |
-
if ($content->getType() !== vfsStreamContent::TYPE_FILE) {
|
720 |
-
trigger_error('unlink(' . $path . '): Operation not permitted', E_USER_WARNING);
|
721 |
-
return false;
|
722 |
-
}
|
723 |
-
|
724 |
-
return $this->doUnlink($realPath);
|
725 |
-
}
|
726 |
-
|
727 |
-
/**
|
728 |
-
* removes a path
|
729 |
-
*
|
730 |
-
* @param string $path
|
731 |
-
* @return bool
|
732 |
-
*/
|
733 |
-
protected function doUnlink($path)
|
734 |
-
{
|
735 |
-
if (self::$root->getName() === $path) {
|
736 |
-
// delete root? very brave. :)
|
737 |
-
self::$root = null;
|
738 |
-
clearstatcache();
|
739 |
-
return true;
|
740 |
-
}
|
741 |
-
|
742 |
-
$names = $this->splitPath($path);
|
743 |
-
$content = $this->getContent($names['dirname']);
|
744 |
-
if (!$content->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
|
745 |
-
return false;
|
746 |
-
}
|
747 |
-
|
748 |
-
clearstatcache();
|
749 |
-
return $content->removeChild($names['basename']);
|
750 |
-
}
|
751 |
-
|
752 |
-
/**
|
753 |
-
* rename from one path to another
|
754 |
-
*
|
755 |
-
* @param string $path_from
|
756 |
-
* @param string $path_to
|
757 |
-
* @return bool
|
758 |
-
* @author Benoit Aubuchon
|
759 |
-
*/
|
760 |
-
public function rename($path_from, $path_to)
|
761 |
-
{
|
762 |
-
$srcRealPath = $this->resolvePath(vfsStream::path($path_from));
|
763 |
-
$dstRealPath = $this->resolvePath(vfsStream::path($path_to));
|
764 |
-
$srcContent = $this->getContent($srcRealPath);
|
765 |
-
if (null == $srcContent) {
|
766 |
-
trigger_error(' No such file or directory', E_USER_WARNING);
|
767 |
-
return false;
|
768 |
-
}
|
769 |
-
$dstNames = $this->splitPath($dstRealPath);
|
770 |
-
$dstParentContent = $this->getContent($dstNames['dirname']);
|
771 |
-
if (null == $dstParentContent) {
|
772 |
-
trigger_error('No such file or directory', E_USER_WARNING);
|
773 |
-
return false;
|
774 |
-
}
|
775 |
-
if (!$dstParentContent->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup())) {
|
776 |
-
trigger_error('Permission denied', E_USER_WARNING);
|
777 |
-
return false;
|
778 |
-
}
|
779 |
-
if ($dstParentContent->getType() !== vfsStreamContent::TYPE_DIR) {
|
780 |
-
trigger_error('Target is not a directory', E_USER_WARNING);
|
781 |
-
return false;
|
782 |
-
}
|
783 |
-
|
784 |
-
// remove old source first, so we can rename later
|
785 |
-
// (renaming first would lead to not being able to remove the old path)
|
786 |
-
if (!$this->doUnlink($srcRealPath)) {
|
787 |
-
return false;
|
788 |
-
}
|
789 |
-
|
790 |
-
$dstContent = $srcContent;
|
791 |
-
// Renaming the filename
|
792 |
-
$dstContent->rename($dstNames['basename']);
|
793 |
-
// Copying to the destination
|
794 |
-
$dstParentContent->addChild($dstContent);
|
795 |
-
return true;
|
796 |
-
}
|
797 |
-
|
798 |
-
/**
|
799 |
-
* creates a new directory
|
800 |
-
*
|
801 |
-
* @param string $path
|
802 |
-
* @param int $mode
|
803 |
-
* @param int $options
|
804 |
-
* @return bool
|
805 |
-
*/
|
806 |
-
public function mkdir($path, $mode, $options)
|
807 |
-
{
|
808 |
-
$umask = vfsStream::umask();
|
809 |
-
if (0 < $umask) {
|
810 |
-
$permissions = $mode & ~$umask;
|
811 |
-
} else {
|
812 |
-
$permissions = $mode;
|
813 |
-
}
|
814 |
-
|
815 |
-
$path = $this->resolvePath(vfsStream::path($path));
|
816 |
-
if (null !== $this->getContent($path)) {
|
817 |
-
trigger_error('mkdir(): Path vfs://' . $path . ' exists', E_USER_WARNING);
|
818 |
-
return false;
|
819 |
-
}
|
820 |
-
|
821 |
-
if (null === self::$root) {
|
822 |
-
self::$root = vfsStream::newDirectory($path, $permissions);
|
823 |
-
return true;
|
824 |
-
}
|
825 |
-
|
826 |
-
$maxDepth = count(explode('/', $path));
|
827 |
-
$names = $this->splitPath($path);
|
828 |
-
$newDirs = $names['basename'];
|
829 |
-
$dir = null;
|
830 |
-
$i = 0;
|
831 |
-
while ($dir === null && $i < $maxDepth) {
|
832 |
-
$dir = $this->getContent($names['dirname']);
|
833 |
-
$names = $this->splitPath($names['dirname']);
|
834 |
-
if (null == $dir) {
|
835 |
-
$newDirs = $names['basename'] . '/' . $newDirs;
|
836 |
-
}
|
837 |
-
|
838 |
-
$i++;
|
839 |
-
}
|
840 |
-
|
841 |
-
if (null === $dir
|
842 |
-
|| $dir->getType() !== vfsStreamContent::TYPE_DIR
|
843 |
-
|| $dir->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
|
844 |
-
return false;
|
845 |
-
}
|
846 |
-
|
847 |
-
$recursive = ((STREAM_MKDIR_RECURSIVE & $options) !== 0) ? (true) : (false);
|
848 |
-
if (strpos($newDirs, '/') !== false && false === $recursive) {
|
849 |
-
return false;
|
850 |
-
}
|
851 |
-
|
852 |
-
vfsStream::newDirectory($newDirs, $permissions)->at($dir);
|
853 |
-
return true;
|
854 |
-
}
|
855 |
-
|
856 |
-
/**
|
857 |
-
* removes a directory
|
858 |
-
*
|
859 |
-
* @param string $path
|
860 |
-
* @param int $options
|
861 |
-
* @return bool
|
862 |
-
* @todo consider $options with STREAM_MKDIR_RECURSIVE
|
863 |
-
*/
|
864 |
-
public function rmdir($path, $options)
|
865 |
-
{
|
866 |
-
$path = $this->resolvePath(vfsStream::path($path));
|
867 |
-
$child = $this->getContentOfType($path, vfsStreamContent::TYPE_DIR);
|
868 |
-
if (null === $child) {
|
869 |
-
return false;
|
870 |
-
}
|
871 |
-
|
872 |
-
// can only remove empty directories
|
873 |
-
if (count($child->getChildren()) > 0) {
|
874 |
-
return false;
|
875 |
-
}
|
876 |
-
|
877 |
-
if (self::$root->getName() === $path) {
|
878 |
-
// delete root? very brave. :)
|
879 |
-
self::$root = null;
|
880 |
-
clearstatcache();
|
881 |
-
return true;
|
882 |
-
}
|
883 |
-
|
884 |
-
$names = $this->splitPath($path);
|
885 |
-
$dir = $this->getContentOfType($names['dirname'], vfsStreamContent::TYPE_DIR);
|
886 |
-
if ($dir->isWritable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
|
887 |
-
return false;
|
888 |
-
}
|
889 |
-
|
890 |
-
clearstatcache();
|
891 |
-
return $dir->removeChild($child->getName());
|
892 |
-
}
|
893 |
-
|
894 |
-
/**
|
895 |
-
* opens a directory
|
896 |
-
*
|
897 |
-
* @param string $path
|
898 |
-
* @param int $options
|
899 |
-
* @return bool
|
900 |
-
*/
|
901 |
-
public function dir_opendir($path, $options)
|
902 |
-
{
|
903 |
-
$path = $this->resolvePath(vfsStream::path($path));
|
904 |
-
$this->dir = $this->getContentOfType($path, vfsStreamContent::TYPE_DIR);
|
905 |
-
if (null === $this->dir || $this->dir->isReadable(vfsStream::getCurrentUser(), vfsStream::getCurrentGroup()) === false) {
|
906 |
-
return false;
|
907 |
-
}
|
908 |
-
|
909 |
-
$this->dirIterator = $this->dir->getIterator();
|
910 |
-
return true;
|
911 |
-
}
|
912 |
-
|
913 |
-
/**
|
914 |
-
* reads directory contents
|
915 |
-
*
|
916 |
-
* @return string
|
917 |
-
*/
|
918 |
-
public function dir_readdir()
|
919 |
-
{
|
920 |
-
$dir = $this->dirIterator->current();
|
921 |
-
if (null === $dir) {
|
922 |
-
return false;
|
923 |
-
}
|
924 |
-
|
925 |
-
$this->dirIterator->next();
|
926 |
-
return $dir->getName();
|
927 |
-
}
|
928 |
-
|
929 |
-
/**
|
930 |
-
* reset directory iteration
|
931 |
-
*
|
932 |
-
* @return bool
|
933 |
-
*/
|
934 |
-
public function dir_rewinddir()
|
935 |
-
{
|
936 |
-
return $this->dirIterator->rewind();
|
937 |
-
}
|
938 |
-
|
939 |
-
/**
|
940 |
-
* closes directory
|
941 |
-
*
|
942 |
-
* @return bool
|
943 |
-
*/
|
944 |
-
public function dir_closedir()
|
945 |
-
{
|
946 |
-
$this->dirIterator = null;
|
947 |
-
return true;
|
948 |
-
}
|
949 |
-
|
950 |
-
/**
|
951 |
-
* returns status of url
|
952 |
-
*
|
953 |
-
* @param string $path path of url to return status for
|
954 |
-
* @param int $flags flags set by the stream API
|
955 |
-
* @return array
|
956 |
-
*/
|
957 |
-
public function url_stat($path, $flags)
|
958 |
-
{
|
959 |
-
$content = $this->getContent($this->resolvePath(vfsStream::path($path)));
|
960 |
-
if (null === $content) {
|
961 |
-
if (($flags & STREAM_URL_STAT_QUIET) != STREAM_URL_STAT_QUIET) {
|
962 |
-
trigger_error(' No such file or directory: ' . $path, E_USER_WARNING);
|
963 |
-
}
|
964 |
-
|
965 |
-
return false;
|
966 |
-
|
967 |
-
}
|
968 |
-
|
969 |
-
$fileStat = array('dev' => 0,
|
970 |
-
'ino' => 0,
|
971 |
-
'mode' => $content->getType() | $content->getPermissions(),
|
972 |
-
'nlink' => 0,
|
973 |
-
'uid' => $content->getUser(),
|
974 |
-
'gid' => $content->getGroup(),
|
975 |
-
'rdev' => 0,
|
976 |
-
'size' => $content->size(),
|
977 |
-
'atime' => $content->fileatime(),
|
978 |
-
'mtime' => $content->filemtime(),
|
979 |
-
'ctime' => $content->filectime(),
|
980 |
-
'blksize' => -1,
|
981 |
-
'blocks' => -1
|
982 |
-
);
|
983 |
-
return array_merge(array_values($fileStat), $fileStat);
|
984 |
-
}
|
985 |
-
}
|
986 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitor.php
DELETED
@@ -1,65 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\visitor;
|
11 |
-
use org\bovigo\vfs\vfsStreamContent;
|
12 |
-
use org\bovigo\vfs\vfsStreamBlock;
|
13 |
-
|
14 |
-
/**
|
15 |
-
* Abstract base class providing an implementation for the visit() method.
|
16 |
-
*
|
17 |
-
* @since 0.10.0
|
18 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
19 |
-
*/
|
20 |
-
abstract class vfsStreamAbstractVisitor implements vfsStreamVisitor
|
21 |
-
{
|
22 |
-
/**
|
23 |
-
* visit a content and process it
|
24 |
-
*
|
25 |
-
* @param vfsStreamContent $content
|
26 |
-
* @return vfsStreamVisitor
|
27 |
-
* @throws \InvalidArgumentException
|
28 |
-
*/
|
29 |
-
public function visit(vfsStreamContent $content)
|
30 |
-
{
|
31 |
-
switch ($content->getType()) {
|
32 |
-
case vfsStreamContent::TYPE_BLOCK:
|
33 |
-
$this->visitBlockDevice($content);
|
34 |
-
break;
|
35 |
-
|
36 |
-
case vfsStreamContent::TYPE_FILE:
|
37 |
-
$this->visitFile($content);
|
38 |
-
break;
|
39 |
-
|
40 |
-
case vfsStreamContent::TYPE_DIR:
|
41 |
-
if (!$content->isDot()) {
|
42 |
-
$this->visitDirectory($content);
|
43 |
-
}
|
44 |
-
|
45 |
-
break;
|
46 |
-
|
47 |
-
default:
|
48 |
-
throw new \InvalidArgumentException('Unknown content type ' . $content->getType() . ' for ' . $content->getName());
|
49 |
-
}
|
50 |
-
|
51 |
-
return $this;
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* visit a block device and process it
|
56 |
-
*
|
57 |
-
* @param vfsStreamBlock $block
|
58 |
-
* @return vfsStreamVisitor
|
59 |
-
*/
|
60 |
-
public function visitBlockDevice(vfsStreamBlock $block)
|
61 |
-
{
|
62 |
-
return $this->visitFile($block);
|
63 |
-
}
|
64 |
-
}
|
65 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitor.php
DELETED
@@ -1,108 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\visitor;
|
11 |
-
use org\bovigo\vfs\vfsStreamContent;
|
12 |
-
use org\bovigo\vfs\vfsStreamDirectory;
|
13 |
-
use org\bovigo\vfs\vfsStreamFile;
|
14 |
-
use org\bovigo\vfs\vfsStreamBlock;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Visitor which traverses a content structure recursively to print it to an output stream.
|
18 |
-
*
|
19 |
-
* @since 0.10.0
|
20 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
21 |
-
*/
|
22 |
-
class vfsStreamPrintVisitor extends vfsStreamAbstractVisitor
|
23 |
-
{
|
24 |
-
/**
|
25 |
-
* target to write output to
|
26 |
-
*
|
27 |
-
* @type resource
|
28 |
-
*/
|
29 |
-
protected $out;
|
30 |
-
/**
|
31 |
-
* current depth in directory tree
|
32 |
-
*
|
33 |
-
* @type int
|
34 |
-
*/
|
35 |
-
protected $depth;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* constructor
|
39 |
-
*
|
40 |
-
* If no file pointer given it will fall back to STDOUT.
|
41 |
-
*
|
42 |
-
* @param resource $out optional
|
43 |
-
* @throws \InvalidArgumentException
|
44 |
-
* @api
|
45 |
-
*/
|
46 |
-
public function __construct($out = STDOUT)
|
47 |
-
{
|
48 |
-
if (is_resource($out) === false || get_resource_type($out) !== 'stream') {
|
49 |
-
throw new \InvalidArgumentException('Given filepointer is not a resource of type stream');
|
50 |
-
}
|
51 |
-
|
52 |
-
$this->out = $out;
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* visit a file and process it
|
57 |
-
*
|
58 |
-
* @param vfsStreamFile $file
|
59 |
-
* @return vfsStreamPrintVisitor
|
60 |
-
*/
|
61 |
-
public function visitFile(vfsStreamFile $file)
|
62 |
-
{
|
63 |
-
$this->printContent($file->getName());
|
64 |
-
return $this;
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* visit a block device and process it
|
69 |
-
*
|
70 |
-
* @param vfsStreamBlock $block
|
71 |
-
* @return vfsStreamPrintVisitor
|
72 |
-
*/
|
73 |
-
public function visitBlockDevice(vfsStreamBlock $block)
|
74 |
-
{
|
75 |
-
$name = '[' . $block->getName() . ']';
|
76 |
-
$this->printContent($name);
|
77 |
-
return $this;
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* visit a directory and process it
|
82 |
-
*
|
83 |
-
* @param vfsStreamDirectory $dir
|
84 |
-
* @return vfsStreamPrintVisitor
|
85 |
-
*/
|
86 |
-
public function visitDirectory(vfsStreamDirectory $dir)
|
87 |
-
{
|
88 |
-
$this->printContent($dir->getName());
|
89 |
-
$this->depth++;
|
90 |
-
foreach ($dir as $child) {
|
91 |
-
$this->visit($child);
|
92 |
-
}
|
93 |
-
|
94 |
-
$this->depth--;
|
95 |
-
return $this;
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* helper method to print the content
|
100 |
-
*
|
101 |
-
* @param string $name
|
102 |
-
*/
|
103 |
-
protected function printContent($name)
|
104 |
-
{
|
105 |
-
fwrite($this->out, str_repeat(' ', $this->depth) . '- ' . $name . "\n");
|
106 |
-
}
|
107 |
-
}
|
108 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitor.php
DELETED
@@ -1,112 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\visitor;
|
11 |
-
use org\bovigo\vfs\vfsStreamDirectory;
|
12 |
-
use org\bovigo\vfs\vfsStreamFile;
|
13 |
-
use org\bovigo\vfs\vfsStreamBlock;
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Visitor which traverses a content structure recursively to create an array structure from it.
|
17 |
-
*
|
18 |
-
* @since 0.10.0
|
19 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
20 |
-
*/
|
21 |
-
class vfsStreamStructureVisitor extends vfsStreamAbstractVisitor
|
22 |
-
{
|
23 |
-
/**
|
24 |
-
* collected structure
|
25 |
-
*
|
26 |
-
* @type array
|
27 |
-
*/
|
28 |
-
protected $structure = array();
|
29 |
-
/**
|
30 |
-
* poiting to currently iterated directory
|
31 |
-
*
|
32 |
-
* @type array
|
33 |
-
*/
|
34 |
-
protected $current;
|
35 |
-
|
36 |
-
/**
|
37 |
-
* constructor
|
38 |
-
*
|
39 |
-
* @api
|
40 |
-
*/
|
41 |
-
public function __construct()
|
42 |
-
{
|
43 |
-
$this->reset();
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* visit a file and process it
|
48 |
-
*
|
49 |
-
* @param vfsStreamFile $file
|
50 |
-
* @return vfsStreamStructureVisitor
|
51 |
-
*/
|
52 |
-
public function visitFile(vfsStreamFile $file)
|
53 |
-
{
|
54 |
-
$this->current[$file->getName()] = $file->getContent();
|
55 |
-
return $this;
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* visit a block device and process it
|
60 |
-
*
|
61 |
-
* @param vfsStreamBlock $block
|
62 |
-
* @return vfsStreamStructureVisitor
|
63 |
-
*/
|
64 |
-
public function visitBlockDevice(vfsStreamBlock $block)
|
65 |
-
{
|
66 |
-
$this->current['[' . $block->getName() . ']'] = $block->getContent();
|
67 |
-
return $this;
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* visit a directory and process it
|
72 |
-
*
|
73 |
-
* @param vfsStreamDirectory $dir
|
74 |
-
* @return vfsStreamStructureVisitor
|
75 |
-
*/
|
76 |
-
public function visitDirectory(vfsStreamDirectory $dir)
|
77 |
-
{
|
78 |
-
$this->current[$dir->getName()] = array();
|
79 |
-
$tmp =& $this->current;
|
80 |
-
$this->current =& $tmp[$dir->getName()];
|
81 |
-
foreach ($dir as $child) {
|
82 |
-
$this->visit($child);
|
83 |
-
}
|
84 |
-
|
85 |
-
$this->current =& $tmp;
|
86 |
-
return $this;
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* returns structure of visited contents
|
91 |
-
*
|
92 |
-
* @return array
|
93 |
-
* @api
|
94 |
-
*/
|
95 |
-
public function getStructure()
|
96 |
-
{
|
97 |
-
return $this->structure;
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* resets structure so visitor could be reused
|
102 |
-
*
|
103 |
-
* @return vfsStreamStructureVisitor
|
104 |
-
*/
|
105 |
-
public function reset()
|
106 |
-
{
|
107 |
-
$this->structure = array();
|
108 |
-
$this->current =& $this->structure;
|
109 |
-
return $this;
|
110 |
-
}
|
111 |
-
}
|
112 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/main/php/org/bovigo/vfs/visitor/vfsStreamVisitor.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\visitor;
|
11 |
-
use org\bovigo\vfs\vfsStreamContent;
|
12 |
-
use org\bovigo\vfs\vfsStreamDirectory;
|
13 |
-
use org\bovigo\vfs\vfsStreamFile;
|
14 |
-
use org\bovigo\vfs\vfsStreamBlock;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Interface for a visitor to work on a vfsStream content structure.
|
18 |
-
*
|
19 |
-
* @since 0.10.0
|
20 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
21 |
-
*/
|
22 |
-
interface vfsStreamVisitor
|
23 |
-
{
|
24 |
-
/**
|
25 |
-
* visit a content and process it
|
26 |
-
*
|
27 |
-
* @param vfsStreamContent $content
|
28 |
-
* @return vfsStreamVisitor
|
29 |
-
*/
|
30 |
-
public function visit(vfsStreamContent $content);
|
31 |
-
|
32 |
-
/**
|
33 |
-
* visit a file and process it
|
34 |
-
*
|
35 |
-
* @param vfsStreamFile $file
|
36 |
-
* @return vfsStreamVisitor
|
37 |
-
*/
|
38 |
-
public function visitFile(vfsStreamFile $file);
|
39 |
-
|
40 |
-
/**
|
41 |
-
* visit a directory and process it
|
42 |
-
*
|
43 |
-
* @param vfsStreamDirectory $dir
|
44 |
-
* @return vfsStreamVisitor
|
45 |
-
*/
|
46 |
-
public function visitDirectory(vfsStreamDirectory $dir);
|
47 |
-
|
48 |
-
/**
|
49 |
-
* visit a block device and process it
|
50 |
-
*
|
51 |
-
* @param vfsStreamBlock $block
|
52 |
-
* @return vfsStreamVisitor
|
53 |
-
*/
|
54 |
-
public function visitBlockDevice(vfsStreamBlock $block);
|
55 |
-
}
|
56 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/DirectoryIterationTestCase.php
DELETED
@@ -1,318 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
require_once __DIR__ . '/vfsStreamWrapperBaseTestCase.php';
|
12 |
-
/**
|
13 |
-
* Test for directory iteration.
|
14 |
-
*
|
15 |
-
* @group dir
|
16 |
-
* @group iteration
|
17 |
-
*/
|
18 |
-
class DirectoryIterationTestCase extends vfsStreamWrapperBaseTestCase
|
19 |
-
{
|
20 |
-
/**
|
21 |
-
* clean up test environment
|
22 |
-
*/
|
23 |
-
public function tearDown()
|
24 |
-
{
|
25 |
-
vfsStream::enableDotfiles();
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* @return array
|
30 |
-
*/
|
31 |
-
public function provideSwitchWithExpectations()
|
32 |
-
{
|
33 |
-
return array(array(function() { vfsStream::disableDotfiles(); }, array('bar', 'baz2')),
|
34 |
-
array(function() { vfsStream::enableDotfiles(); }, array('.', '..', 'bar', 'baz2'))
|
35 |
-
);
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* assertion for directoy count
|
40 |
-
*
|
41 |
-
* @param int $expectedCount
|
42 |
-
* @param int $actualCount
|
43 |
-
*/
|
44 |
-
private function assertDirectoryCount($expectedCount, $actualCount)
|
45 |
-
{
|
46 |
-
$this->assertEquals($expectedCount,
|
47 |
-
$actualCount,
|
48 |
-
'Directory foo contains ' . $expectedCount . ' children, but got ' . $actualCount . ' children while iterating over directory contents'
|
49 |
-
);
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* @param \Closure $dotFilesSwitch
|
54 |
-
* @param string[] $expectedDirectories
|
55 |
-
* @test
|
56 |
-
* @dataProvider provideSwitchWithExpectations
|
57 |
-
*/
|
58 |
-
public function directoryIteration(\Closure $dotFilesSwitch, array $expectedDirectories)
|
59 |
-
{
|
60 |
-
$dotFilesSwitch();
|
61 |
-
$dir = dir($this->fooURL);
|
62 |
-
$i = 0;
|
63 |
-
while (false !== ($entry = $dir->read())) {
|
64 |
-
$i++;
|
65 |
-
$this->assertTrue(in_array($entry, $expectedDirectories));
|
66 |
-
}
|
67 |
-
|
68 |
-
$this->assertDirectoryCount(count($expectedDirectories), $i);
|
69 |
-
$dir->rewind();
|
70 |
-
$i = 0;
|
71 |
-
while (false !== ($entry = $dir->read())) {
|
72 |
-
$i++;
|
73 |
-
$this->assertTrue(in_array($entry, $expectedDirectories));
|
74 |
-
}
|
75 |
-
|
76 |
-
$this->assertDirectoryCount(count($expectedDirectories), $i);
|
77 |
-
$dir->close();
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* @param \Closure $dotFilesSwitch
|
82 |
-
* @param string[] $expectedDirectories
|
83 |
-
* @test
|
84 |
-
* @dataProvider provideSwitchWithExpectations
|
85 |
-
*/
|
86 |
-
public function directoryIterationWithDot(\Closure $dotFilesSwitch, array $expectedDirectories)
|
87 |
-
{
|
88 |
-
$dotFilesSwitch();
|
89 |
-
$dir = dir($this->fooURL . '/.');
|
90 |
-
$i = 0;
|
91 |
-
while (false !== ($entry = $dir->read())) {
|
92 |
-
$i++;
|
93 |
-
$this->assertTrue(in_array($entry, $expectedDirectories));
|
94 |
-
}
|
95 |
-
|
96 |
-
$this->assertDirectoryCount(count($expectedDirectories), $i);
|
97 |
-
$dir->rewind();
|
98 |
-
$i = 0;
|
99 |
-
while (false !== ($entry = $dir->read())) {
|
100 |
-
$i++;
|
101 |
-
$this->assertTrue(in_array($entry, $expectedDirectories));
|
102 |
-
}
|
103 |
-
|
104 |
-
$this->assertDirectoryCount(count($expectedDirectories), $i);
|
105 |
-
$dir->close();
|
106 |
-
}
|
107 |
-
|
108 |
-
/**
|
109 |
-
* assure that a directory iteration works as expected
|
110 |
-
*
|
111 |
-
* @param \Closure $dotFilesSwitch
|
112 |
-
* @param string[] $expectedDirectories
|
113 |
-
* @test
|
114 |
-
* @dataProvider provideSwitchWithExpectations
|
115 |
-
* @group regression
|
116 |
-
* @group bug_2
|
117 |
-
*/
|
118 |
-
public function directoryIterationWithOpenDir_Bug_2(\Closure $dotFilesSwitch, array $expectedDirectories)
|
119 |
-
{
|
120 |
-
$dotFilesSwitch();
|
121 |
-
$handle = opendir($this->fooURL);
|
122 |
-
$i = 0;
|
123 |
-
while (false !== ($entry = readdir($handle))) {
|
124 |
-
$i++;
|
125 |
-
$this->assertTrue(in_array($entry, $expectedDirectories));
|
126 |
-
}
|
127 |
-
|
128 |
-
$this->assertDirectoryCount(count($expectedDirectories), $i);
|
129 |
-
|
130 |
-
rewinddir($handle);
|
131 |
-
$i = 0;
|
132 |
-
while (false !== ($entry = readdir($handle))) {
|
133 |
-
$i++;
|
134 |
-
$this->assertTrue(in_array($entry, $expectedDirectories));
|
135 |
-
}
|
136 |
-
|
137 |
-
$this->assertDirectoryCount(count($expectedDirectories), $i);
|
138 |
-
closedir($handle);
|
139 |
-
}
|
140 |
-
|
141 |
-
/**
|
142 |
-
* assure that a directory iteration works as expected
|
143 |
-
*
|
144 |
-
* @author Christoph Bloemer
|
145 |
-
* @param \Closure $dotFilesSwitch
|
146 |
-
* @param string[] $expectedDirectories
|
147 |
-
* @test
|
148 |
-
* @dataProvider provideSwitchWithExpectations
|
149 |
-
* @group regression
|
150 |
-
* @group bug_4
|
151 |
-
*/
|
152 |
-
public function directoryIteration_Bug_4(\Closure $dotFilesSwitch, array $expectedDirectories)
|
153 |
-
{
|
154 |
-
$dotFilesSwitch();
|
155 |
-
$dir = $this->fooURL;
|
156 |
-
$list1 = array();
|
157 |
-
if ($handle = opendir($dir)) {
|
158 |
-
while (false !== ($listItem = readdir($handle))) {
|
159 |
-
if ('.' != $listItem && '..' != $listItem) {
|
160 |
-
if (is_file($dir . '/' . $listItem) === true) {
|
161 |
-
$list1[] = 'File:[' . $listItem . ']';
|
162 |
-
} elseif (is_dir($dir . '/' . $listItem) === true) {
|
163 |
-
$list1[] = 'Folder:[' . $listItem . ']';
|
164 |
-
}
|
165 |
-
}
|
166 |
-
}
|
167 |
-
|
168 |
-
closedir($handle);
|
169 |
-
}
|
170 |
-
|
171 |
-
$list2 = array();
|
172 |
-
if ($handle = opendir($dir)) {
|
173 |
-
while (false !== ($listItem = readdir($handle))) {
|
174 |
-
if ('.' != $listItem && '..' != $listItem) {
|
175 |
-
if (is_file($dir . '/' . $listItem) === true) {
|
176 |
-
$list2[] = 'File:[' . $listItem . ']';
|
177 |
-
} elseif (is_dir($dir . '/' . $listItem) === true) {
|
178 |
-
$list2[] = 'Folder:[' . $listItem . ']';
|
179 |
-
}
|
180 |
-
}
|
181 |
-
}
|
182 |
-
|
183 |
-
closedir($handle);
|
184 |
-
}
|
185 |
-
|
186 |
-
$this->assertEquals($list1, $list2);
|
187 |
-
$this->assertEquals(2, count($list1));
|
188 |
-
$this->assertEquals(2, count($list2));
|
189 |
-
}
|
190 |
-
|
191 |
-
/**
|
192 |
-
* assure that a directory iteration works as expected
|
193 |
-
*
|
194 |
-
* @param \Closure $dotFilesSwitch
|
195 |
-
* @param string[] $expectedDirectories
|
196 |
-
* @test
|
197 |
-
* @dataProvider provideSwitchWithExpectations
|
198 |
-
*/
|
199 |
-
public function directoryIterationShouldBeIndependent(\Closure $dotFilesSwitch, array $expectedDirectories)
|
200 |
-
{
|
201 |
-
$dotFilesSwitch();
|
202 |
-
$list1 = array();
|
203 |
-
$list2 = array();
|
204 |
-
$handle1 = opendir($this->fooURL);
|
205 |
-
if (false !== ($listItem = readdir($handle1))) {
|
206 |
-
$list1[] = $listItem;
|
207 |
-
}
|
208 |
-
|
209 |
-
$handle2 = opendir($this->fooURL);
|
210 |
-
if (false !== ($listItem = readdir($handle2))) {
|
211 |
-
$list2[] = $listItem;
|
212 |
-
}
|
213 |
-
|
214 |
-
if (false !== ($listItem = readdir($handle1))) {
|
215 |
-
$list1[] = $listItem;
|
216 |
-
}
|
217 |
-
|
218 |
-
if (false !== ($listItem = readdir($handle2))) {
|
219 |
-
$list2[] = $listItem;
|
220 |
-
}
|
221 |
-
|
222 |
-
closedir($handle1);
|
223 |
-
closedir($handle2);
|
224 |
-
$this->assertEquals($list1, $list2);
|
225 |
-
$this->assertEquals(2, count($list1));
|
226 |
-
$this->assertEquals(2, count($list2));
|
227 |
-
}
|
228 |
-
|
229 |
-
/**
|
230 |
-
* @test
|
231 |
-
* @group issue_50
|
232 |
-
*/
|
233 |
-
public function recursiveDirectoryIterationWithDotsEnabled()
|
234 |
-
{
|
235 |
-
vfsStream::enableDotfiles();
|
236 |
-
vfsStream::setup();
|
237 |
-
$structure = array(
|
238 |
-
'Core' => array(
|
239 |
-
'AbstractFactory' => array(
|
240 |
-
'test.php' => 'some text content',
|
241 |
-
'other.php' => 'Some more text content',
|
242 |
-
'Invalid.csv' => 'Something else',
|
243 |
-
),
|
244 |
-
'AnEmptyFolder' => array(),
|
245 |
-
'badlocation.php' => 'some bad content',
|
246 |
-
)
|
247 |
-
);
|
248 |
-
$root = vfsStream::create($structure);
|
249 |
-
$rootPath = vfsStream::url($root->getName());
|
250 |
-
|
251 |
-
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($rootPath),
|
252 |
-
\RecursiveIteratorIterator::CHILD_FIRST);
|
253 |
-
$pathes = array();
|
254 |
-
foreach ($iterator as $fullFileName => $fileSPLObject) {
|
255 |
-
$pathes[] = $fullFileName;
|
256 |
-
}
|
257 |
-
|
258 |
-
$this->assertEquals(array('vfs://root'.DIRECTORY_SEPARATOR.'.',
|
259 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'..',
|
260 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'.',
|
261 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'..',
|
262 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'.',
|
263 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'..',
|
264 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'test.php',
|
265 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'other.php',
|
266 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'Invalid.csv',
|
267 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory',
|
268 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AnEmptyFolder'.DIRECTORY_SEPARATOR.'.',
|
269 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AnEmptyFolder'.DIRECTORY_SEPARATOR.'..',
|
270 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AnEmptyFolder',
|
271 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'badlocation.php',
|
272 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'
|
273 |
-
),
|
274 |
-
$pathes
|
275 |
-
);
|
276 |
-
}
|
277 |
-
|
278 |
-
/**
|
279 |
-
* @test
|
280 |
-
* @group issue_50
|
281 |
-
*/
|
282 |
-
public function recursiveDirectoryIterationWithDotsDisabled()
|
283 |
-
{
|
284 |
-
vfsStream::disableDotfiles();
|
285 |
-
vfsStream::setup();
|
286 |
-
$structure = array(
|
287 |
-
'Core' => array(
|
288 |
-
'AbstractFactory' => array(
|
289 |
-
'test.php' => 'some text content',
|
290 |
-
'other.php' => 'Some more text content',
|
291 |
-
'Invalid.csv' => 'Something else',
|
292 |
-
),
|
293 |
-
'AnEmptyFolder' => array(),
|
294 |
-
'badlocation.php' => 'some bad content',
|
295 |
-
)
|
296 |
-
);
|
297 |
-
$root = vfsStream::create($structure);
|
298 |
-
$rootPath = vfsStream::url($root->getName());
|
299 |
-
|
300 |
-
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($rootPath),
|
301 |
-
\RecursiveIteratorIterator::CHILD_FIRST);
|
302 |
-
$pathes = array();
|
303 |
-
foreach ($iterator as $fullFileName => $fileSPLObject) {
|
304 |
-
$pathes[] = $fullFileName;
|
305 |
-
}
|
306 |
-
|
307 |
-
$this->assertEquals(array('vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'test.php',
|
308 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'other.php',
|
309 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory'.DIRECTORY_SEPARATOR.'Invalid.csv',
|
310 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AbstractFactory',
|
311 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'AnEmptyFolder',
|
312 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'.DIRECTORY_SEPARATOR.'badlocation.php',
|
313 |
-
'vfs://root'.DIRECTORY_SEPARATOR.'Core'
|
314 |
-
),
|
315 |
-
$pathes
|
316 |
-
);
|
317 |
-
}
|
318 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/Issue104TestCase.php
DELETED
@@ -1,52 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* @group issue_104
|
13 |
-
* @since 1.5.0
|
14 |
-
*/
|
15 |
-
class Issue104TestCase extends \PHPUnit_Framework_TestCase
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* @test
|
19 |
-
*/
|
20 |
-
public function vfsStreamCanHandleUrlEncodedPathPassedByInternalPhpCode()
|
21 |
-
{
|
22 |
-
$structure = array('foo bar' => array(
|
23 |
-
'schema.xsd' => '<xs:schema targetNamespace="http://www.example.com" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
24 |
-
<xs:complexType name="myType"></xs:complexType>
|
25 |
-
</xs:schema>',
|
26 |
-
)
|
27 |
-
);
|
28 |
-
vfsStream::setup('root', null, $structure);
|
29 |
-
$doc = new \DOMDocument();
|
30 |
-
$this->assertTrue($doc->load(vfsStream::url('root/foo bar/schema.xsd')));
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* @test
|
35 |
-
*/
|
36 |
-
public function vfsStreamCanHandleUrlEncodedPath()
|
37 |
-
{
|
38 |
-
$content = '<xs:schema targetNamespace="http://www.example.com" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
39 |
-
<xs:complexType name="myType"></xs:complexType>
|
40 |
-
</xs:schema>';
|
41 |
-
$structure = array('foo bar' => array(
|
42 |
-
'schema.xsd' => $content,
|
43 |
-
)
|
44 |
-
);
|
45 |
-
vfsStream::setup('root', null, $structure);
|
46 |
-
$this->assertEquals(
|
47 |
-
$content,
|
48 |
-
file_get_contents(vfsStream::url('root/foo%20bar/schema.xsd'))
|
49 |
-
);
|
50 |
-
}
|
51 |
-
}
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/PermissionsTestCase.php
DELETED
@@ -1,118 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for permissions related functionality.
|
13 |
-
*
|
14 |
-
* @group permissions
|
15 |
-
*/
|
16 |
-
class PermissionsTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* @type vfsStreamDirectory
|
20 |
-
*/
|
21 |
-
private $root;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* set up test environment
|
25 |
-
*/
|
26 |
-
public function setup()
|
27 |
-
{
|
28 |
-
$structure = array('test_directory' => array('test.file' => ''));
|
29 |
-
$this->root = vfsStream::setup('root', null, $structure);
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @test
|
34 |
-
* @group issue_52
|
35 |
-
*/
|
36 |
-
public function canNotChangePermissionWhenDirectoryNotWriteable()
|
37 |
-
{
|
38 |
-
$this->root->getChild('test_directory')->chmod(0444);
|
39 |
-
$this->assertFalse(@chmod(vfsStream::url('root/test_directory/test.file'), 0777));
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* @test
|
44 |
-
* @group issue_53
|
45 |
-
*/
|
46 |
-
public function canNotChangePermissionWhenFileNotOwned()
|
47 |
-
{
|
48 |
-
$this->root->getChild('test_directory')->getChild('test.file')->chown(vfsStream::OWNER_USER_1);
|
49 |
-
$this->assertFalse(@chmod(vfsStream::url('root/test_directory/test.file'), 0777));
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* @test
|
54 |
-
* @group issue_52
|
55 |
-
*/
|
56 |
-
public function canNotChangeOwnerWhenDirectoryNotWriteable()
|
57 |
-
{
|
58 |
-
$this->root->getChild('test_directory')->chmod(0444);
|
59 |
-
$this->assertFalse(@chown(vfsStream::url('root/test_directory/test.file'), vfsStream::OWNER_USER_2));
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* @test
|
64 |
-
* @group issue_53
|
65 |
-
*/
|
66 |
-
public function canNotChangeOwnerWhenFileNotOwned()
|
67 |
-
{
|
68 |
-
$this->root->getChild('test_directory')->getChild('test.file')->chown(vfsStream::OWNER_USER_1);
|
69 |
-
$this->assertFalse(@chown(vfsStream::url('root/test_directory/test.file'), vfsStream::OWNER_USER_2));
|
70 |
-
}
|
71 |
-
|
72 |
-
/**
|
73 |
-
* @test
|
74 |
-
* @group issue_52
|
75 |
-
*/
|
76 |
-
public function canNotChangeGroupWhenDirectoryNotWriteable()
|
77 |
-
{
|
78 |
-
$this->root->getChild('test_directory')->chmod(0444);
|
79 |
-
$this->assertFalse(@chgrp(vfsStream::url('root/test_directory/test.file'), vfsStream::GROUP_USER_2));
|
80 |
-
}
|
81 |
-
|
82 |
-
/**
|
83 |
-
* @test
|
84 |
-
* @group issue_53
|
85 |
-
*/
|
86 |
-
public function canNotChangeGroupWhenFileNotOwned()
|
87 |
-
{
|
88 |
-
$this->root->getChild('test_directory')->getChild('test.file')->chown(vfsStream::OWNER_USER_1);
|
89 |
-
$this->assertFalse(@chgrp(vfsStream::url('root/test_directory/test.file'), vfsStream::GROUP_USER_2));
|
90 |
-
}
|
91 |
-
|
92 |
-
/**
|
93 |
-
* @test
|
94 |
-
* @group issue_107
|
95 |
-
* @expectedException PHPUnit_Framework_Error
|
96 |
-
* @expectedExceptionMessage Can not create new file in non-writable path root
|
97 |
-
* @requires PHP 5.4
|
98 |
-
* @since 1.5.0
|
99 |
-
*/
|
100 |
-
public function touchOnNonWriteableDirectoryTriggersError()
|
101 |
-
{
|
102 |
-
$this->root->chmod(0555);
|
103 |
-
touch($this->root->url() . '/touch.txt');
|
104 |
-
}
|
105 |
-
|
106 |
-
/**
|
107 |
-
* @test
|
108 |
-
* @group issue_107
|
109 |
-
* @requires PHP 5.4
|
110 |
-
* @since 1.5.0
|
111 |
-
*/
|
112 |
-
public function touchOnNonWriteableDirectoryDoesNotCreateFile()
|
113 |
-
{
|
114 |
-
$this->root->chmod(0555);
|
115 |
-
$this->assertFalse(@touch($this->root->url() . '/touch.txt'));
|
116 |
-
$this->assertFalse($this->root->hasChild('touch.txt'));
|
117 |
-
}
|
118 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/QuotaTestCase.php
DELETED
@@ -1,81 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\Quota.
|
13 |
-
*
|
14 |
-
* @group issue_35
|
15 |
-
*/
|
16 |
-
class QuotaTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* instance to test
|
20 |
-
*
|
21 |
-
* @type Quota
|
22 |
-
*/
|
23 |
-
private $quota;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* set up test environment
|
27 |
-
*/
|
28 |
-
public function setUp()
|
29 |
-
{
|
30 |
-
$this->quota = new Quota(10);
|
31 |
-
}
|
32 |
-
|
33 |
-
/**
|
34 |
-
* @test
|
35 |
-
*/
|
36 |
-
public function unlimitedQuotaIsNotLimited()
|
37 |
-
{
|
38 |
-
$this->assertFalse(Quota::unlimited()->isLimited());
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @test
|
43 |
-
*/
|
44 |
-
public function limitedQuotaIsLimited()
|
45 |
-
{
|
46 |
-
$this->assertTrue($this->quota->isLimited());
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* @test
|
51 |
-
*/
|
52 |
-
public function unlimitedQuotaHasAlwaysSpaceLeft()
|
53 |
-
{
|
54 |
-
$this->assertEquals(303, Quota::unlimited()->spaceLeft(303));
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @test
|
59 |
-
*/
|
60 |
-
public function hasNoSpaceLeftWhenUsedSpaceIsLargerThanQuota()
|
61 |
-
{
|
62 |
-
$this->assertEquals(0, $this->quota->spaceLeft(11));
|
63 |
-
}
|
64 |
-
|
65 |
-
/**
|
66 |
-
* @test
|
67 |
-
*/
|
68 |
-
public function hasNoSpaceLeftWhenUsedSpaceIsEqualToQuota()
|
69 |
-
{
|
70 |
-
$this->assertEquals(0, $this->quota->spaceLeft(10));
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* @test
|
75 |
-
*/
|
76 |
-
public function hasSpaceLeftWhenUsedSpaceIsLowerThanQuota()
|
77 |
-
{
|
78 |
-
$this->assertEquals(1, $this->quota->spaceLeft(9));
|
79 |
-
}
|
80 |
-
}
|
81 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/UnlinkTestCase.php
DELETED
@@ -1,58 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for unlink() functionality.
|
13 |
-
*
|
14 |
-
* @group unlink
|
15 |
-
*/
|
16 |
-
class UnlinkTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* @test
|
20 |
-
* @group issue_51
|
21 |
-
*/
|
22 |
-
public function canRemoveNonWritableFileFromWritableDirectory()
|
23 |
-
{
|
24 |
-
$structure = array('test_directory' => array('test.file' => ''));
|
25 |
-
$root = vfsStream::setup('root', null, $structure);
|
26 |
-
$root->getChild('test_directory')->chmod(0777);
|
27 |
-
$root->getChild('test_directory')->getChild('test.file')->chmod(0444);
|
28 |
-
$this->assertTrue(@unlink(vfsStream::url('root/test_directory/test.file')));
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* @test
|
33 |
-
* @group issue_51
|
34 |
-
*/
|
35 |
-
public function canNotRemoveWritableFileFromNonWritableDirectory()
|
36 |
-
{
|
37 |
-
$structure = array('test_directory' => array('test.file' => ''));
|
38 |
-
$root = vfsStream::setup('root', null, $structure);
|
39 |
-
$root->getChild('test_directory')->chmod(0444);
|
40 |
-
$root->getChild('test_directory')->getChild('test.file')->chmod(0777);
|
41 |
-
$this->assertFalse(@unlink(vfsStream::url('root/test_directory/test.file')));
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @test
|
46 |
-
* @since 1.4.0
|
47 |
-
* @group issue_68
|
48 |
-
*/
|
49 |
-
public function unlinkNonExistingFileTriggersError()
|
50 |
-
{
|
51 |
-
vfsStream::setup();
|
52 |
-
try {
|
53 |
-
$this->assertFalse(unlink('vfs://root/foo.txt'));
|
54 |
-
} catch (\PHPUnit_Framework_Error $fe) {
|
55 |
-
$this->assertEquals('unlink(vfs://root/foo.txt): No such file or directory', $fe->getMessage());
|
56 |
-
}
|
57 |
-
}
|
58 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/content/LargeFileContentTestCase.php
DELETED
@@ -1,225 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\content;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\content\LargeFileContent.
|
13 |
-
*
|
14 |
-
* @since 1.3.0
|
15 |
-
* @group issue_79
|
16 |
-
*/
|
17 |
-
class LargeFileContentTestCase extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* instance to test
|
21 |
-
*
|
22 |
-
* @type LargeFileContent
|
23 |
-
*/
|
24 |
-
private $largeFileContent;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* set up test environment
|
28 |
-
*/
|
29 |
-
public function setUp()
|
30 |
-
{
|
31 |
-
$this->largeFileContent = new LargeFileContent(100);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @test
|
36 |
-
*/
|
37 |
-
public function hasSizeOriginallyGiven()
|
38 |
-
{
|
39 |
-
$this->assertEquals(100, $this->largeFileContent->size());
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* @test
|
44 |
-
*/
|
45 |
-
public function contentIsFilledUpWithSpacesIfNoDataWritten()
|
46 |
-
{
|
47 |
-
$this->assertEquals(
|
48 |
-
str_repeat(' ', 100),
|
49 |
-
$this->largeFileContent->content()
|
50 |
-
);
|
51 |
-
}
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @test
|
55 |
-
*/
|
56 |
-
public function readReturnsSpacesWhenNothingWrittenAtOffset()
|
57 |
-
{
|
58 |
-
$this->assertEquals(
|
59 |
-
str_repeat(' ', 10),
|
60 |
-
$this->largeFileContent->read(10)
|
61 |
-
);
|
62 |
-
}
|
63 |
-
|
64 |
-
/**
|
65 |
-
* @test
|
66 |
-
*/
|
67 |
-
public function readReturnsContentFilledWithSpaces()
|
68 |
-
{
|
69 |
-
$this->largeFileContent->write('foobarbaz');
|
70 |
-
$this->largeFileContent->seek(0, SEEK_SET);
|
71 |
-
$this->assertEquals(
|
72 |
-
'foobarbaz ',
|
73 |
-
$this->largeFileContent->read(10)
|
74 |
-
);
|
75 |
-
}
|
76 |
-
|
77 |
-
/**
|
78 |
-
* @test
|
79 |
-
*/
|
80 |
-
public function writesDataAtStartWhenOffsetNotMoved()
|
81 |
-
{
|
82 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
83 |
-
$this->assertEquals(
|
84 |
-
'foobarbaz' . str_repeat(' ', 91),
|
85 |
-
$this->largeFileContent->content()
|
86 |
-
);
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* @test
|
91 |
-
*/
|
92 |
-
public function writeDataAtStartDoesNotIncreaseSize()
|
93 |
-
{
|
94 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
95 |
-
$this->assertEquals(100, $this->largeFileContent->size());
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* @test
|
100 |
-
*/
|
101 |
-
public function writesDataAtOffsetWhenOffsetMoved()
|
102 |
-
{
|
103 |
-
$this->largeFileContent->seek(50, SEEK_SET);
|
104 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
105 |
-
$this->assertEquals(
|
106 |
-
str_repeat(' ', 50) . 'foobarbaz' . str_repeat(' ', 41),
|
107 |
-
$this->largeFileContent->content()
|
108 |
-
);
|
109 |
-
}
|
110 |
-
|
111 |
-
/**
|
112 |
-
* @test
|
113 |
-
*/
|
114 |
-
public function writeDataInBetweenDoesNotIncreaseSize()
|
115 |
-
{
|
116 |
-
$this->largeFileContent->seek(50, SEEK_SET);
|
117 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
118 |
-
$this->assertEquals(100, $this->largeFileContent->size());
|
119 |
-
}
|
120 |
-
|
121 |
-
/**
|
122 |
-
* @test
|
123 |
-
*/
|
124 |
-
public function writesDataOverEndWhenOffsetAndDataLengthLargerThanSize()
|
125 |
-
{
|
126 |
-
$this->largeFileContent->seek(95, SEEK_SET);
|
127 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
128 |
-
$this->assertEquals(
|
129 |
-
str_repeat(' ', 95) . 'foobarbaz',
|
130 |
-
$this->largeFileContent->content()
|
131 |
-
);
|
132 |
-
}
|
133 |
-
|
134 |
-
/**
|
135 |
-
* @test
|
136 |
-
*/
|
137 |
-
public function writeDataOverLastOffsetIncreasesSize()
|
138 |
-
{
|
139 |
-
$this->largeFileContent->seek(95, SEEK_SET);
|
140 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
141 |
-
$this->assertEquals(104, $this->largeFileContent->size());
|
142 |
-
}
|
143 |
-
|
144 |
-
/**
|
145 |
-
* @test
|
146 |
-
*/
|
147 |
-
public function writesDataAfterEndWhenOffsetAfterEnd()
|
148 |
-
{
|
149 |
-
$this->largeFileContent->seek(0, SEEK_END);
|
150 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
151 |
-
$this->assertEquals(
|
152 |
-
str_repeat(' ', 100) . 'foobarbaz',
|
153 |
-
$this->largeFileContent->content()
|
154 |
-
);
|
155 |
-
}
|
156 |
-
|
157 |
-
/**
|
158 |
-
* @test
|
159 |
-
*/
|
160 |
-
public function writeDataAfterLastOffsetIncreasesSize()
|
161 |
-
{
|
162 |
-
$this->largeFileContent->seek(0, SEEK_END);
|
163 |
-
$this->assertEquals(9, $this->largeFileContent->write('foobarbaz'));
|
164 |
-
$this->assertEquals(109, $this->largeFileContent->size());
|
165 |
-
}
|
166 |
-
|
167 |
-
/**
|
168 |
-
* @test
|
169 |
-
*/
|
170 |
-
public function truncateReducesSize()
|
171 |
-
{
|
172 |
-
$this->assertTrue($this->largeFileContent->truncate(50));
|
173 |
-
$this->assertEquals(50, $this->largeFileContent->size());
|
174 |
-
}
|
175 |
-
|
176 |
-
/**
|
177 |
-
* @test
|
178 |
-
*/
|
179 |
-
public function truncateRemovesWrittenContentAfterOffset()
|
180 |
-
{
|
181 |
-
$this->largeFileContent->seek(45, SEEK_SET);
|
182 |
-
$this->largeFileContent->write('foobarbaz');
|
183 |
-
$this->assertTrue($this->largeFileContent->truncate(50));
|
184 |
-
$this->assertEquals(
|
185 |
-
str_repeat(' ', 45) . 'fooba',
|
186 |
-
$this->largeFileContent->content()
|
187 |
-
);
|
188 |
-
}
|
189 |
-
|
190 |
-
/**
|
191 |
-
* @test
|
192 |
-
*/
|
193 |
-
public function createInstanceWithKilobytes()
|
194 |
-
{
|
195 |
-
$this->assertEquals(
|
196 |
-
100 * 1024,
|
197 |
-
LargeFileContent::withKilobytes(100)
|
198 |
-
->size()
|
199 |
-
);
|
200 |
-
}
|
201 |
-
|
202 |
-
/**
|
203 |
-
* @test
|
204 |
-
*/
|
205 |
-
public function createInstanceWithMegabytes()
|
206 |
-
{
|
207 |
-
$this->assertEquals(
|
208 |
-
100 * 1024 * 1024,
|
209 |
-
LargeFileContent::withMegabytes(100)
|
210 |
-
->size()
|
211 |
-
);
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* @test
|
216 |
-
*/
|
217 |
-
public function createInstanceWithGigabytes()
|
218 |
-
{
|
219 |
-
$this->assertEquals(
|
220 |
-
100 * 1024 * 1024 * 1024,
|
221 |
-
LargeFileContent::withGigabytes(100)
|
222 |
-
->size()
|
223 |
-
);
|
224 |
-
}
|
225 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/content/StringBasedFileContentTestCase.php
DELETED
@@ -1,230 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\content;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\content\StringBasedFileContent.
|
13 |
-
*
|
14 |
-
* @since 1.3.0
|
15 |
-
* @group issue_79
|
16 |
-
*/
|
17 |
-
class StringBasedFileContentTestCase extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* instance to test
|
21 |
-
*
|
22 |
-
* @type StringBasedFileContent
|
23 |
-
*/
|
24 |
-
private $stringBasedFileContent;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* set up test environment
|
28 |
-
*/
|
29 |
-
public function setUp()
|
30 |
-
{
|
31 |
-
$this->stringBasedFileContent = new StringBasedFileContent('foobarbaz');
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @test
|
36 |
-
*/
|
37 |
-
public function hasContentOriginallySet()
|
38 |
-
{
|
39 |
-
$this->assertEquals('foobarbaz', $this->stringBasedFileContent->content());
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* @test
|
44 |
-
*/
|
45 |
-
public function hasNotReachedEofAfterCreation()
|
46 |
-
{
|
47 |
-
$this->assertFalse($this->stringBasedFileContent->eof());
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* @test
|
52 |
-
*/
|
53 |
-
public function sizeEqualsLengthOfGivenString()
|
54 |
-
{
|
55 |
-
$this->assertEquals(9, $this->stringBasedFileContent->size());
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* @test
|
60 |
-
*/
|
61 |
-
public function readReturnsSubstringWithRequestedLength()
|
62 |
-
{
|
63 |
-
$this->assertEquals('foo', $this->stringBasedFileContent->read(3));
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* @test
|
68 |
-
*/
|
69 |
-
public function readMovesOffset()
|
70 |
-
{
|
71 |
-
$this->assertEquals('foo', $this->stringBasedFileContent->read(3));
|
72 |
-
$this->assertEquals('bar', $this->stringBasedFileContent->read(3));
|
73 |
-
$this->assertEquals('baz', $this->stringBasedFileContent->read(3));
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* @test
|
78 |
-
*/
|
79 |
-
public function reaMoreThanSizeReturnsWholeContent()
|
80 |
-
{
|
81 |
-
$this->assertEquals('foobarbaz', $this->stringBasedFileContent->read(10));
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* @test
|
86 |
-
*/
|
87 |
-
public function readAfterEndReturnsEmptyString()
|
88 |
-
{
|
89 |
-
$this->stringBasedFileContent->read(9);
|
90 |
-
$this->assertEquals('', $this->stringBasedFileContent->read(3));
|
91 |
-
}
|
92 |
-
|
93 |
-
/**
|
94 |
-
* @test
|
95 |
-
*/
|
96 |
-
public function readDoesNotChangeSize()
|
97 |
-
{
|
98 |
-
$this->stringBasedFileContent->read(3);
|
99 |
-
$this->assertEquals(9, $this->stringBasedFileContent->size());
|
100 |
-
}
|
101 |
-
|
102 |
-
/**
|
103 |
-
* @test
|
104 |
-
*/
|
105 |
-
public function readLessThenSizeDoesNotReachEof()
|
106 |
-
{
|
107 |
-
$this->stringBasedFileContent->read(3);
|
108 |
-
$this->assertFalse($this->stringBasedFileContent->eof());
|
109 |
-
}
|
110 |
-
|
111 |
-
/**
|
112 |
-
* @test
|
113 |
-
*/
|
114 |
-
public function readSizeReachesEof()
|
115 |
-
{
|
116 |
-
$this->stringBasedFileContent->read(9);
|
117 |
-
$this->assertTrue($this->stringBasedFileContent->eof());
|
118 |
-
}
|
119 |
-
|
120 |
-
/**
|
121 |
-
* @test
|
122 |
-
*/
|
123 |
-
public function readMoreThanSizeReachesEof()
|
124 |
-
{
|
125 |
-
$this->stringBasedFileContent->read(10);
|
126 |
-
$this->assertTrue($this->stringBasedFileContent->eof());
|
127 |
-
}
|
128 |
-
|
129 |
-
/**
|
130 |
-
* @test
|
131 |
-
*/
|
132 |
-
public function seekWithInvalidOptionReturnsFalse()
|
133 |
-
{
|
134 |
-
$this->assertFalse($this->stringBasedFileContent->seek(0, 55));
|
135 |
-
}
|
136 |
-
|
137 |
-
/**
|
138 |
-
* @test
|
139 |
-
*/
|
140 |
-
public function canSeekToGivenOffset()
|
141 |
-
{
|
142 |
-
$this->assertTrue($this->stringBasedFileContent->seek(5, SEEK_SET));
|
143 |
-
$this->assertEquals('rbaz', $this->stringBasedFileContent->read(10));
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* @test
|
148 |
-
*/
|
149 |
-
public function canSeekFromCurrentOffset()
|
150 |
-
{
|
151 |
-
$this->assertTrue($this->stringBasedFileContent->seek(5, SEEK_SET));
|
152 |
-
$this->assertTrue($this->stringBasedFileContent->seek(2, SEEK_CUR));
|
153 |
-
$this->assertEquals('az', $this->stringBasedFileContent->read(10));
|
154 |
-
}
|
155 |
-
|
156 |
-
/**
|
157 |
-
* @test
|
158 |
-
*/
|
159 |
-
public function canSeekToEnd()
|
160 |
-
{
|
161 |
-
$this->assertTrue($this->stringBasedFileContent->seek(0, SEEK_END));
|
162 |
-
$this->assertEquals('', $this->stringBasedFileContent->read(10));
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* @test
|
167 |
-
*/
|
168 |
-
public function writeOverwritesExistingContentWhenOffsetNotAtEof()
|
169 |
-
{
|
170 |
-
$this->assertEquals(3, $this->stringBasedFileContent->write('bar'));
|
171 |
-
$this->assertEquals('barbarbaz', $this->stringBasedFileContent->content());
|
172 |
-
}
|
173 |
-
|
174 |
-
/**
|
175 |
-
* @test
|
176 |
-
*/
|
177 |
-
public function writeAppendsContentWhenOffsetAtEof()
|
178 |
-
{
|
179 |
-
$this->assertTrue($this->stringBasedFileContent->seek(0, SEEK_END));
|
180 |
-
$this->assertEquals(3, $this->stringBasedFileContent->write('bar'));
|
181 |
-
$this->assertEquals('foobarbazbar', $this->stringBasedFileContent->content());
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* @test
|
186 |
-
* @group issue_33
|
187 |
-
* @since 1.1.0
|
188 |
-
*/
|
189 |
-
public function truncateRemovesSuperflouosContent()
|
190 |
-
{
|
191 |
-
$this->assertTrue($this->stringBasedFileContent->truncate(6));
|
192 |
-
$this->assertEquals('foobar', $this->stringBasedFileContent->content());
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* @test
|
197 |
-
* @group issue_33
|
198 |
-
* @since 1.1.0
|
199 |
-
*/
|
200 |
-
public function truncateDecreasesSize()
|
201 |
-
{
|
202 |
-
$this->assertTrue($this->stringBasedFileContent->truncate(6));
|
203 |
-
$this->assertEquals(6, $this->stringBasedFileContent->size());
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* @test
|
208 |
-
* @group issue_33
|
209 |
-
* @since 1.1.0
|
210 |
-
*/
|
211 |
-
public function truncateToGreaterSizeAddsZeroBytes()
|
212 |
-
{
|
213 |
-
$this->assertTrue($this->stringBasedFileContent->truncate(25));
|
214 |
-
$this->assertEquals(
|
215 |
-
"foobarbaz\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
|
216 |
-
$this->stringBasedFileContent->content()
|
217 |
-
);
|
218 |
-
}
|
219 |
-
|
220 |
-
/**
|
221 |
-
* @test
|
222 |
-
* @group issue_33
|
223 |
-
* @since 1.1.0
|
224 |
-
*/
|
225 |
-
public function truncateToGreaterSizeIncreasesSize()
|
226 |
-
{
|
227 |
-
$this->assertTrue($this->stringBasedFileContent->truncate(25));
|
228 |
-
$this->assertEquals(25, $this->stringBasedFileContent->size());
|
229 |
-
}
|
230 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/proxy/vfsStreamWrapperRecordingProxy.php
DELETED
@@ -1,326 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Stream wrapper to mock file system requests.
|
13 |
-
*
|
14 |
-
* @since 0.10.0
|
15 |
-
*/
|
16 |
-
class vfsStreamWrapperRecordingProxy extends vfsStreamWrapper
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* list of called methods for a stream
|
20 |
-
*
|
21 |
-
* @var array
|
22 |
-
*/
|
23 |
-
protected static $calledMethods = array();
|
24 |
-
/**
|
25 |
-
* currently opened path
|
26 |
-
*
|
27 |
-
* @var string
|
28 |
-
*/
|
29 |
-
protected $path;
|
30 |
-
|
31 |
-
/**
|
32 |
-
* records method call for given path
|
33 |
-
*
|
34 |
-
* @param string $method
|
35 |
-
* @param string $path
|
36 |
-
*/
|
37 |
-
protected static function recordMethodCall($method, $path)
|
38 |
-
{
|
39 |
-
if (isset(self::$calledMethods[$path]) === false) {
|
40 |
-
self::$calledMethods[$path] = array();
|
41 |
-
}
|
42 |
-
|
43 |
-
self::$calledMethods[$path][] = $method;
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* returns recorded method calls for given path
|
48 |
-
*
|
49 |
-
* @param string $path
|
50 |
-
* @return array<string>
|
51 |
-
*/
|
52 |
-
public static function getMethodCalls($path)
|
53 |
-
{
|
54 |
-
if (isset(self::$calledMethods[$path]) === true) {
|
55 |
-
return self::$calledMethods[$path];
|
56 |
-
}
|
57 |
-
|
58 |
-
return array();
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* helper method for setting up vfsStream with the proxy
|
63 |
-
*
|
64 |
-
* @param string $rootDirName optional name of root directory
|
65 |
-
* @param int $permissions optional file permissions of root directory
|
66 |
-
* @return vfsStreamDirectory
|
67 |
-
* @throws vfsStreamException
|
68 |
-
*/
|
69 |
-
public static function setup($rootDirName = 'root', $permissions = null)
|
70 |
-
{
|
71 |
-
self::$root = vfsStream::newDirectory($rootDirName, $permissions);
|
72 |
-
if (true === self::$registered) {
|
73 |
-
return self::$root;
|
74 |
-
}
|
75 |
-
|
76 |
-
if (@stream_wrapper_register(vfsStream::SCHEME, __CLASS__) === false) {
|
77 |
-
throw new vfsStreamException('A handler has already been registered for the ' . vfsStream::SCHEME . ' protocol.');
|
78 |
-
}
|
79 |
-
|
80 |
-
self::$registered = true;
|
81 |
-
return self::$root;
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* open the stream
|
86 |
-
*
|
87 |
-
* @param string $path the path to open
|
88 |
-
* @param string $mode mode for opening
|
89 |
-
* @param string $options options for opening
|
90 |
-
* @param string $opened_path full path that was actually opened
|
91 |
-
* @return bool
|
92 |
-
*/
|
93 |
-
public function stream_open($path, $mode, $options, $opened_path)
|
94 |
-
{
|
95 |
-
$this->path = $path;
|
96 |
-
self::recordMethodCall('stream_open', $this->path);
|
97 |
-
return parent::stream_open($path, $mode, $options, $opened_path);
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* closes the stream
|
102 |
-
*/
|
103 |
-
public function stream_close()
|
104 |
-
{
|
105 |
-
self::recordMethodCall('stream_close', $this->path);
|
106 |
-
return parent::stream_close();
|
107 |
-
}
|
108 |
-
|
109 |
-
/**
|
110 |
-
* read the stream up to $count bytes
|
111 |
-
*
|
112 |
-
* @param int $count amount of bytes to read
|
113 |
-
* @return string
|
114 |
-
*/
|
115 |
-
public function stream_read($count)
|
116 |
-
{
|
117 |
-
self::recordMethodCall('stream_read', $this->path);
|
118 |
-
return parent::stream_read($count);
|
119 |
-
}
|
120 |
-
|
121 |
-
/**
|
122 |
-
* writes data into the stream
|
123 |
-
*
|
124 |
-
* @param string $data
|
125 |
-
* @return int amount of bytes written
|
126 |
-
*/
|
127 |
-
public function stream_write($data)
|
128 |
-
{
|
129 |
-
self::recordMethodCall('stream_write', $this->path);
|
130 |
-
return parent::stream_write($data);
|
131 |
-
}
|
132 |
-
|
133 |
-
/**
|
134 |
-
* checks whether stream is at end of file
|
135 |
-
*
|
136 |
-
* @return bool
|
137 |
-
*/
|
138 |
-
public function stream_eof()
|
139 |
-
{
|
140 |
-
self::recordMethodCall('stream_eof', $this->path);
|
141 |
-
return parent::stream_eof();
|
142 |
-
}
|
143 |
-
|
144 |
-
/**
|
145 |
-
* returns the current position of the stream
|
146 |
-
*
|
147 |
-
* @return int
|
148 |
-
*/
|
149 |
-
public function stream_tell()
|
150 |
-
{
|
151 |
-
self::recordMethodCall('stream_tell', $this->path);
|
152 |
-
return parent::stream_tell();
|
153 |
-
}
|
154 |
-
|
155 |
-
/**
|
156 |
-
* seeks to the given offset
|
157 |
-
*
|
158 |
-
* @param int $offset
|
159 |
-
* @param int $whence
|
160 |
-
* @return bool
|
161 |
-
*/
|
162 |
-
public function stream_seek($offset, $whence)
|
163 |
-
{
|
164 |
-
self::recordMethodCall('stream_seek', $this->path);
|
165 |
-
return parent::stream_seek($offset, $whence);
|
166 |
-
}
|
167 |
-
|
168 |
-
/**
|
169 |
-
* flushes unstored data into storage
|
170 |
-
*
|
171 |
-
* @return bool
|
172 |
-
*/
|
173 |
-
public function stream_flush()
|
174 |
-
{
|
175 |
-
self::recordMethodCall('stream_flush', $this->path);
|
176 |
-
return parent::stream_flush();
|
177 |
-
}
|
178 |
-
|
179 |
-
/**
|
180 |
-
* returns status of stream
|
181 |
-
*
|
182 |
-
* @return array
|
183 |
-
*/
|
184 |
-
public function stream_stat()
|
185 |
-
{
|
186 |
-
self::recordMethodCall('stream_stat', $this->path);
|
187 |
-
return parent::stream_stat();
|
188 |
-
}
|
189 |
-
|
190 |
-
/**
|
191 |
-
* retrieve the underlaying resource
|
192 |
-
*
|
193 |
-
* @param int $cast_as
|
194 |
-
* @return bool
|
195 |
-
*/
|
196 |
-
public function stream_cast($cast_as)
|
197 |
-
{
|
198 |
-
self::recordMethodCall('stream_cast', $this->path);
|
199 |
-
return parent::stream_cast($cast_as);
|
200 |
-
}
|
201 |
-
|
202 |
-
/**
|
203 |
-
* set lock status for stream
|
204 |
-
*
|
205 |
-
* @param int $operation
|
206 |
-
* @return bool
|
207 |
-
*/
|
208 |
-
public function stream_lock($operation)
|
209 |
-
{
|
210 |
-
self::recordMethodCall('stream_link', $this->path);
|
211 |
-
return parent::stream_lock($operation);
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* remove the data under the given path
|
216 |
-
*
|
217 |
-
* @param string $path
|
218 |
-
* @return bool
|
219 |
-
*/
|
220 |
-
public function unlink($path)
|
221 |
-
{
|
222 |
-
self::recordMethodCall('unlink', $path);
|
223 |
-
return parent::unlink($path);
|
224 |
-
}
|
225 |
-
|
226 |
-
/**
|
227 |
-
* rename from one path to another
|
228 |
-
*
|
229 |
-
* @param string $path_from
|
230 |
-
* @param string $path_to
|
231 |
-
* @return bool
|
232 |
-
*/
|
233 |
-
public function rename($path_from, $path_to)
|
234 |
-
{
|
235 |
-
self::recordMethodCall('rename', $path_from);
|
236 |
-
return parent::rename($path_from, $path_to);
|
237 |
-
}
|
238 |
-
|
239 |
-
/**
|
240 |
-
* creates a new directory
|
241 |
-
*
|
242 |
-
* @param string $path
|
243 |
-
* @param int $mode
|
244 |
-
* @param int $options
|
245 |
-
* @return bool
|
246 |
-
*/
|
247 |
-
public function mkdir($path, $mode, $options)
|
248 |
-
{
|
249 |
-
self::recordMethodCall('mkdir', $path);
|
250 |
-
return parent::mkdir($path, $mode, $options);
|
251 |
-
}
|
252 |
-
|
253 |
-
/**
|
254 |
-
* removes a directory
|
255 |
-
*
|
256 |
-
* @param string $path
|
257 |
-
* @param int $options
|
258 |
-
* @return bool
|
259 |
-
*/
|
260 |
-
public function rmdir($path, $options)
|
261 |
-
{
|
262 |
-
self::recordMethodCall('rmdir', $path);
|
263 |
-
return parent::rmdir($path, $options);
|
264 |
-
}
|
265 |
-
|
266 |
-
/**
|
267 |
-
* opens a directory
|
268 |
-
*
|
269 |
-
* @param string $path
|
270 |
-
* @param int $options
|
271 |
-
* @return bool
|
272 |
-
*/
|
273 |
-
public function dir_opendir($path, $options)
|
274 |
-
{
|
275 |
-
$this->path = $path;
|
276 |
-
self::recordMethodCall('dir_opendir', $this->path);
|
277 |
-
return parent::dir_opendir($path, $options);
|
278 |
-
}
|
279 |
-
|
280 |
-
/**
|
281 |
-
* reads directory contents
|
282 |
-
*
|
283 |
-
* @return string
|
284 |
-
*/
|
285 |
-
public function dir_readdir()
|
286 |
-
{
|
287 |
-
self::recordMethodCall('dir_readdir', $this->path);
|
288 |
-
return parent::dir_readdir();
|
289 |
-
}
|
290 |
-
|
291 |
-
/**
|
292 |
-
* reset directory iteration
|
293 |
-
*
|
294 |
-
* @return bool
|
295 |
-
*/
|
296 |
-
public function dir_rewinddir()
|
297 |
-
{
|
298 |
-
self::recordMethodCall('dir_rewinddir', $this->path);
|
299 |
-
return parent::dir_rewinddir();
|
300 |
-
}
|
301 |
-
|
302 |
-
/**
|
303 |
-
* closes directory
|
304 |
-
*
|
305 |
-
* @return bool
|
306 |
-
*/
|
307 |
-
public function dir_closedir()
|
308 |
-
{
|
309 |
-
self::recordMethodCall('dir_closedir', $this->path);
|
310 |
-
return parent::dir_closedir();
|
311 |
-
}
|
312 |
-
|
313 |
-
/**
|
314 |
-
* returns status of url
|
315 |
-
*
|
316 |
-
* @param string $path path of url to return status for
|
317 |
-
* @param int $flags flags set by the stream API
|
318 |
-
* @return array
|
319 |
-
*/
|
320 |
-
public function url_stat($path, $flags)
|
321 |
-
{
|
322 |
-
self::recordMethodCall('url_stat', $path);
|
323 |
-
return parent::url_stat($path, $flags);
|
324 |
-
}
|
325 |
-
}
|
326 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamAbstractContentTestCase.php
DELETED
@@ -1,1054 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Helper class for the test.
|
13 |
-
*/
|
14 |
-
class TestvfsStreamAbstractContent extends vfsStreamAbstractContent
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* returns default permissions for concrete implementation
|
18 |
-
*
|
19 |
-
* @return int
|
20 |
-
* @since 0.8.0
|
21 |
-
*/
|
22 |
-
protected function getDefaultPermissions()
|
23 |
-
{
|
24 |
-
return 0777;
|
25 |
-
}
|
26 |
-
|
27 |
-
/**
|
28 |
-
* returns size of content
|
29 |
-
*
|
30 |
-
* @return int
|
31 |
-
*/
|
32 |
-
public function size()
|
33 |
-
{
|
34 |
-
return 0;
|
35 |
-
}
|
36 |
-
}
|
37 |
-
/**
|
38 |
-
* Test for org\bovigo\vfs\vfsStreamAbstractContent.
|
39 |
-
*/
|
40 |
-
class vfsStreamAbstractContentTestCase extends \PHPUnit_Framework_TestCase
|
41 |
-
{
|
42 |
-
/**
|
43 |
-
* @test
|
44 |
-
* @group permissions
|
45 |
-
* @group bug_15
|
46 |
-
*/
|
47 |
-
public function noPermissionsForEveryone()
|
48 |
-
{
|
49 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0000);
|
50 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
51 |
-
vfsStream::getCurrentGroup()
|
52 |
-
)
|
53 |
-
);
|
54 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
55 |
-
vfsStream::getCurrentGroup()
|
56 |
-
)
|
57 |
-
);
|
58 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
59 |
-
-1
|
60 |
-
)
|
61 |
-
);
|
62 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
63 |
-
vfsStream::getCurrentGroup()
|
64 |
-
)
|
65 |
-
);
|
66 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
67 |
-
vfsStream::getCurrentGroup()
|
68 |
-
)
|
69 |
-
);
|
70 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
71 |
-
-1
|
72 |
-
)
|
73 |
-
);
|
74 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
75 |
-
vfsStream::getCurrentGroup()
|
76 |
-
)
|
77 |
-
);
|
78 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
79 |
-
vfsStream::getCurrentGroup()
|
80 |
-
)
|
81 |
-
);
|
82 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
83 |
-
-1
|
84 |
-
)
|
85 |
-
);
|
86 |
-
}
|
87 |
-
|
88 |
-
/**
|
89 |
-
* @test
|
90 |
-
* @group permissions
|
91 |
-
* @group bug_15
|
92 |
-
*/
|
93 |
-
public function executePermissionsForUser()
|
94 |
-
{
|
95 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0100);
|
96 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
97 |
-
vfsStream::getCurrentGroup()
|
98 |
-
)
|
99 |
-
);
|
100 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
101 |
-
vfsStream::getCurrentGroup()
|
102 |
-
)
|
103 |
-
);
|
104 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
105 |
-
-1
|
106 |
-
)
|
107 |
-
);
|
108 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
109 |
-
vfsStream::getCurrentGroup()
|
110 |
-
)
|
111 |
-
);
|
112 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
113 |
-
vfsStream::getCurrentGroup()
|
114 |
-
)
|
115 |
-
);
|
116 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
117 |
-
-1
|
118 |
-
)
|
119 |
-
);
|
120 |
-
$this->assertTrue($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
121 |
-
vfsStream::getCurrentGroup()
|
122 |
-
)
|
123 |
-
);
|
124 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
125 |
-
vfsStream::getCurrentGroup()
|
126 |
-
)
|
127 |
-
);
|
128 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
129 |
-
-1
|
130 |
-
)
|
131 |
-
);
|
132 |
-
}
|
133 |
-
|
134 |
-
/**
|
135 |
-
* @test
|
136 |
-
* @group permissions
|
137 |
-
* @group bug_15
|
138 |
-
*/
|
139 |
-
public function executePermissionsForGroup()
|
140 |
-
{
|
141 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0010);
|
142 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
143 |
-
vfsStream::getCurrentGroup()
|
144 |
-
)
|
145 |
-
);
|
146 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
147 |
-
vfsStream::getCurrentGroup()
|
148 |
-
)
|
149 |
-
);
|
150 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
151 |
-
-1
|
152 |
-
)
|
153 |
-
);
|
154 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
155 |
-
vfsStream::getCurrentGroup()
|
156 |
-
)
|
157 |
-
);
|
158 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
159 |
-
vfsStream::getCurrentGroup()
|
160 |
-
)
|
161 |
-
);
|
162 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
163 |
-
-1
|
164 |
-
)
|
165 |
-
);
|
166 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
167 |
-
vfsStream::getCurrentGroup()
|
168 |
-
)
|
169 |
-
);
|
170 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
171 |
-
vfsStream::getCurrentGroup()
|
172 |
-
)
|
173 |
-
);
|
174 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
175 |
-
-1
|
176 |
-
)
|
177 |
-
);
|
178 |
-
}
|
179 |
-
|
180 |
-
/**
|
181 |
-
* @test
|
182 |
-
* @group permissions
|
183 |
-
* @group bug_15
|
184 |
-
*/
|
185 |
-
public function executePermissionsForOther()
|
186 |
-
{
|
187 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0001);
|
188 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
189 |
-
vfsStream::getCurrentGroup()
|
190 |
-
)
|
191 |
-
);
|
192 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
193 |
-
vfsStream::getCurrentGroup()
|
194 |
-
)
|
195 |
-
);
|
196 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
197 |
-
-1
|
198 |
-
)
|
199 |
-
);
|
200 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
201 |
-
vfsStream::getCurrentGroup()
|
202 |
-
)
|
203 |
-
);
|
204 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
205 |
-
vfsStream::getCurrentGroup()
|
206 |
-
)
|
207 |
-
);
|
208 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
209 |
-
-1
|
210 |
-
)
|
211 |
-
);
|
212 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
213 |
-
vfsStream::getCurrentGroup()
|
214 |
-
)
|
215 |
-
);
|
216 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
217 |
-
vfsStream::getCurrentGroup()
|
218 |
-
)
|
219 |
-
);
|
220 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
221 |
-
-1
|
222 |
-
)
|
223 |
-
);
|
224 |
-
}
|
225 |
-
|
226 |
-
/**
|
227 |
-
* @test
|
228 |
-
* @group permissions
|
229 |
-
* @group bug_15
|
230 |
-
*/
|
231 |
-
public function writePermissionsForUser()
|
232 |
-
{
|
233 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0200);
|
234 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
235 |
-
vfsStream::getCurrentGroup()
|
236 |
-
)
|
237 |
-
);
|
238 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
239 |
-
vfsStream::getCurrentGroup()
|
240 |
-
)
|
241 |
-
);
|
242 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
243 |
-
-1
|
244 |
-
)
|
245 |
-
);
|
246 |
-
$this->assertTrue($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
247 |
-
vfsStream::getCurrentGroup()
|
248 |
-
)
|
249 |
-
);
|
250 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
251 |
-
vfsStream::getCurrentGroup()
|
252 |
-
)
|
253 |
-
);
|
254 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
255 |
-
-1
|
256 |
-
)
|
257 |
-
);
|
258 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
259 |
-
vfsStream::getCurrentGroup()
|
260 |
-
)
|
261 |
-
);
|
262 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
263 |
-
vfsStream::getCurrentGroup()
|
264 |
-
)
|
265 |
-
);
|
266 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
267 |
-
-1
|
268 |
-
)
|
269 |
-
);
|
270 |
-
}
|
271 |
-
|
272 |
-
/**
|
273 |
-
* @test
|
274 |
-
* @group permissions
|
275 |
-
* @group bug_15
|
276 |
-
*/
|
277 |
-
public function writePermissionsForGroup()
|
278 |
-
{
|
279 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0020);
|
280 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
281 |
-
vfsStream::getCurrentGroup()
|
282 |
-
)
|
283 |
-
);
|
284 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
285 |
-
vfsStream::getCurrentGroup()
|
286 |
-
)
|
287 |
-
);
|
288 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
289 |
-
-1
|
290 |
-
)
|
291 |
-
);
|
292 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
293 |
-
vfsStream::getCurrentGroup()
|
294 |
-
)
|
295 |
-
);
|
296 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
297 |
-
vfsStream::getCurrentGroup()
|
298 |
-
)
|
299 |
-
);
|
300 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
301 |
-
-1
|
302 |
-
)
|
303 |
-
);
|
304 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
305 |
-
vfsStream::getCurrentGroup()
|
306 |
-
)
|
307 |
-
);
|
308 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
309 |
-
vfsStream::getCurrentGroup()
|
310 |
-
)
|
311 |
-
);
|
312 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
313 |
-
-1
|
314 |
-
)
|
315 |
-
);
|
316 |
-
}
|
317 |
-
|
318 |
-
/**
|
319 |
-
* @test
|
320 |
-
* @group permissions
|
321 |
-
* @group bug_15
|
322 |
-
*/
|
323 |
-
public function writePermissionsForOther()
|
324 |
-
{
|
325 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0002);
|
326 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
327 |
-
vfsStream::getCurrentGroup()
|
328 |
-
)
|
329 |
-
);
|
330 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
331 |
-
vfsStream::getCurrentGroup()
|
332 |
-
)
|
333 |
-
);
|
334 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
335 |
-
-1
|
336 |
-
)
|
337 |
-
);
|
338 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
339 |
-
vfsStream::getCurrentGroup()
|
340 |
-
)
|
341 |
-
);
|
342 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
343 |
-
vfsStream::getCurrentGroup()
|
344 |
-
)
|
345 |
-
);
|
346 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
347 |
-
-1
|
348 |
-
)
|
349 |
-
);
|
350 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
351 |
-
vfsStream::getCurrentGroup()
|
352 |
-
)
|
353 |
-
);
|
354 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
355 |
-
vfsStream::getCurrentGroup()
|
356 |
-
)
|
357 |
-
);
|
358 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
359 |
-
-1
|
360 |
-
)
|
361 |
-
);
|
362 |
-
}
|
363 |
-
|
364 |
-
/**
|
365 |
-
* @test
|
366 |
-
* @group permissions
|
367 |
-
* @group bug_15
|
368 |
-
*/
|
369 |
-
public function executeAndWritePermissionsForUser()
|
370 |
-
{
|
371 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0300);
|
372 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
373 |
-
vfsStream::getCurrentGroup()
|
374 |
-
)
|
375 |
-
);
|
376 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
377 |
-
vfsStream::getCurrentGroup()
|
378 |
-
)
|
379 |
-
);
|
380 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
381 |
-
-1
|
382 |
-
)
|
383 |
-
);
|
384 |
-
$this->assertTrue($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
385 |
-
vfsStream::getCurrentGroup()
|
386 |
-
)
|
387 |
-
);
|
388 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
389 |
-
vfsStream::getCurrentGroup()
|
390 |
-
)
|
391 |
-
);
|
392 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
393 |
-
-1
|
394 |
-
)
|
395 |
-
);
|
396 |
-
$this->assertTrue($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
397 |
-
vfsStream::getCurrentGroup()
|
398 |
-
)
|
399 |
-
);
|
400 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
401 |
-
vfsStream::getCurrentGroup()
|
402 |
-
)
|
403 |
-
);
|
404 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
405 |
-
-1
|
406 |
-
)
|
407 |
-
);
|
408 |
-
}
|
409 |
-
|
410 |
-
/**
|
411 |
-
* @test
|
412 |
-
* @group permissions
|
413 |
-
* @group bug_15
|
414 |
-
*/
|
415 |
-
public function executeAndWritePermissionsForGroup()
|
416 |
-
{
|
417 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0030);
|
418 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
419 |
-
vfsStream::getCurrentGroup()
|
420 |
-
)
|
421 |
-
);
|
422 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
423 |
-
vfsStream::getCurrentGroup()
|
424 |
-
)
|
425 |
-
);
|
426 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
427 |
-
-1
|
428 |
-
)
|
429 |
-
);
|
430 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
431 |
-
vfsStream::getCurrentGroup()
|
432 |
-
)
|
433 |
-
);
|
434 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
435 |
-
vfsStream::getCurrentGroup()
|
436 |
-
)
|
437 |
-
);
|
438 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
439 |
-
-1
|
440 |
-
)
|
441 |
-
);
|
442 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
443 |
-
vfsStream::getCurrentGroup()
|
444 |
-
)
|
445 |
-
);
|
446 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
447 |
-
vfsStream::getCurrentGroup()
|
448 |
-
)
|
449 |
-
);
|
450 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
451 |
-
-1
|
452 |
-
)
|
453 |
-
);
|
454 |
-
}
|
455 |
-
|
456 |
-
/**
|
457 |
-
* @test
|
458 |
-
* @group permissions
|
459 |
-
* @group bug_15
|
460 |
-
*/
|
461 |
-
public function executeAndWritePermissionsForOther()
|
462 |
-
{
|
463 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0003);
|
464 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
465 |
-
vfsStream::getCurrentGroup()
|
466 |
-
)
|
467 |
-
);
|
468 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
469 |
-
vfsStream::getCurrentGroup()
|
470 |
-
)
|
471 |
-
);
|
472 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
473 |
-
-1
|
474 |
-
)
|
475 |
-
);
|
476 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
477 |
-
vfsStream::getCurrentGroup()
|
478 |
-
)
|
479 |
-
);
|
480 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
481 |
-
vfsStream::getCurrentGroup()
|
482 |
-
)
|
483 |
-
);
|
484 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
485 |
-
-1
|
486 |
-
)
|
487 |
-
);
|
488 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
489 |
-
vfsStream::getCurrentGroup()
|
490 |
-
)
|
491 |
-
);
|
492 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
493 |
-
vfsStream::getCurrentGroup()
|
494 |
-
)
|
495 |
-
);
|
496 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
497 |
-
-1
|
498 |
-
)
|
499 |
-
);
|
500 |
-
}
|
501 |
-
|
502 |
-
/**
|
503 |
-
* @test
|
504 |
-
* @group permissions
|
505 |
-
* @group bug_15
|
506 |
-
*/
|
507 |
-
public function readPermissionsForUser()
|
508 |
-
{
|
509 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0400);
|
510 |
-
$this->assertTrue($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
511 |
-
vfsStream::getCurrentGroup()
|
512 |
-
)
|
513 |
-
);
|
514 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
515 |
-
vfsStream::getCurrentGroup()
|
516 |
-
)
|
517 |
-
);
|
518 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
519 |
-
-1
|
520 |
-
)
|
521 |
-
);
|
522 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
523 |
-
vfsStream::getCurrentGroup()
|
524 |
-
)
|
525 |
-
);
|
526 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
527 |
-
vfsStream::getCurrentGroup()
|
528 |
-
)
|
529 |
-
);
|
530 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
531 |
-
-1
|
532 |
-
)
|
533 |
-
);
|
534 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
535 |
-
vfsStream::getCurrentGroup()
|
536 |
-
)
|
537 |
-
);
|
538 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
539 |
-
vfsStream::getCurrentGroup()
|
540 |
-
)
|
541 |
-
);
|
542 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
543 |
-
-1
|
544 |
-
)
|
545 |
-
);
|
546 |
-
}
|
547 |
-
|
548 |
-
/**
|
549 |
-
* @test
|
550 |
-
* @group permissions
|
551 |
-
* @group bug_15
|
552 |
-
*/
|
553 |
-
public function readPermissionsForGroup()
|
554 |
-
{
|
555 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0040);
|
556 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
557 |
-
vfsStream::getCurrentGroup()
|
558 |
-
)
|
559 |
-
);
|
560 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
561 |
-
vfsStream::getCurrentGroup()
|
562 |
-
)
|
563 |
-
);
|
564 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
565 |
-
-1
|
566 |
-
)
|
567 |
-
);
|
568 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
569 |
-
vfsStream::getCurrentGroup()
|
570 |
-
)
|
571 |
-
);
|
572 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
573 |
-
vfsStream::getCurrentGroup()
|
574 |
-
)
|
575 |
-
);
|
576 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
577 |
-
-1
|
578 |
-
)
|
579 |
-
);
|
580 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
581 |
-
vfsStream::getCurrentGroup()
|
582 |
-
)
|
583 |
-
);
|
584 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
585 |
-
vfsStream::getCurrentGroup()
|
586 |
-
)
|
587 |
-
);
|
588 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
589 |
-
-1
|
590 |
-
)
|
591 |
-
);
|
592 |
-
}
|
593 |
-
|
594 |
-
/**
|
595 |
-
* @test
|
596 |
-
* @group permissions
|
597 |
-
* @group bug_15
|
598 |
-
*/
|
599 |
-
public function readPermissionsForOther()
|
600 |
-
{
|
601 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0004);
|
602 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
603 |
-
vfsStream::getCurrentGroup()
|
604 |
-
)
|
605 |
-
);
|
606 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
607 |
-
vfsStream::getCurrentGroup()
|
608 |
-
)
|
609 |
-
);
|
610 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
611 |
-
-1
|
612 |
-
)
|
613 |
-
);
|
614 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
615 |
-
vfsStream::getCurrentGroup()
|
616 |
-
)
|
617 |
-
);
|
618 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
619 |
-
vfsStream::getCurrentGroup()
|
620 |
-
)
|
621 |
-
);
|
622 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
623 |
-
-1
|
624 |
-
)
|
625 |
-
);
|
626 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
627 |
-
vfsStream::getCurrentGroup()
|
628 |
-
)
|
629 |
-
);
|
630 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
631 |
-
vfsStream::getCurrentGroup()
|
632 |
-
)
|
633 |
-
);
|
634 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
635 |
-
-1
|
636 |
-
)
|
637 |
-
);
|
638 |
-
}
|
639 |
-
|
640 |
-
/**
|
641 |
-
* @test
|
642 |
-
* @group permissions
|
643 |
-
* @group bug_15
|
644 |
-
*/
|
645 |
-
public function readAndExecutePermissionsForUser()
|
646 |
-
{
|
647 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0500);
|
648 |
-
$this->assertTrue($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
649 |
-
vfsStream::getCurrentGroup()
|
650 |
-
)
|
651 |
-
);
|
652 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
653 |
-
vfsStream::getCurrentGroup()
|
654 |
-
)
|
655 |
-
);
|
656 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
657 |
-
-1
|
658 |
-
)
|
659 |
-
);
|
660 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
661 |
-
vfsStream::getCurrentGroup()
|
662 |
-
)
|
663 |
-
);
|
664 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
665 |
-
vfsStream::getCurrentGroup()
|
666 |
-
)
|
667 |
-
);
|
668 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
669 |
-
-1
|
670 |
-
)
|
671 |
-
);
|
672 |
-
$this->assertTrue($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
673 |
-
vfsStream::getCurrentGroup()
|
674 |
-
)
|
675 |
-
);
|
676 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
677 |
-
vfsStream::getCurrentGroup()
|
678 |
-
)
|
679 |
-
);
|
680 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
681 |
-
-1
|
682 |
-
)
|
683 |
-
);
|
684 |
-
}
|
685 |
-
|
686 |
-
/**
|
687 |
-
* @test
|
688 |
-
* @group permissions
|
689 |
-
* @group bug_15
|
690 |
-
*/
|
691 |
-
public function readAndExecutePermissionsForGroup()
|
692 |
-
{
|
693 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0050);
|
694 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
695 |
-
vfsStream::getCurrentGroup()
|
696 |
-
)
|
697 |
-
);
|
698 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
699 |
-
vfsStream::getCurrentGroup()
|
700 |
-
)
|
701 |
-
);
|
702 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
703 |
-
-1
|
704 |
-
)
|
705 |
-
);
|
706 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
707 |
-
vfsStream::getCurrentGroup()
|
708 |
-
)
|
709 |
-
);
|
710 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
711 |
-
vfsStream::getCurrentGroup()
|
712 |
-
)
|
713 |
-
);
|
714 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
715 |
-
-1
|
716 |
-
)
|
717 |
-
);
|
718 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
719 |
-
vfsStream::getCurrentGroup()
|
720 |
-
)
|
721 |
-
);
|
722 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
723 |
-
vfsStream::getCurrentGroup()
|
724 |
-
)
|
725 |
-
);
|
726 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
727 |
-
-1
|
728 |
-
)
|
729 |
-
);
|
730 |
-
}
|
731 |
-
|
732 |
-
/**
|
733 |
-
* @test
|
734 |
-
* @group permissions
|
735 |
-
* @group bug_15
|
736 |
-
*/
|
737 |
-
public function readAndExecutePermissionsForOther()
|
738 |
-
{
|
739 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0005);
|
740 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
741 |
-
vfsStream::getCurrentGroup()
|
742 |
-
)
|
743 |
-
);
|
744 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
745 |
-
vfsStream::getCurrentGroup()
|
746 |
-
)
|
747 |
-
);
|
748 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
749 |
-
-1
|
750 |
-
)
|
751 |
-
);
|
752 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
753 |
-
vfsStream::getCurrentGroup()
|
754 |
-
)
|
755 |
-
);
|
756 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
757 |
-
vfsStream::getCurrentGroup()
|
758 |
-
)
|
759 |
-
);
|
760 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
761 |
-
-1
|
762 |
-
)
|
763 |
-
);
|
764 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
765 |
-
vfsStream::getCurrentGroup()
|
766 |
-
)
|
767 |
-
);
|
768 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
769 |
-
vfsStream::getCurrentGroup()
|
770 |
-
)
|
771 |
-
);
|
772 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
773 |
-
-1
|
774 |
-
)
|
775 |
-
);
|
776 |
-
}
|
777 |
-
|
778 |
-
/**
|
779 |
-
* @test
|
780 |
-
* @group permissions
|
781 |
-
* @group bug_15
|
782 |
-
*/
|
783 |
-
public function readAndWritePermissionsForUser()
|
784 |
-
{
|
785 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0600);
|
786 |
-
$this->assertTrue($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
787 |
-
vfsStream::getCurrentGroup()
|
788 |
-
)
|
789 |
-
);
|
790 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
791 |
-
vfsStream::getCurrentGroup()
|
792 |
-
)
|
793 |
-
);
|
794 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
795 |
-
-1
|
796 |
-
)
|
797 |
-
);
|
798 |
-
$this->assertTrue($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
799 |
-
vfsStream::getCurrentGroup()
|
800 |
-
)
|
801 |
-
);
|
802 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
803 |
-
vfsStream::getCurrentGroup()
|
804 |
-
)
|
805 |
-
);
|
806 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
807 |
-
-1
|
808 |
-
)
|
809 |
-
);
|
810 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
811 |
-
vfsStream::getCurrentGroup()
|
812 |
-
)
|
813 |
-
);
|
814 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
815 |
-
vfsStream::getCurrentGroup()
|
816 |
-
)
|
817 |
-
);
|
818 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
819 |
-
-1
|
820 |
-
)
|
821 |
-
);
|
822 |
-
}
|
823 |
-
|
824 |
-
/**
|
825 |
-
* @test
|
826 |
-
* @group permissions
|
827 |
-
* @group bug_15
|
828 |
-
*/
|
829 |
-
public function readAndWritePermissionsForGroup()
|
830 |
-
{
|
831 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0060);
|
832 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
833 |
-
vfsStream::getCurrentGroup()
|
834 |
-
)
|
835 |
-
);
|
836 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
837 |
-
vfsStream::getCurrentGroup()
|
838 |
-
)
|
839 |
-
);
|
840 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
841 |
-
-1
|
842 |
-
)
|
843 |
-
);
|
844 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
845 |
-
vfsStream::getCurrentGroup()
|
846 |
-
)
|
847 |
-
);
|
848 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
849 |
-
vfsStream::getCurrentGroup()
|
850 |
-
)
|
851 |
-
);
|
852 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
853 |
-
-1
|
854 |
-
)
|
855 |
-
);
|
856 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
857 |
-
vfsStream::getCurrentGroup()
|
858 |
-
)
|
859 |
-
);
|
860 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
861 |
-
vfsStream::getCurrentGroup()
|
862 |
-
)
|
863 |
-
);
|
864 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
865 |
-
-1
|
866 |
-
)
|
867 |
-
);
|
868 |
-
}
|
869 |
-
|
870 |
-
/**
|
871 |
-
* @test
|
872 |
-
* @group permissions
|
873 |
-
* @group bug_15
|
874 |
-
*/
|
875 |
-
public function readAndWritePermissionsForOther()
|
876 |
-
{
|
877 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0006);
|
878 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
879 |
-
vfsStream::getCurrentGroup()
|
880 |
-
)
|
881 |
-
);
|
882 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
883 |
-
vfsStream::getCurrentGroup()
|
884 |
-
)
|
885 |
-
);
|
886 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
887 |
-
-1
|
888 |
-
)
|
889 |
-
);
|
890 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
891 |
-
vfsStream::getCurrentGroup()
|
892 |
-
)
|
893 |
-
);
|
894 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
895 |
-
vfsStream::getCurrentGroup()
|
896 |
-
)
|
897 |
-
);
|
898 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
899 |
-
-1
|
900 |
-
)
|
901 |
-
);
|
902 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
903 |
-
vfsStream::getCurrentGroup()
|
904 |
-
)
|
905 |
-
);
|
906 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
907 |
-
vfsStream::getCurrentGroup()
|
908 |
-
)
|
909 |
-
);
|
910 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
911 |
-
-1
|
912 |
-
)
|
913 |
-
);
|
914 |
-
}
|
915 |
-
|
916 |
-
/**
|
917 |
-
* @test
|
918 |
-
* @group permissions
|
919 |
-
* @group bug_15
|
920 |
-
*/
|
921 |
-
public function allPermissionsForUser()
|
922 |
-
{
|
923 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0700);
|
924 |
-
$this->assertTrue($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
925 |
-
vfsStream::getCurrentGroup()
|
926 |
-
)
|
927 |
-
);
|
928 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
929 |
-
vfsStream::getCurrentGroup()
|
930 |
-
)
|
931 |
-
);
|
932 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
933 |
-
-1
|
934 |
-
)
|
935 |
-
);
|
936 |
-
$this->assertTrue($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
937 |
-
vfsStream::getCurrentGroup()
|
938 |
-
)
|
939 |
-
);
|
940 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
941 |
-
vfsStream::getCurrentGroup()
|
942 |
-
)
|
943 |
-
);
|
944 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
945 |
-
-1
|
946 |
-
)
|
947 |
-
);
|
948 |
-
$this->assertTrue($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
949 |
-
vfsStream::getCurrentGroup()
|
950 |
-
)
|
951 |
-
);
|
952 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
953 |
-
vfsStream::getCurrentGroup()
|
954 |
-
)
|
955 |
-
);
|
956 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
957 |
-
-1
|
958 |
-
)
|
959 |
-
);
|
960 |
-
}
|
961 |
-
|
962 |
-
/**
|
963 |
-
* @test
|
964 |
-
* @group permissions
|
965 |
-
* @group bug_15
|
966 |
-
*/
|
967 |
-
public function allPermissionsForGroup()
|
968 |
-
{
|
969 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0070);
|
970 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
971 |
-
vfsStream::getCurrentGroup()
|
972 |
-
)
|
973 |
-
);
|
974 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
975 |
-
vfsStream::getCurrentGroup()
|
976 |
-
)
|
977 |
-
);
|
978 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
979 |
-
-1
|
980 |
-
)
|
981 |
-
);
|
982 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
983 |
-
vfsStream::getCurrentGroup()
|
984 |
-
)
|
985 |
-
);
|
986 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
987 |
-
vfsStream::getCurrentGroup()
|
988 |
-
)
|
989 |
-
);
|
990 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
991 |
-
-1
|
992 |
-
)
|
993 |
-
);
|
994 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
995 |
-
vfsStream::getCurrentGroup()
|
996 |
-
)
|
997 |
-
);
|
998 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
999 |
-
vfsStream::getCurrentGroup()
|
1000 |
-
)
|
1001 |
-
);
|
1002 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
1003 |
-
-1
|
1004 |
-
)
|
1005 |
-
);
|
1006 |
-
}
|
1007 |
-
|
1008 |
-
/**
|
1009 |
-
* @test
|
1010 |
-
* @group permissions
|
1011 |
-
* @group bug_15
|
1012 |
-
*/
|
1013 |
-
public function allPermissionsForOther()
|
1014 |
-
{
|
1015 |
-
$abstractContent = new TestvfsStreamAbstractContent('foo', 0007);
|
1016 |
-
$this->assertFalse($abstractContent->isReadable(vfsStream::getCurrentUser(),
|
1017 |
-
vfsStream::getCurrentGroup()
|
1018 |
-
)
|
1019 |
-
);
|
1020 |
-
$this->assertFalse($abstractContent->isReadable(-1,
|
1021 |
-
vfsStream::getCurrentGroup()
|
1022 |
-
)
|
1023 |
-
);
|
1024 |
-
$this->assertTrue($abstractContent->isReadable(-1,
|
1025 |
-
-1
|
1026 |
-
)
|
1027 |
-
);
|
1028 |
-
$this->assertFalse($abstractContent->isWritable(vfsStream::getCurrentUser(),
|
1029 |
-
vfsStream::getCurrentGroup()
|
1030 |
-
)
|
1031 |
-
);
|
1032 |
-
$this->assertFalse($abstractContent->isWritable(-1,
|
1033 |
-
vfsStream::getCurrentGroup()
|
1034 |
-
)
|
1035 |
-
);
|
1036 |
-
$this->assertTrue($abstractContent->isWritable(-1,
|
1037 |
-
-1
|
1038 |
-
)
|
1039 |
-
);
|
1040 |
-
$this->assertFalse($abstractContent->isExecutable(vfsStream::getCurrentUser(),
|
1041 |
-
vfsStream::getCurrentGroup()
|
1042 |
-
)
|
1043 |
-
);
|
1044 |
-
$this->assertFalse($abstractContent->isExecutable(-1,
|
1045 |
-
vfsStream::getCurrentGroup()
|
1046 |
-
)
|
1047 |
-
);
|
1048 |
-
$this->assertTrue($abstractContent->isExecutable(-1,
|
1049 |
-
-1
|
1050 |
-
)
|
1051 |
-
);
|
1052 |
-
}
|
1053 |
-
}
|
1054 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamBlockTestCase.php
DELETED
@@ -1,89 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamBlock.
|
13 |
-
*/
|
14 |
-
class vfsStreamBlockTestCase extends \PHPUnit_Framework_TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* The block device being tested.
|
18 |
-
*
|
19 |
-
* @var vfsStreamBlock $block
|
20 |
-
*/
|
21 |
-
protected $block;
|
22 |
-
|
23 |
-
public function setUp()
|
24 |
-
{
|
25 |
-
$this->block = new vfsStreamBlock('foo');
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* test default values and methods
|
30 |
-
*
|
31 |
-
* @test
|
32 |
-
*/
|
33 |
-
public function defaultValues()
|
34 |
-
{
|
35 |
-
$this->assertEquals(vfsStreamContent::TYPE_BLOCK, $this->block->getType());
|
36 |
-
$this->assertEquals('foo', $this->block->getName());
|
37 |
-
$this->assertTrue($this->block->appliesTo('foo'));
|
38 |
-
$this->assertFalse($this->block->appliesTo('foo/bar'));
|
39 |
-
$this->assertFalse($this->block->appliesTo('bar'));
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* tests how external functions see this object
|
44 |
-
*
|
45 |
-
* @test
|
46 |
-
*/
|
47 |
-
public function external()
|
48 |
-
{
|
49 |
-
$root = vfsStream::setup('root');
|
50 |
-
$root->addChild(vfsStream::newBlock('foo'));
|
51 |
-
$this->assertEquals('block', filetype(vfsStream::url('root/foo')));
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* tests adding a complex structure
|
56 |
-
*
|
57 |
-
* @test
|
58 |
-
*/
|
59 |
-
public function addStructure()
|
60 |
-
{
|
61 |
-
$structure = array(
|
62 |
-
'topLevel' => array(
|
63 |
-
'thisIsAFile' => 'file contents',
|
64 |
-
'[blockDevice]' => 'block contents'
|
65 |
-
)
|
66 |
-
);
|
67 |
-
|
68 |
-
$root = vfsStream::create($structure);
|
69 |
-
|
70 |
-
$this->assertSame('block', filetype(vfsStream::url('root/topLevel/blockDevice')));
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* tests that a blank name for a block device throws an exception
|
75 |
-
* @test
|
76 |
-
* @expectedException org\bovigo\vfs\vfsStreamException
|
77 |
-
*/
|
78 |
-
public function createWithEmptyName()
|
79 |
-
{
|
80 |
-
$structure = array(
|
81 |
-
'topLevel' => array(
|
82 |
-
'thisIsAFile' => 'file contents',
|
83 |
-
'[]' => 'block contents'
|
84 |
-
)
|
85 |
-
);
|
86 |
-
|
87 |
-
$root = vfsStream::create($structure);
|
88 |
-
}
|
89 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamContainerIteratorTestCase.php
DELETED
@@ -1,112 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamContainerIterator.
|
13 |
-
*/
|
14 |
-
class vfsStreamContainerIteratorTestCase extends \PHPUnit_Framework_TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* instance to test
|
18 |
-
*
|
19 |
-
* @type vfsStreamDirectory
|
20 |
-
*/
|
21 |
-
private $dir;
|
22 |
-
/**
|
23 |
-
* child one
|
24 |
-
*
|
25 |
-
* @type \PHPUnit_Framework_MockObject_MockObject
|
26 |
-
*/
|
27 |
-
private $mockChild1;
|
28 |
-
/**
|
29 |
-
* child two
|
30 |
-
*
|
31 |
-
* @type \PHPUnit_Framework_MockObject_MockObject
|
32 |
-
*/
|
33 |
-
private $mockChild2;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* set up test environment
|
37 |
-
*/
|
38 |
-
public function setUp()
|
39 |
-
{
|
40 |
-
$this->dir = new vfsStreamDirectory('foo');
|
41 |
-
$this->mockChild1 = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
42 |
-
$this->mockChild1->expects($this->any())
|
43 |
-
->method('getName')
|
44 |
-
->will($this->returnValue('bar'));
|
45 |
-
$this->dir->addChild($this->mockChild1);
|
46 |
-
$this->mockChild2 = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
47 |
-
$this->mockChild2->expects($this->any())
|
48 |
-
->method('getName')
|
49 |
-
->will($this->returnValue('baz'));
|
50 |
-
$this->dir->addChild($this->mockChild2);
|
51 |
-
}
|
52 |
-
|
53 |
-
/**
|
54 |
-
* clean up test environment
|
55 |
-
*/
|
56 |
-
public function tearDown()
|
57 |
-
{
|
58 |
-
vfsStream::enableDotfiles();
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* @return array
|
63 |
-
*/
|
64 |
-
public function provideSwitchWithExpectations()
|
65 |
-
{
|
66 |
-
return array(array(function() { vfsStream::disableDotfiles(); },
|
67 |
-
array()
|
68 |
-
),
|
69 |
-
array(function() { vfsStream::enableDotfiles(); },
|
70 |
-
array('.', '..')
|
71 |
-
)
|
72 |
-
);
|
73 |
-
}
|
74 |
-
|
75 |
-
private function getDirName($dir)
|
76 |
-
{
|
77 |
-
if (is_string($dir)) {
|
78 |
-
return $dir;
|
79 |
-
}
|
80 |
-
|
81 |
-
|
82 |
-
return $dir->getName();
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* @param \Closure $dotFilesSwitch
|
87 |
-
* @param array $dirNames
|
88 |
-
* @test
|
89 |
-
* @dataProvider provideSwitchWithExpectations
|
90 |
-
*/
|
91 |
-
public function iteration(\Closure $dotFilesSwitch, array $dirs)
|
92 |
-
{
|
93 |
-
$dirs[] = $this->mockChild1;
|
94 |
-
$dirs[] = $this->mockChild2;
|
95 |
-
$dotFilesSwitch();
|
96 |
-
$dirIterator = $this->dir->getIterator();
|
97 |
-
foreach ($dirs as $dir) {
|
98 |
-
$this->assertEquals($this->getDirName($dir), $dirIterator->key());
|
99 |
-
$this->assertTrue($dirIterator->valid());
|
100 |
-
if (!is_string($dir)) {
|
101 |
-
$this->assertSame($dir, $dirIterator->current());
|
102 |
-
}
|
103 |
-
|
104 |
-
$dirIterator->next();
|
105 |
-
}
|
106 |
-
|
107 |
-
$this->assertFalse($dirIterator->valid());
|
108 |
-
$this->assertNull($dirIterator->key());
|
109 |
-
$this->assertNull($dirIterator->current());
|
110 |
-
}
|
111 |
-
}
|
112 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamDirectoryIssue18TestCase.php
DELETED
@@ -1,81 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamDirectory.
|
13 |
-
*
|
14 |
-
* @group bug_18
|
15 |
-
*/
|
16 |
-
class vfsStreamDirectoryIssue18TestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* access to root directory
|
20 |
-
*
|
21 |
-
* @var vfsStreamDirectory
|
22 |
-
*/
|
23 |
-
protected $rootDirectory;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* set up test environment
|
27 |
-
*/
|
28 |
-
public function setUp()
|
29 |
-
{
|
30 |
-
$this->rootDirectory = vfsStream::newDirectory('/');
|
31 |
-
$this->rootDirectory->addChild(vfsStream::newDirectory('var/log/app'));
|
32 |
-
$dir = $this->rootDirectory->getChild('var/log/app');
|
33 |
-
$dir->addChild(vfsStream::newDirectory('app1'));
|
34 |
-
$dir->addChild(vfsStream::newDirectory('app2'));
|
35 |
-
$dir->addChild(vfsStream::newDirectory('foo'));
|
36 |
-
}
|
37 |
-
|
38 |
-
/**
|
39 |
-
* @test
|
40 |
-
*/
|
41 |
-
public function shouldContainThreeSubdirectories()
|
42 |
-
{
|
43 |
-
$this->assertEquals(3,
|
44 |
-
count($this->rootDirectory->getChild('var/log/app')->getChildren())
|
45 |
-
);
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* @test
|
50 |
-
*/
|
51 |
-
public function shouldContainSubdirectoryFoo()
|
52 |
-
{
|
53 |
-
$this->assertTrue($this->rootDirectory->getChild('var/log/app')->hasChild('foo'));
|
54 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory',
|
55 |
-
$this->rootDirectory->getChild('var/log/app')->getChild('foo')
|
56 |
-
);
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* @test
|
61 |
-
*/
|
62 |
-
public function shouldContainSubdirectoryApp1()
|
63 |
-
{
|
64 |
-
$this->assertTrue($this->rootDirectory->getChild('var/log/app')->hasChild('app1'));
|
65 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory',
|
66 |
-
$this->rootDirectory->getChild('var/log/app')->getChild('app1')
|
67 |
-
);
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* @test
|
72 |
-
*/
|
73 |
-
public function shouldContainSubdirectoryApp2()
|
74 |
-
{
|
75 |
-
$this->assertTrue($this->rootDirectory->getChild('var/log/app')->hasChild('app2'));
|
76 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory',
|
77 |
-
$this->rootDirectory->getChild('var/log/app')->getChild('app2')
|
78 |
-
);
|
79 |
-
}
|
80 |
-
}
|
81 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamDirectoryTestCase.php
DELETED
@@ -1,335 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamDirectory.
|
13 |
-
*/
|
14 |
-
class vfsStreamDirectoryTestCase extends \PHPUnit_Framework_TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* instance to test
|
18 |
-
*
|
19 |
-
* @var vfsStreamDirectory
|
20 |
-
*/
|
21 |
-
protected $dir;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* set up test environment
|
25 |
-
*/
|
26 |
-
public function setUp()
|
27 |
-
{
|
28 |
-
$this->dir = new vfsStreamDirectory('foo');
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* assure that a directory seperator inside the name throws an exception
|
33 |
-
*
|
34 |
-
* @test
|
35 |
-
* @expectedException org\bovigo\vfs\vfsStreamException
|
36 |
-
*/
|
37 |
-
public function invalidCharacterInName()
|
38 |
-
{
|
39 |
-
$dir = new vfsStreamDirectory('foo/bar');
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* test default values and methods
|
44 |
-
*
|
45 |
-
* @test
|
46 |
-
*/
|
47 |
-
public function defaultValues()
|
48 |
-
{
|
49 |
-
$this->assertEquals(vfsStreamContent::TYPE_DIR, $this->dir->getType());
|
50 |
-
$this->assertEquals('foo', $this->dir->getName());
|
51 |
-
$this->assertTrue($this->dir->appliesTo('foo'));
|
52 |
-
$this->assertTrue($this->dir->appliesTo('foo/bar'));
|
53 |
-
$this->assertFalse($this->dir->appliesTo('bar'));
|
54 |
-
$this->assertEquals(array(), $this->dir->getChildren());
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* test renaming the directory
|
59 |
-
*
|
60 |
-
* @test
|
61 |
-
*/
|
62 |
-
public function rename()
|
63 |
-
{
|
64 |
-
$this->dir->rename('bar');
|
65 |
-
$this->assertEquals('bar', $this->dir->getName());
|
66 |
-
$this->assertFalse($this->dir->appliesTo('foo'));
|
67 |
-
$this->assertFalse($this->dir->appliesTo('foo/bar'));
|
68 |
-
$this->assertTrue($this->dir->appliesTo('bar'));
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* renaming the directory to an invalid name throws a vfsStreamException
|
73 |
-
*
|
74 |
-
* @test
|
75 |
-
* @expectedException org\bovigo\vfs\vfsStreamException
|
76 |
-
*/
|
77 |
-
public function renameToInvalidNameThrowsvfsStreamException()
|
78 |
-
{
|
79 |
-
$this->dir->rename('foo/baz');
|
80 |
-
}
|
81 |
-
|
82 |
-
/**
|
83 |
-
* @test
|
84 |
-
* @since 0.10.0
|
85 |
-
*/
|
86 |
-
public function hasNoChildrenByDefault()
|
87 |
-
{
|
88 |
-
$this->assertFalse($this->dir->hasChildren());
|
89 |
-
}
|
90 |
-
|
91 |
-
/**
|
92 |
-
* @test
|
93 |
-
* @since 0.10.0
|
94 |
-
*/
|
95 |
-
public function hasChildrenReturnsTrueIfAtLeastOneChildPresent()
|
96 |
-
{
|
97 |
-
$mockChild = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
98 |
-
$mockChild->expects($this->any())
|
99 |
-
->method('appliesTo')
|
100 |
-
->will($this->returnValue(false));
|
101 |
-
$mockChild->expects($this->any())
|
102 |
-
->method('getName')
|
103 |
-
->will($this->returnValue('baz'));
|
104 |
-
$this->dir->addChild($mockChild);
|
105 |
-
$this->assertTrue($this->dir->hasChildren());
|
106 |
-
}
|
107 |
-
|
108 |
-
/**
|
109 |
-
* @test
|
110 |
-
*/
|
111 |
-
public function hasChildReturnsFalseForNonExistingChild()
|
112 |
-
{
|
113 |
-
$this->assertFalse($this->dir->hasChild('bar'));
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* @test
|
118 |
-
*/
|
119 |
-
public function getChildReturnsNullForNonExistingChild()
|
120 |
-
{
|
121 |
-
$this->assertNull($this->dir->getChild('bar'));
|
122 |
-
}
|
123 |
-
|
124 |
-
/**
|
125 |
-
* @test
|
126 |
-
*/
|
127 |
-
public function removeChildReturnsFalseForNonExistingChild()
|
128 |
-
{
|
129 |
-
$this->assertFalse($this->dir->removeChild('bar'));
|
130 |
-
}
|
131 |
-
|
132 |
-
/**
|
133 |
-
* @test
|
134 |
-
*/
|
135 |
-
public function nonExistingChild()
|
136 |
-
{
|
137 |
-
$mockChild = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
138 |
-
$mockChild->expects($this->any())
|
139 |
-
->method('appliesTo')
|
140 |
-
->will($this->returnValue(false));
|
141 |
-
$mockChild->expects($this->any())
|
142 |
-
->method('getName')
|
143 |
-
->will($this->returnValue('baz'));
|
144 |
-
$this->dir->addChild($mockChild);
|
145 |
-
$this->assertFalse($this->dir->removeChild('bar'));
|
146 |
-
}
|
147 |
-
|
148 |
-
/**
|
149 |
-
* test that adding, handling and removing of a child works as expected
|
150 |
-
*
|
151 |
-
* @test
|
152 |
-
*/
|
153 |
-
public function childHandling()
|
154 |
-
{
|
155 |
-
$mockChild = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
156 |
-
$mockChild->expects($this->any())
|
157 |
-
->method('getType')
|
158 |
-
->will($this->returnValue(vfsStreamContent::TYPE_FILE));
|
159 |
-
$mockChild->expects($this->any())
|
160 |
-
->method('getName')
|
161 |
-
->will($this->returnValue('bar'));
|
162 |
-
$mockChild->expects($this->any())
|
163 |
-
->method('appliesTo')
|
164 |
-
->with($this->equalTo('bar'))
|
165 |
-
->will($this->returnValue(true));
|
166 |
-
$mockChild->expects($this->once())
|
167 |
-
->method('size')
|
168 |
-
->will($this->returnValue(5));
|
169 |
-
$this->dir->addChild($mockChild);
|
170 |
-
$this->assertTrue($this->dir->hasChild('bar'));
|
171 |
-
$bar = $this->dir->getChild('bar');
|
172 |
-
$this->assertSame($mockChild, $bar);
|
173 |
-
$this->assertEquals(array($mockChild), $this->dir->getChildren());
|
174 |
-
$this->assertEquals(0, $this->dir->size());
|
175 |
-
$this->assertEquals(5, $this->dir->sizeSummarized());
|
176 |
-
$this->assertTrue($this->dir->removeChild('bar'));
|
177 |
-
$this->assertEquals(array(), $this->dir->getChildren());
|
178 |
-
$this->assertEquals(0, $this->dir->size());
|
179 |
-
$this->assertEquals(0, $this->dir->sizeSummarized());
|
180 |
-
}
|
181 |
-
|
182 |
-
/**
|
183 |
-
* test that adding, handling and removing of a child works as expected
|
184 |
-
*
|
185 |
-
* @test
|
186 |
-
*/
|
187 |
-
public function childHandlingWithSubdirectory()
|
188 |
-
{
|
189 |
-
$mockChild = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
190 |
-
$mockChild->expects($this->any())
|
191 |
-
->method('getType')
|
192 |
-
->will($this->returnValue(vfsStreamContent::TYPE_FILE));
|
193 |
-
$mockChild->expects($this->any())
|
194 |
-
->method('getName')
|
195 |
-
->will($this->returnValue('bar'));
|
196 |
-
$mockChild->expects($this->once())
|
197 |
-
->method('size')
|
198 |
-
->will($this->returnValue(5));
|
199 |
-
$subdir = new vfsStreamDirectory('subdir');
|
200 |
-
$subdir->addChild($mockChild);
|
201 |
-
$this->dir->addChild($subdir);
|
202 |
-
$this->assertTrue($this->dir->hasChild('subdir'));
|
203 |
-
$this->assertSame($subdir, $this->dir->getChild('subdir'));
|
204 |
-
$this->assertEquals(array($subdir), $this->dir->getChildren());
|
205 |
-
$this->assertEquals(0, $this->dir->size());
|
206 |
-
$this->assertEquals(5, $this->dir->sizeSummarized());
|
207 |
-
$this->assertTrue($this->dir->removeChild('subdir'));
|
208 |
-
$this->assertEquals(array(), $this->dir->getChildren());
|
209 |
-
$this->assertEquals(0, $this->dir->size());
|
210 |
-
$this->assertEquals(0, $this->dir->sizeSummarized());
|
211 |
-
}
|
212 |
-
|
213 |
-
/**
|
214 |
-
* dd
|
215 |
-
*
|
216 |
-
* @test
|
217 |
-
* @group regression
|
218 |
-
* @group bug_5
|
219 |
-
*/
|
220 |
-
public function addChildReplacesChildWithSameName_Bug_5()
|
221 |
-
{
|
222 |
-
$mockChild1 = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
223 |
-
$mockChild1->expects($this->any())
|
224 |
-
->method('getType')
|
225 |
-
->will($this->returnValue(vfsStreamContent::TYPE_FILE));
|
226 |
-
$mockChild1->expects($this->any())
|
227 |
-
->method('getName')
|
228 |
-
->will($this->returnValue('bar'));
|
229 |
-
$mockChild2 = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
230 |
-
$mockChild2->expects($this->any())
|
231 |
-
->method('getType')
|
232 |
-
->will($this->returnValue(vfsStreamContent::TYPE_FILE));
|
233 |
-
$mockChild2->expects($this->any())
|
234 |
-
->method('getName')
|
235 |
-
->will($this->returnValue('bar'));
|
236 |
-
$this->dir->addChild($mockChild1);
|
237 |
-
$this->assertTrue($this->dir->hasChild('bar'));
|
238 |
-
$this->assertSame($mockChild1, $this->dir->getChild('bar'));
|
239 |
-
$this->dir->addChild($mockChild2);
|
240 |
-
$this->assertTrue($this->dir->hasChild('bar'));
|
241 |
-
$this->assertSame($mockChild2, $this->dir->getChild('bar'));
|
242 |
-
}
|
243 |
-
|
244 |
-
/**
|
245 |
-
* When testing for a nested path, verify that directory separators are respected properly
|
246 |
-
* so that subdir1/subdir2 is not considered equal to subdir1Xsubdir2.
|
247 |
-
*
|
248 |
-
* @test
|
249 |
-
* @group bug_24
|
250 |
-
* @group regression
|
251 |
-
*/
|
252 |
-
public function explicitTestForSeparatorWithNestedPaths_Bug_24()
|
253 |
-
{
|
254 |
-
$mockChild = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
255 |
-
$mockChild->expects($this->any())
|
256 |
-
->method('getType')
|
257 |
-
->will($this->returnValue(vfsStreamContent::TYPE_FILE));
|
258 |
-
$mockChild->expects($this->any())
|
259 |
-
->method('getName')
|
260 |
-
->will($this->returnValue('bar'));
|
261 |
-
|
262 |
-
$subdir1 = new vfsStreamDirectory('subdir1');
|
263 |
-
$this->dir->addChild($subdir1);
|
264 |
-
|
265 |
-
$subdir2 = new vfsStreamDirectory('subdir2');
|
266 |
-
$subdir1->addChild($subdir2);
|
267 |
-
|
268 |
-
$subdir2->addChild($mockChild);
|
269 |
-
|
270 |
-
$this->assertTrue($this->dir->hasChild('subdir1'), "Level 1 path with separator exists");
|
271 |
-
$this->assertTrue($this->dir->hasChild('subdir1/subdir2'), "Level 2 path with separator exists");
|
272 |
-
$this->assertTrue($this->dir->hasChild('subdir1/subdir2/bar'), "Level 3 path with separator exists");
|
273 |
-
$this->assertFalse($this->dir->hasChild('subdir1.subdir2'), "Path with period does not exist");
|
274 |
-
$this->assertFalse($this->dir->hasChild('subdir1.subdir2/bar'), "Nested path with period does not exist");
|
275 |
-
}
|
276 |
-
|
277 |
-
|
278 |
-
/**
|
279 |
-
* setting and retrieving permissions for a directory
|
280 |
-
*
|
281 |
-
* @test
|
282 |
-
* @group permissions
|
283 |
-
*/
|
284 |
-
public function permissions()
|
285 |
-
{
|
286 |
-
$this->assertEquals(0777, $this->dir->getPermissions());
|
287 |
-
$this->assertSame($this->dir, $this->dir->chmod(0755));
|
288 |
-
$this->assertEquals(0755, $this->dir->getPermissions());
|
289 |
-
}
|
290 |
-
|
291 |
-
/**
|
292 |
-
* setting and retrieving permissions for a directory
|
293 |
-
*
|
294 |
-
* @test
|
295 |
-
* @group permissions
|
296 |
-
*/
|
297 |
-
public function permissionsSet()
|
298 |
-
{
|
299 |
-
$this->dir = new vfsStreamDirectory('foo', 0755);
|
300 |
-
$this->assertEquals(0755, $this->dir->getPermissions());
|
301 |
-
$this->assertSame($this->dir, $this->dir->chmod(0700));
|
302 |
-
$this->assertEquals(0700, $this->dir->getPermissions());
|
303 |
-
}
|
304 |
-
|
305 |
-
/**
|
306 |
-
* setting and retrieving owner of a file
|
307 |
-
*
|
308 |
-
* @test
|
309 |
-
* @group permissions
|
310 |
-
*/
|
311 |
-
public function owner()
|
312 |
-
{
|
313 |
-
$this->assertEquals(vfsStream::getCurrentUser(), $this->dir->getUser());
|
314 |
-
$this->assertTrue($this->dir->isOwnedByUser(vfsStream::getCurrentUser()));
|
315 |
-
$this->assertSame($this->dir, $this->dir->chown(vfsStream::OWNER_USER_1));
|
316 |
-
$this->assertEquals(vfsStream::OWNER_USER_1, $this->dir->getUser());
|
317 |
-
$this->assertTrue($this->dir->isOwnedByUser(vfsStream::OWNER_USER_1));
|
318 |
-
}
|
319 |
-
|
320 |
-
/**
|
321 |
-
* setting and retrieving owner group of a file
|
322 |
-
*
|
323 |
-
* @test
|
324 |
-
* @group permissions
|
325 |
-
*/
|
326 |
-
public function group()
|
327 |
-
{
|
328 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), $this->dir->getGroup());
|
329 |
-
$this->assertTrue($this->dir->isOwnedByGroup(vfsStream::getCurrentGroup()));
|
330 |
-
$this->assertSame($this->dir, $this->dir->chgrp(vfsStream::GROUP_USER_1));
|
331 |
-
$this->assertEquals(vfsStream::GROUP_USER_1, $this->dir->getGroup());
|
332 |
-
$this->assertTrue($this->dir->isOwnedByGroup(vfsStream::GROUP_USER_1));
|
333 |
-
}
|
334 |
-
}
|
335 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamExLockTestCase.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for LOCK_EX behaviour related to file_put_contents().
|
13 |
-
*
|
14 |
-
* @group lock_fpc
|
15 |
-
* @author https://github.com/iwyg
|
16 |
-
*/
|
17 |
-
class vfsStreamExLockTestCase extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* set up test environment
|
21 |
-
*/
|
22 |
-
protected function setUp()
|
23 |
-
{
|
24 |
-
$root = vfsStream::setup();
|
25 |
-
vfsStream::newFile('testfile')->at($root);
|
26 |
-
|
27 |
-
}
|
28 |
-
|
29 |
-
/**
|
30 |
-
* This test verifies the current behaviour where vfsStream URLs do not work
|
31 |
-
* with file_put_contents() and LOCK_EX. The test is intended to break once
|
32 |
-
* PHP changes this so we get notified about the change.
|
33 |
-
*
|
34 |
-
* @test
|
35 |
-
*/
|
36 |
-
public function filePutContentsLockShouldReportError()
|
37 |
-
{
|
38 |
-
@file_put_contents(vfsStream::url('root/testfile'), "some string\n", LOCK_EX);
|
39 |
-
$php_error = error_get_last();
|
40 |
-
$this->assertEquals("file_put_contents(): Exclusive locks may only be set for regular files", $php_error['message']);
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* @test
|
45 |
-
*/
|
46 |
-
public function flockSouldPass()
|
47 |
-
{
|
48 |
-
$fp = fopen(vfsStream::url('root/testfile'), 'w');
|
49 |
-
flock($fp, LOCK_EX);
|
50 |
-
fwrite($fp, "another string\n");
|
51 |
-
flock($fp, LOCK_UN);
|
52 |
-
fclose($fp);
|
53 |
-
$this->assertEquals("another string\n", file_get_contents(vfsStream::url('root/testfile')));
|
54 |
-
}
|
55 |
-
}
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamFileTestCase.php
DELETED
@@ -1,306 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamFile.
|
13 |
-
*/
|
14 |
-
class vfsStreamFileTestCase extends \PHPUnit_Framework_TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* instance to test
|
18 |
-
*
|
19 |
-
* @var vfsStreamFile
|
20 |
-
*/
|
21 |
-
protected $file;
|
22 |
-
|
23 |
-
/**
|
24 |
-
* set up test environment
|
25 |
-
*/
|
26 |
-
public function setUp()
|
27 |
-
{
|
28 |
-
$this->file = new vfsStreamFile('foo');
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* test default values and methods
|
33 |
-
*
|
34 |
-
* @test
|
35 |
-
*/
|
36 |
-
public function defaultValues()
|
37 |
-
{
|
38 |
-
$this->assertEquals(vfsStreamContent::TYPE_FILE, $this->file->getType());
|
39 |
-
$this->assertEquals('foo', $this->file->getName());
|
40 |
-
$this->assertTrue($this->file->appliesTo('foo'));
|
41 |
-
$this->assertFalse($this->file->appliesTo('foo/bar'));
|
42 |
-
$this->assertFalse($this->file->appliesTo('bar'));
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* test setting and getting the content of a file
|
47 |
-
*
|
48 |
-
* @test
|
49 |
-
*/
|
50 |
-
public function content()
|
51 |
-
{
|
52 |
-
$this->assertNull($this->file->getContent());
|
53 |
-
$this->assertSame($this->file, $this->file->setContent('bar'));
|
54 |
-
$this->assertEquals('bar', $this->file->getContent());
|
55 |
-
$this->assertSame($this->file, $this->file->withContent('baz'));
|
56 |
-
$this->assertEquals('baz', $this->file->getContent());
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* test renaming the directory
|
61 |
-
*
|
62 |
-
* @test
|
63 |
-
*/
|
64 |
-
public function rename()
|
65 |
-
{
|
66 |
-
$this->file->rename('bar');
|
67 |
-
$this->assertEquals('bar', $this->file->getName());
|
68 |
-
$this->assertFalse($this->file->appliesTo('foo'));
|
69 |
-
$this->assertFalse($this->file->appliesTo('foo/bar'));
|
70 |
-
$this->assertTrue($this->file->appliesTo('bar'));
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* test reading contents from the file
|
75 |
-
*
|
76 |
-
* @test
|
77 |
-
*/
|
78 |
-
public function readEmptyFile()
|
79 |
-
{
|
80 |
-
$this->assertTrue($this->file->eof());
|
81 |
-
$this->assertEquals(0, $this->file->size());
|
82 |
-
$this->assertEquals('', $this->file->read(5));
|
83 |
-
$this->assertEquals(5, $this->file->getBytesRead());
|
84 |
-
$this->assertTrue($this->file->eof());
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* test reading contents from the file
|
89 |
-
*
|
90 |
-
* @test
|
91 |
-
*/
|
92 |
-
public function read()
|
93 |
-
{
|
94 |
-
$this->file->setContent('foobarbaz');
|
95 |
-
$this->assertFalse($this->file->eof());
|
96 |
-
$this->assertEquals(9, $this->file->size());
|
97 |
-
$this->assertEquals('foo', $this->file->read(3));
|
98 |
-
$this->assertEquals(3, $this->file->getBytesRead());
|
99 |
-
$this->assertFalse($this->file->eof());
|
100 |
-
$this->assertEquals(9, $this->file->size());
|
101 |
-
$this->assertEquals('bar', $this->file->read(3));
|
102 |
-
$this->assertEquals(6, $this->file->getBytesRead());
|
103 |
-
$this->assertFalse($this->file->eof());
|
104 |
-
$this->assertEquals(9, $this->file->size());
|
105 |
-
$this->assertEquals('baz', $this->file->read(3));
|
106 |
-
$this->assertEquals(9, $this->file->getBytesRead());
|
107 |
-
$this->assertEquals(9, $this->file->size());
|
108 |
-
$this->assertTrue($this->file->eof());
|
109 |
-
$this->assertEquals('', $this->file->read(3));
|
110 |
-
}
|
111 |
-
|
112 |
-
/**
|
113 |
-
* test seeking to offset
|
114 |
-
*
|
115 |
-
* @test
|
116 |
-
*/
|
117 |
-
public function seekEmptyFile()
|
118 |
-
{
|
119 |
-
$this->assertFalse($this->file->seek(0, 55));
|
120 |
-
$this->assertTrue($this->file->seek(0, SEEK_SET));
|
121 |
-
$this->assertEquals(0, $this->file->getBytesRead());
|
122 |
-
$this->assertTrue($this->file->seek(5, SEEK_SET));
|
123 |
-
$this->assertEquals(5, $this->file->getBytesRead());
|
124 |
-
$this->assertTrue($this->file->seek(0, SEEK_CUR));
|
125 |
-
$this->assertEquals(5, $this->file->getBytesRead());
|
126 |
-
$this->assertTrue($this->file->seek(2, SEEK_CUR));
|
127 |
-
$this->assertEquals(7, $this->file->getBytesRead());
|
128 |
-
$this->assertTrue($this->file->seek(0, SEEK_END));
|
129 |
-
$this->assertEquals(0, $this->file->getBytesRead());
|
130 |
-
$this->assertTrue($this->file->seek(2, SEEK_END));
|
131 |
-
$this->assertEquals(2, $this->file->getBytesRead());
|
132 |
-
}
|
133 |
-
|
134 |
-
/**
|
135 |
-
* test seeking to offset
|
136 |
-
*
|
137 |
-
* @test
|
138 |
-
*/
|
139 |
-
public function seekRead()
|
140 |
-
{
|
141 |
-
$this->file->setContent('foobarbaz');
|
142 |
-
$this->assertFalse($this->file->seek(0, 55));
|
143 |
-
$this->assertTrue($this->file->seek(0, SEEK_SET));
|
144 |
-
$this->assertEquals('foobarbaz', $this->file->readUntilEnd());
|
145 |
-
$this->assertEquals(0, $this->file->getBytesRead());
|
146 |
-
$this->assertTrue($this->file->seek(5, SEEK_SET));
|
147 |
-
$this->assertEquals('rbaz', $this->file->readUntilEnd());
|
148 |
-
$this->assertEquals(5, $this->file->getBytesRead());
|
149 |
-
$this->assertTrue($this->file->seek(0, SEEK_CUR));
|
150 |
-
$this->assertEquals('rbaz', $this->file->readUntilEnd());
|
151 |
-
$this->assertEquals(5, $this->file->getBytesRead(), 5);
|
152 |
-
$this->assertTrue($this->file->seek(2, SEEK_CUR));
|
153 |
-
$this->assertEquals('az', $this->file->readUntilEnd());
|
154 |
-
$this->assertEquals(7, $this->file->getBytesRead());
|
155 |
-
$this->assertTrue($this->file->seek(0, SEEK_END));
|
156 |
-
$this->assertEquals('', $this->file->readUntilEnd());
|
157 |
-
$this->assertEquals(9, $this->file->getBytesRead());
|
158 |
-
$this->assertTrue($this->file->seek(2, SEEK_END));
|
159 |
-
$this->assertEquals('', $this->file->readUntilEnd());
|
160 |
-
$this->assertEquals(11, $this->file->getBytesRead());
|
161 |
-
}
|
162 |
-
|
163 |
-
/**
|
164 |
-
* test writing data into the file
|
165 |
-
*
|
166 |
-
* @test
|
167 |
-
*/
|
168 |
-
public function writeEmptyFile()
|
169 |
-
{
|
170 |
-
$this->assertEquals(3, $this->file->write('foo'));
|
171 |
-
$this->assertEquals('foo', $this->file->getContent());
|
172 |
-
$this->assertEquals(3, $this->file->size());
|
173 |
-
$this->assertEquals(3, $this->file->write('bar'));
|
174 |
-
$this->assertEquals('foobar', $this->file->getContent());
|
175 |
-
$this->assertEquals(6, $this->file->size());
|
176 |
-
}
|
177 |
-
|
178 |
-
/**
|
179 |
-
* test writing data into the file
|
180 |
-
*
|
181 |
-
* @test
|
182 |
-
*/
|
183 |
-
public function write()
|
184 |
-
{
|
185 |
-
$this->file->setContent('foobarbaz');
|
186 |
-
$this->assertTrue($this->file->seek(3, SEEK_SET));
|
187 |
-
$this->assertEquals(3, $this->file->write('foo'));
|
188 |
-
$this->assertEquals('foofoobaz', $this->file->getContent());
|
189 |
-
$this->assertEquals(9, $this->file->size());
|
190 |
-
$this->assertEquals(3, $this->file->write('bar'));
|
191 |
-
$this->assertEquals('foofoobar', $this->file->getContent());
|
192 |
-
$this->assertEquals(9, $this->file->size());
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* setting and retrieving permissions for a file
|
197 |
-
*
|
198 |
-
* @test
|
199 |
-
* @group permissions
|
200 |
-
*/
|
201 |
-
public function permissions()
|
202 |
-
{
|
203 |
-
$this->assertEquals(0666, $this->file->getPermissions());
|
204 |
-
$this->assertSame($this->file, $this->file->chmod(0644));
|
205 |
-
$this->assertEquals(0644, $this->file->getPermissions());
|
206 |
-
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* setting and retrieving permissions for a file
|
210 |
-
*
|
211 |
-
* @test
|
212 |
-
* @group permissions
|
213 |
-
*/
|
214 |
-
public function permissionsSet()
|
215 |
-
{
|
216 |
-
$this->file = new vfsStreamFile('foo', 0644);
|
217 |
-
$this->assertEquals(0644, $this->file->getPermissions());
|
218 |
-
$this->assertSame($this->file, $this->file->chmod(0600));
|
219 |
-
$this->assertEquals(0600, $this->file->getPermissions());
|
220 |
-
}
|
221 |
-
|
222 |
-
/**
|
223 |
-
* setting and retrieving owner of a file
|
224 |
-
*
|
225 |
-
* @test
|
226 |
-
* @group permissions
|
227 |
-
*/
|
228 |
-
public function owner()
|
229 |
-
{
|
230 |
-
$this->assertEquals(vfsStream::getCurrentUser(), $this->file->getUser());
|
231 |
-
$this->assertTrue($this->file->isOwnedByUser(vfsStream::getCurrentUser()));
|
232 |
-
$this->assertSame($this->file, $this->file->chown(vfsStream::OWNER_USER_1));
|
233 |
-
$this->assertEquals(vfsStream::OWNER_USER_1, $this->file->getUser());
|
234 |
-
$this->assertTrue($this->file->isOwnedByUser(vfsStream::OWNER_USER_1));
|
235 |
-
}
|
236 |
-
|
237 |
-
/**
|
238 |
-
* setting and retrieving owner group of a file
|
239 |
-
*
|
240 |
-
* @test
|
241 |
-
* @group permissions
|
242 |
-
*/
|
243 |
-
public function group()
|
244 |
-
{
|
245 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), $this->file->getGroup());
|
246 |
-
$this->assertTrue($this->file->isOwnedByGroup(vfsStream::getCurrentGroup()));
|
247 |
-
$this->assertSame($this->file, $this->file->chgrp(vfsStream::GROUP_USER_1));
|
248 |
-
$this->assertEquals(vfsStream::GROUP_USER_1, $this->file->getGroup());
|
249 |
-
$this->assertTrue($this->file->isOwnedByGroup(vfsStream::GROUP_USER_1));
|
250 |
-
}
|
251 |
-
|
252 |
-
/**
|
253 |
-
* @test
|
254 |
-
* @group issue_33
|
255 |
-
* @since 1.1.0
|
256 |
-
*/
|
257 |
-
public function truncateRemovesSuperflouosContent()
|
258 |
-
{
|
259 |
-
$this->assertEquals(11, $this->file->write("lorem ipsum"));
|
260 |
-
$this->assertTrue($this->file->truncate(5));
|
261 |
-
$this->assertEquals(5, $this->file->size());
|
262 |
-
$this->assertEquals('lorem', $this->file->getContent());
|
263 |
-
}
|
264 |
-
|
265 |
-
/**
|
266 |
-
* @test
|
267 |
-
* @group issue_33
|
268 |
-
* @since 1.1.0
|
269 |
-
*/
|
270 |
-
public function truncateToGreaterSizeAddsZeroBytes()
|
271 |
-
{
|
272 |
-
$this->assertEquals(11, $this->file->write("lorem ipsum"));
|
273 |
-
$this->assertTrue($this->file->truncate(25));
|
274 |
-
$this->assertEquals(25, $this->file->size());
|
275 |
-
$this->assertEquals("lorem ipsum\0\0\0\0\0\0\0\0\0\0\0\0\0\0", $this->file->getContent());
|
276 |
-
}
|
277 |
-
|
278 |
-
/**
|
279 |
-
* @test
|
280 |
-
* @group issue_79
|
281 |
-
* @since 1.3.0
|
282 |
-
*/
|
283 |
-
public function withContentAcceptsAnyFileContentInstance()
|
284 |
-
{
|
285 |
-
$mockFileContent = $this->getMock('org\bovigo\vfs\content\FileContent');
|
286 |
-
$mockFileContent->expects($this->once())
|
287 |
-
->method('content')
|
288 |
-
->will($this->returnValue('foobarbaz'));
|
289 |
-
$this->assertEquals(
|
290 |
-
'foobarbaz',
|
291 |
-
$this->file->withContent($mockFileContent)
|
292 |
-
->getContent()
|
293 |
-
);
|
294 |
-
}
|
295 |
-
|
296 |
-
/**
|
297 |
-
* @test
|
298 |
-
* @group issue_79
|
299 |
-
* @expectedException \InvalidArgumentException
|
300 |
-
* @since 1.3.0
|
301 |
-
*/
|
302 |
-
public function withContentThrowsInvalidArgumentExceptionWhenContentIsNoStringAndNoFileContent()
|
303 |
-
{
|
304 |
-
$this->file->withContent(313);
|
305 |
-
}
|
306 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamGlobTestCase.php
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStream.
|
13 |
-
*
|
14 |
-
* @since 0.9.0
|
15 |
-
* @group issue_2
|
16 |
-
*/
|
17 |
-
class vfsStreamGlobTestCase extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* @test
|
21 |
-
*/
|
22 |
-
public function globDoesNotWorkWithVfsStreamUrls()
|
23 |
-
{
|
24 |
-
$root = vfsStream::setup('example');
|
25 |
-
mkdir(vfsStream::url('example/test/'), 0777, true);
|
26 |
-
$this->assertEmpty(glob(vfsStream::url('example'), GLOB_MARK));
|
27 |
-
}
|
28 |
-
}
|
29 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamResolveIncludePathTestCase.php
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStream.
|
13 |
-
*
|
14 |
-
* @since 0.9.0
|
15 |
-
* @group issue_5
|
16 |
-
*/
|
17 |
-
class vfsStreamResolveIncludePathTestCase extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* include path to restore after test run
|
21 |
-
*
|
22 |
-
* @var string
|
23 |
-
*/
|
24 |
-
protected $backupIncludePath;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* set up test environment
|
28 |
-
*/
|
29 |
-
public function setUp()
|
30 |
-
{
|
31 |
-
$this->backupIncludePath = get_include_path();
|
32 |
-
vfsStream::setup();
|
33 |
-
mkdir('vfs://root/a/path', 0777, true);
|
34 |
-
set_include_path('vfs://root/a' . PATH_SEPARATOR . $this->backupIncludePath);
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* clean up test environment
|
39 |
-
*/
|
40 |
-
public function tearDown()
|
41 |
-
{
|
42 |
-
set_include_path($this->backupIncludePath);
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @test
|
47 |
-
*/
|
48 |
-
public function knownFileCanBeResolved()
|
49 |
-
{
|
50 |
-
file_put_contents('vfs://root/a/path/knownFile.php', '<?php ?>');
|
51 |
-
$this->assertEquals('vfs://root/a/path/knownFile.php', stream_resolve_include_path('path/knownFile.php'));
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @test
|
56 |
-
*/
|
57 |
-
public function unknownFileCanNotBeResolvedYieldsFalse()
|
58 |
-
{
|
59 |
-
$this->assertFalse(@stream_resolve_include_path('path/unknownFile.php'));
|
60 |
-
}
|
61 |
-
}
|
62 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamTestCase.php
DELETED
@@ -1,728 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStream.
|
13 |
-
*/
|
14 |
-
class vfsStreamTestCase extends \PHPUnit_Framework_TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* set up test environment
|
18 |
-
*/
|
19 |
-
public function setUp()
|
20 |
-
{
|
21 |
-
vfsStreamWrapper::register();
|
22 |
-
}
|
23 |
-
|
24 |
-
/**
|
25 |
-
* assure that path2url conversion works correct
|
26 |
-
*
|
27 |
-
* @test
|
28 |
-
*/
|
29 |
-
public function url()
|
30 |
-
{
|
31 |
-
$this->assertEquals('vfs://foo', vfsStream::url('foo'));
|
32 |
-
$this->assertEquals('vfs://foo/bar.baz', vfsStream::url('foo/bar.baz'));
|
33 |
-
$this->assertEquals('vfs://foo/bar.baz', vfsStream::url('foo\bar.baz'));
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* assure that url2path conversion works correct
|
38 |
-
*
|
39 |
-
* @test
|
40 |
-
*/
|
41 |
-
public function path()
|
42 |
-
{
|
43 |
-
$this->assertEquals('foo', vfsStream::path('vfs://foo'));
|
44 |
-
$this->assertEquals('foo/bar.baz', vfsStream::path('vfs://foo/bar.baz'));
|
45 |
-
$this->assertEquals('foo/bar.baz', vfsStream::path('vfs://foo\bar.baz'));
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* windows directory separators are converted into default separator
|
50 |
-
*
|
51 |
-
* @author Gabriel Birke
|
52 |
-
* @test
|
53 |
-
*/
|
54 |
-
public function pathConvertsWindowsDirectorySeparators()
|
55 |
-
{
|
56 |
-
$this->assertEquals('foo/bar', vfsStream::path('vfs://foo\\bar'));
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* trailing whitespace should be removed
|
61 |
-
*
|
62 |
-
* @author Gabriel Birke
|
63 |
-
* @test
|
64 |
-
*/
|
65 |
-
public function pathRemovesTrailingWhitespace()
|
66 |
-
{
|
67 |
-
$this->assertEquals('foo/bar', vfsStream::path('vfs://foo/bar '));
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* trailing slashes are removed
|
72 |
-
*
|
73 |
-
* @author Gabriel Birke
|
74 |
-
* @test
|
75 |
-
*/
|
76 |
-
public function pathRemovesTrailingSlash()
|
77 |
-
{
|
78 |
-
$this->assertEquals('foo/bar', vfsStream::path('vfs://foo/bar/'));
|
79 |
-
}
|
80 |
-
|
81 |
-
/**
|
82 |
-
* trailing slash and whitespace should be removed
|
83 |
-
*
|
84 |
-
* @author Gabriel Birke
|
85 |
-
* @test
|
86 |
-
*/
|
87 |
-
public function pathRemovesTrailingSlashAndWhitespace()
|
88 |
-
{
|
89 |
-
$this->assertEquals('foo/bar', vfsStream::path('vfs://foo/bar/ '));
|
90 |
-
}
|
91 |
-
|
92 |
-
/**
|
93 |
-
* double slashes should be replaced by single slash
|
94 |
-
*
|
95 |
-
* @author Gabriel Birke
|
96 |
-
* @test
|
97 |
-
*/
|
98 |
-
public function pathRemovesDoubleSlashes()
|
99 |
-
{
|
100 |
-
// Regular path
|
101 |
-
$this->assertEquals('my/path', vfsStream::path('vfs://my/path'));
|
102 |
-
// Path with double slashes
|
103 |
-
$this->assertEquals('my/path', vfsStream::path('vfs://my//path'));
|
104 |
-
}
|
105 |
-
|
106 |
-
/**
|
107 |
-
* test to create a new file
|
108 |
-
*
|
109 |
-
* @test
|
110 |
-
*/
|
111 |
-
public function newFile()
|
112 |
-
{
|
113 |
-
$file = vfsStream::newFile('filename.txt');
|
114 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamFile', $file);
|
115 |
-
$this->assertEquals('filename.txt', $file->getName());
|
116 |
-
$this->assertEquals(0666, $file->getPermissions());
|
117 |
-
}
|
118 |
-
|
119 |
-
/**
|
120 |
-
* test to create a new file with non-default permissions
|
121 |
-
*
|
122 |
-
* @test
|
123 |
-
* @group permissions
|
124 |
-
*/
|
125 |
-
public function newFileWithDifferentPermissions()
|
126 |
-
{
|
127 |
-
$file = vfsStream::newFile('filename.txt', 0644);
|
128 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamFile', $file);
|
129 |
-
$this->assertEquals('filename.txt', $file->getName());
|
130 |
-
$this->assertEquals(0644, $file->getPermissions());
|
131 |
-
}
|
132 |
-
|
133 |
-
/**
|
134 |
-
* test to create a new directory structure
|
135 |
-
*
|
136 |
-
* @test
|
137 |
-
*/
|
138 |
-
public function newSingleDirectory()
|
139 |
-
{
|
140 |
-
$foo = vfsStream::newDirectory('foo');
|
141 |
-
$this->assertEquals('foo', $foo->getName());
|
142 |
-
$this->assertEquals(0, count($foo->getChildren()));
|
143 |
-
$this->assertEquals(0777, $foo->getPermissions());
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* test to create a new directory structure with non-default permissions
|
148 |
-
*
|
149 |
-
* @test
|
150 |
-
* @group permissions
|
151 |
-
*/
|
152 |
-
public function newSingleDirectoryWithDifferentPermissions()
|
153 |
-
{
|
154 |
-
$foo = vfsStream::newDirectory('foo', 0755);
|
155 |
-
$this->assertEquals('foo', $foo->getName());
|
156 |
-
$this->assertEquals(0, count($foo->getChildren()));
|
157 |
-
$this->assertEquals(0755, $foo->getPermissions());
|
158 |
-
}
|
159 |
-
|
160 |
-
/**
|
161 |
-
* test to create a new directory structure
|
162 |
-
*
|
163 |
-
* @test
|
164 |
-
*/
|
165 |
-
public function newDirectoryStructure()
|
166 |
-
{
|
167 |
-
$foo = vfsStream::newDirectory('foo/bar/baz');
|
168 |
-
$this->assertEquals('foo', $foo->getName());
|
169 |
-
$this->assertEquals(0777, $foo->getPermissions());
|
170 |
-
$this->assertTrue($foo->hasChild('bar'));
|
171 |
-
$this->assertTrue($foo->hasChild('bar/baz'));
|
172 |
-
$this->assertFalse($foo->hasChild('baz'));
|
173 |
-
$bar = $foo->getChild('bar');
|
174 |
-
$this->assertEquals('bar', $bar->getName());
|
175 |
-
$this->assertEquals(0777, $bar->getPermissions());
|
176 |
-
$this->assertTrue($bar->hasChild('baz'));
|
177 |
-
$baz1 = $bar->getChild('baz');
|
178 |
-
$this->assertEquals('baz', $baz1->getName());
|
179 |
-
$this->assertEquals(0777, $baz1->getPermissions());
|
180 |
-
$baz2 = $foo->getChild('bar/baz');
|
181 |
-
$this->assertSame($baz1, $baz2);
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* test that correct directory structure is created
|
186 |
-
*
|
187 |
-
* @test
|
188 |
-
*/
|
189 |
-
public function newDirectoryWithSlashAtStart()
|
190 |
-
{
|
191 |
-
$foo = vfsStream::newDirectory('/foo/bar/baz', 0755);
|
192 |
-
$this->assertEquals('foo', $foo->getName());
|
193 |
-
$this->assertEquals(0755, $foo->getPermissions());
|
194 |
-
$this->assertTrue($foo->hasChild('bar'));
|
195 |
-
$this->assertTrue($foo->hasChild('bar/baz'));
|
196 |
-
$this->assertFalse($foo->hasChild('baz'));
|
197 |
-
$bar = $foo->getChild('bar');
|
198 |
-
$this->assertEquals('bar', $bar->getName());
|
199 |
-
$this->assertEquals(0755, $bar->getPermissions());
|
200 |
-
$this->assertTrue($bar->hasChild('baz'));
|
201 |
-
$baz1 = $bar->getChild('baz');
|
202 |
-
$this->assertEquals('baz', $baz1->getName());
|
203 |
-
$this->assertEquals(0755, $baz1->getPermissions());
|
204 |
-
$baz2 = $foo->getChild('bar/baz');
|
205 |
-
$this->assertSame($baz1, $baz2);
|
206 |
-
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* @test
|
210 |
-
* @group setup
|
211 |
-
* @since 0.7.0
|
212 |
-
*/
|
213 |
-
public function setupRegistersStreamWrapperAndCreatesRootDirectoryWithDefaultNameAndPermissions()
|
214 |
-
{
|
215 |
-
$root = vfsStream::setup();
|
216 |
-
$this->assertSame($root, vfsStreamWrapper::getRoot());
|
217 |
-
$this->assertEquals('root', $root->getName());
|
218 |
-
$this->assertEquals(0777, $root->getPermissions());
|
219 |
-
}
|
220 |
-
|
221 |
-
/**
|
222 |
-
* @test
|
223 |
-
* @group setup
|
224 |
-
* @since 0.7.0
|
225 |
-
*/
|
226 |
-
public function setupRegistersStreamWrapperAndCreatesRootDirectoryWithGivenNameAndDefaultPermissions()
|
227 |
-
{
|
228 |
-
$root = vfsStream::setup('foo');
|
229 |
-
$this->assertSame($root, vfsStreamWrapper::getRoot());
|
230 |
-
$this->assertEquals('foo', $root->getName());
|
231 |
-
$this->assertEquals(0777, $root->getPermissions());
|
232 |
-
}
|
233 |
-
|
234 |
-
/**
|
235 |
-
* @test
|
236 |
-
* @group setup
|
237 |
-
* @since 0.7.0
|
238 |
-
*/
|
239 |
-
public function setupRegistersStreamWrapperAndCreatesRootDirectoryWithGivenNameAndPermissions()
|
240 |
-
{
|
241 |
-
$root = vfsStream::setup('foo', 0444);
|
242 |
-
$this->assertSame($root, vfsStreamWrapper::getRoot());
|
243 |
-
$this->assertEquals('foo', $root->getName());
|
244 |
-
$this->assertEquals(0444, $root->getPermissions());
|
245 |
-
}
|
246 |
-
|
247 |
-
/**
|
248 |
-
* @test
|
249 |
-
* @group issue_14
|
250 |
-
* @group issue_20
|
251 |
-
* @since 0.10.0
|
252 |
-
*/
|
253 |
-
public function setupWithEmptyArrayIsEqualToSetup()
|
254 |
-
{
|
255 |
-
$root = vfsStream::setup('example',
|
256 |
-
0755,
|
257 |
-
array()
|
258 |
-
);
|
259 |
-
$this->assertEquals('example', $root->getName());
|
260 |
-
$this->assertEquals(0755, $root->getPermissions());
|
261 |
-
$this->assertFalse($root->hasChildren());
|
262 |
-
}
|
263 |
-
|
264 |
-
/**
|
265 |
-
* @test
|
266 |
-
* @group issue_14
|
267 |
-
* @group issue_20
|
268 |
-
* @since 0.10.0
|
269 |
-
*/
|
270 |
-
public function setupArraysAreTurnedIntoSubdirectories()
|
271 |
-
{
|
272 |
-
$root = vfsStream::setup('root',
|
273 |
-
null,
|
274 |
-
array('test' => array())
|
275 |
-
);
|
276 |
-
$this->assertTrue($root->hasChildren());
|
277 |
-
$this->assertTrue($root->hasChild('test'));
|
278 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory',
|
279 |
-
$root->getChild('test')
|
280 |
-
);
|
281 |
-
$this->assertFalse($root->getChild('test')->hasChildren());
|
282 |
-
}
|
283 |
-
|
284 |
-
/**
|
285 |
-
* @test
|
286 |
-
* @group issue_14
|
287 |
-
* @group issue_20
|
288 |
-
* @since 0.10.0
|
289 |
-
*/
|
290 |
-
public function setupStringsAreTurnedIntoFilesWithContent()
|
291 |
-
{
|
292 |
-
$root = vfsStream::setup('root',
|
293 |
-
null,
|
294 |
-
array('test.txt' => 'some content')
|
295 |
-
);
|
296 |
-
$this->assertTrue($root->hasChildren());
|
297 |
-
$this->assertTrue($root->hasChild('test.txt'));
|
298 |
-
$this->assertVfsFile($root->getChild('test.txt'), 'some content');
|
299 |
-
}
|
300 |
-
|
301 |
-
/**
|
302 |
-
* @test
|
303 |
-
* @group issue_14
|
304 |
-
* @group issue_20
|
305 |
-
* @since 0.10.0
|
306 |
-
*/
|
307 |
-
public function setupWorksRecursively()
|
308 |
-
{
|
309 |
-
$root = vfsStream::setup('root',
|
310 |
-
null,
|
311 |
-
array('test' => array('foo' => array('test.txt' => 'hello'),
|
312 |
-
'baz.txt' => 'world'
|
313 |
-
)
|
314 |
-
)
|
315 |
-
);
|
316 |
-
$this->assertTrue($root->hasChildren());
|
317 |
-
$this->assertTrue($root->hasChild('test'));
|
318 |
-
$test = $root->getChild('test');
|
319 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory', $test);
|
320 |
-
$this->assertTrue($test->hasChildren());
|
321 |
-
$this->assertTrue($test->hasChild('baz.txt'));
|
322 |
-
$this->assertVfsFile($test->getChild('baz.txt'), 'world');
|
323 |
-
|
324 |
-
$this->assertTrue($test->hasChild('foo'));
|
325 |
-
$foo = $test->getChild('foo');
|
326 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory', $foo);
|
327 |
-
$this->assertTrue($foo->hasChildren());
|
328 |
-
$this->assertTrue($foo->hasChild('test.txt'));
|
329 |
-
$this->assertVfsFile($foo->getChild('test.txt'), 'hello');
|
330 |
-
}
|
331 |
-
|
332 |
-
/**
|
333 |
-
* @test
|
334 |
-
* @group issue_17
|
335 |
-
* @group issue_20
|
336 |
-
*/
|
337 |
-
public function setupCastsNumericDirectoriesToStrings()
|
338 |
-
{
|
339 |
-
$root = vfsStream::setup('root',
|
340 |
-
null,
|
341 |
-
array(2011 => array ('test.txt' => 'some content'))
|
342 |
-
);
|
343 |
-
$this->assertTrue($root->hasChild('2011'));
|
344 |
-
|
345 |
-
$directory = $root->getChild('2011');
|
346 |
-
$this->assertVfsFile($directory->getChild('test.txt'), 'some content');
|
347 |
-
|
348 |
-
$this->assertTrue(file_exists('vfs://root/2011/test.txt'));
|
349 |
-
}
|
350 |
-
|
351 |
-
/**
|
352 |
-
* @test
|
353 |
-
* @group issue_20
|
354 |
-
* @since 0.11.0
|
355 |
-
*/
|
356 |
-
public function createArraysAreTurnedIntoSubdirectories()
|
357 |
-
{
|
358 |
-
$baseDir = vfsStream::create(array('test' => array()), new vfsStreamDirectory('baseDir'));
|
359 |
-
$this->assertTrue($baseDir->hasChildren());
|
360 |
-
$this->assertTrue($baseDir->hasChild('test'));
|
361 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory',
|
362 |
-
$baseDir->getChild('test')
|
363 |
-
);
|
364 |
-
$this->assertFalse($baseDir->getChild('test')->hasChildren());
|
365 |
-
}
|
366 |
-
|
367 |
-
/**
|
368 |
-
* @test
|
369 |
-
* @group issue_20
|
370 |
-
* @since 0.11.0
|
371 |
-
*/
|
372 |
-
public function createArraysAreTurnedIntoSubdirectoriesOfRoot()
|
373 |
-
{
|
374 |
-
$root = vfsStream::setup();
|
375 |
-
$this->assertSame($root, vfsStream::create(array('test' => array())));
|
376 |
-
$this->assertTrue($root->hasChildren());
|
377 |
-
$this->assertTrue($root->hasChild('test'));
|
378 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory',
|
379 |
-
$root->getChild('test')
|
380 |
-
);
|
381 |
-
$this->assertFalse($root->getChild('test')->hasChildren());
|
382 |
-
}
|
383 |
-
|
384 |
-
/**
|
385 |
-
* @test
|
386 |
-
* @group issue_20
|
387 |
-
* @expectedException \InvalidArgumentException
|
388 |
-
* @since 0.11.0
|
389 |
-
*/
|
390 |
-
public function createThrowsExceptionIfNoBaseDirGivenAndNoRootSet()
|
391 |
-
{
|
392 |
-
vfsStream::create(array('test' => array()));
|
393 |
-
}
|
394 |
-
|
395 |
-
/**
|
396 |
-
* @test
|
397 |
-
* @group issue_20
|
398 |
-
* @since 0.11.0
|
399 |
-
*/
|
400 |
-
public function createWorksRecursively()
|
401 |
-
{
|
402 |
-
$baseDir = vfsStream::create(array('test' => array('foo' => array('test.txt' => 'hello'),
|
403 |
-
'baz.txt' => 'world'
|
404 |
-
)
|
405 |
-
),
|
406 |
-
new vfsStreamDirectory('baseDir')
|
407 |
-
);
|
408 |
-
$this->assertTrue($baseDir->hasChildren());
|
409 |
-
$this->assertTrue($baseDir->hasChild('test'));
|
410 |
-
$test = $baseDir->getChild('test');
|
411 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory', $test);
|
412 |
-
$this->assertTrue($test->hasChildren());
|
413 |
-
$this->assertTrue($test->hasChild('baz.txt'));
|
414 |
-
$this->assertVfsFile($test->getChild('baz.txt'), 'world');
|
415 |
-
|
416 |
-
$this->assertTrue($test->hasChild('foo'));
|
417 |
-
$foo = $test->getChild('foo');
|
418 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory', $foo);
|
419 |
-
$this->assertTrue($foo->hasChildren());
|
420 |
-
$this->assertTrue($foo->hasChild('test.txt'));
|
421 |
-
$this->assertVfsFile($foo->getChild('test.txt'), 'hello');
|
422 |
-
}
|
423 |
-
|
424 |
-
/**
|
425 |
-
* @test
|
426 |
-
* @group issue_20
|
427 |
-
* @since 0.11.0
|
428 |
-
*/
|
429 |
-
public function createWorksRecursivelyWithRoot()
|
430 |
-
{
|
431 |
-
$root = vfsStream::setup();
|
432 |
-
$this->assertSame($root,
|
433 |
-
vfsStream::create(array('test' => array('foo' => array('test.txt' => 'hello'),
|
434 |
-
'baz.txt' => 'world'
|
435 |
-
)
|
436 |
-
)
|
437 |
-
)
|
438 |
-
);
|
439 |
-
$this->assertTrue($root->hasChildren());
|
440 |
-
$this->assertTrue($root->hasChild('test'));
|
441 |
-
$test = $root->getChild('test');
|
442 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory', $test);
|
443 |
-
$this->assertTrue($test->hasChildren());
|
444 |
-
$this->assertTrue($test->hasChild('baz.txt'));
|
445 |
-
$this->assertVfsFile($test->getChild('baz.txt'), 'world');
|
446 |
-
|
447 |
-
$this->assertTrue($test->hasChild('foo'));
|
448 |
-
$foo = $test->getChild('foo');
|
449 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamDirectory', $foo);
|
450 |
-
$this->assertTrue($foo->hasChildren());
|
451 |
-
$this->assertTrue($foo->hasChild('test.txt'));
|
452 |
-
$this->assertVfsFile($foo->getChild('test.txt'), 'hello');
|
453 |
-
}
|
454 |
-
|
455 |
-
/**
|
456 |
-
* @test
|
457 |
-
* @group issue_20
|
458 |
-
* @since 0.10.0
|
459 |
-
*/
|
460 |
-
public function createStringsAreTurnedIntoFilesWithContent()
|
461 |
-
{
|
462 |
-
$baseDir = vfsStream::create(array('test.txt' => 'some content'), new vfsStreamDirectory('baseDir'));
|
463 |
-
$this->assertTrue($baseDir->hasChildren());
|
464 |
-
$this->assertTrue($baseDir->hasChild('test.txt'));
|
465 |
-
$this->assertVfsFile($baseDir->getChild('test.txt'), 'some content');
|
466 |
-
}
|
467 |
-
|
468 |
-
/**
|
469 |
-
* @test
|
470 |
-
* @group issue_20
|
471 |
-
* @since 0.11.0
|
472 |
-
*/
|
473 |
-
public function createStringsAreTurnedIntoFilesWithContentWithRoot()
|
474 |
-
{
|
475 |
-
$root = vfsStream::setup();
|
476 |
-
$this->assertSame($root,
|
477 |
-
vfsStream::create(array('test.txt' => 'some content'))
|
478 |
-
);
|
479 |
-
$this->assertTrue($root->hasChildren());
|
480 |
-
$this->assertTrue($root->hasChild('test.txt'));
|
481 |
-
$this->assertVfsFile($root->getChild('test.txt'), 'some content');
|
482 |
-
}
|
483 |
-
|
484 |
-
/**
|
485 |
-
* @test
|
486 |
-
* @group issue_20
|
487 |
-
* @since 0.11.0
|
488 |
-
*/
|
489 |
-
public function createCastsNumericDirectoriesToStrings()
|
490 |
-
{
|
491 |
-
$baseDir = vfsStream::create(array(2011 => array ('test.txt' => 'some content')), new vfsStreamDirectory('baseDir'));
|
492 |
-
$this->assertTrue($baseDir->hasChild('2011'));
|
493 |
-
|
494 |
-
$directory = $baseDir->getChild('2011');
|
495 |
-
$this->assertVfsFile($directory->getChild('test.txt'), 'some content');
|
496 |
-
}
|
497 |
-
|
498 |
-
/**
|
499 |
-
* @test
|
500 |
-
* @group issue_20
|
501 |
-
* @since 0.11.0
|
502 |
-
*/
|
503 |
-
public function createCastsNumericDirectoriesToStringsWithRoot()
|
504 |
-
{
|
505 |
-
$root = vfsStream::setup();
|
506 |
-
$this->assertSame($root,
|
507 |
-
vfsStream::create(array(2011 => array ('test.txt' => 'some content')))
|
508 |
-
);
|
509 |
-
$this->assertTrue($root->hasChild('2011'));
|
510 |
-
|
511 |
-
$directory = $root->getChild('2011');
|
512 |
-
$this->assertVfsFile($directory->getChild('test.txt'), 'some content');
|
513 |
-
}
|
514 |
-
|
515 |
-
/**
|
516 |
-
* helper function for assertions on vfsStreamFile
|
517 |
-
*
|
518 |
-
* @param vfsStreamFile $file
|
519 |
-
* @param string $content
|
520 |
-
*/
|
521 |
-
protected function assertVfsFile(vfsStreamFile $file, $content)
|
522 |
-
{
|
523 |
-
$this->assertInstanceOf('org\\bovigo\\vfs\\vfsStreamFile',
|
524 |
-
$file
|
525 |
-
);
|
526 |
-
$this->assertEquals($content,
|
527 |
-
$file->getContent()
|
528 |
-
);
|
529 |
-
}
|
530 |
-
|
531 |
-
/**
|
532 |
-
* @test
|
533 |
-
* @group issue_10
|
534 |
-
* @since 0.10.0
|
535 |
-
*/
|
536 |
-
public function inspectWithContentGivesContentToVisitor()
|
537 |
-
{
|
538 |
-
$mockContent = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
539 |
-
$mockVisitor = $this->getMock('org\\bovigo\\vfs\\visitor\\vfsStreamVisitor');
|
540 |
-
$mockVisitor->expects($this->once())
|
541 |
-
->method('visit')
|
542 |
-
->with($this->equalTo($mockContent))
|
543 |
-
->will($this->returnValue($mockVisitor));
|
544 |
-
$this->assertSame($mockVisitor, vfsStream::inspect($mockVisitor, $mockContent));
|
545 |
-
}
|
546 |
-
|
547 |
-
/**
|
548 |
-
* @test
|
549 |
-
* @group issue_10
|
550 |
-
* @since 0.10.0
|
551 |
-
*/
|
552 |
-
public function inspectWithoutContentGivesRootToVisitor()
|
553 |
-
{
|
554 |
-
$root = vfsStream::setup();
|
555 |
-
$mockVisitor = $this->getMock('org\\bovigo\\vfs\\visitor\\vfsStreamVisitor');
|
556 |
-
$mockVisitor->expects($this->once())
|
557 |
-
->method('visitDirectory')
|
558 |
-
->with($this->equalTo($root))
|
559 |
-
->will($this->returnValue($mockVisitor));
|
560 |
-
$this->assertSame($mockVisitor, vfsStream::inspect($mockVisitor));
|
561 |
-
}
|
562 |
-
|
563 |
-
/**
|
564 |
-
* @test
|
565 |
-
* @group issue_10
|
566 |
-
* @expectedException \InvalidArgumentException
|
567 |
-
* @since 0.10.0
|
568 |
-
*/
|
569 |
-
public function inspectWithoutContentAndWithoutRootThrowsInvalidArgumentException()
|
570 |
-
{
|
571 |
-
$mockVisitor = $this->getMock('org\\bovigo\\vfs\\visitor\\vfsStreamVisitor');
|
572 |
-
$mockVisitor->expects($this->never())
|
573 |
-
->method('visit');
|
574 |
-
$mockVisitor->expects($this->never())
|
575 |
-
->method('visitDirectory');
|
576 |
-
vfsStream::inspect($mockVisitor);
|
577 |
-
}
|
578 |
-
|
579 |
-
/**
|
580 |
-
* returns path to file system copy resource directory
|
581 |
-
*
|
582 |
-
* @return string
|
583 |
-
*/
|
584 |
-
protected function getFileSystemCopyDir()
|
585 |
-
{
|
586 |
-
return realpath(dirname(__FILE__) . '/../../../../resources/filesystemcopy');
|
587 |
-
}
|
588 |
-
|
589 |
-
/**
|
590 |
-
* @test
|
591 |
-
* @group issue_4
|
592 |
-
* @expectedException \InvalidArgumentException
|
593 |
-
* @since 0.11.0
|
594 |
-
*/
|
595 |
-
public function copyFromFileSystemThrowsExceptionIfNoBaseDirGivenAndNoRootSet()
|
596 |
-
{
|
597 |
-
vfsStream::copyFromFileSystem($this->getFileSystemCopyDir());
|
598 |
-
}
|
599 |
-
|
600 |
-
/**
|
601 |
-
* @test
|
602 |
-
* @group issue_4
|
603 |
-
* @since 0.11.0
|
604 |
-
*/
|
605 |
-
public function copyFromEmptyFolder()
|
606 |
-
{
|
607 |
-
$baseDir = vfsStream::copyFromFileSystem($this->getFileSystemCopyDir() . '/emptyFolder',
|
608 |
-
vfsStream::newDirectory('test')
|
609 |
-
);
|
610 |
-
$baseDir->removeChild('.gitignore');
|
611 |
-
$this->assertFalse($baseDir->hasChildren());
|
612 |
-
}
|
613 |
-
|
614 |
-
/**
|
615 |
-
* @test
|
616 |
-
* @group issue_4
|
617 |
-
* @since 0.11.0
|
618 |
-
*/
|
619 |
-
public function copyFromEmptyFolderWithRoot()
|
620 |
-
{
|
621 |
-
$root = vfsStream::setup();
|
622 |
-
$this->assertEquals($root,
|
623 |
-
vfsStream::copyFromFileSystem($this->getFileSystemCopyDir() . '/emptyFolder')
|
624 |
-
);
|
625 |
-
$root->removeChild('.gitignore');
|
626 |
-
$this->assertFalse($root->hasChildren());
|
627 |
-
}
|
628 |
-
|
629 |
-
/**
|
630 |
-
* @test
|
631 |
-
* @group issue_4
|
632 |
-
* @since 0.11.0
|
633 |
-
*/
|
634 |
-
public function copyFromWithSubFolders()
|
635 |
-
{
|
636 |
-
$baseDir = vfsStream::copyFromFileSystem($this->getFileSystemCopyDir(),
|
637 |
-
vfsStream::newDirectory('test'),
|
638 |
-
3
|
639 |
-
);
|
640 |
-
$this->assertTrue($baseDir->hasChildren());
|
641 |
-
$this->assertTrue($baseDir->hasChild('emptyFolder'));
|
642 |
-
$this->assertTrue($baseDir->hasChild('withSubfolders'));
|
643 |
-
$subfolderDir = $baseDir->getChild('withSubfolders');
|
644 |
-
$this->assertTrue($subfolderDir->hasChild('subfolder1'));
|
645 |
-
$this->assertTrue($subfolderDir->getChild('subfolder1')->hasChild('file1.txt'));
|
646 |
-
$this->assertVfsFile($subfolderDir->getChild('subfolder1/file1.txt'), ' ');
|
647 |
-
$this->assertTrue($subfolderDir->hasChild('subfolder2'));
|
648 |
-
$this->assertTrue($subfolderDir->hasChild('aFile.txt'));
|
649 |
-
$this->assertVfsFile($subfolderDir->getChild('aFile.txt'), 'foo');
|
650 |
-
}
|
651 |
-
|
652 |
-
/**
|
653 |
-
* @test
|
654 |
-
* @group issue_4
|
655 |
-
* @since 0.11.0
|
656 |
-
*/
|
657 |
-
public function copyFromWithSubFoldersWithRoot()
|
658 |
-
{
|
659 |
-
$root = vfsStream::setup();
|
660 |
-
$this->assertEquals($root,
|
661 |
-
vfsStream::copyFromFileSystem($this->getFileSystemCopyDir(),
|
662 |
-
null,
|
663 |
-
3
|
664 |
-
)
|
665 |
-
);
|
666 |
-
$this->assertTrue($root->hasChildren());
|
667 |
-
$this->assertTrue($root->hasChild('emptyFolder'));
|
668 |
-
$this->assertTrue($root->hasChild('withSubfolders'));
|
669 |
-
$subfolderDir = $root->getChild('withSubfolders');
|
670 |
-
$this->assertTrue($subfolderDir->hasChild('subfolder1'));
|
671 |
-
$this->assertTrue($subfolderDir->getChild('subfolder1')->hasChild('file1.txt'));
|
672 |
-
$this->assertVfsFile($subfolderDir->getChild('subfolder1/file1.txt'), ' ');
|
673 |
-
$this->assertTrue($subfolderDir->hasChild('subfolder2'));
|
674 |
-
$this->assertTrue($subfolderDir->hasChild('aFile.txt'));
|
675 |
-
$this->assertVfsFile($subfolderDir->getChild('aFile.txt'), 'foo');
|
676 |
-
}
|
677 |
-
|
678 |
-
/**
|
679 |
-
* @test
|
680 |
-
* @group issue_4
|
681 |
-
* @group issue_29
|
682 |
-
* @since 0.11.2
|
683 |
-
*/
|
684 |
-
public function copyFromPreservesFilePermissions()
|
685 |
-
{
|
686 |
-
if (DIRECTORY_SEPARATOR !== '/') {
|
687 |
-
$this->markTestSkipped('Only applicable on Linux style systems.');
|
688 |
-
}
|
689 |
-
|
690 |
-
$copyDir = $this->getFileSystemCopyDir();
|
691 |
-
$root = vfsStream::setup();
|
692 |
-
$this->assertEquals($root,
|
693 |
-
vfsStream::copyFromFileSystem($copyDir,
|
694 |
-
null
|
695 |
-
)
|
696 |
-
);
|
697 |
-
$this->assertEquals(fileperms($copyDir . '/withSubfolders') - vfsStreamContent::TYPE_DIR,
|
698 |
-
$root->getChild('withSubfolders')
|
699 |
-
->getPermissions()
|
700 |
-
);
|
701 |
-
$this->assertEquals(fileperms($copyDir . '/withSubfolders/aFile.txt') - vfsStreamContent::TYPE_FILE,
|
702 |
-
$root->getChild('withSubfolders/aFile.txt')
|
703 |
-
->getPermissions()
|
704 |
-
);
|
705 |
-
}
|
706 |
-
|
707 |
-
/**
|
708 |
-
* To test this the max file size is reduced to something reproduceable.
|
709 |
-
*
|
710 |
-
* @test
|
711 |
-
* @group issue_91
|
712 |
-
* @since 1.5.0
|
713 |
-
*/
|
714 |
-
public function copyFromFileSystemMocksLargeFiles()
|
715 |
-
{
|
716 |
-
if (DIRECTORY_SEPARATOR !== '/') {
|
717 |
-
$this->markTestSkipped('Only applicable on Linux style systems.');
|
718 |
-
}
|
719 |
-
|
720 |
-
$copyDir = $this->getFileSystemCopyDir();
|
721 |
-
$root = vfsStream::setup();
|
722 |
-
vfsStream::copyFromFileSystem($copyDir, $root, 3);
|
723 |
-
$this->assertEquals(
|
724 |
-
' ',
|
725 |
-
$root->getChild('withSubfolders/subfolder1/file1.txt')->getContent()
|
726 |
-
);
|
727 |
-
}
|
728 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamUmaskTestCase.php
DELETED
@@ -1,195 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for umask settings.
|
13 |
-
*
|
14 |
-
* @group permissions
|
15 |
-
* @group umask
|
16 |
-
* @since 0.8.0
|
17 |
-
*/
|
18 |
-
class vfsStreamUmaskTestCase extends \PHPUnit_Framework_TestCase
|
19 |
-
{
|
20 |
-
/**
|
21 |
-
* set up test environment
|
22 |
-
*/
|
23 |
-
public function setUp()
|
24 |
-
{
|
25 |
-
vfsStream::umask(0000);
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* clean up test environment
|
30 |
-
*/
|
31 |
-
public function tearDown()
|
32 |
-
{
|
33 |
-
vfsStream::umask(0000);
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @test
|
38 |
-
*/
|
39 |
-
public function gettingUmaskSettingDoesNotChangeUmaskSetting()
|
40 |
-
{
|
41 |
-
$this->assertEquals(vfsStream::umask(),
|
42 |
-
vfsStream::umask()
|
43 |
-
);
|
44 |
-
$this->assertEquals(0000,
|
45 |
-
vfsStream::umask()
|
46 |
-
);
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* @test
|
51 |
-
*/
|
52 |
-
public function changingUmaskSettingReturnsOldUmaskSetting()
|
53 |
-
{
|
54 |
-
$this->assertEquals(0000,
|
55 |
-
vfsStream::umask(0022)
|
56 |
-
);
|
57 |
-
$this->assertEquals(0022,
|
58 |
-
vfsStream::umask()
|
59 |
-
);
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* @test
|
64 |
-
*/
|
65 |
-
public function createFileWithDefaultUmaskSetting()
|
66 |
-
{
|
67 |
-
$file = new vfsStreamFile('foo');
|
68 |
-
$this->assertEquals(0666, $file->getPermissions());
|
69 |
-
}
|
70 |
-
|
71 |
-
/**
|
72 |
-
* @test
|
73 |
-
*/
|
74 |
-
public function createFileWithDifferentUmaskSetting()
|
75 |
-
{
|
76 |
-
vfsStream::umask(0022);
|
77 |
-
$file = new vfsStreamFile('foo');
|
78 |
-
$this->assertEquals(0644, $file->getPermissions());
|
79 |
-
}
|
80 |
-
|
81 |
-
/**
|
82 |
-
* @test
|
83 |
-
*/
|
84 |
-
public function createDirectoryWithDefaultUmaskSetting()
|
85 |
-
{
|
86 |
-
$directory = new vfsStreamDirectory('foo');
|
87 |
-
$this->assertEquals(0777, $directory->getPermissions());
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* @test
|
92 |
-
*/
|
93 |
-
public function createDirectoryWithDifferentUmaskSetting()
|
94 |
-
{
|
95 |
-
vfsStream::umask(0022);
|
96 |
-
$directory = new vfsStreamDirectory('foo');
|
97 |
-
$this->assertEquals(0755, $directory->getPermissions());
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* @test
|
102 |
-
*/
|
103 |
-
public function createFileUsingStreamWithDefaultUmaskSetting()
|
104 |
-
{
|
105 |
-
$root = vfsStream::setup();
|
106 |
-
file_put_contents(vfsStream::url('root/newfile.txt'), 'file content');
|
107 |
-
$this->assertEquals(0666, $root->getChild('newfile.txt')->getPermissions());
|
108 |
-
}
|
109 |
-
|
110 |
-
/**
|
111 |
-
* @test
|
112 |
-
*/
|
113 |
-
public function createFileUsingStreamWithDifferentUmaskSetting()
|
114 |
-
{
|
115 |
-
$root = vfsStream::setup();
|
116 |
-
vfsStream::umask(0022);
|
117 |
-
file_put_contents(vfsStream::url('root/newfile.txt'), 'file content');
|
118 |
-
$this->assertEquals(0644, $root->getChild('newfile.txt')->getPermissions());
|
119 |
-
}
|
120 |
-
|
121 |
-
/**
|
122 |
-
* @test
|
123 |
-
*/
|
124 |
-
public function createDirectoryUsingStreamWithDefaultUmaskSetting()
|
125 |
-
{
|
126 |
-
$root = vfsStream::setup();
|
127 |
-
mkdir(vfsStream::url('root/newdir'));
|
128 |
-
$this->assertEquals(0777, $root->getChild('newdir')->getPermissions());
|
129 |
-
}
|
130 |
-
|
131 |
-
/**
|
132 |
-
* @test
|
133 |
-
*/
|
134 |
-
public function createDirectoryUsingStreamWithDifferentUmaskSetting()
|
135 |
-
{
|
136 |
-
$root = vfsStream::setup();
|
137 |
-
vfsStream::umask(0022);
|
138 |
-
mkdir(vfsStream::url('root/newdir'));
|
139 |
-
$this->assertEquals(0755, $root->getChild('newdir')->getPermissions());
|
140 |
-
}
|
141 |
-
|
142 |
-
/**
|
143 |
-
* @test
|
144 |
-
*/
|
145 |
-
public function createDirectoryUsingStreamWithExplicit0()
|
146 |
-
{
|
147 |
-
$root = vfsStream::setup();
|
148 |
-
vfsStream::umask(0022);
|
149 |
-
mkdir(vfsStream::url('root/newdir'), null);
|
150 |
-
$this->assertEquals(0000, $root->getChild('newdir')->getPermissions());
|
151 |
-
}
|
152 |
-
|
153 |
-
/**
|
154 |
-
* @test
|
155 |
-
*
|
156 |
-
*/
|
157 |
-
public function createDirectoryUsingStreamWithDifferentUmaskSettingButExplicit0777()
|
158 |
-
{
|
159 |
-
$root = vfsStream::setup();
|
160 |
-
vfsStream::umask(0022);
|
161 |
-
mkdir(vfsStream::url('root/newdir'), 0777);
|
162 |
-
$this->assertEquals(0755, $root->getChild('newdir')->getPermissions());
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* @test
|
167 |
-
*/
|
168 |
-
public function createDirectoryUsingStreamWithDifferentUmaskSettingButExplicitModeRequestedByCall()
|
169 |
-
{
|
170 |
-
$root = vfsStream::setup();
|
171 |
-
vfsStream::umask(0022);
|
172 |
-
mkdir(vfsStream::url('root/newdir'), 0700);
|
173 |
-
$this->assertEquals(0700, $root->getChild('newdir')->getPermissions());
|
174 |
-
}
|
175 |
-
|
176 |
-
/**
|
177 |
-
* @test
|
178 |
-
*/
|
179 |
-
public function defaultUmaskSettingDoesNotInfluenceSetup()
|
180 |
-
{
|
181 |
-
$root = vfsStream::setup();
|
182 |
-
$this->assertEquals(0777, $root->getPermissions());
|
183 |
-
}
|
184 |
-
|
185 |
-
/**
|
186 |
-
* @test
|
187 |
-
*/
|
188 |
-
public function umaskSettingShouldBeRespectedBySetup()
|
189 |
-
{
|
190 |
-
vfsStream::umask(0022);
|
191 |
-
$root = vfsStream::setup();
|
192 |
-
$this->assertEquals(0755, $root->getPermissions());
|
193 |
-
}
|
194 |
-
}
|
195 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperAlreadyRegisteredTestCase.php
DELETED
@@ -1,63 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Helper class for the test.
|
13 |
-
*/
|
14 |
-
class TestvfsStreamWrapper extends vfsStreamWrapper
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* unregisters vfsStreamWrapper
|
18 |
-
*/
|
19 |
-
public static function unregister()
|
20 |
-
{
|
21 |
-
if (in_array(vfsStream::SCHEME, stream_get_wrappers()) === true) {
|
22 |
-
stream_wrapper_unregister(vfsStream::SCHEME);
|
23 |
-
}
|
24 |
-
|
25 |
-
self::$registered = false;
|
26 |
-
}
|
27 |
-
}
|
28 |
-
/**
|
29 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper.
|
30 |
-
*/
|
31 |
-
class vfsStreamWrapperAlreadyRegisteredTestCase extends \PHPUnit_Framework_TestCase
|
32 |
-
{
|
33 |
-
/**
|
34 |
-
* set up test environment
|
35 |
-
*/
|
36 |
-
public function setUp()
|
37 |
-
{
|
38 |
-
TestvfsStreamWrapper::unregister();
|
39 |
-
$mock = $this->getMock('org\\bovigo\\vfs\\vfsStreamWrapper');
|
40 |
-
stream_wrapper_register(vfsStream::SCHEME, get_class($mock));
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* clean up test environment
|
45 |
-
*/
|
46 |
-
public function tearDown()
|
47 |
-
{
|
48 |
-
TestvfsStreamWrapper::unregister();
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* registering the stream wrapper when another stream wrapper is already
|
53 |
-
* registered for the vfs scheme should throw an exception
|
54 |
-
*
|
55 |
-
* @test
|
56 |
-
* @expectedException org\bovigo\vfs\vfsStreamException
|
57 |
-
*/
|
58 |
-
public function registerOverAnotherStreamWrapper()
|
59 |
-
{
|
60 |
-
vfsStreamWrapper::register();
|
61 |
-
}
|
62 |
-
}
|
63 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperBaseTestCase.php
DELETED
@@ -1,99 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper.
|
13 |
-
*/
|
14 |
-
abstract class vfsStreamWrapperBaseTestCase extends \PHPUnit_Framework_TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* root directory
|
18 |
-
*
|
19 |
-
* @var vfsStreamDirectory
|
20 |
-
*/
|
21 |
-
protected $foo;
|
22 |
-
/**
|
23 |
-
* URL of root directory
|
24 |
-
*
|
25 |
-
* @var string
|
26 |
-
*/
|
27 |
-
protected $fooURL;
|
28 |
-
/**
|
29 |
-
* sub directory
|
30 |
-
*
|
31 |
-
* @var vfsStreamDirectory
|
32 |
-
*/
|
33 |
-
protected $bar;
|
34 |
-
/**
|
35 |
-
* URL of sub directory
|
36 |
-
*
|
37 |
-
* @var string
|
38 |
-
*/
|
39 |
-
protected $barURL;
|
40 |
-
/**
|
41 |
-
* a file
|
42 |
-
*
|
43 |
-
* @var vfsStreamFile
|
44 |
-
*/
|
45 |
-
protected $baz1;
|
46 |
-
/**
|
47 |
-
* URL of file 1
|
48 |
-
*
|
49 |
-
* @var string
|
50 |
-
*/
|
51 |
-
protected $baz1URL;
|
52 |
-
/**
|
53 |
-
* another file
|
54 |
-
*
|
55 |
-
* @var vfsStreamFile
|
56 |
-
*/
|
57 |
-
protected $baz2;
|
58 |
-
/**
|
59 |
-
* URL of file 2
|
60 |
-
*
|
61 |
-
* @var string
|
62 |
-
*/
|
63 |
-
protected $baz2URL;
|
64 |
-
|
65 |
-
/**
|
66 |
-
* set up test environment
|
67 |
-
*/
|
68 |
-
public function setUp()
|
69 |
-
{
|
70 |
-
$this->fooURL = vfsStream::url('foo');
|
71 |
-
$this->barURL = vfsStream::url('foo/bar');
|
72 |
-
$this->baz1URL = vfsStream::url('foo/bar/baz1');
|
73 |
-
$this->baz2URL = vfsStream::url('foo/baz2');
|
74 |
-
$this->foo = new vfsStreamDirectory('foo');
|
75 |
-
$this->bar = new vfsStreamDirectory('bar');
|
76 |
-
$this->baz1 = vfsStream::newFile('baz1')
|
77 |
-
->lastModified(300)
|
78 |
-
->lastAccessed(300)
|
79 |
-
->lastAttributeModified(300)
|
80 |
-
->withContent('baz 1');
|
81 |
-
$this->baz2 = vfsStream::newFile('baz2')
|
82 |
-
->withContent('baz2')
|
83 |
-
->lastModified(400)
|
84 |
-
->lastAccessed(400)
|
85 |
-
->lastAttributeModified(400);
|
86 |
-
$this->bar->addChild($this->baz1);
|
87 |
-
$this->foo->addChild($this->bar);
|
88 |
-
$this->foo->addChild($this->baz2);
|
89 |
-
$this->foo->lastModified(100)
|
90 |
-
->lastAccessed(100)
|
91 |
-
->lastAttributeModified(100);
|
92 |
-
$this->bar->lastModified(200)
|
93 |
-
->lastAccessed(100)
|
94 |
-
->lastAttributeModified(100);
|
95 |
-
vfsStreamWrapper::register();
|
96 |
-
vfsStreamWrapper::setRoot($this->foo);
|
97 |
-
}
|
98 |
-
}
|
99 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperDirSeparatorTestCase.php
DELETED
@@ -1,73 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test that using windows directory separator works correct.
|
13 |
-
*
|
14 |
-
* @since 0.9.0
|
15 |
-
* @group issue_8
|
16 |
-
*/
|
17 |
-
class vfsStreamWrapperDirSeparatorTestCase extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* root diretory
|
21 |
-
*
|
22 |
-
* @var vfsStreamDirectory
|
23 |
-
*/
|
24 |
-
protected $root;
|
25 |
-
|
26 |
-
/**
|
27 |
-
* set up test environment
|
28 |
-
*/
|
29 |
-
public function setUp()
|
30 |
-
{
|
31 |
-
$this->root = vfsStream::setup();
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @test
|
36 |
-
*/
|
37 |
-
public function fileCanBeAccessedUsingWinDirSeparator()
|
38 |
-
{
|
39 |
-
vfsStream::newFile('foo/bar/baz.txt')
|
40 |
-
->at($this->root)
|
41 |
-
->withContent('test');
|
42 |
-
$this->assertEquals('test', file_get_contents('vfs://root/foo\bar\baz.txt'));
|
43 |
-
}
|
44 |
-
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @test
|
48 |
-
*/
|
49 |
-
public function directoryCanBeCreatedUsingWinDirSeparator()
|
50 |
-
{
|
51 |
-
mkdir('vfs://root/dir\bar\foo', true, 0777);
|
52 |
-
$this->assertTrue($this->root->hasChild('dir'));
|
53 |
-
$this->assertTrue($this->root->getChild('dir')->hasChild('bar'));
|
54 |
-
$this->assertTrue($this->root->getChild('dir/bar')->hasChild('foo'));
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* @test
|
59 |
-
*/
|
60 |
-
public function directoryExitsTestUsingTrailingWinDirSeparator()
|
61 |
-
{
|
62 |
-
$structure = array(
|
63 |
-
'dir' => array(
|
64 |
-
'bar' => array(
|
65 |
-
)
|
66 |
-
)
|
67 |
-
);
|
68 |
-
vfsStream::create($structure, $this->root);
|
69 |
-
|
70 |
-
$this->assertTrue(file_exists(vfsStream::url('root/').'dir\\'));
|
71 |
-
}
|
72 |
-
}
|
73 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperDirTestCase.php
DELETED
@@ -1,460 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
require_once __DIR__ . '/vfsStreamWrapperBaseTestCase.php';
|
12 |
-
/**
|
13 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper around mkdir().
|
14 |
-
*
|
15 |
-
* @package bovigo_vfs
|
16 |
-
* @subpackage test
|
17 |
-
*/
|
18 |
-
class vfsStreamWrapperMkDirTestCase extends vfsStreamWrapperBaseTestCase
|
19 |
-
{
|
20 |
-
/**
|
21 |
-
* mkdir() should not overwrite existing root
|
22 |
-
*
|
23 |
-
* @test
|
24 |
-
*/
|
25 |
-
public function mkdirNoNewRoot()
|
26 |
-
{
|
27 |
-
$this->assertFalse(mkdir(vfsStream::url('another')));
|
28 |
-
$this->assertEquals(2, count($this->foo->getChildren()));
|
29 |
-
$this->assertSame($this->foo, vfsStreamWrapper::getRoot());
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* mkdir() should not overwrite existing root
|
34 |
-
*
|
35 |
-
* @test
|
36 |
-
*/
|
37 |
-
public function mkdirNoNewRootRecursively()
|
38 |
-
{
|
39 |
-
$this->assertFalse(mkdir(vfsStream::url('another/more'), 0777, true));
|
40 |
-
$this->assertEquals(2, count($this->foo->getChildren()));
|
41 |
-
$this->assertSame($this->foo, vfsStreamWrapper::getRoot());
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* assert that mkdir() creates the correct directory structure
|
46 |
-
*
|
47 |
-
* @test
|
48 |
-
* @group permissions
|
49 |
-
*/
|
50 |
-
public function mkdirNonRecursively()
|
51 |
-
{
|
52 |
-
$this->assertFalse(mkdir($this->barURL . '/another/more'));
|
53 |
-
$this->assertEquals(2, count($this->foo->getChildren()));
|
54 |
-
$this->assertTrue(mkdir($this->fooURL . '/another'));
|
55 |
-
$this->assertEquals(3, count($this->foo->getChildren()));
|
56 |
-
$this->assertEquals(0777, $this->foo->getChild('another')->getPermissions());
|
57 |
-
}
|
58 |
-
|
59 |
-
/**
|
60 |
-
* assert that mkdir() creates the correct directory structure
|
61 |
-
*
|
62 |
-
* @test
|
63 |
-
* @group permissions
|
64 |
-
*/
|
65 |
-
public function mkdirRecursively()
|
66 |
-
{
|
67 |
-
$this->assertTrue(mkdir($this->fooURL . '/another/more', 0777, true));
|
68 |
-
$this->assertEquals(3, count($this->foo->getChildren()));
|
69 |
-
$another = $this->foo->getChild('another');
|
70 |
-
$this->assertTrue($another->hasChild('more'));
|
71 |
-
$this->assertEquals(0777, $this->foo->getChild('another')->getPermissions());
|
72 |
-
$this->assertEquals(0777, $this->foo->getChild('another')->getChild('more')->getPermissions());
|
73 |
-
}
|
74 |
-
|
75 |
-
/**
|
76 |
-
* @test
|
77 |
-
* @group issue_9
|
78 |
-
* @since 0.9.0
|
79 |
-
*/
|
80 |
-
public function mkdirWithDots()
|
81 |
-
{
|
82 |
-
$this->assertTrue(mkdir($this->fooURL . '/another/../more/.', 0777, true));
|
83 |
-
$this->assertEquals(3, count($this->foo->getChildren()));
|
84 |
-
$this->assertTrue($this->foo->hasChild('more'));
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* no root > new directory becomes root
|
89 |
-
*
|
90 |
-
* @test
|
91 |
-
* @group permissions
|
92 |
-
*/
|
93 |
-
public function mkdirWithoutRootCreatesNewRoot()
|
94 |
-
{
|
95 |
-
vfsStreamWrapper::register();
|
96 |
-
$this->assertTrue(@mkdir(vfsStream::url('foo')));
|
97 |
-
$this->assertEquals(vfsStreamContent::TYPE_DIR, vfsStreamWrapper::getRoot()->getType());
|
98 |
-
$this->assertEquals('foo', vfsStreamWrapper::getRoot()->getName());
|
99 |
-
$this->assertEquals(0777, vfsStreamWrapper::getRoot()->getPermissions());
|
100 |
-
}
|
101 |
-
|
102 |
-
/**
|
103 |
-
* trying to create a subdirectory of a file should not work
|
104 |
-
*
|
105 |
-
* @test
|
106 |
-
*/
|
107 |
-
public function mkdirOnFileReturnsFalse()
|
108 |
-
{
|
109 |
-
$this->assertFalse(mkdir($this->baz1URL . '/another/more', 0777, true));
|
110 |
-
}
|
111 |
-
|
112 |
-
/**
|
113 |
-
* assert that mkdir() creates the correct directory structure
|
114 |
-
*
|
115 |
-
* @test
|
116 |
-
* @group permissions
|
117 |
-
*/
|
118 |
-
public function mkdirNonRecursivelyDifferentPermissions()
|
119 |
-
{
|
120 |
-
$this->assertTrue(mkdir($this->fooURL . '/another', 0755));
|
121 |
-
$this->assertEquals(0755, $this->foo->getChild('another')->getPermissions());
|
122 |
-
}
|
123 |
-
|
124 |
-
/**
|
125 |
-
* assert that mkdir() creates the correct directory structure
|
126 |
-
*
|
127 |
-
* @test
|
128 |
-
* @group permissions
|
129 |
-
*/
|
130 |
-
public function mkdirRecursivelyDifferentPermissions()
|
131 |
-
{
|
132 |
-
$this->assertTrue(mkdir($this->fooURL . '/another/more', 0755, true));
|
133 |
-
$this->assertEquals(3, count($this->foo->getChildren()));
|
134 |
-
$another = $this->foo->getChild('another');
|
135 |
-
$this->assertTrue($another->hasChild('more'));
|
136 |
-
$this->assertEquals(0755, $this->foo->getChild('another')->getPermissions());
|
137 |
-
$this->assertEquals(0755, $this->foo->getChild('another')->getChild('more')->getPermissions());
|
138 |
-
}
|
139 |
-
|
140 |
-
/**
|
141 |
-
* assert that mkdir() creates the correct directory structure
|
142 |
-
*
|
143 |
-
* @test
|
144 |
-
* @group permissions
|
145 |
-
*/
|
146 |
-
public function mkdirRecursivelyUsesDefaultPermissions()
|
147 |
-
{
|
148 |
-
$this->foo->chmod(0700);
|
149 |
-
$this->assertTrue(mkdir($this->fooURL . '/another/more', 0777, true));
|
150 |
-
$this->assertEquals(3, count($this->foo->getChildren()));
|
151 |
-
$another = $this->foo->getChild('another');
|
152 |
-
$this->assertTrue($another->hasChild('more'));
|
153 |
-
$this->assertEquals(0777, $this->foo->getChild('another')->getPermissions());
|
154 |
-
$this->assertEquals(0777, $this->foo->getChild('another')->getChild('more')->getPermissions());
|
155 |
-
}
|
156 |
-
|
157 |
-
/**
|
158 |
-
* no root > new directory becomes root
|
159 |
-
*
|
160 |
-
* @test
|
161 |
-
* @group permissions
|
162 |
-
*/
|
163 |
-
public function mkdirWithoutRootCreatesNewRootDifferentPermissions()
|
164 |
-
{
|
165 |
-
vfsStreamWrapper::register();
|
166 |
-
$this->assertTrue(@mkdir(vfsStream::url('foo'), 0755));
|
167 |
-
$this->assertEquals(vfsStreamContent::TYPE_DIR, vfsStreamWrapper::getRoot()->getType());
|
168 |
-
$this->assertEquals('foo', vfsStreamWrapper::getRoot()->getName());
|
169 |
-
$this->assertEquals(0755, vfsStreamWrapper::getRoot()->getPermissions());
|
170 |
-
}
|
171 |
-
|
172 |
-
/**
|
173 |
-
* no root > new directory becomes root
|
174 |
-
*
|
175 |
-
* @test
|
176 |
-
* @group permissions
|
177 |
-
*/
|
178 |
-
public function mkdirWithoutRootCreatesNewRootWithDefaultPermissions()
|
179 |
-
{
|
180 |
-
vfsStreamWrapper::register();
|
181 |
-
$this->assertTrue(@mkdir(vfsStream::url('foo')));
|
182 |
-
$this->assertEquals(vfsStreamContent::TYPE_DIR, vfsStreamWrapper::getRoot()->getType());
|
183 |
-
$this->assertEquals('foo', vfsStreamWrapper::getRoot()->getName());
|
184 |
-
$this->assertEquals(0777, vfsStreamWrapper::getRoot()->getPermissions());
|
185 |
-
}
|
186 |
-
|
187 |
-
/**
|
188 |
-
* @test
|
189 |
-
* @group permissions
|
190 |
-
* @group bug_15
|
191 |
-
*/
|
192 |
-
public function mkdirDirCanNotCreateNewDirInNonWritingDirectory()
|
193 |
-
{
|
194 |
-
vfsStreamWrapper::register();
|
195 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root'));
|
196 |
-
vfsStreamWrapper::getRoot()->addChild(new vfsStreamDirectory('restrictedFolder', 0000));
|
197 |
-
$this->assertFalse(is_writable(vfsStream::url('root/restrictedFolder/')));
|
198 |
-
$this->assertFalse(mkdir(vfsStream::url('root/restrictedFolder/newFolder')));
|
199 |
-
$this->assertFalse(vfsStreamWrapper::getRoot()->hasChild('restrictedFolder/newFolder'));
|
200 |
-
}
|
201 |
-
|
202 |
-
/**
|
203 |
-
* @test
|
204 |
-
* @group issue_28
|
205 |
-
*/
|
206 |
-
public function mkDirShouldNotOverwriteExistingDirectories()
|
207 |
-
{
|
208 |
-
vfsStream::setup('root');
|
209 |
-
$dir = vfsStream::url('root/dir');
|
210 |
-
$this->assertTrue(mkdir($dir));
|
211 |
-
$this->assertFalse(@mkdir($dir));
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* @test
|
216 |
-
* @group issue_28
|
217 |
-
* @expectedException PHPUnit_Framework_Error
|
218 |
-
* @expectedExceptionMessage mkdir(): Path vfs://root/dir exists
|
219 |
-
*/
|
220 |
-
public function mkDirShouldNotOverwriteExistingDirectoriesAndTriggerE_USER_WARNING()
|
221 |
-
{
|
222 |
-
vfsStream::setup('root');
|
223 |
-
$dir = vfsStream::url('root/dir');
|
224 |
-
$this->assertTrue(mkdir($dir));
|
225 |
-
$this->assertFalse(mkdir($dir));
|
226 |
-
}
|
227 |
-
|
228 |
-
/**
|
229 |
-
* @test
|
230 |
-
* @group issue_28
|
231 |
-
*/
|
232 |
-
public function mkDirShouldNotOverwriteExistingFiles()
|
233 |
-
{
|
234 |
-
$root = vfsStream::setup('root');
|
235 |
-
vfsStream::newFile('test.txt')->at($root);
|
236 |
-
$this->assertFalse(@mkdir(vfsStream::url('root/test.txt')));
|
237 |
-
}
|
238 |
-
|
239 |
-
/**
|
240 |
-
* @test
|
241 |
-
* @group issue_28
|
242 |
-
* @expectedException PHPUnit_Framework_Error
|
243 |
-
* @expectedExceptionMessage mkdir(): Path vfs://root/test.txt exists
|
244 |
-
*/
|
245 |
-
public function mkDirShouldNotOverwriteExistingFilesAndTriggerE_USER_WARNING()
|
246 |
-
{
|
247 |
-
$root = vfsStream::setup('root');
|
248 |
-
vfsStream::newFile('test.txt')->at($root);
|
249 |
-
$this->assertFalse(mkdir(vfsStream::url('root/test.txt')));
|
250 |
-
}
|
251 |
-
|
252 |
-
/**
|
253 |
-
* @test
|
254 |
-
* @group permissions
|
255 |
-
* @group bug_15
|
256 |
-
*/
|
257 |
-
public function canNotIterateOverNonReadableDirectory()
|
258 |
-
{
|
259 |
-
vfsStreamWrapper::register();
|
260 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root', 0000));
|
261 |
-
$this->assertFalse(@opendir(vfsStream::url('root')));
|
262 |
-
$this->assertFalse(@dir(vfsStream::url('root')));
|
263 |
-
}
|
264 |
-
|
265 |
-
/**
|
266 |
-
* assert is_dir() returns correct result
|
267 |
-
*
|
268 |
-
* @test
|
269 |
-
*/
|
270 |
-
public function is_dir()
|
271 |
-
{
|
272 |
-
$this->assertTrue(is_dir($this->fooURL));
|
273 |
-
$this->assertTrue(is_dir($this->fooURL . '/.'));
|
274 |
-
$this->assertTrue(is_dir($this->barURL));
|
275 |
-
$this->assertTrue(is_dir($this->barURL . '/.'));
|
276 |
-
$this->assertFalse(is_dir($this->baz1URL));
|
277 |
-
$this->assertFalse(is_dir($this->baz2URL));
|
278 |
-
$this->assertFalse(is_dir($this->fooURL . '/another'));
|
279 |
-
$this->assertFalse(is_dir(vfsStream::url('another')));
|
280 |
-
}
|
281 |
-
|
282 |
-
/**
|
283 |
-
* can not unlink without root
|
284 |
-
*
|
285 |
-
* @test
|
286 |
-
*/
|
287 |
-
public function canNotUnlinkDirectoryWithoutRoot()
|
288 |
-
{
|
289 |
-
vfsStreamWrapper::register();
|
290 |
-
$this->assertFalse(@rmdir(vfsStream::url('foo')));
|
291 |
-
}
|
292 |
-
|
293 |
-
/**
|
294 |
-
* rmdir() can not remove files
|
295 |
-
*
|
296 |
-
* @test
|
297 |
-
*/
|
298 |
-
public function rmdirCanNotRemoveFiles()
|
299 |
-
{
|
300 |
-
$this->assertFalse(rmdir($this->baz1URL));
|
301 |
-
$this->assertFalse(rmdir($this->baz2URL));
|
302 |
-
}
|
303 |
-
|
304 |
-
/**
|
305 |
-
* rmdir() can not remove a non-existing directory
|
306 |
-
*
|
307 |
-
* @test
|
308 |
-
*/
|
309 |
-
public function rmdirCanNotRemoveNonExistingDirectory()
|
310 |
-
{
|
311 |
-
$this->assertFalse(rmdir($this->fooURL . '/another'));
|
312 |
-
}
|
313 |
-
|
314 |
-
/**
|
315 |
-
* rmdir() can not remove non-empty directories
|
316 |
-
*
|
317 |
-
* @test
|
318 |
-
*/
|
319 |
-
public function rmdirCanNotRemoveNonEmptyDirectory()
|
320 |
-
{
|
321 |
-
$this->assertFalse(rmdir($this->fooURL));
|
322 |
-
$this->assertFalse(rmdir($this->barURL));
|
323 |
-
}
|
324 |
-
|
325 |
-
/**
|
326 |
-
* @test
|
327 |
-
*/
|
328 |
-
public function rmdirCanRemoveEmptyDirectory()
|
329 |
-
{
|
330 |
-
vfsStream::newDirectory('empty')->at($this->foo);
|
331 |
-
$this->assertTrue($this->foo->hasChild('empty'));
|
332 |
-
$this->assertTrue(rmdir($this->fooURL . '/empty'));
|
333 |
-
$this->assertFalse($this->foo->hasChild('empty'));
|
334 |
-
}
|
335 |
-
|
336 |
-
/**
|
337 |
-
* @test
|
338 |
-
*/
|
339 |
-
public function rmdirCanRemoveEmptyDirectoryWithDot()
|
340 |
-
{
|
341 |
-
vfsStream::newDirectory('empty')->at($this->foo);
|
342 |
-
$this->assertTrue($this->foo->hasChild('empty'));
|
343 |
-
$this->assertTrue(rmdir($this->fooURL . '/empty/.'));
|
344 |
-
$this->assertFalse($this->foo->hasChild('empty'));
|
345 |
-
}
|
346 |
-
|
347 |
-
/**
|
348 |
-
* rmdir() can remove empty directories
|
349 |
-
*
|
350 |
-
* @test
|
351 |
-
*/
|
352 |
-
public function rmdirCanRemoveEmptyRoot()
|
353 |
-
{
|
354 |
-
$this->foo->removeChild('bar');
|
355 |
-
$this->foo->removeChild('baz2');
|
356 |
-
$this->assertTrue(rmdir($this->fooURL));
|
357 |
-
$this->assertFalse(file_exists($this->fooURL)); // make sure statcache was cleared
|
358 |
-
$this->assertNull(vfsStreamWrapper::getRoot());
|
359 |
-
}
|
360 |
-
|
361 |
-
/**
|
362 |
-
* @test
|
363 |
-
* @group permissions
|
364 |
-
* @group bug_15
|
365 |
-
*/
|
366 |
-
public function rmdirDirCanNotRemoveDirFromNonWritingDirectory()
|
367 |
-
{
|
368 |
-
vfsStreamWrapper::register();
|
369 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root', 0000));
|
370 |
-
vfsStreamWrapper::getRoot()->addChild(new vfsStreamDirectory('nonRemovableFolder'));
|
371 |
-
$this->assertFalse(is_writable(vfsStream::url('root')));
|
372 |
-
$this->assertFalse(rmdir(vfsStream::url('root/nonRemovableFolder')));
|
373 |
-
$this->assertTrue(vfsStreamWrapper::getRoot()->hasChild('nonRemovableFolder'));
|
374 |
-
}
|
375 |
-
|
376 |
-
/**
|
377 |
-
* @test
|
378 |
-
* @group permissions
|
379 |
-
* @group bug_17
|
380 |
-
*/
|
381 |
-
public function issue17()
|
382 |
-
{
|
383 |
-
vfsStreamWrapper::register();
|
384 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root', 0770));
|
385 |
-
vfsStreamWrapper::getRoot()->chgrp(vfsStream::GROUP_USER_1)
|
386 |
-
->chown(vfsStream::OWNER_USER_1);
|
387 |
-
$this->assertFalse(mkdir(vfsStream::url('root/doesNotWork')));
|
388 |
-
$this->assertFalse(vfsStreamWrapper::getRoot()->hasChild('doesNotWork'));
|
389 |
-
}
|
390 |
-
|
391 |
-
/**
|
392 |
-
* @test
|
393 |
-
* @group bug_19
|
394 |
-
*/
|
395 |
-
public function accessWithDoubleDotReturnsCorrectContent()
|
396 |
-
{
|
397 |
-
$this->assertEquals('baz2',
|
398 |
-
file_get_contents(vfsStream::url('foo/bar/../baz2'))
|
399 |
-
);
|
400 |
-
}
|
401 |
-
|
402 |
-
/**
|
403 |
-
* @test
|
404 |
-
* @since 0.11.0
|
405 |
-
* @group issue_23
|
406 |
-
*/
|
407 |
-
public function unlinkCanNotRemoveNonEmptyDirectory()
|
408 |
-
{
|
409 |
-
try {
|
410 |
-
$this->assertFalse(unlink($this->barURL));
|
411 |
-
} catch (\PHPUnit_Framework_Error $fe) {
|
412 |
-
$this->assertEquals('unlink(vfs://foo/bar): Operation not permitted', $fe->getMessage());
|
413 |
-
}
|
414 |
-
|
415 |
-
$this->assertTrue($this->foo->hasChild('bar'));
|
416 |
-
$this->assertFileExists($this->barURL);
|
417 |
-
}
|
418 |
-
|
419 |
-
/**
|
420 |
-
* @test
|
421 |
-
* @since 0.11.0
|
422 |
-
* @group issue_23
|
423 |
-
*/
|
424 |
-
public function unlinkCanNotRemoveEmptyDirectory()
|
425 |
-
{
|
426 |
-
vfsStream::newDirectory('empty')->at($this->foo);
|
427 |
-
try {
|
428 |
-
$this->assertTrue(unlink($this->fooURL . '/empty'));
|
429 |
-
} catch (\PHPUnit_Framework_Error $fe) {
|
430 |
-
$this->assertEquals('unlink(vfs://foo/empty): Operation not permitted', $fe->getMessage());
|
431 |
-
}
|
432 |
-
|
433 |
-
$this->assertTrue($this->foo->hasChild('empty'));
|
434 |
-
$this->assertFileExists($this->fooURL . '/empty');
|
435 |
-
}
|
436 |
-
|
437 |
-
/**
|
438 |
-
* @test
|
439 |
-
* @group issue_32
|
440 |
-
*/
|
441 |
-
public function canCreateFolderOfSameNameAsParentFolder()
|
442 |
-
{
|
443 |
-
$root = vfsStream::setup('testFolder');
|
444 |
-
mkdir(vfsStream::url('testFolder') . '/testFolder/subTestFolder', 0777, true);
|
445 |
-
$this->assertTrue(file_exists(vfsStream::url('testFolder/testFolder/subTestFolder/.')));
|
446 |
-
}
|
447 |
-
|
448 |
-
/**
|
449 |
-
* @test
|
450 |
-
* @group issue_32
|
451 |
-
*/
|
452 |
-
public function canRetrieveFolderOfSameNameAsParentFolder()
|
453 |
-
{
|
454 |
-
$root = vfsStream::setup('testFolder');
|
455 |
-
mkdir(vfsStream::url('testFolder') . '/testFolder/subTestFolder', 0777, true);
|
456 |
-
$this->assertTrue($root->hasChild('testFolder'));
|
457 |
-
$this->assertNotNull($root->getChild('testFolder'));
|
458 |
-
}
|
459 |
-
}
|
460 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTestCase.php
DELETED
@@ -1,458 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
require_once __DIR__ . '/vfsStreamWrapperBaseTestCase.php';
|
12 |
-
/**
|
13 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper.
|
14 |
-
*/
|
15 |
-
class vfsStreamWrapperFileTestCase extends vfsStreamWrapperBaseTestCase
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* assert that file_get_contents() delivers correct file contents
|
19 |
-
*
|
20 |
-
* @test
|
21 |
-
*/
|
22 |
-
public function file_get_contents()
|
23 |
-
{
|
24 |
-
$this->assertEquals('baz2', file_get_contents($this->baz2URL));
|
25 |
-
$this->assertEquals('baz 1', file_get_contents($this->baz1URL));
|
26 |
-
$this->assertFalse(@file_get_contents($this->barURL));
|
27 |
-
$this->assertFalse(@file_get_contents($this->fooURL));
|
28 |
-
}
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @test
|
32 |
-
* @group permissions
|
33 |
-
* @group bug_15
|
34 |
-
*/
|
35 |
-
public function file_get_contentsNonReadableFile()
|
36 |
-
{
|
37 |
-
vfsStreamWrapper::register();
|
38 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root'));
|
39 |
-
vfsStream::newFile('new.txt', 0000)->at(vfsStreamWrapper::getRoot())->withContent('content');
|
40 |
-
$this->assertEquals('', @file_get_contents(vfsStream::url('root/new.txt')));
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* assert that file_put_contents() delivers correct file contents
|
45 |
-
*
|
46 |
-
* @test
|
47 |
-
*/
|
48 |
-
public function file_put_contentsExistingFile()
|
49 |
-
{
|
50 |
-
$this->assertEquals(14, file_put_contents($this->baz2URL, 'baz is not bar'));
|
51 |
-
$this->assertEquals('baz is not bar', $this->baz2->getContent());
|
52 |
-
$this->assertEquals(6, file_put_contents($this->baz1URL, 'foobar'));
|
53 |
-
$this->assertEquals('foobar', $this->baz1->getContent());
|
54 |
-
$this->assertFalse(@file_put_contents($this->barURL, 'This does not work.'));
|
55 |
-
$this->assertFalse(@file_put_contents($this->fooURL, 'This does not work, too.'));
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* @test
|
60 |
-
* @group permissions
|
61 |
-
* @group bug_15
|
62 |
-
*/
|
63 |
-
public function file_put_contentsExistingFileNonWritableDirectory()
|
64 |
-
{
|
65 |
-
vfsStreamWrapper::register();
|
66 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root', 0000));
|
67 |
-
vfsStream::newFile('new.txt')->at(vfsStreamWrapper::getRoot())->withContent('content');
|
68 |
-
$this->assertEquals(15, @file_put_contents(vfsStream::url('root/new.txt'), 'This does work.'));
|
69 |
-
$this->assertEquals('This does work.', file_get_contents(vfsStream::url('root/new.txt')));
|
70 |
-
|
71 |
-
}
|
72 |
-
|
73 |
-
/**
|
74 |
-
* @test
|
75 |
-
* @group permissions
|
76 |
-
* @group bug_15
|
77 |
-
*/
|
78 |
-
public function file_put_contentsExistingNonWritableFile()
|
79 |
-
{
|
80 |
-
vfsStreamWrapper::register();
|
81 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root'));
|
82 |
-
vfsStream::newFile('new.txt', 0400)->at(vfsStreamWrapper::getRoot())->withContent('content');
|
83 |
-
$this->assertFalse(@file_put_contents(vfsStream::url('root/new.txt'), 'This does not work.'));
|
84 |
-
$this->assertEquals('content', file_get_contents(vfsStream::url('root/new.txt')));
|
85 |
-
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* assert that file_put_contents() delivers correct file contents
|
89 |
-
*
|
90 |
-
* @test
|
91 |
-
*/
|
92 |
-
public function file_put_contentsNonExistingFile()
|
93 |
-
{
|
94 |
-
$this->assertEquals(14, file_put_contents($this->fooURL . '/baznot.bar', 'baz is not bar'));
|
95 |
-
$this->assertEquals(3, count($this->foo->getChildren()));
|
96 |
-
$this->assertEquals(14, file_put_contents($this->barURL . '/baznot.bar', 'baz is not bar'));
|
97 |
-
$this->assertEquals(2, count($this->bar->getChildren()));
|
98 |
-
}
|
99 |
-
|
100 |
-
/**
|
101 |
-
* @test
|
102 |
-
* @group permissions
|
103 |
-
* @group bug_15
|
104 |
-
*/
|
105 |
-
public function file_put_contentsNonExistingFileNonWritableDirectory()
|
106 |
-
{
|
107 |
-
vfsStreamWrapper::register();
|
108 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root', 0000));
|
109 |
-
$this->assertFalse(@file_put_contents(vfsStream::url('root/new.txt'), 'This does not work.'));
|
110 |
-
$this->assertFalse(file_exists(vfsStream::url('root/new.txt')));
|
111 |
-
|
112 |
-
}
|
113 |
-
|
114 |
-
/**
|
115 |
-
* using a file pointer should work without any problems
|
116 |
-
*
|
117 |
-
* @test
|
118 |
-
*/
|
119 |
-
public function usingFilePointer()
|
120 |
-
{
|
121 |
-
$fp = fopen($this->baz1URL, 'r');
|
122 |
-
$this->assertEquals(0, ftell($fp));
|
123 |
-
$this->assertFalse(feof($fp));
|
124 |
-
$this->assertEquals(0, fseek($fp, 2));
|
125 |
-
$this->assertEquals(2, ftell($fp));
|
126 |
-
$this->assertEquals(0, fseek($fp, 1, SEEK_CUR));
|
127 |
-
$this->assertEquals(3, ftell($fp));
|
128 |
-
$this->assertEquals(0, fseek($fp, 1, SEEK_END));
|
129 |
-
$this->assertEquals(6, ftell($fp));
|
130 |
-
$this->assertTrue(feof($fp));
|
131 |
-
$this->assertEquals(0, fseek($fp, 2));
|
132 |
-
$this->assertFalse(feof($fp));
|
133 |
-
$this->assertEquals(2, ftell($fp));
|
134 |
-
$this->assertEquals('z', fread($fp, 1));
|
135 |
-
$this->assertEquals(3, ftell($fp));
|
136 |
-
$this->assertEquals(' 1', fread($fp, 8092));
|
137 |
-
$this->assertEquals(5, ftell($fp));
|
138 |
-
$this->assertTrue(fclose($fp));
|
139 |
-
}
|
140 |
-
|
141 |
-
/**
|
142 |
-
* assert is_file() returns correct result
|
143 |
-
*
|
144 |
-
* @test
|
145 |
-
*/
|
146 |
-
public function is_file()
|
147 |
-
{
|
148 |
-
$this->assertFalse(is_file($this->fooURL));
|
149 |
-
$this->assertFalse(is_file($this->barURL));
|
150 |
-
$this->assertTrue(is_file($this->baz1URL));
|
151 |
-
$this->assertTrue(is_file($this->baz2URL));
|
152 |
-
$this->assertFalse(is_file($this->fooURL . '/another'));
|
153 |
-
$this->assertFalse(is_file(vfsStream::url('another')));
|
154 |
-
}
|
155 |
-
|
156 |
-
/**
|
157 |
-
* @test
|
158 |
-
* @group issue7
|
159 |
-
* @group issue13
|
160 |
-
*/
|
161 |
-
public function issue13CanNotOverwriteFiles()
|
162 |
-
{
|
163 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
164 |
-
file_put_contents($vfsFile, 'test');
|
165 |
-
file_put_contents($vfsFile, 'd');
|
166 |
-
$this->assertEquals('d', file_get_contents($vfsFile));
|
167 |
-
}
|
168 |
-
|
169 |
-
/**
|
170 |
-
* @test
|
171 |
-
* @group issue7
|
172 |
-
* @group issue13
|
173 |
-
*/
|
174 |
-
public function appendContentIfOpenedWithModeA()
|
175 |
-
{
|
176 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
177 |
-
file_put_contents($vfsFile, 'test');
|
178 |
-
$fp = fopen($vfsFile, 'ab');
|
179 |
-
fwrite($fp, 'd');
|
180 |
-
fclose($fp);
|
181 |
-
$this->assertEquals('testd', file_get_contents($vfsFile));
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* @test
|
186 |
-
* @group issue7
|
187 |
-
* @group issue13
|
188 |
-
*/
|
189 |
-
public function canOverwriteNonExistingFileWithModeX()
|
190 |
-
{
|
191 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
192 |
-
$fp = fopen($vfsFile, 'xb');
|
193 |
-
fwrite($fp, 'test');
|
194 |
-
fclose($fp);
|
195 |
-
$this->assertEquals('test', file_get_contents($vfsFile));
|
196 |
-
}
|
197 |
-
|
198 |
-
/**
|
199 |
-
* @test
|
200 |
-
* @group issue7
|
201 |
-
* @group issue13
|
202 |
-
*/
|
203 |
-
public function canNotOverwriteExistingFileWithModeX()
|
204 |
-
{
|
205 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
206 |
-
file_put_contents($vfsFile, 'test');
|
207 |
-
$this->assertFalse(@fopen($vfsFile, 'xb'));
|
208 |
-
$this->assertEquals('test', file_get_contents($vfsFile));
|
209 |
-
}
|
210 |
-
|
211 |
-
/**
|
212 |
-
* @test
|
213 |
-
* @group issue7
|
214 |
-
* @group issue13
|
215 |
-
*/
|
216 |
-
public function canNotOpenNonExistingFileReadonly()
|
217 |
-
{
|
218 |
-
$this->assertFalse(@fopen(vfsStream::url('foo/doesNotExist.txt'), 'rb'));
|
219 |
-
}
|
220 |
-
|
221 |
-
/**
|
222 |
-
* @test
|
223 |
-
* @group issue7
|
224 |
-
* @group issue13
|
225 |
-
*/
|
226 |
-
public function canNotOpenNonExistingFileReadAndWrite()
|
227 |
-
{
|
228 |
-
$this->assertFalse(@fopen(vfsStream::url('foo/doesNotExist.txt'), 'rb+'));
|
229 |
-
}
|
230 |
-
|
231 |
-
/**
|
232 |
-
* @test
|
233 |
-
* @group issue7
|
234 |
-
* @group issue13
|
235 |
-
*/
|
236 |
-
public function canNotOpenWithIllegalMode()
|
237 |
-
{
|
238 |
-
$this->assertFalse(@fopen($this->baz2URL, 'invalid'));
|
239 |
-
}
|
240 |
-
|
241 |
-
/**
|
242 |
-
* @test
|
243 |
-
* @group issue7
|
244 |
-
* @group issue13
|
245 |
-
*/
|
246 |
-
public function canNotWriteToReadOnlyFile()
|
247 |
-
{
|
248 |
-
$fp = fopen($this->baz2URL, 'rb');
|
249 |
-
$this->assertEquals('baz2', fread($fp, 4096));
|
250 |
-
$this->assertEquals(0, fwrite($fp, 'foo'));
|
251 |
-
fclose($fp);
|
252 |
-
$this->assertEquals('baz2', file_get_contents($this->baz2URL));
|
253 |
-
}
|
254 |
-
|
255 |
-
/**
|
256 |
-
* @test
|
257 |
-
* @group issue7
|
258 |
-
* @group issue13
|
259 |
-
*/
|
260 |
-
public function canNotReadFromWriteOnlyFileWithModeW()
|
261 |
-
{
|
262 |
-
$fp = fopen($this->baz2URL, 'wb');
|
263 |
-
$this->assertEquals('', fread($fp, 4096));
|
264 |
-
$this->assertEquals(3, fwrite($fp, 'foo'));
|
265 |
-
fseek($fp, 0);
|
266 |
-
$this->assertEquals('', fread($fp, 4096));
|
267 |
-
fclose($fp);
|
268 |
-
$this->assertEquals('foo', file_get_contents($this->baz2URL));
|
269 |
-
}
|
270 |
-
|
271 |
-
/**
|
272 |
-
* @test
|
273 |
-
* @group issue7
|
274 |
-
* @group issue13
|
275 |
-
*/
|
276 |
-
public function canNotReadFromWriteOnlyFileWithModeA()
|
277 |
-
{
|
278 |
-
$fp = fopen($this->baz2URL, 'ab');
|
279 |
-
$this->assertEquals('', fread($fp, 4096));
|
280 |
-
$this->assertEquals(3, fwrite($fp, 'foo'));
|
281 |
-
fseek($fp, 0);
|
282 |
-
$this->assertEquals('', fread($fp, 4096));
|
283 |
-
fclose($fp);
|
284 |
-
$this->assertEquals('baz2foo', file_get_contents($this->baz2URL));
|
285 |
-
}
|
286 |
-
|
287 |
-
/**
|
288 |
-
* @test
|
289 |
-
* @group issue7
|
290 |
-
* @group issue13
|
291 |
-
*/
|
292 |
-
public function canNotReadFromWriteOnlyFileWithModeX()
|
293 |
-
{
|
294 |
-
$vfsFile = vfsStream::url('foo/modeXtest.txt');
|
295 |
-
$fp = fopen($vfsFile, 'xb');
|
296 |
-
$this->assertEquals('', fread($fp, 4096));
|
297 |
-
$this->assertEquals(3, fwrite($fp, 'foo'));
|
298 |
-
fseek($fp, 0);
|
299 |
-
$this->assertEquals('', fread($fp, 4096));
|
300 |
-
fclose($fp);
|
301 |
-
$this->assertEquals('foo', file_get_contents($vfsFile));
|
302 |
-
}
|
303 |
-
|
304 |
-
/**
|
305 |
-
* @test
|
306 |
-
* @group permissions
|
307 |
-
* @group bug_15
|
308 |
-
*/
|
309 |
-
public function canNotRemoveFileFromDirectoryWithoutWritePermissions()
|
310 |
-
{
|
311 |
-
vfsStreamWrapper::register();
|
312 |
-
vfsStreamWrapper::setRoot(new vfsStreamDirectory('root', 0000));
|
313 |
-
vfsStream::newFile('new.txt')->at(vfsStreamWrapper::getRoot());
|
314 |
-
$this->assertFalse(unlink(vfsStream::url('root/new.txt')));
|
315 |
-
$this->assertTrue(file_exists(vfsStream::url('root/new.txt')));
|
316 |
-
}
|
317 |
-
|
318 |
-
/**
|
319 |
-
* @test
|
320 |
-
* @group issue_30
|
321 |
-
*/
|
322 |
-
public function truncatesFileWhenOpenedWithModeW()
|
323 |
-
{
|
324 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
325 |
-
file_put_contents($vfsFile, 'test');
|
326 |
-
$fp = fopen($vfsFile, 'wb');
|
327 |
-
$this->assertEquals('', file_get_contents($vfsFile));
|
328 |
-
fclose($fp);
|
329 |
-
}
|
330 |
-
|
331 |
-
/**
|
332 |
-
* @test
|
333 |
-
* @group issue_30
|
334 |
-
*/
|
335 |
-
public function createsNonExistingFileWhenOpenedWithModeC()
|
336 |
-
{
|
337 |
-
$vfsFile = vfsStream::url('foo/tobecreated.txt');
|
338 |
-
$fp = fopen($vfsFile, 'cb');
|
339 |
-
fwrite($fp, 'some content');
|
340 |
-
$this->assertTrue($this->foo->hasChild('tobecreated.txt'));
|
341 |
-
fclose($fp);
|
342 |
-
$this->assertEquals('some content', file_get_contents($vfsFile));
|
343 |
-
}
|
344 |
-
|
345 |
-
/**
|
346 |
-
* @test
|
347 |
-
* @group issue_30
|
348 |
-
*/
|
349 |
-
public function createsNonExistingFileWhenOpenedWithModeCplus()
|
350 |
-
{
|
351 |
-
$vfsFile = vfsStream::url('foo/tobecreated.txt');
|
352 |
-
$fp = fopen($vfsFile, 'cb+');
|
353 |
-
fwrite($fp, 'some content');
|
354 |
-
$this->assertTrue($this->foo->hasChild('tobecreated.txt'));
|
355 |
-
fclose($fp);
|
356 |
-
$this->assertEquals('some content', file_get_contents($vfsFile));
|
357 |
-
}
|
358 |
-
|
359 |
-
/**
|
360 |
-
* @test
|
361 |
-
* @group issue_30
|
362 |
-
*/
|
363 |
-
public function doesNotTruncateFileWhenOpenedWithModeC()
|
364 |
-
{
|
365 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
366 |
-
file_put_contents($vfsFile, 'test');
|
367 |
-
$fp = fopen($vfsFile, 'cb');
|
368 |
-
$this->assertEquals('test', file_get_contents($vfsFile));
|
369 |
-
fclose($fp);
|
370 |
-
}
|
371 |
-
|
372 |
-
/**
|
373 |
-
* @test
|
374 |
-
* @group issue_30
|
375 |
-
*/
|
376 |
-
public function setsPointerToStartWhenOpenedWithModeC()
|
377 |
-
{
|
378 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
379 |
-
file_put_contents($vfsFile, 'test');
|
380 |
-
$fp = fopen($vfsFile, 'cb');
|
381 |
-
$this->assertEquals(0, ftell($fp));
|
382 |
-
fclose($fp);
|
383 |
-
}
|
384 |
-
|
385 |
-
/**
|
386 |
-
* @test
|
387 |
-
* @group issue_30
|
388 |
-
*/
|
389 |
-
public function doesNotTruncateFileWhenOpenedWithModeCplus()
|
390 |
-
{
|
391 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
392 |
-
file_put_contents($vfsFile, 'test');
|
393 |
-
$fp = fopen($vfsFile, 'cb+');
|
394 |
-
$this->assertEquals('test', file_get_contents($vfsFile));
|
395 |
-
fclose($fp);
|
396 |
-
}
|
397 |
-
|
398 |
-
/**
|
399 |
-
* @test
|
400 |
-
* @group issue_30
|
401 |
-
*/
|
402 |
-
public function setsPointerToStartWhenOpenedWithModeCplus()
|
403 |
-
{
|
404 |
-
$vfsFile = vfsStream::url('foo/overwrite.txt');
|
405 |
-
file_put_contents($vfsFile, 'test');
|
406 |
-
$fp = fopen($vfsFile, 'cb+');
|
407 |
-
$this->assertEquals(0, ftell($fp));
|
408 |
-
fclose($fp);
|
409 |
-
}
|
410 |
-
|
411 |
-
/**
|
412 |
-
* @test
|
413 |
-
*/
|
414 |
-
public function cannotOpenExistingNonwritableFileWithModeA()
|
415 |
-
{
|
416 |
-
$this->baz1->chmod(0400);
|
417 |
-
$this->assertFalse(@fopen($this->baz1URL, 'a'));
|
418 |
-
}
|
419 |
-
|
420 |
-
/**
|
421 |
-
* @test
|
422 |
-
*/
|
423 |
-
public function cannotOpenExistingNonwritableFileWithModeW()
|
424 |
-
{
|
425 |
-
$this->baz1->chmod(0400);
|
426 |
-
$this->assertFalse(@fopen($this->baz1URL, 'w'));
|
427 |
-
}
|
428 |
-
|
429 |
-
/**
|
430 |
-
* @test
|
431 |
-
*/
|
432 |
-
public function cannotOpenNonReadableFileWithModeR()
|
433 |
-
{
|
434 |
-
$this->baz1->chmod(0);
|
435 |
-
$this->assertFalse(@fopen($this->baz1URL, 'r'));
|
436 |
-
}
|
437 |
-
|
438 |
-
/**
|
439 |
-
* @test
|
440 |
-
*/
|
441 |
-
public function cannotRenameToNonWritableDir()
|
442 |
-
{
|
443 |
-
$this->bar->chmod(0);
|
444 |
-
$this->assertFalse(@rename($this->baz2URL, vfsStream::url('foo/bar/baz3')));
|
445 |
-
}
|
446 |
-
|
447 |
-
/**
|
448 |
-
* @test
|
449 |
-
* @group issue_38
|
450 |
-
*/
|
451 |
-
public function cannotReadFileFromNonReadableDir()
|
452 |
-
{
|
453 |
-
$this->markTestSkipped("Issue #38.");
|
454 |
-
$this->bar->chmod(0);
|
455 |
-
$this->assertFalse(@file_get_contents($this->baz1URL));
|
456 |
-
}
|
457 |
-
}
|
458 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperFileTimesTestCase.php
DELETED
@@ -1,315 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper.
|
13 |
-
*
|
14 |
-
* @since 0.9.0
|
15 |
-
*/
|
16 |
-
class vfsStreamWrapperFileTimesTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* URL of foo.txt file
|
20 |
-
*
|
21 |
-
* @var string
|
22 |
-
*/
|
23 |
-
protected $fooUrl;
|
24 |
-
/**
|
25 |
-
* URL of bar directory
|
26 |
-
*
|
27 |
-
* @var string
|
28 |
-
*/
|
29 |
-
protected $barUrl;
|
30 |
-
/**
|
31 |
-
* URL of baz.txt file
|
32 |
-
*
|
33 |
-
* @var string
|
34 |
-
*/
|
35 |
-
protected $bazUrl;
|
36 |
-
|
37 |
-
/**
|
38 |
-
* set up test environment
|
39 |
-
*/
|
40 |
-
public function setUp()
|
41 |
-
{
|
42 |
-
vfsStream::setup()
|
43 |
-
->lastModified(50)
|
44 |
-
->lastAccessed(50)
|
45 |
-
->lastAttributeModified(50);
|
46 |
-
$this->fooUrl = vfsStream::url('root/foo.txt');
|
47 |
-
$this->barUrl = vfsStream::url('root/bar');
|
48 |
-
$this->bazUrl = vfsStream::url('root/bar/baz.txt');
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* helper assertion for the tests
|
53 |
-
*
|
54 |
-
* @param string $url url to check
|
55 |
-
* @param vfsStreamContent $content content to compare
|
56 |
-
*/
|
57 |
-
protected function assertFileTimesEqualStreamTimes($url, vfsStreamContent $content)
|
58 |
-
{
|
59 |
-
$this->assertEquals(filemtime($url), $content->filemtime());
|
60 |
-
$this->assertEquals(fileatime($url), $content->fileatime());
|
61 |
-
$this->assertEquals(filectime($url), $content->filectime());
|
62 |
-
}
|
63 |
-
|
64 |
-
/**
|
65 |
-
* @test
|
66 |
-
* @group issue_7
|
67 |
-
* @group issue_26
|
68 |
-
*/
|
69 |
-
public function openFileChangesAttributeTimeOnly()
|
70 |
-
{
|
71 |
-
$file = vfsStream::newFile('foo.txt')
|
72 |
-
->withContent('test')
|
73 |
-
->at(vfsStreamWrapper::getRoot())
|
74 |
-
->lastModified(100)
|
75 |
-
->lastAccessed(100)
|
76 |
-
->lastAttributeModified(100);
|
77 |
-
fclose(fopen($this->fooUrl, 'rb'));
|
78 |
-
$this->assertGreaterThan(time() - 2, fileatime($this->fooUrl));
|
79 |
-
$this->assertLessThanOrEqual(time(), fileatime($this->fooUrl));
|
80 |
-
$this->assertLessThanOrEqual(100, filemtime($this->fooUrl));
|
81 |
-
$this->assertEquals(100, filectime($this->fooUrl));
|
82 |
-
$this->assertFileTimesEqualStreamTimes($this->fooUrl, $file);
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* @test
|
87 |
-
* @group issue_7
|
88 |
-
* @group issue_26
|
89 |
-
*/
|
90 |
-
public function fileGetContentsChangesAttributeTimeOnly()
|
91 |
-
{
|
92 |
-
$file = vfsStream::newFile('foo.txt')
|
93 |
-
->withContent('test')
|
94 |
-
->at(vfsStreamWrapper::getRoot())
|
95 |
-
->lastModified(100)
|
96 |
-
->lastAccessed(100)
|
97 |
-
->lastAttributeModified(100);
|
98 |
-
file_get_contents($this->fooUrl);
|
99 |
-
$this->assertGreaterThan(time() - 2, fileatime($this->fooUrl));
|
100 |
-
$this->assertLessThanOrEqual(time(), fileatime($this->fooUrl));
|
101 |
-
$this->assertLessThanOrEqual(100, filemtime($this->fooUrl));
|
102 |
-
$this->assertEquals(100, filectime($this->fooUrl));
|
103 |
-
$this->assertFileTimesEqualStreamTimes($this->fooUrl, $file);
|
104 |
-
}
|
105 |
-
|
106 |
-
/**
|
107 |
-
* @test
|
108 |
-
* @group issue_7
|
109 |
-
* @group issue_26
|
110 |
-
*/
|
111 |
-
public function openFileWithTruncateChangesAttributeAndModificationTime()
|
112 |
-
{
|
113 |
-
$file = vfsStream::newFile('foo.txt')
|
114 |
-
->withContent('test')
|
115 |
-
->at(vfsStreamWrapper::getRoot())
|
116 |
-
->lastModified(100)
|
117 |
-
->lastAccessed(100)
|
118 |
-
->lastAttributeModified(100);
|
119 |
-
fclose(fopen($this->fooUrl, 'wb'));
|
120 |
-
$this->assertGreaterThan(time() - 2, filemtime($this->fooUrl));
|
121 |
-
$this->assertGreaterThan(time() - 2, fileatime($this->fooUrl));
|
122 |
-
$this->assertLessThanOrEqual(time(), filemtime($this->fooUrl));
|
123 |
-
$this->assertLessThanOrEqual(time(), fileatime($this->fooUrl));
|
124 |
-
$this->assertEquals(100, filectime($this->fooUrl));
|
125 |
-
$this->assertFileTimesEqualStreamTimes($this->fooUrl, $file);
|
126 |
-
}
|
127 |
-
|
128 |
-
/**
|
129 |
-
* @test
|
130 |
-
* @group issue_7
|
131 |
-
*/
|
132 |
-
public function readFileChangesAccessTime()
|
133 |
-
{
|
134 |
-
$file = vfsStream::newFile('foo.txt')
|
135 |
-
->withContent('test')
|
136 |
-
->at(vfsStreamWrapper::getRoot())
|
137 |
-
->lastModified(100)
|
138 |
-
->lastAccessed(100)
|
139 |
-
->lastAttributeModified(100);
|
140 |
-
$fp = fopen($this->fooUrl, 'rb');
|
141 |
-
$openTime = time();
|
142 |
-
sleep(2);
|
143 |
-
fread($fp, 1024);
|
144 |
-
fclose($fp);
|
145 |
-
$this->assertLessThanOrEqual($openTime, filemtime($this->fooUrl));
|
146 |
-
$this->assertLessThanOrEqual($openTime + 3, fileatime($this->fooUrl));
|
147 |
-
$this->assertEquals(100, filectime($this->fooUrl));
|
148 |
-
$this->assertFileTimesEqualStreamTimes($this->fooUrl, $file);
|
149 |
-
}
|
150 |
-
|
151 |
-
/**
|
152 |
-
* @test
|
153 |
-
* @group issue_7
|
154 |
-
*/
|
155 |
-
public function writeFileChangesModificationTime()
|
156 |
-
{
|
157 |
-
$file = vfsStream::newFile('foo.txt')
|
158 |
-
->at(vfsStreamWrapper::getRoot())
|
159 |
-
->lastModified(100)
|
160 |
-
->lastAccessed(100)
|
161 |
-
->lastAttributeModified(100);
|
162 |
-
$fp = fopen($this->fooUrl, 'wb');
|
163 |
-
$openTime = time();
|
164 |
-
sleep(2);
|
165 |
-
fwrite($fp, 'test');
|
166 |
-
fclose($fp);
|
167 |
-
$this->assertLessThanOrEqual($openTime + 3, filemtime($this->fooUrl));
|
168 |
-
$this->assertLessThanOrEqual($openTime, fileatime($this->fooUrl));
|
169 |
-
$this->assertEquals(100, filectime($this->fooUrl));
|
170 |
-
$this->assertFileTimesEqualStreamTimes($this->fooUrl, $file);
|
171 |
-
|
172 |
-
}
|
173 |
-
|
174 |
-
/**
|
175 |
-
* @test
|
176 |
-
* @group issue_7
|
177 |
-
*/
|
178 |
-
public function createNewFileSetsAllTimesToCurrentTime()
|
179 |
-
{
|
180 |
-
file_put_contents($this->fooUrl, 'test');
|
181 |
-
$this->assertLessThanOrEqual(time(), filemtime($this->fooUrl));
|
182 |
-
$this->assertEquals(fileatime($this->fooUrl), filectime($this->fooUrl));
|
183 |
-
$this->assertEquals(fileatime($this->fooUrl), filemtime($this->fooUrl));
|
184 |
-
$this->assertFileTimesEqualStreamTimes($this->fooUrl, vfsStreamWrapper::getRoot()->getChild('foo.txt'));
|
185 |
-
}
|
186 |
-
|
187 |
-
/**
|
188 |
-
* @test
|
189 |
-
* @group issue_7
|
190 |
-
*/
|
191 |
-
public function createNewFileChangesAttributeAndModificationTimeOfContainingDirectory()
|
192 |
-
{
|
193 |
-
$dir = vfsStream::newDirectory('bar')
|
194 |
-
->at(vfsStreamWrapper::getRoot())
|
195 |
-
->lastModified(100)
|
196 |
-
->lastAccessed(100)
|
197 |
-
->lastAttributeModified(100);
|
198 |
-
file_put_contents($this->bazUrl, 'test');
|
199 |
-
$this->assertLessThanOrEqual(time(), filemtime($this->barUrl));
|
200 |
-
$this->assertLessThanOrEqual(time(), filectime($this->barUrl));
|
201 |
-
$this->assertEquals(100, fileatime($this->barUrl));
|
202 |
-
$this->assertFileTimesEqualStreamTimes($this->barUrl, $dir);
|
203 |
-
}
|
204 |
-
|
205 |
-
/**
|
206 |
-
* @test
|
207 |
-
* @group issue_7
|
208 |
-
*/
|
209 |
-
public function addNewFileNameWithLinkFunctionChangesAttributeTimeOfOriginalFile()
|
210 |
-
{
|
211 |
-
$this->markTestSkipped('Links are currently not supported by vfsStream.');
|
212 |
-
}
|
213 |
-
|
214 |
-
/**
|
215 |
-
* @test
|
216 |
-
* @group issue_7
|
217 |
-
*/
|
218 |
-
public function addNewFileNameWithLinkFunctionChangesAttributeAndModificationTimeOfDirectoryContainingLink()
|
219 |
-
{
|
220 |
-
$this->markTestSkipped('Links are currently not supported by vfsStream.');
|
221 |
-
}
|
222 |
-
|
223 |
-
/**
|
224 |
-
* @test
|
225 |
-
* @group issue_7
|
226 |
-
*/
|
227 |
-
public function removeFileChangesAttributeAndModificationTimeOfContainingDirectory()
|
228 |
-
{
|
229 |
-
$dir = vfsStream::newDirectory('bar')
|
230 |
-
->at(vfsStreamWrapper::getRoot());
|
231 |
-
$file = vfsStream::newFile('baz.txt')
|
232 |
-
->at($dir)
|
233 |
-
->lastModified(100)
|
234 |
-
->lastAccessed(100)
|
235 |
-
->lastAttributeModified(100);
|
236 |
-
$dir->lastModified(100)
|
237 |
-
->lastAccessed(100)
|
238 |
-
->lastAttributeModified(100);
|
239 |
-
unlink($this->bazUrl);
|
240 |
-
$this->assertLessThanOrEqual(time(), filemtime($this->barUrl));
|
241 |
-
$this->assertLessThanOrEqual(time(), filectime($this->barUrl));
|
242 |
-
$this->assertEquals(100, fileatime($this->barUrl));
|
243 |
-
$this->assertFileTimesEqualStreamTimes($this->barUrl, $dir);
|
244 |
-
}
|
245 |
-
|
246 |
-
/**
|
247 |
-
* @test
|
248 |
-
* @group issue_7
|
249 |
-
*/
|
250 |
-
public function renameFileChangesAttributeAndModificationTimeOfAffectedDirectories()
|
251 |
-
{
|
252 |
-
$target = vfsStream::newDirectory('target')
|
253 |
-
->at(vfsStreamWrapper::getRoot())
|
254 |
-
->lastModified(200)
|
255 |
-
->lastAccessed(200)
|
256 |
-
->lastAttributeModified(200);
|
257 |
-
$source = vfsStream::newDirectory('bar')
|
258 |
-
->at(vfsStreamWrapper::getRoot());
|
259 |
-
$file = vfsStream::newFile('baz.txt')
|
260 |
-
->at($source)
|
261 |
-
->lastModified(300)
|
262 |
-
->lastAccessed(300)
|
263 |
-
->lastAttributeModified(300);
|
264 |
-
$source->lastModified(100)
|
265 |
-
->lastAccessed(100)
|
266 |
-
->lastAttributeModified(100);
|
267 |
-
rename($this->bazUrl, vfsStream::url('root/target/baz.txt'));
|
268 |
-
$this->assertLessThanOrEqual(time(), filemtime($this->barUrl));
|
269 |
-
$this->assertLessThanOrEqual(time(), filectime($this->barUrl));
|
270 |
-
$this->assertEquals(100, fileatime($this->barUrl));
|
271 |
-
$this->assertFileTimesEqualStreamTimes($this->barUrl, $source);
|
272 |
-
$this->assertLessThanOrEqual(time(), filemtime(vfsStream::url('root/target')));
|
273 |
-
$this->assertLessThanOrEqual(time(), filectime(vfsStream::url('root/target')));
|
274 |
-
$this->assertEquals(200, fileatime(vfsStream::url('root/target')));
|
275 |
-
$this->assertFileTimesEqualStreamTimes(vfsStream::url('root/target'), $target);
|
276 |
-
}
|
277 |
-
|
278 |
-
/**
|
279 |
-
* @test
|
280 |
-
* @group issue_7
|
281 |
-
*/
|
282 |
-
public function renameFileDoesNotChangeFileTimesOfFileItself()
|
283 |
-
{
|
284 |
-
$target = vfsStream::newDirectory('target')
|
285 |
-
->at(vfsStreamWrapper::getRoot())
|
286 |
-
->lastModified(200)
|
287 |
-
->lastAccessed(200)
|
288 |
-
->lastAttributeModified(200);
|
289 |
-
$source = vfsStream::newDirectory('bar')
|
290 |
-
->at(vfsStreamWrapper::getRoot());
|
291 |
-
$file = vfsStream::newFile('baz.txt')
|
292 |
-
->at($source)
|
293 |
-
->lastModified(300)
|
294 |
-
->lastAccessed(300)
|
295 |
-
->lastAttributeModified(300);
|
296 |
-
$source->lastModified(100)
|
297 |
-
->lastAccessed(100)
|
298 |
-
->lastAttributeModified(100);
|
299 |
-
rename($this->bazUrl, vfsStream::url('root/target/baz.txt'));
|
300 |
-
$this->assertEquals(300, filemtime(vfsStream::url('root/target/baz.txt')));
|
301 |
-
$this->assertEquals(300, filectime(vfsStream::url('root/target/baz.txt')));
|
302 |
-
$this->assertEquals(300, fileatime(vfsStream::url('root/target/baz.txt')));
|
303 |
-
$this->assertFileTimesEqualStreamTimes(vfsStream::url('root/target/baz.txt'), $file);
|
304 |
-
}
|
305 |
-
|
306 |
-
/**
|
307 |
-
* @test
|
308 |
-
* @group issue_7
|
309 |
-
*/
|
310 |
-
public function changeFileAttributesChangesAttributeTimeOfFileItself()
|
311 |
-
{
|
312 |
-
$this->markTestSkipped('Changing file attributes via stream wrapper for self-defined streams is not supported by PHP.');
|
313 |
-
}
|
314 |
-
}
|
315 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperFlockTestCase.php
DELETED
@@ -1,440 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for flock() implementation.
|
13 |
-
*
|
14 |
-
* @package bovigo_vfs
|
15 |
-
* @subpackage test
|
16 |
-
* @since 0.10.0
|
17 |
-
* @see https://github.com/mikey179/vfsStream/issues/6
|
18 |
-
* @group issue_6
|
19 |
-
*/
|
20 |
-
class vfsStreamWrapperFlockTestCase extends \PHPUnit_Framework_TestCase
|
21 |
-
{
|
22 |
-
/**
|
23 |
-
* root directory
|
24 |
-
*
|
25 |
-
* @var vfsStreamContainer
|
26 |
-
*/
|
27 |
-
protected $root;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* set up test environment
|
31 |
-
*/
|
32 |
-
public function setUp()
|
33 |
-
{
|
34 |
-
$this->root = vfsStream::setup();
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* @test
|
39 |
-
*/
|
40 |
-
public function fileIsNotLockedByDefault()
|
41 |
-
{
|
42 |
-
$this->assertFalse(vfsStream::newFile('foo.txt')->isLocked());
|
43 |
-
}
|
44 |
-
|
45 |
-
/**
|
46 |
-
* @test
|
47 |
-
*/
|
48 |
-
public function streamIsNotLockedByDefault()
|
49 |
-
{
|
50 |
-
file_put_contents(vfsStream::url('root/foo.txt'), 'content');
|
51 |
-
$this->assertFalse($this->root->getChild('foo.txt')->isLocked());
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @test
|
56 |
-
*/
|
57 |
-
public function canAquireSharedLock()
|
58 |
-
{
|
59 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
60 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
61 |
-
$this->assertTrue(flock($fp, LOCK_SH));
|
62 |
-
$this->assertTrue($file->isLocked());
|
63 |
-
$this->assertTrue($file->hasSharedLock());
|
64 |
-
$this->assertFalse($file->hasExclusiveLock());
|
65 |
-
fclose($fp);
|
66 |
-
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* @test
|
71 |
-
*/
|
72 |
-
public function canAquireSharedLockWithNonBlockingFlockCall()
|
73 |
-
{
|
74 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
75 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
76 |
-
$this->assertTrue(flock($fp, LOCK_SH | LOCK_NB));
|
77 |
-
$this->assertTrue($file->isLocked());
|
78 |
-
$this->assertTrue($file->hasSharedLock());
|
79 |
-
$this->assertFalse($file->hasExclusiveLock());
|
80 |
-
fclose($fp);
|
81 |
-
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* @test
|
86 |
-
*/
|
87 |
-
public function canAquireEclusiveLock()
|
88 |
-
{
|
89 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
90 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
91 |
-
$this->assertTrue(flock($fp, LOCK_EX));
|
92 |
-
$this->assertTrue($file->isLocked());
|
93 |
-
$this->assertFalse($file->hasSharedLock());
|
94 |
-
$this->assertTrue($file->hasExclusiveLock());
|
95 |
-
fclose($fp);
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* @test
|
100 |
-
*/
|
101 |
-
public function canAquireEclusiveLockWithNonBlockingFlockCall()
|
102 |
-
{
|
103 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
104 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
105 |
-
$this->assertTrue(flock($fp, LOCK_EX | LOCK_NB));
|
106 |
-
$this->assertTrue($file->isLocked());
|
107 |
-
$this->assertFalse($file->hasSharedLock());
|
108 |
-
$this->assertTrue($file->hasExclusiveLock());
|
109 |
-
fclose($fp);
|
110 |
-
}
|
111 |
-
|
112 |
-
/**
|
113 |
-
* @test
|
114 |
-
*/
|
115 |
-
public function canRemoveLock()
|
116 |
-
{
|
117 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
118 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
119 |
-
$file->lock($fp, LOCK_EX);
|
120 |
-
$this->assertTrue(flock($fp, LOCK_UN));
|
121 |
-
$this->assertFalse($file->isLocked());
|
122 |
-
$this->assertFalse($file->hasSharedLock());
|
123 |
-
$this->assertFalse($file->hasExclusiveLock());
|
124 |
-
fclose($fp);
|
125 |
-
}
|
126 |
-
|
127 |
-
/**
|
128 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
129 |
-
* @test
|
130 |
-
* @group issue_40
|
131 |
-
*/
|
132 |
-
public function canRemoveLockWhenNotLocked()
|
133 |
-
{
|
134 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
135 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
136 |
-
$this->assertTrue(flock($fp, LOCK_UN));
|
137 |
-
$this->assertFalse($file->isLocked());
|
138 |
-
$this->assertFalse($file->hasSharedLock());
|
139 |
-
$this->assertFalse($file->hasSharedLock($fp));
|
140 |
-
$this->assertFalse($file->hasExclusiveLock());
|
141 |
-
$this->assertFalse($file->hasExclusiveLock($fp));
|
142 |
-
fclose($fp);
|
143 |
-
}
|
144 |
-
|
145 |
-
/**
|
146 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
147 |
-
* @test
|
148 |
-
* @group issue_40
|
149 |
-
*/
|
150 |
-
public function canRemoveSharedLockWithoutRemovingSharedLockOnOtherFileHandler()
|
151 |
-
{
|
152 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
153 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
154 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
155 |
-
$file->lock($fp1, LOCK_SH);
|
156 |
-
$file->lock($fp2, LOCK_SH);
|
157 |
-
$this->assertTrue(flock($fp1, LOCK_UN));
|
158 |
-
$this->assertTrue($file->hasSharedLock());
|
159 |
-
$this->assertFalse($file->hasSharedLock($fp1));
|
160 |
-
$this->assertTrue($file->hasSharedLock($fp2));
|
161 |
-
fclose($fp1);
|
162 |
-
fclose($fp2);
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
167 |
-
* @test
|
168 |
-
* @group issue_40
|
169 |
-
*/
|
170 |
-
public function canNotRemoveSharedLockAcquiredOnOtherFileHandler()
|
171 |
-
{
|
172 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
173 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
174 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
175 |
-
$file->lock($fp1, LOCK_SH);
|
176 |
-
$this->assertTrue(flock($fp2, LOCK_UN));
|
177 |
-
$this->assertTrue($file->isLocked());
|
178 |
-
$this->assertTrue($file->hasSharedLock());
|
179 |
-
$this->assertFalse($file->hasExclusiveLock());
|
180 |
-
fclose($fp1);
|
181 |
-
fclose($fp2);
|
182 |
-
}
|
183 |
-
|
184 |
-
/**
|
185 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
186 |
-
* @test
|
187 |
-
* @group issue_40
|
188 |
-
*/
|
189 |
-
public function canNotRemoveExlusiveLockAcquiredOnOtherFileHandler()
|
190 |
-
{
|
191 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
192 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
193 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
194 |
-
$file->lock($fp1, LOCK_EX);
|
195 |
-
$this->assertTrue(flock($fp2, LOCK_UN));
|
196 |
-
$this->assertTrue($file->isLocked());
|
197 |
-
$this->assertFalse($file->hasSharedLock());
|
198 |
-
$this->assertTrue($file->hasExclusiveLock());
|
199 |
-
fclose($fp1);
|
200 |
-
fclose($fp2);
|
201 |
-
}
|
202 |
-
|
203 |
-
/**
|
204 |
-
* @test
|
205 |
-
*/
|
206 |
-
public function canRemoveLockWithNonBlockingFlockCall()
|
207 |
-
{
|
208 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
209 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
210 |
-
$file->lock($fp, LOCK_EX);
|
211 |
-
$this->assertTrue(flock($fp, LOCK_UN | LOCK_NB));
|
212 |
-
$this->assertFalse($file->isLocked());
|
213 |
-
$this->assertFalse($file->hasSharedLock());
|
214 |
-
$this->assertFalse($file->hasExclusiveLock());
|
215 |
-
fclose($fp);
|
216 |
-
}
|
217 |
-
|
218 |
-
/**
|
219 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
220 |
-
* @test
|
221 |
-
* @group issue_40
|
222 |
-
*/
|
223 |
-
public function canNotAquireExclusiveLockIfAlreadyExclusivelyLockedOnOtherFileHandler()
|
224 |
-
{
|
225 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
226 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
227 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
228 |
-
$file->lock($fp1, LOCK_EX);
|
229 |
-
$this->assertFalse(flock($fp2, LOCK_EX + LOCK_NB));
|
230 |
-
$this->assertTrue($file->isLocked());
|
231 |
-
$this->assertFalse($file->hasSharedLock());
|
232 |
-
$this->assertTrue($file->hasExclusiveLock());
|
233 |
-
$this->assertTrue($file->hasExclusiveLock($fp1));
|
234 |
-
$this->assertFalse($file->hasExclusiveLock($fp2));
|
235 |
-
fclose($fp1);
|
236 |
-
fclose($fp2);
|
237 |
-
}
|
238 |
-
|
239 |
-
/**
|
240 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
241 |
-
* @test
|
242 |
-
* @group issue_40
|
243 |
-
*/
|
244 |
-
public function canAquireExclusiveLockIfAlreadySelfExclusivelyLocked()
|
245 |
-
{
|
246 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
247 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
248 |
-
$file->lock($fp, LOCK_EX);
|
249 |
-
$this->assertTrue(flock($fp, LOCK_EX + LOCK_NB));
|
250 |
-
$this->assertTrue($file->isLocked());
|
251 |
-
$this->assertFalse($file->hasSharedLock());
|
252 |
-
$this->assertTrue($file->hasExclusiveLock());
|
253 |
-
fclose($fp);
|
254 |
-
}
|
255 |
-
|
256 |
-
/**
|
257 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
258 |
-
* @test
|
259 |
-
* @group issue_40
|
260 |
-
*/
|
261 |
-
public function canNotAquireExclusiveLockIfAlreadySharedLockedOnOtherFileHandler()
|
262 |
-
{
|
263 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
264 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
265 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
266 |
-
$file->lock($fp1, LOCK_SH);
|
267 |
-
$this->assertFalse(flock($fp2, LOCK_EX));
|
268 |
-
$this->assertTrue($file->isLocked());
|
269 |
-
$this->assertTrue($file->hasSharedLock());
|
270 |
-
$this->assertFalse($file->hasExclusiveLock());
|
271 |
-
fclose($fp1);
|
272 |
-
fclose($fp2);
|
273 |
-
}
|
274 |
-
|
275 |
-
/**
|
276 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
277 |
-
* @test
|
278 |
-
* @group issue_40
|
279 |
-
*/
|
280 |
-
public function canAquireExclusiveLockIfAlreadySelfSharedLocked()
|
281 |
-
{
|
282 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
283 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
284 |
-
$file->lock($fp, LOCK_SH);
|
285 |
-
$this->assertTrue(flock($fp, LOCK_EX));
|
286 |
-
$this->assertTrue($file->isLocked());
|
287 |
-
$this->assertFalse($file->hasSharedLock());
|
288 |
-
$this->assertTrue($file->hasExclusiveLock());
|
289 |
-
fclose($fp);
|
290 |
-
}
|
291 |
-
|
292 |
-
/**
|
293 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
294 |
-
* @test
|
295 |
-
* @group issue_40
|
296 |
-
*/
|
297 |
-
public function canNotAquireSharedLockIfAlreadyExclusivelyLockedOnOtherFileHandler()
|
298 |
-
{
|
299 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
300 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
301 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
302 |
-
$file->lock($fp1, LOCK_EX);
|
303 |
-
$this->assertFalse(flock($fp2, LOCK_SH + LOCK_NB));
|
304 |
-
$this->assertTrue($file->isLocked());
|
305 |
-
$this->assertFalse($file->hasSharedLock());
|
306 |
-
$this->assertTrue($file->hasExclusiveLock());
|
307 |
-
fclose($fp1);
|
308 |
-
fclose($fp2);
|
309 |
-
}
|
310 |
-
|
311 |
-
/**
|
312 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
313 |
-
* @test
|
314 |
-
* @group issue_40
|
315 |
-
*/
|
316 |
-
public function canAquireSharedLockIfAlreadySelfExclusivelyLocked()
|
317 |
-
{
|
318 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
319 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
320 |
-
$file->lock($fp, LOCK_EX);
|
321 |
-
$this->assertTrue(flock($fp, LOCK_SH + LOCK_NB));
|
322 |
-
$this->assertTrue($file->isLocked());
|
323 |
-
$this->assertTrue($file->hasSharedLock());
|
324 |
-
$this->assertFalse($file->hasExclusiveLock());
|
325 |
-
fclose($fp);
|
326 |
-
}
|
327 |
-
|
328 |
-
/**
|
329 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
330 |
-
* @test
|
331 |
-
* @group issue_40
|
332 |
-
*/
|
333 |
-
public function canAquireSharedLockIfAlreadySelfSharedLocked()
|
334 |
-
{
|
335 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
336 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
337 |
-
$file->lock($fp, LOCK_SH);
|
338 |
-
$this->assertTrue(flock($fp, LOCK_SH));
|
339 |
-
$this->assertTrue($file->isLocked());
|
340 |
-
$this->assertTrue($file->hasSharedLock());
|
341 |
-
$this->assertFalse($file->hasExclusiveLock());
|
342 |
-
fclose($fp);
|
343 |
-
}
|
344 |
-
|
345 |
-
/**
|
346 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
347 |
-
* @test
|
348 |
-
* @group issue_40
|
349 |
-
*/
|
350 |
-
public function canAquireSharedLockIfAlreadySharedLockedOnOtherFileHandler()
|
351 |
-
{
|
352 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
353 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
354 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
355 |
-
$file->lock($fp1, LOCK_SH);
|
356 |
-
$this->assertTrue(flock($fp2, LOCK_SH));
|
357 |
-
$this->assertTrue($file->isLocked());
|
358 |
-
$this->assertTrue($file->hasSharedLock());
|
359 |
-
$this->assertTrue($file->hasSharedLock($fp1));
|
360 |
-
$this->assertTrue($file->hasSharedLock($fp2));
|
361 |
-
$this->assertFalse($file->hasExclusiveLock());
|
362 |
-
fclose($fp1);
|
363 |
-
fclose($fp2);
|
364 |
-
}
|
365 |
-
|
366 |
-
/**
|
367 |
-
* @see https://github.com/mikey179/vfsStream/issues/31
|
368 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
369 |
-
* @test
|
370 |
-
* @group issue_31
|
371 |
-
* @group issue_40
|
372 |
-
*/
|
373 |
-
public function removesExclusiveLockOnStreamClose()
|
374 |
-
{
|
375 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
376 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
377 |
-
$file->lock($fp, LOCK_EX);
|
378 |
-
fclose($fp);
|
379 |
-
$this->assertFalse($file->isLocked());
|
380 |
-
$this->assertFalse($file->hasSharedLock());
|
381 |
-
$this->assertFalse($file->hasExclusiveLock());
|
382 |
-
}
|
383 |
-
|
384 |
-
/**
|
385 |
-
* @see https://github.com/mikey179/vfsStream/issues/31
|
386 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
387 |
-
* @test
|
388 |
-
* @group issue_31
|
389 |
-
* @group issue_40
|
390 |
-
*/
|
391 |
-
public function removesSharedLockOnStreamClose()
|
392 |
-
{
|
393 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
394 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
395 |
-
$file->lock($fp, LOCK_SH);
|
396 |
-
fclose($fp);
|
397 |
-
$this->assertFalse($file->isLocked());
|
398 |
-
$this->assertFalse($file->hasSharedLock());
|
399 |
-
$this->assertFalse($file->hasExclusiveLock());
|
400 |
-
}
|
401 |
-
|
402 |
-
/**
|
403 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
404 |
-
* @test
|
405 |
-
* @group issue_40
|
406 |
-
*/
|
407 |
-
public function notRemovesExclusiveLockOnStreamCloseIfExclusiveLockAcquiredOnOtherFileHandler()
|
408 |
-
{
|
409 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
410 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
411 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
412 |
-
$file->lock($fp2, LOCK_EX);
|
413 |
-
fclose($fp1);
|
414 |
-
$this->assertTrue($file->isLocked());
|
415 |
-
$this->assertFalse($file->hasSharedLock());
|
416 |
-
$this->assertTrue($file->hasExclusiveLock());
|
417 |
-
$this->assertTrue($file->hasExclusiveLock($fp2));
|
418 |
-
fclose($fp2);
|
419 |
-
}
|
420 |
-
|
421 |
-
/**
|
422 |
-
* @see https://github.com/mikey179/vfsStream/issues/40
|
423 |
-
* @test
|
424 |
-
* @group issue_40
|
425 |
-
*/
|
426 |
-
public function notRemovesSharedLockOnStreamCloseIfSharedLockAcquiredOnOtherFileHandler()
|
427 |
-
{
|
428 |
-
$file = vfsStream::newFile('foo.txt')->at($this->root);
|
429 |
-
$fp1 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
430 |
-
$fp2 = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
431 |
-
$file->lock($fp2, LOCK_SH);
|
432 |
-
fclose($fp1);
|
433 |
-
$this->assertTrue($file->isLocked());
|
434 |
-
$this->assertTrue($file->hasSharedLock());
|
435 |
-
$this->assertTrue($file->hasSharedLock($fp2));
|
436 |
-
$this->assertFalse($file->hasExclusiveLock());
|
437 |
-
fclose($fp2);
|
438 |
-
}
|
439 |
-
}
|
440 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperLargeFileTestCase.php
DELETED
@@ -1,77 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
use org\bovigo\vfs\content\LargeFileContent;
|
12 |
-
/**
|
13 |
-
* Test for large file mocks.
|
14 |
-
*
|
15 |
-
* @package bovigo_vfs
|
16 |
-
* @subpackage test
|
17 |
-
* @since 1.3.0
|
18 |
-
* @group issue_79
|
19 |
-
*/
|
20 |
-
class vfsStreamWrapperLargeFileTestCase extends \PHPUnit_Framework_TestCase
|
21 |
-
{
|
22 |
-
/**
|
23 |
-
* large file to test
|
24 |
-
*
|
25 |
-
* @var vfsStreamFile
|
26 |
-
*/
|
27 |
-
private $largeFile;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* set up test environment
|
31 |
-
*/
|
32 |
-
public function setUp()
|
33 |
-
{
|
34 |
-
$root = vfsStream::setup();
|
35 |
-
$this->largeFile = vfsStream::newFile('large.txt')
|
36 |
-
->withContent(LargeFileContent::withGigabytes(100))
|
37 |
-
->at($root);
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @test
|
42 |
-
*/
|
43 |
-
public function hasLargeFileSize()
|
44 |
-
{
|
45 |
-
$this->assertEquals(
|
46 |
-
100 * 1024 * 1024 * 1024,
|
47 |
-
filesize($this->largeFile->url())
|
48 |
-
);
|
49 |
-
}
|
50 |
-
|
51 |
-
/**
|
52 |
-
* @test
|
53 |
-
*/
|
54 |
-
public function canReadFromLargeFile()
|
55 |
-
{
|
56 |
-
$fp = fopen($this->largeFile->url(), 'rb');
|
57 |
-
$data = fread($fp, 15);
|
58 |
-
fclose($fp);
|
59 |
-
$this->assertEquals(str_repeat(' ', 15), $data);
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* @test
|
64 |
-
*/
|
65 |
-
public function canWriteIntoLargeFile()
|
66 |
-
{
|
67 |
-
$fp = fopen($this->largeFile->url(), 'rb+');
|
68 |
-
fseek($fp, 100 * 1024 * 1024, SEEK_SET);
|
69 |
-
fwrite($fp, 'foobarbaz');
|
70 |
-
fclose($fp);
|
71 |
-
$this->largeFile->seek((100 * 1024 * 1024) - 3, SEEK_SET);
|
72 |
-
$this->assertEquals(
|
73 |
-
' foobarbaz ',
|
74 |
-
$this->largeFile->read(15)
|
75 |
-
);
|
76 |
-
}
|
77 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperQuotaTestCase.php
DELETED
@@ -1,224 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for quota related functionality of org\bovigo\vfs\vfsStreamWrapper.
|
13 |
-
*
|
14 |
-
* @group issue_35
|
15 |
-
*/
|
16 |
-
class vfsStreamWrapperQuotaTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* access to root
|
20 |
-
*
|
21 |
-
* @type vfsStreamDirectory
|
22 |
-
*/
|
23 |
-
private $root;
|
24 |
-
|
25 |
-
/**
|
26 |
-
* set up test environment
|
27 |
-
*/
|
28 |
-
public function setUp()
|
29 |
-
{
|
30 |
-
$this->root = vfsStream::setup();
|
31 |
-
vfsStream::setQuota(10);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @test
|
36 |
-
*/
|
37 |
-
public function writeLessThanQuotaWritesEverything()
|
38 |
-
{
|
39 |
-
$this->assertEquals(9, file_put_contents(vfsStream::url('root/file.txt'), '123456789'));
|
40 |
-
$this->assertEquals('123456789', $this->root->getChild('file.txt')->getContent());
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* @test
|
45 |
-
*/
|
46 |
-
public function writeUpToQotaWritesEverything()
|
47 |
-
{
|
48 |
-
$this->assertEquals(10, file_put_contents(vfsStream::url('root/file.txt'), '1234567890'));
|
49 |
-
$this->assertEquals('1234567890', $this->root->getChild('file.txt')->getContent());
|
50 |
-
}
|
51 |
-
|
52 |
-
/**
|
53 |
-
* @test
|
54 |
-
*/
|
55 |
-
public function writeMoreThanQotaWritesOnlyUpToQuota()
|
56 |
-
{
|
57 |
-
try {
|
58 |
-
file_put_contents(vfsStream::url('root/file.txt'), '12345678901');
|
59 |
-
} catch (\PHPUnit_Framework_Error $e) {
|
60 |
-
$this->assertEquals('file_put_contents(): Only 10 of 11 bytes written, possibly out of free disk space',
|
61 |
-
$e->getMessage()
|
62 |
-
);
|
63 |
-
}
|
64 |
-
|
65 |
-
$this->assertEquals('1234567890', $this->root->getChild('file.txt')->getContent());
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* @test
|
70 |
-
*/
|
71 |
-
public function considersAllFilesForQuota()
|
72 |
-
{
|
73 |
-
vfsStream::newFile('foo.txt')
|
74 |
-
->withContent('foo')
|
75 |
-
->at(vfsStream::newDirectory('bar')
|
76 |
-
->at($this->root)
|
77 |
-
);
|
78 |
-
try {
|
79 |
-
file_put_contents(vfsStream::url('root/file.txt'), '12345678901');
|
80 |
-
} catch (\PHPUnit_Framework_Error $e) {
|
81 |
-
$this->assertEquals('file_put_contents(): Only 7 of 11 bytes written, possibly out of free disk space',
|
82 |
-
$e->getMessage()
|
83 |
-
);
|
84 |
-
}
|
85 |
-
|
86 |
-
$this->assertEquals('1234567', $this->root->getChild('file.txt')->getContent());
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* @test
|
91 |
-
* @group issue_33
|
92 |
-
*/
|
93 |
-
public function truncateToLessThanQuotaWritesEverything()
|
94 |
-
{
|
95 |
-
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
|
96 |
-
$this->markTestSkipped('Requires PHP 5.4');
|
97 |
-
}
|
98 |
-
|
99 |
-
if (strstr(PHP_VERSION, 'hiphop') !== false) {
|
100 |
-
$this->markTestSkipped('Not supported on hhvm');
|
101 |
-
}
|
102 |
-
|
103 |
-
$fp = fopen(vfsStream::url('root/file.txt'), 'w+');
|
104 |
-
$this->assertTrue(ftruncate($fp, 9));
|
105 |
-
fclose($fp);
|
106 |
-
$this->assertEquals(9,
|
107 |
-
$this->root->getChild('file.txt')->size()
|
108 |
-
);
|
109 |
-
$this->assertEquals("\0\0\0\0\0\0\0\0\0",
|
110 |
-
$this->root->getChild('file.txt')->getContent()
|
111 |
-
);
|
112 |
-
}
|
113 |
-
|
114 |
-
/**
|
115 |
-
* @test
|
116 |
-
* @group issue_33
|
117 |
-
*/
|
118 |
-
public function truncateUpToQotaWritesEverything()
|
119 |
-
{
|
120 |
-
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
|
121 |
-
$this->markTestSkipped('Requires PHP 5.4');
|
122 |
-
}
|
123 |
-
|
124 |
-
if (strstr(PHP_VERSION, 'hiphop') !== false) {
|
125 |
-
$this->markTestSkipped('Not supported on hhvm');
|
126 |
-
}
|
127 |
-
|
128 |
-
$fp = fopen(vfsStream::url('root/file.txt'), 'w+');
|
129 |
-
$this->assertTrue(ftruncate($fp, 10));
|
130 |
-
fclose($fp);
|
131 |
-
$this->assertEquals(10,
|
132 |
-
$this->root->getChild('file.txt')->size()
|
133 |
-
);
|
134 |
-
$this->assertEquals("\0\0\0\0\0\0\0\0\0\0",
|
135 |
-
$this->root->getChild('file.txt')->getContent()
|
136 |
-
);
|
137 |
-
}
|
138 |
-
|
139 |
-
/**
|
140 |
-
* @test
|
141 |
-
* @group issue_33
|
142 |
-
*/
|
143 |
-
public function truncateToMoreThanQotaWritesOnlyUpToQuota()
|
144 |
-
{
|
145 |
-
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
|
146 |
-
$this->markTestSkipped('Requires PHP 5.4');
|
147 |
-
}
|
148 |
-
|
149 |
-
if (strstr(PHP_VERSION, 'hiphop') !== false) {
|
150 |
-
$this->markTestSkipped('Not supported on hhvm');
|
151 |
-
}
|
152 |
-
|
153 |
-
$fp = fopen(vfsStream::url('root/file.txt'), 'w+');
|
154 |
-
$this->assertTrue(ftruncate($fp, 11));
|
155 |
-
fclose($fp);
|
156 |
-
$this->assertEquals(10,
|
157 |
-
$this->root->getChild('file.txt')->size()
|
158 |
-
);
|
159 |
-
$this->assertEquals("\0\0\0\0\0\0\0\0\0\0",
|
160 |
-
$this->root->getChild('file.txt')->getContent()
|
161 |
-
);
|
162 |
-
}
|
163 |
-
|
164 |
-
/**
|
165 |
-
* @test
|
166 |
-
* @group issue_33
|
167 |
-
*/
|
168 |
-
public function truncateConsidersAllFilesForQuota()
|
169 |
-
{
|
170 |
-
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
|
171 |
-
$this->markTestSkipped('Requires PHP 5.4');
|
172 |
-
}
|
173 |
-
|
174 |
-
if (strstr(PHP_VERSION, 'hiphop') !== false) {
|
175 |
-
$this->markTestSkipped('Not supported on hhvm');
|
176 |
-
}
|
177 |
-
|
178 |
-
vfsStream::newFile('bar.txt')
|
179 |
-
->withContent('bar')
|
180 |
-
->at(vfsStream::newDirectory('bar')
|
181 |
-
->at($this->root)
|
182 |
-
);
|
183 |
-
$fp = fopen(vfsStream::url('root/file.txt'), 'w+');
|
184 |
-
$this->assertTrue(ftruncate($fp, 11));
|
185 |
-
fclose($fp);
|
186 |
-
$this->assertEquals(7,
|
187 |
-
$this->root->getChild('file.txt')->size()
|
188 |
-
);
|
189 |
-
$this->assertEquals("\0\0\0\0\0\0\0",
|
190 |
-
$this->root->getChild('file.txt')->getContent()
|
191 |
-
);
|
192 |
-
}
|
193 |
-
|
194 |
-
/**
|
195 |
-
* @test
|
196 |
-
* @group issue_33
|
197 |
-
*/
|
198 |
-
public function canNotTruncateToGreaterLengthWhenDiscQuotaReached()
|
199 |
-
{
|
200 |
-
if (version_compare(PHP_VERSION, '5.4.0', '<')) {
|
201 |
-
$this->markTestSkipped('Requires PHP 5.4');
|
202 |
-
}
|
203 |
-
|
204 |
-
if (strstr(PHP_VERSION, 'hiphop') !== false) {
|
205 |
-
$this->markTestSkipped('Not supported on hhvm');
|
206 |
-
}
|
207 |
-
|
208 |
-
vfsStream::newFile('bar.txt')
|
209 |
-
->withContent('1234567890')
|
210 |
-
->at(vfsStream::newDirectory('bar')
|
211 |
-
->at($this->root)
|
212 |
-
);
|
213 |
-
$fp = fopen(vfsStream::url('root/file.txt'), 'w+');
|
214 |
-
$this->assertFalse(ftruncate($fp, 11));
|
215 |
-
fclose($fp);
|
216 |
-
$this->assertEquals(0,
|
217 |
-
$this->root->getChild('file.txt')->size()
|
218 |
-
);
|
219 |
-
$this->assertEquals('',
|
220 |
-
$this->root->getChild('file.txt')->getContent()
|
221 |
-
);
|
222 |
-
}
|
223 |
-
}
|
224 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperSetOptionTestCase.php
DELETED
@@ -1,76 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for stream_set_option() implementation.
|
13 |
-
*
|
14 |
-
* @since 0.10.0
|
15 |
-
* @see https://github.com/mikey179/vfsStream/issues/15
|
16 |
-
* @group issue_15
|
17 |
-
*/
|
18 |
-
class vfsStreamWrapperSetOptionTestCase extends \PHPUnit_Framework_TestCase
|
19 |
-
{
|
20 |
-
/**
|
21 |
-
* root directory
|
22 |
-
*
|
23 |
-
* @var vfsStreamContainer
|
24 |
-
*/
|
25 |
-
protected $root;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* set up test environment
|
29 |
-
*/
|
30 |
-
public function setUp()
|
31 |
-
{
|
32 |
-
$this->root = vfsStream::setup();
|
33 |
-
vfsStream::newFile('foo.txt')->at($this->root);
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @test
|
38 |
-
*/
|
39 |
-
public function setBlockingDoesNotWork()
|
40 |
-
{
|
41 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
42 |
-
$this->assertFalse(stream_set_blocking($fp, 1));
|
43 |
-
fclose($fp);
|
44 |
-
}
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @test
|
48 |
-
*/
|
49 |
-
public function removeBlockingDoesNotWork()
|
50 |
-
{
|
51 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
52 |
-
$this->assertFalse(stream_set_blocking($fp, 0));
|
53 |
-
fclose($fp);
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* @test
|
58 |
-
*/
|
59 |
-
public function setTimeoutDoesNotWork()
|
60 |
-
{
|
61 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
62 |
-
$this->assertFalse(stream_set_timeout($fp, 1));
|
63 |
-
fclose($fp);
|
64 |
-
}
|
65 |
-
|
66 |
-
/**
|
67 |
-
* @test
|
68 |
-
*/
|
69 |
-
public function setWriteBufferDoesNotWork()
|
70 |
-
{
|
71 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
72 |
-
$this->assertEquals(-1, stream_set_write_buffer($fp, 512));
|
73 |
-
fclose($fp);
|
74 |
-
}
|
75 |
-
}
|
76 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperStreamSelectTestCase.php
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper.
|
13 |
-
*
|
14 |
-
* @since 0.9.0
|
15 |
-
* @group issue_3
|
16 |
-
*/
|
17 |
-
class vfsStreamWrapperSelectStreamTestCase extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
/**
|
20 |
-
* @test
|
21 |
-
* @expectedException \PHPUnit_Framework_Error
|
22 |
-
*/
|
23 |
-
public function selectStream()
|
24 |
-
{
|
25 |
-
$root = vfsStream::setup();
|
26 |
-
$file = vfsStream::newFile('foo.txt')->at($root)->withContent('testContent');
|
27 |
-
|
28 |
-
$fp = fopen(vfsStream::url('root/foo.txt'), 'rb');
|
29 |
-
$readarray = array($fp);
|
30 |
-
$writearray = array();
|
31 |
-
$exceptarray = array();
|
32 |
-
stream_select($readarray, $writearray, $exceptarray, 1);
|
33 |
-
}
|
34 |
-
}
|
35 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperTestCase.php
DELETED
@@ -1,770 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
require_once __DIR__ . '/vfsStreamWrapperBaseTestCase.php';
|
12 |
-
/**
|
13 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper.
|
14 |
-
*/
|
15 |
-
class vfsStreamWrapperTestCase extends vfsStreamWrapperBaseTestCase
|
16 |
-
{
|
17 |
-
/**
|
18 |
-
* ensure that a call to vfsStreamWrapper::register() resets the stream
|
19 |
-
*
|
20 |
-
* Implemented after a request by David Zülke.
|
21 |
-
*
|
22 |
-
* @test
|
23 |
-
*/
|
24 |
-
public function resetByRegister()
|
25 |
-
{
|
26 |
-
$this->assertSame($this->foo, vfsStreamWrapper::getRoot());
|
27 |
-
vfsStreamWrapper::register();
|
28 |
-
$this->assertNull(vfsStreamWrapper::getRoot());
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* @test
|
33 |
-
* @since 0.11.0
|
34 |
-
*/
|
35 |
-
public function setRootReturnsRoot()
|
36 |
-
{
|
37 |
-
vfsStreamWrapper::register();
|
38 |
-
$root = vfsStream::newDirectory('root');
|
39 |
-
$this->assertSame($root, vfsStreamWrapper::setRoot($root));
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* assure that filesize is returned correct
|
44 |
-
*
|
45 |
-
* @test
|
46 |
-
*/
|
47 |
-
public function filesize()
|
48 |
-
{
|
49 |
-
$this->assertEquals(0, filesize($this->fooURL));
|
50 |
-
$this->assertEquals(0, filesize($this->fooURL . '/.'));
|
51 |
-
$this->assertEquals(0, filesize($this->barURL));
|
52 |
-
$this->assertEquals(0, filesize($this->barURL . '/.'));
|
53 |
-
$this->assertEquals(4, filesize($this->baz2URL));
|
54 |
-
$this->assertEquals(5, filesize($this->baz1URL));
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* assert that file_exists() delivers correct result
|
59 |
-
*
|
60 |
-
* @test
|
61 |
-
*/
|
62 |
-
public function file_exists()
|
63 |
-
{
|
64 |
-
$this->assertTrue(file_exists($this->fooURL));
|
65 |
-
$this->assertTrue(file_exists($this->fooURL . '/.'));
|
66 |
-
$this->assertTrue(file_exists($this->barURL));
|
67 |
-
$this->assertTrue(file_exists($this->barURL . '/.'));
|
68 |
-
$this->assertTrue(file_exists($this->baz1URL));
|
69 |
-
$this->assertTrue(file_exists($this->baz2URL));
|
70 |
-
$this->assertFalse(file_exists($this->fooURL . '/another'));
|
71 |
-
$this->assertFalse(file_exists(vfsStream::url('another')));
|
72 |
-
}
|
73 |
-
|
74 |
-
/**
|
75 |
-
* assert that filemtime() delivers correct result
|
76 |
-
*
|
77 |
-
* @test
|
78 |
-
*/
|
79 |
-
public function filemtime()
|
80 |
-
{
|
81 |
-
$this->assertEquals(100, filemtime($this->fooURL));
|
82 |
-
$this->assertEquals(100, filemtime($this->fooURL . '/.'));
|
83 |
-
$this->assertEquals(200, filemtime($this->barURL));
|
84 |
-
$this->assertEquals(200, filemtime($this->barURL . '/.'));
|
85 |
-
$this->assertEquals(300, filemtime($this->baz1URL));
|
86 |
-
$this->assertEquals(400, filemtime($this->baz2URL));
|
87 |
-
}
|
88 |
-
|
89 |
-
/**
|
90 |
-
* @test
|
91 |
-
* @group issue_23
|
92 |
-
*/
|
93 |
-
public function unlinkRemovesFilesOnly()
|
94 |
-
{
|
95 |
-
$this->assertTrue(unlink($this->baz2URL));
|
96 |
-
$this->assertFalse(file_exists($this->baz2URL)); // make sure statcache was cleared
|
97 |
-
$this->assertEquals(array($this->bar), $this->foo->getChildren());
|
98 |
-
$this->assertFalse(@unlink($this->fooURL . '/another'));
|
99 |
-
$this->assertFalse(@unlink(vfsStream::url('another')));
|
100 |
-
$this->assertEquals(array($this->bar), $this->foo->getChildren());
|
101 |
-
}
|
102 |
-
|
103 |
-
/**
|
104 |
-
* @test
|
105 |
-
* @group issue_49
|
106 |
-
*/
|
107 |
-
public function unlinkReturnsFalseWhenFileDoesNotExist()
|
108 |
-
{
|
109 |
-
vfsStream::setup()->addChild(vfsStream::newFile('foo.blubb'));
|
110 |
-
$this->assertFalse(@unlink(vfsStream::url('foo.blubb2')));
|
111 |
-
}
|
112 |
-
|
113 |
-
/**
|
114 |
-
* @test
|
115 |
-
* @group issue_49
|
116 |
-
*/
|
117 |
-
public function unlinkReturnsFalseWhenFileDoesNotExistAndFileWithSameNameExistsInRoot()
|
118 |
-
{
|
119 |
-
vfsStream::setup()->addChild(vfsStream::newFile('foo.blubb'));
|
120 |
-
$this->assertFalse(@unlink(vfsStream::url('foo.blubb')));
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* assert dirname() returns correct directory name
|
125 |
-
*
|
126 |
-
* @test
|
127 |
-
*/
|
128 |
-
public function dirname()
|
129 |
-
{
|
130 |
-
$this->assertEquals($this->fooURL, dirname($this->barURL));
|
131 |
-
$this->assertEquals($this->barURL, dirname($this->baz1URL));
|
132 |
-
# returns "vfs:" instead of "."
|
133 |
-
# however this seems not to be fixable because dirname() does not
|
134 |
-
# call the stream wrapper
|
135 |
-
#$this->assertEquals(dirname(vfsStream::url('doesNotExist')), '.');
|
136 |
-
}
|
137 |
-
|
138 |
-
/**
|
139 |
-
* assert basename() returns correct file name
|
140 |
-
*
|
141 |
-
* @test
|
142 |
-
*/
|
143 |
-
public function basename()
|
144 |
-
{
|
145 |
-
$this->assertEquals('bar', basename($this->barURL));
|
146 |
-
$this->assertEquals('baz1', basename($this->baz1URL));
|
147 |
-
$this->assertEquals('doesNotExist', basename(vfsStream::url('doesNotExist')));
|
148 |
-
}
|
149 |
-
|
150 |
-
/**
|
151 |
-
* assert is_readable() works correct
|
152 |
-
*
|
153 |
-
* @test
|
154 |
-
*/
|
155 |
-
public function is_readable()
|
156 |
-
{
|
157 |
-
$this->assertTrue(is_readable($this->fooURL));
|
158 |
-
$this->assertTrue(is_readable($this->fooURL . '/.'));
|
159 |
-
$this->assertTrue(is_readable($this->barURL));
|
160 |
-
$this->assertTrue(is_readable($this->barURL . '/.'));
|
161 |
-
$this->assertTrue(is_readable($this->baz1URL));
|
162 |
-
$this->assertTrue(is_readable($this->baz2URL));
|
163 |
-
$this->assertFalse(is_readable($this->fooURL . '/another'));
|
164 |
-
$this->assertFalse(is_readable(vfsStream::url('another')));
|
165 |
-
|
166 |
-
$this->foo->chmod(0222);
|
167 |
-
$this->assertFalse(is_readable($this->fooURL));
|
168 |
-
|
169 |
-
$this->baz1->chmod(0222);
|
170 |
-
$this->assertFalse(is_readable($this->baz1URL));
|
171 |
-
}
|
172 |
-
|
173 |
-
/**
|
174 |
-
* assert is_writable() works correct
|
175 |
-
*
|
176 |
-
* @test
|
177 |
-
*/
|
178 |
-
public function is_writable()
|
179 |
-
{
|
180 |
-
$this->assertTrue(is_writable($this->fooURL));
|
181 |
-
$this->assertTrue(is_writable($this->fooURL . '/.'));
|
182 |
-
$this->assertTrue(is_writable($this->barURL));
|
183 |
-
$this->assertTrue(is_writable($this->barURL . '/.'));
|
184 |
-
$this->assertTrue(is_writable($this->baz1URL));
|
185 |
-
$this->assertTrue(is_writable($this->baz2URL));
|
186 |
-
$this->assertFalse(is_writable($this->fooURL . '/another'));
|
187 |
-
$this->assertFalse(is_writable(vfsStream::url('another')));
|
188 |
-
|
189 |
-
$this->foo->chmod(0444);
|
190 |
-
$this->assertFalse(is_writable($this->fooURL));
|
191 |
-
|
192 |
-
$this->baz1->chmod(0444);
|
193 |
-
$this->assertFalse(is_writable($this->baz1URL));
|
194 |
-
}
|
195 |
-
|
196 |
-
/**
|
197 |
-
* assert is_executable() works correct
|
198 |
-
*
|
199 |
-
* @test
|
200 |
-
*/
|
201 |
-
public function is_executable()
|
202 |
-
{
|
203 |
-
$this->assertFalse(is_executable($this->baz1URL));
|
204 |
-
$this->baz1->chmod(0766);
|
205 |
-
$this->assertTrue(is_executable($this->baz1URL));
|
206 |
-
$this->assertFalse(is_executable($this->baz2URL));
|
207 |
-
}
|
208 |
-
|
209 |
-
/**
|
210 |
-
* assert is_executable() works correct
|
211 |
-
*
|
212 |
-
* @test
|
213 |
-
*/
|
214 |
-
public function directoriesAndNonExistingFilesAreNeverExecutable()
|
215 |
-
{
|
216 |
-
$this->assertFalse(is_executable($this->fooURL));
|
217 |
-
$this->assertFalse(is_executable($this->fooURL . '/.'));
|
218 |
-
$this->assertFalse(is_executable($this->barURL));
|
219 |
-
$this->assertFalse(is_executable($this->barURL . '/.'));
|
220 |
-
$this->assertFalse(is_executable($this->fooURL . '/another'));
|
221 |
-
$this->assertFalse(is_executable(vfsStream::url('another')));
|
222 |
-
}
|
223 |
-
|
224 |
-
/**
|
225 |
-
* file permissions
|
226 |
-
*
|
227 |
-
* @test
|
228 |
-
* @group permissions
|
229 |
-
*/
|
230 |
-
public function chmod()
|
231 |
-
{
|
232 |
-
$this->assertEquals(40777, decoct(fileperms($this->fooURL)));
|
233 |
-
$this->assertEquals(40777, decoct(fileperms($this->fooURL . '/.')));
|
234 |
-
$this->assertEquals(40777, decoct(fileperms($this->barURL)));
|
235 |
-
$this->assertEquals(40777, decoct(fileperms($this->barURL . '/.')));
|
236 |
-
$this->assertEquals(100666, decoct(fileperms($this->baz1URL)));
|
237 |
-
$this->assertEquals(100666, decoct(fileperms($this->baz2URL)));
|
238 |
-
|
239 |
-
$this->foo->chmod(0755);
|
240 |
-
$this->bar->chmod(0700);
|
241 |
-
$this->baz1->chmod(0644);
|
242 |
-
$this->baz2->chmod(0600);
|
243 |
-
$this->assertEquals(40755, decoct(fileperms($this->fooURL)));
|
244 |
-
$this->assertEquals(40755, decoct(fileperms($this->fooURL . '/.')));
|
245 |
-
$this->assertEquals(40700, decoct(fileperms($this->barURL)));
|
246 |
-
$this->assertEquals(40700, decoct(fileperms($this->barURL . '/.')));
|
247 |
-
$this->assertEquals(100644, decoct(fileperms($this->baz1URL)));
|
248 |
-
$this->assertEquals(100600, decoct(fileperms($this->baz2URL)));
|
249 |
-
}
|
250 |
-
|
251 |
-
/**
|
252 |
-
* @test
|
253 |
-
* @group issue_11
|
254 |
-
* @group permissions
|
255 |
-
*/
|
256 |
-
public function chmodModifiesPermissions()
|
257 |
-
{
|
258 |
-
if (version_compare(phpversion(), '5.4.0', '<')) {
|
259 |
-
$this->assertFalse(@chmod($this->fooURL, 0755));
|
260 |
-
$this->assertFalse(@chmod($this->barURL, 0711));
|
261 |
-
$this->assertFalse(@chmod($this->baz1URL, 0644));
|
262 |
-
$this->assertFalse(@chmod($this->baz2URL, 0664));
|
263 |
-
$this->assertEquals(40777, decoct(fileperms($this->fooURL)));
|
264 |
-
$this->assertEquals(40777, decoct(fileperms($this->barURL)));
|
265 |
-
$this->assertEquals(100666, decoct(fileperms($this->baz1URL)));
|
266 |
-
$this->assertEquals(100666, decoct(fileperms($this->baz2URL)));
|
267 |
-
} else {
|
268 |
-
$this->assertTrue(chmod($this->fooURL, 0755));
|
269 |
-
$this->assertTrue(chmod($this->barURL, 0711));
|
270 |
-
$this->assertTrue(chmod($this->baz1URL, 0644));
|
271 |
-
$this->assertTrue(chmod($this->baz2URL, 0664));
|
272 |
-
$this->assertEquals(40755, decoct(fileperms($this->fooURL)));
|
273 |
-
$this->assertEquals(40711, decoct(fileperms($this->barURL)));
|
274 |
-
$this->assertEquals(100644, decoct(fileperms($this->baz1URL)));
|
275 |
-
$this->assertEquals(100664, decoct(fileperms($this->baz2URL)));
|
276 |
-
}
|
277 |
-
}
|
278 |
-
|
279 |
-
/**
|
280 |
-
* @test
|
281 |
-
* @group permissions
|
282 |
-
*/
|
283 |
-
public function fileownerIsCurrentUserByDefault()
|
284 |
-
{
|
285 |
-
$this->assertEquals(vfsStream::getCurrentUser(), fileowner($this->fooURL));
|
286 |
-
$this->assertEquals(vfsStream::getCurrentUser(), fileowner($this->fooURL . '/.'));
|
287 |
-
$this->assertEquals(vfsStream::getCurrentUser(), fileowner($this->barURL));
|
288 |
-
$this->assertEquals(vfsStream::getCurrentUser(), fileowner($this->barURL . '/.'));
|
289 |
-
$this->assertEquals(vfsStream::getCurrentUser(), fileowner($this->baz1URL));
|
290 |
-
$this->assertEquals(vfsStream::getCurrentUser(), fileowner($this->baz2URL));
|
291 |
-
}
|
292 |
-
|
293 |
-
/**
|
294 |
-
* @test
|
295 |
-
* @group issue_11
|
296 |
-
* @group permissions
|
297 |
-
*/
|
298 |
-
public function chownChangesUser()
|
299 |
-
{
|
300 |
-
if (version_compare(phpversion(), '5.4.0', '<')) {
|
301 |
-
$this->foo->chown(vfsStream::OWNER_USER_1);
|
302 |
-
$this->bar->chown(vfsStream::OWNER_USER_1);
|
303 |
-
$this->baz1->chown(vfsStream::OWNER_USER_2);
|
304 |
-
$this->baz2->chown(vfsStream::OWNER_USER_2);
|
305 |
-
} else {
|
306 |
-
chown($this->fooURL, vfsStream::OWNER_USER_1);
|
307 |
-
chown($this->barURL, vfsStream::OWNER_USER_1);
|
308 |
-
chown($this->baz1URL, vfsStream::OWNER_USER_2);
|
309 |
-
chown($this->baz2URL, vfsStream::OWNER_USER_2);
|
310 |
-
}
|
311 |
-
|
312 |
-
$this->assertEquals(vfsStream::OWNER_USER_1, fileowner($this->fooURL));
|
313 |
-
$this->assertEquals(vfsStream::OWNER_USER_1, fileowner($this->fooURL . '/.'));
|
314 |
-
$this->assertEquals(vfsStream::OWNER_USER_1, fileowner($this->barURL));
|
315 |
-
$this->assertEquals(vfsStream::OWNER_USER_1, fileowner($this->barURL . '/.'));
|
316 |
-
$this->assertEquals(vfsStream::OWNER_USER_2, fileowner($this->baz1URL));
|
317 |
-
$this->assertEquals(vfsStream::OWNER_USER_2, fileowner($this->baz2URL));
|
318 |
-
}
|
319 |
-
|
320 |
-
/**
|
321 |
-
* @test
|
322 |
-
* @group issue_11
|
323 |
-
* @group permissions
|
324 |
-
*/
|
325 |
-
public function chownDoesNotWorkOnVfsStreamUrls()
|
326 |
-
{
|
327 |
-
if (version_compare(phpversion(), '5.4.0', '<')) {
|
328 |
-
$this->assertFalse(@chown($this->fooURL, vfsStream::OWNER_USER_2));
|
329 |
-
$this->assertEquals(vfsStream::getCurrentUser(), fileowner($this->fooURL));
|
330 |
-
}
|
331 |
-
}
|
332 |
-
|
333 |
-
/**
|
334 |
-
* @test
|
335 |
-
* @group issue_11
|
336 |
-
* @group permissions
|
337 |
-
*/
|
338 |
-
public function groupIsCurrentGroupByDefault()
|
339 |
-
{
|
340 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), filegroup($this->fooURL));
|
341 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), filegroup($this->fooURL . '/.'));
|
342 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), filegroup($this->barURL));
|
343 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), filegroup($this->barURL . '/.'));
|
344 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), filegroup($this->baz1URL));
|
345 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), filegroup($this->baz2URL));
|
346 |
-
}
|
347 |
-
|
348 |
-
/**
|
349 |
-
* @test
|
350 |
-
* @group issue_11
|
351 |
-
* @group permissions
|
352 |
-
*/
|
353 |
-
public function chgrp()
|
354 |
-
{
|
355 |
-
if (version_compare(phpversion(), '5.4.0', '<')) {
|
356 |
-
$this->foo->chgrp(vfsStream::GROUP_USER_1);
|
357 |
-
$this->bar->chgrp(vfsStream::GROUP_USER_1);
|
358 |
-
$this->baz1->chgrp(vfsStream::GROUP_USER_2);
|
359 |
-
$this->baz2->chgrp(vfsStream::GROUP_USER_2);
|
360 |
-
} else {
|
361 |
-
chgrp($this->fooURL, vfsStream::GROUP_USER_1);
|
362 |
-
chgrp($this->barURL, vfsStream::GROUP_USER_1);
|
363 |
-
chgrp($this->baz1URL, vfsStream::GROUP_USER_2);
|
364 |
-
chgrp($this->baz2URL, vfsStream::GROUP_USER_2);
|
365 |
-
}
|
366 |
-
|
367 |
-
$this->assertEquals(vfsStream::GROUP_USER_1, filegroup($this->fooURL));
|
368 |
-
$this->assertEquals(vfsStream::GROUP_USER_1, filegroup($this->fooURL . '/.'));
|
369 |
-
$this->assertEquals(vfsStream::GROUP_USER_1, filegroup($this->barURL));
|
370 |
-
$this->assertEquals(vfsStream::GROUP_USER_1, filegroup($this->barURL . '/.'));
|
371 |
-
$this->assertEquals(vfsStream::GROUP_USER_2, filegroup($this->baz1URL));
|
372 |
-
$this->assertEquals(vfsStream::GROUP_USER_2, filegroup($this->baz2URL));
|
373 |
-
}
|
374 |
-
|
375 |
-
/**
|
376 |
-
* @test
|
377 |
-
* @group issue_11
|
378 |
-
* @group permissions
|
379 |
-
*/
|
380 |
-
public function chgrpDoesNotWorkOnVfsStreamUrls()
|
381 |
-
{
|
382 |
-
if (version_compare(phpversion(), '5.4.0', '<')) {
|
383 |
-
$this->assertFalse(@chgrp($this->fooURL, vfsStream::GROUP_USER_2));
|
384 |
-
$this->assertEquals(vfsStream::getCurrentGroup(), filegroup($this->fooURL));
|
385 |
-
}
|
386 |
-
}
|
387 |
-
|
388 |
-
/**
|
389 |
-
* @test
|
390 |
-
* @author Benoit Aubuchon
|
391 |
-
*/
|
392 |
-
public function renameDirectory()
|
393 |
-
{
|
394 |
-
// move foo/bar to foo/baz3
|
395 |
-
$baz3URL = vfsStream::url('foo/baz3');
|
396 |
-
$this->assertTrue(rename($this->barURL, $baz3URL));
|
397 |
-
$this->assertFileExists($baz3URL);
|
398 |
-
$this->assertFileNotExists($this->barURL);
|
399 |
-
}
|
400 |
-
|
401 |
-
/**
|
402 |
-
* @test
|
403 |
-
*/
|
404 |
-
public function renameDirectoryWithDots()
|
405 |
-
{
|
406 |
-
// move foo/bar to foo/baz3
|
407 |
-
$baz3URL = vfsStream::url('foo/baz3');
|
408 |
-
$this->assertTrue(rename($this->barURL . '/.', $baz3URL));
|
409 |
-
$this->assertFileExists($baz3URL);
|
410 |
-
$this->assertFileNotExists($this->barURL);
|
411 |
-
}
|
412 |
-
|
413 |
-
/**
|
414 |
-
* @test
|
415 |
-
* @group issue_9
|
416 |
-
* @since 0.9.0
|
417 |
-
*/
|
418 |
-
public function renameDirectoryWithDotsInTarget()
|
419 |
-
{
|
420 |
-
// move foo/bar to foo/baz3
|
421 |
-
$baz3URL = vfsStream::url('foo/../foo/baz3/.');
|
422 |
-
$this->assertTrue(rename($this->barURL . '/.', $baz3URL));
|
423 |
-
$this->assertFileExists($baz3URL);
|
424 |
-
$this->assertFileNotExists($this->barURL);
|
425 |
-
}
|
426 |
-
|
427 |
-
/**
|
428 |
-
* @test
|
429 |
-
* @author Benoit Aubuchon
|
430 |
-
*/
|
431 |
-
public function renameDirectoryOverwritingExistingFile()
|
432 |
-
{
|
433 |
-
// move foo/bar to foo/baz2
|
434 |
-
$this->assertTrue(rename($this->barURL, $this->baz2URL));
|
435 |
-
$this->assertFileExists(vfsStream::url('foo/baz2/baz1'));
|
436 |
-
$this->assertFileNotExists($this->barURL);
|
437 |
-
}
|
438 |
-
|
439 |
-
/**
|
440 |
-
* @test
|
441 |
-
* @expectedException PHPUnit_Framework_Error
|
442 |
-
*/
|
443 |
-
public function renameFileIntoFile()
|
444 |
-
{
|
445 |
-
// foo/baz2 is a file, so it can not be turned into a directory
|
446 |
-
$baz3URL = vfsStream::url('foo/baz2/baz3');
|
447 |
-
$this->assertTrue(rename($this->baz1URL, $baz3URL));
|
448 |
-
$this->assertFileExists($baz3URL);
|
449 |
-
$this->assertFileNotExists($this->baz1URL);
|
450 |
-
}
|
451 |
-
|
452 |
-
/**
|
453 |
-
* @test
|
454 |
-
* @author Benoit Aubuchon
|
455 |
-
*/
|
456 |
-
public function renameFileToDirectory()
|
457 |
-
{
|
458 |
-
// move foo/bar/baz1 to foo/baz3
|
459 |
-
$baz3URL = vfsStream::url('foo/baz3');
|
460 |
-
$this->assertTrue(rename($this->baz1URL, $baz3URL));
|
461 |
-
$this->assertFileExists($this->barURL);
|
462 |
-
$this->assertFileExists($baz3URL);
|
463 |
-
$this->assertFileNotExists($this->baz1URL);
|
464 |
-
}
|
465 |
-
|
466 |
-
/**
|
467 |
-
* assert that trying to rename from a non existing file trigger a warning
|
468 |
-
*
|
469 |
-
* @expectedException PHPUnit_Framework_Error
|
470 |
-
* @test
|
471 |
-
*/
|
472 |
-
public function renameOnSourceFileNotFound()
|
473 |
-
{
|
474 |
-
rename(vfsStream::url('notfound'), $this->baz1URL);
|
475 |
-
}
|
476 |
-
/**
|
477 |
-
* assert that trying to rename to a directory that is not found trigger a warning
|
478 |
-
|
479 |
-
* @expectedException PHPUnit_Framework_Error
|
480 |
-
* @test
|
481 |
-
*/
|
482 |
-
public function renameOnDestinationDirectoryFileNotFound()
|
483 |
-
{
|
484 |
-
rename($this->baz1URL, vfsStream::url('foo/notfound/file2'));
|
485 |
-
}
|
486 |
-
/**
|
487 |
-
* stat() and fstat() should return the same result
|
488 |
-
*
|
489 |
-
* @test
|
490 |
-
*/
|
491 |
-
public function statAndFstatReturnSameResult()
|
492 |
-
{
|
493 |
-
$fp = fopen($this->baz2URL, 'r');
|
494 |
-
$this->assertEquals(stat($this->baz2URL),
|
495 |
-
fstat($fp)
|
496 |
-
);
|
497 |
-
fclose($fp);
|
498 |
-
}
|
499 |
-
|
500 |
-
/**
|
501 |
-
* stat() returns full data
|
502 |
-
*
|
503 |
-
* @test
|
504 |
-
*/
|
505 |
-
public function statReturnsFullDataForFiles()
|
506 |
-
{
|
507 |
-
$this->assertEquals(array(0 => 0,
|
508 |
-
1 => 0,
|
509 |
-
2 => 0100666,
|
510 |
-
3 => 0,
|
511 |
-
4 => vfsStream::getCurrentUser(),
|
512 |
-
5 => vfsStream::getCurrentGroup(),
|
513 |
-
6 => 0,
|
514 |
-
7 => 4,
|
515 |
-
8 => 400,
|
516 |
-
9 => 400,
|
517 |
-
10 => 400,
|
518 |
-
11 => -1,
|
519 |
-
12 => -1,
|
520 |
-
'dev' => 0,
|
521 |
-
'ino' => 0,
|
522 |
-
'mode' => 0100666,
|
523 |
-
'nlink' => 0,
|
524 |
-
'uid' => vfsStream::getCurrentUser(),
|
525 |
-
'gid' => vfsStream::getCurrentGroup(),
|
526 |
-
'rdev' => 0,
|
527 |
-
'size' => 4,
|
528 |
-
'atime' => 400,
|
529 |
-
'mtime' => 400,
|
530 |
-
'ctime' => 400,
|
531 |
-
'blksize' => -1,
|
532 |
-
'blocks' => -1
|
533 |
-
),
|
534 |
-
stat($this->baz2URL)
|
535 |
-
);
|
536 |
-
}
|
537 |
-
|
538 |
-
/**
|
539 |
-
* @test
|
540 |
-
*/
|
541 |
-
public function statReturnsFullDataForDirectories()
|
542 |
-
{
|
543 |
-
$this->assertEquals(array(0 => 0,
|
544 |
-
1 => 0,
|
545 |
-
2 => 0040777,
|
546 |
-
3 => 0,
|
547 |
-
4 => vfsStream::getCurrentUser(),
|
548 |
-
5 => vfsStream::getCurrentGroup(),
|
549 |
-
6 => 0,
|
550 |
-
7 => 0,
|
551 |
-
8 => 100,
|
552 |
-
9 => 100,
|
553 |
-
10 => 100,
|
554 |
-
11 => -1,
|
555 |
-
12 => -1,
|
556 |
-
'dev' => 0,
|
557 |
-
'ino' => 0,
|
558 |
-
'mode' => 0040777,
|
559 |
-
'nlink' => 0,
|
560 |
-
'uid' => vfsStream::getCurrentUser(),
|
561 |
-
'gid' => vfsStream::getCurrentGroup(),
|
562 |
-
'rdev' => 0,
|
563 |
-
'size' => 0,
|
564 |
-
'atime' => 100,
|
565 |
-
'mtime' => 100,
|
566 |
-
'ctime' => 100,
|
567 |
-
'blksize' => -1,
|
568 |
-
'blocks' => -1
|
569 |
-
),
|
570 |
-
stat($this->fooURL)
|
571 |
-
);
|
572 |
-
}
|
573 |
-
|
574 |
-
/**
|
575 |
-
* @test
|
576 |
-
*/
|
577 |
-
public function statReturnsFullDataForDirectoriesWithDot()
|
578 |
-
{
|
579 |
-
$this->assertEquals(array(0 => 0,
|
580 |
-
1 => 0,
|
581 |
-
2 => 0040777,
|
582 |
-
3 => 0,
|
583 |
-
4 => vfsStream::getCurrentUser(),
|
584 |
-
5 => vfsStream::getCurrentGroup(),
|
585 |
-
6 => 0,
|
586 |
-
7 => 0,
|
587 |
-
8 => 100,
|
588 |
-
9 => 100,
|
589 |
-
10 => 100,
|
590 |
-
11 => -1,
|
591 |
-
12 => -1,
|
592 |
-
'dev' => 0,
|
593 |
-
'ino' => 0,
|
594 |
-
'mode' => 0040777,
|
595 |
-
'nlink' => 0,
|
596 |
-
'uid' => vfsStream::getCurrentUser(),
|
597 |
-
'gid' => vfsStream::getCurrentGroup(),
|
598 |
-
'rdev' => 0,
|
599 |
-
'size' => 0,
|
600 |
-
'atime' => 100,
|
601 |
-
'mtime' => 100,
|
602 |
-
'ctime' => 100,
|
603 |
-
'blksize' => -1,
|
604 |
-
'blocks' => -1
|
605 |
-
),
|
606 |
-
stat($this->fooURL . '/.')
|
607 |
-
);
|
608 |
-
}
|
609 |
-
|
610 |
-
/**
|
611 |
-
* @test
|
612 |
-
* @expectedException PHPUnit_Framework_Error
|
613 |
-
*/
|
614 |
-
public function openFileWithoutDirectory()
|
615 |
-
{
|
616 |
-
vfsStreamWrapper::register();
|
617 |
-
$this->assertFalse(file_get_contents(vfsStream::url('file.txt')));
|
618 |
-
}
|
619 |
-
|
620 |
-
/**
|
621 |
-
* @test
|
622 |
-
* @group issue_33
|
623 |
-
* @since 1.1.0
|
624 |
-
* @requires PHP 5.4.0
|
625 |
-
*/
|
626 |
-
public function truncateRemovesSuperflouosContent()
|
627 |
-
{
|
628 |
-
if (strstr(PHP_VERSION, 'hiphop') !== false) {
|
629 |
-
$this->markTestSkipped('Not supported on hhvm');
|
630 |
-
}
|
631 |
-
|
632 |
-
$handle = fopen($this->baz1URL, "r+");
|
633 |
-
$this->assertTrue(ftruncate($handle, 0));
|
634 |
-
$this->assertEquals(0, filesize($this->baz1URL));
|
635 |
-
$this->assertEquals('', file_get_contents($this->baz1URL));
|
636 |
-
fclose($handle);
|
637 |
-
}
|
638 |
-
|
639 |
-
/**
|
640 |
-
* @test
|
641 |
-
* @group issue_33
|
642 |
-
* @since 1.1.0
|
643 |
-
* @requires PHP 5.4.0
|
644 |
-
*/
|
645 |
-
public function truncateToGreaterSizeAddsZeroBytes()
|
646 |
-
{
|
647 |
-
if (strstr(PHP_VERSION, 'hiphop') !== false) {
|
648 |
-
$this->markTestSkipped('Not supported on hhvm');
|
649 |
-
}
|
650 |
-
|
651 |
-
$handle = fopen($this->baz1URL, "r+");
|
652 |
-
$this->assertTrue(ftruncate($handle, 25));
|
653 |
-
$this->assertEquals(25, filesize($this->baz1URL));
|
654 |
-
$this->assertEquals("baz 1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",
|
655 |
-
file_get_contents($this->baz1URL));
|
656 |
-
fclose($handle);
|
657 |
-
}
|
658 |
-
|
659 |
-
/**
|
660 |
-
* @test
|
661 |
-
* @group issue_11
|
662 |
-
* @requires PHP 5.4.0
|
663 |
-
*/
|
664 |
-
public function touchCreatesNonExistingFile()
|
665 |
-
{
|
666 |
-
$this->assertTrue(touch($this->fooURL . '/new.txt'));
|
667 |
-
$this->assertTrue($this->foo->hasChild('new.txt'));
|
668 |
-
}
|
669 |
-
|
670 |
-
/**
|
671 |
-
* @test
|
672 |
-
* @group issue_11
|
673 |
-
* @requires PHP 5.4.0
|
674 |
-
*/
|
675 |
-
public function touchChangesAccessAndModificationTimeForFile()
|
676 |
-
{
|
677 |
-
$this->assertTrue(touch($this->baz1URL, 303, 313));
|
678 |
-
$this->assertEquals(303, $this->baz1->filemtime());
|
679 |
-
$this->assertEquals(313, $this->baz1->fileatime());
|
680 |
-
}
|
681 |
-
|
682 |
-
/**
|
683 |
-
* @test
|
684 |
-
* @group issue_11
|
685 |
-
* @group issue_80
|
686 |
-
* @requires PHP 5.4.0
|
687 |
-
*/
|
688 |
-
public function touchChangesTimesToCurrentTimestampWhenNoTimesGiven()
|
689 |
-
{
|
690 |
-
$this->assertTrue(touch($this->baz1URL));
|
691 |
-
$this->assertEquals(time(), $this->baz1->filemtime(), '', 1);
|
692 |
-
$this->assertEquals(time(), $this->baz1->fileatime(), '', 1);
|
693 |
-
}
|
694 |
-
|
695 |
-
/**
|
696 |
-
* @test
|
697 |
-
* @group issue_11
|
698 |
-
* @requires PHP 5.4.0
|
699 |
-
*/
|
700 |
-
public function touchWithModifiedTimeChangesAccessAndModifiedTime()
|
701 |
-
{
|
702 |
-
$this->assertTrue(touch($this->baz1URL, 303));
|
703 |
-
$this->assertEquals(303, $this->baz1->filemtime());
|
704 |
-
$this->assertEquals(303, $this->baz1->fileatime());
|
705 |
-
}
|
706 |
-
|
707 |
-
/**
|
708 |
-
* @test
|
709 |
-
* @group issue_11
|
710 |
-
* @requires PHP 5.4.0
|
711 |
-
*/
|
712 |
-
public function touchChangesAccessAndModificationTimeForDirectory()
|
713 |
-
{
|
714 |
-
$this->assertTrue(touch($this->fooURL, 303, 313));
|
715 |
-
$this->assertEquals(303, $this->foo->filemtime());
|
716 |
-
$this->assertEquals(313, $this->foo->fileatime());
|
717 |
-
}
|
718 |
-
|
719 |
-
/**
|
720 |
-
* @test
|
721 |
-
* @group issue_34
|
722 |
-
* @since 1.2.0
|
723 |
-
*/
|
724 |
-
public function pathesAreCorrectlySet()
|
725 |
-
{
|
726 |
-
$this->assertEquals(vfsStream::path($this->fooURL), $this->foo->path());
|
727 |
-
$this->assertEquals(vfsStream::path($this->barURL), $this->bar->path());
|
728 |
-
$this->assertEquals(vfsStream::path($this->baz1URL), $this->baz1->path());
|
729 |
-
$this->assertEquals(vfsStream::path($this->baz2URL), $this->baz2->path());
|
730 |
-
}
|
731 |
-
|
732 |
-
/**
|
733 |
-
* @test
|
734 |
-
* @group issue_34
|
735 |
-
* @since 1.2.0
|
736 |
-
*/
|
737 |
-
public function urlsAreCorrectlySet()
|
738 |
-
{
|
739 |
-
$this->assertEquals($this->fooURL, $this->foo->url());
|
740 |
-
$this->assertEquals($this->barURL, $this->bar->url());
|
741 |
-
$this->assertEquals($this->baz1URL, $this->baz1->url());
|
742 |
-
$this->assertEquals($this->baz2URL, $this->baz2->url());
|
743 |
-
}
|
744 |
-
|
745 |
-
/**
|
746 |
-
* @test
|
747 |
-
* @group issue_34
|
748 |
-
* @since 1.2.0
|
749 |
-
*/
|
750 |
-
public function pathIsUpdatedAfterMove()
|
751 |
-
{
|
752 |
-
// move foo/bar/baz1 to foo/baz3
|
753 |
-
$baz3URL = vfsStream::url('foo/baz3');
|
754 |
-
$this->assertTrue(rename($this->baz1URL, $baz3URL));
|
755 |
-
$this->assertEquals(vfsStream::path($baz3URL), $this->baz1->path());
|
756 |
-
}
|
757 |
-
|
758 |
-
/**
|
759 |
-
* @test
|
760 |
-
* @group issue_34
|
761 |
-
* @since 1.2.0
|
762 |
-
*/
|
763 |
-
public function urlIsUpdatedAfterMove()
|
764 |
-
{
|
765 |
-
// move foo/bar/baz1 to foo/baz3
|
766 |
-
$baz3URL = vfsStream::url('foo/baz3');
|
767 |
-
$this->assertTrue(rename($this->baz1URL, $baz3URL));
|
768 |
-
$this->assertEquals($baz3URL, $this->baz1->url());
|
769 |
-
}
|
770 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamWrapperWithoutRootTestCase.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper.
|
13 |
-
*/
|
14 |
-
class vfsStreamWrapperWithoutRootTestCase extends \PHPUnit_Framework_TestCase
|
15 |
-
{
|
16 |
-
/**
|
17 |
-
* set up test environment
|
18 |
-
*/
|
19 |
-
public function setUp()
|
20 |
-
{
|
21 |
-
vfsStreamWrapper::register();
|
22 |
-
}
|
23 |
-
|
24 |
-
/**
|
25 |
-
* no root > no directory to open
|
26 |
-
*
|
27 |
-
* @test
|
28 |
-
*/
|
29 |
-
public function canNotOpenDirectory()
|
30 |
-
{
|
31 |
-
$this->assertFalse(@dir(vfsStream::url('foo')));
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* can not unlink without root
|
36 |
-
*
|
37 |
-
* @test
|
38 |
-
*/
|
39 |
-
public function canNotUnlink()
|
40 |
-
{
|
41 |
-
$this->assertFalse(@unlink(vfsStream::url('foo')));
|
42 |
-
}
|
43 |
-
|
44 |
-
/**
|
45 |
-
* can not open a file without root
|
46 |
-
*
|
47 |
-
* @test
|
48 |
-
*/
|
49 |
-
public function canNotOpen()
|
50 |
-
{
|
51 |
-
$this->assertFalse(@fopen(vfsStream::url('foo'), 'r'));
|
52 |
-
}
|
53 |
-
|
54 |
-
/**
|
55 |
-
* can not rename a file without root
|
56 |
-
*
|
57 |
-
* @test
|
58 |
-
*/
|
59 |
-
public function canNotRename()
|
60 |
-
{
|
61 |
-
$this->assertFalse(@rename(vfsStream::url('foo'), vfsStream::url('bar')));
|
62 |
-
}
|
63 |
-
}
|
64 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/vfsStreamZipTestCase.php
DELETED
@@ -1,53 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs;
|
11 |
-
/**
|
12 |
-
* Test for org\bovigo\vfs\vfsStreamWrapper in conjunction with ext/zip.
|
13 |
-
*
|
14 |
-
* @group zip
|
15 |
-
*/
|
16 |
-
class vfsStreamZipTestCase extends \PHPUnit_Framework_TestCase
|
17 |
-
{
|
18 |
-
/**
|
19 |
-
* set up test environment
|
20 |
-
*/
|
21 |
-
public function setUp()
|
22 |
-
{
|
23 |
-
if (extension_loaded('zip') === false) {
|
24 |
-
$this->markTestSkipped('No ext/zip installed, skipping test.');
|
25 |
-
}
|
26 |
-
|
27 |
-
$this->markTestSkipped('Zip extension can not work with vfsStream urls.');
|
28 |
-
|
29 |
-
vfsStreamWrapper::register();
|
30 |
-
vfsStreamWrapper::setRoot(vfsStream::newDirectory('root'));
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @test
|
36 |
-
*/
|
37 |
-
public function createZipArchive()
|
38 |
-
{
|
39 |
-
$zip = new ZipArchive();
|
40 |
-
$this->assertTrue($zip->open(vfsStream::url('root/test.zip'), ZipArchive::CREATE));
|
41 |
-
$this->assertTrue($zip->addFromString("testfile1.txt", "#1 This is a test string added as testfile1.txt.\n"));
|
42 |
-
$this->assertTrue($zip->addFromString("testfile2.txt", "#2 This is a test string added as testfile2.txt.\n"));
|
43 |
-
$zip->setArchiveComment('a test');
|
44 |
-
var_dump($zip);
|
45 |
-
$this->assertTrue($zip->close());
|
46 |
-
var_dump($zip->getStatusString());
|
47 |
-
var_dump($zip->close());
|
48 |
-
var_dump($zip->getStatusString());
|
49 |
-
var_dump($zip);
|
50 |
-
var_dump(file_exists(vfsStream::url('root/test.zip')));
|
51 |
-
}
|
52 |
-
}
|
53 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/visitor/vfsStreamAbstractVisitorTestCase.php
DELETED
@@ -1,99 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\visitor;
|
11 |
-
use org\bovigo\vfs\vfsStreamDirectory;
|
12 |
-
use org\bovigo\vfs\vfsStreamFile;
|
13 |
-
use org\bovigo\vfs\vfsStreamBlock;
|
14 |
-
/**
|
15 |
-
* Test for org\bovigo\vfs\visitor\vfsStreamAbstractVisitor.
|
16 |
-
*
|
17 |
-
* @since 0.10.0
|
18 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
19 |
-
* @group issue_10
|
20 |
-
*/
|
21 |
-
class vfsStreamAbstractVisitorTestCase extends \PHPUnit_Framework_TestCase
|
22 |
-
{
|
23 |
-
/**
|
24 |
-
* instance to test
|
25 |
-
*
|
26 |
-
* @var vfsStreamAbstractVisitor
|
27 |
-
*/
|
28 |
-
protected $abstractVisitor;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* set up test environment
|
32 |
-
*/
|
33 |
-
public function setUp()
|
34 |
-
{
|
35 |
-
$this->abstractVisitor = $this->getMock('org\\bovigo\\vfs\\visitor\\vfsStreamAbstractVisitor',
|
36 |
-
array('visitFile', 'visitDirectory')
|
37 |
-
);
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* @test
|
42 |
-
* @expectedException \InvalidArgumentException
|
43 |
-
*/
|
44 |
-
public function visitThrowsInvalidArgumentExceptionOnUnknownContentType()
|
45 |
-
{
|
46 |
-
$mockContent = $this->getMock('org\\bovigo\\vfs\\vfsStreamContent');
|
47 |
-
$mockContent->expects($this->any())
|
48 |
-
->method('getType')
|
49 |
-
->will($this->returnValue('invalid'));
|
50 |
-
$this->assertSame($this->abstractVisitor,
|
51 |
-
$this->abstractVisitor->visit($mockContent)
|
52 |
-
);
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* @test
|
57 |
-
*/
|
58 |
-
public function visitWithFileCallsVisitFile()
|
59 |
-
{
|
60 |
-
$file = new vfsStreamFile('foo.txt');
|
61 |
-
$this->abstractVisitor->expects($this->once())
|
62 |
-
->method('visitFile')
|
63 |
-
->with($this->equalTo($file));
|
64 |
-
$this->assertSame($this->abstractVisitor,
|
65 |
-
$this->abstractVisitor->visit($file)
|
66 |
-
);
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* tests that a block device eventually calls out to visit file
|
71 |
-
*
|
72 |
-
* @test
|
73 |
-
*/
|
74 |
-
public function visitWithBlockCallsVisitFile()
|
75 |
-
{
|
76 |
-
$block = new vfsStreamBlock('foo');
|
77 |
-
$this->abstractVisitor->expects($this->once())
|
78 |
-
->method('visitFile')
|
79 |
-
->with($this->equalTo($block));
|
80 |
-
$this->assertSame($this->abstractVisitor,
|
81 |
-
$this->abstractVisitor->visit($block)
|
82 |
-
);
|
83 |
-
}
|
84 |
-
|
85 |
-
/**
|
86 |
-
* @test
|
87 |
-
*/
|
88 |
-
public function visitWithDirectoryCallsVisitDirectory()
|
89 |
-
{
|
90 |
-
$dir = new vfsStreamDirectory('bar');
|
91 |
-
$this->abstractVisitor->expects($this->once())
|
92 |
-
->method('visitDirectory')
|
93 |
-
->with($this->equalTo($dir));
|
94 |
-
$this->assertSame($this->abstractVisitor,
|
95 |
-
$this->abstractVisitor->visit($dir)
|
96 |
-
);
|
97 |
-
}
|
98 |
-
}
|
99 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/visitor/vfsStreamPrintVisitorTestCase.php
DELETED
@@ -1,103 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\visitor;
|
11 |
-
use org\bovigo\vfs\vfsStream;
|
12 |
-
use org\bovigo\vfs\vfsStreamDirectory;
|
13 |
-
use org\bovigo\vfs\vfsStreamFile;
|
14 |
-
/**
|
15 |
-
* Test for org\bovigo\vfs\visitor\vfsStreamPrintVisitor.
|
16 |
-
*
|
17 |
-
* @since 0.10.0
|
18 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
19 |
-
* @group issue_10
|
20 |
-
*/
|
21 |
-
class vfsStreamPrintVisitorTestCase extends \PHPUnit_Framework_TestCase
|
22 |
-
{
|
23 |
-
/**
|
24 |
-
* @test
|
25 |
-
* @expectedException \InvalidArgumentException
|
26 |
-
*/
|
27 |
-
public function constructWithNonResourceThrowsInvalidArgumentException()
|
28 |
-
{
|
29 |
-
new vfsStreamPrintVisitor('invalid');
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* @test
|
34 |
-
* @expectedException \InvalidArgumentException
|
35 |
-
*/
|
36 |
-
public function constructWithNonStreamResourceThrowsInvalidArgumentException()
|
37 |
-
{
|
38 |
-
new vfsStreamPrintVisitor(xml_parser_create());
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @test
|
43 |
-
*/
|
44 |
-
public function visitFileWritesFileNameToStream()
|
45 |
-
{
|
46 |
-
$output = vfsStream::newFile('foo.txt')
|
47 |
-
->at(vfsStream::setup());
|
48 |
-
$printVisitor = new vfsStreamPrintVisitor(fopen('vfs://root/foo.txt', 'wb'));
|
49 |
-
$this->assertSame($printVisitor,
|
50 |
-
$printVisitor->visitFile(vfsStream::newFile('bar.txt'))
|
51 |
-
);
|
52 |
-
$this->assertEquals("- bar.txt\n", $output->getContent());
|
53 |
-
}
|
54 |
-
|
55 |
-
/**
|
56 |
-
* @test
|
57 |
-
*/
|
58 |
-
public function visitFileWritesBlockDeviceToStream()
|
59 |
-
{
|
60 |
-
$output = vfsStream::newFile('foo.txt')
|
61 |
-
->at(vfsStream::setup());
|
62 |
-
$printVisitor = new vfsStreamPrintVisitor(fopen('vfs://root/foo.txt', 'wb'));
|
63 |
-
$this->assertSame($printVisitor,
|
64 |
-
$printVisitor->visitBlockDevice(vfsStream::newBlock('bar'))
|
65 |
-
);
|
66 |
-
$this->assertEquals("- [bar]\n", $output->getContent());
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* @test
|
71 |
-
*/
|
72 |
-
public function visitDirectoryWritesDirectoryNameToStream()
|
73 |
-
{
|
74 |
-
$output = vfsStream::newFile('foo.txt')
|
75 |
-
->at(vfsStream::setup());
|
76 |
-
$printVisitor = new vfsStreamPrintVisitor(fopen('vfs://root/foo.txt', 'wb'));
|
77 |
-
$this->assertSame($printVisitor,
|
78 |
-
$printVisitor->visitDirectory(vfsStream::newDirectory('baz'))
|
79 |
-
);
|
80 |
-
$this->assertEquals("- baz\n", $output->getContent());
|
81 |
-
}
|
82 |
-
|
83 |
-
/**
|
84 |
-
* @test
|
85 |
-
*/
|
86 |
-
public function visitRecursiveDirectoryStructure()
|
87 |
-
{
|
88 |
-
$root = vfsStream::setup('root',
|
89 |
-
null,
|
90 |
-
array('test' => array('foo' => array('test.txt' => 'hello'),
|
91 |
-
'baz.txt' => 'world'
|
92 |
-
),
|
93 |
-
'foo.txt' => ''
|
94 |
-
)
|
95 |
-
);
|
96 |
-
$printVisitor = new vfsStreamPrintVisitor(fopen('vfs://root/foo.txt', 'wb'));
|
97 |
-
$this->assertSame($printVisitor,
|
98 |
-
$printVisitor->visitDirectory($root)
|
99 |
-
);
|
100 |
-
$this->assertEquals("- root\n - test\n - foo\n - test.txt\n - baz.txt\n - foo.txt\n", file_get_contents('vfs://root/foo.txt'));
|
101 |
-
}
|
102 |
-
}
|
103 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/php/org/bovigo/vfs/visitor/vfsStreamStructureVisitorTestCase.php
DELETED
@@ -1,86 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* This file is part of vfsStream.
|
4 |
-
*
|
5 |
-
* For the full copyright and license information, please view the LICENSE
|
6 |
-
* file that was distributed with this source code.
|
7 |
-
*
|
8 |
-
* @package org\bovigo\vfs
|
9 |
-
*/
|
10 |
-
namespace org\bovigo\vfs\visitor;
|
11 |
-
use org\bovigo\vfs\vfsStream;
|
12 |
-
/**
|
13 |
-
* Test for org\bovigo\vfs\visitor\vfsStreamStructureVisitor.
|
14 |
-
*
|
15 |
-
* @since 0.10.0
|
16 |
-
* @see https://github.com/mikey179/vfsStream/issues/10
|
17 |
-
* @group issue_10
|
18 |
-
*/
|
19 |
-
class vfsStreamStructureVisitorTestCase extends \PHPUnit_Framework_TestCase
|
20 |
-
{
|
21 |
-
/**
|
22 |
-
* @test
|
23 |
-
*/
|
24 |
-
public function visitFileCreatesStructureForFile()
|
25 |
-
{
|
26 |
-
$structureVisitor = new vfsStreamStructureVisitor();
|
27 |
-
$this->assertEquals(array('foo.txt' => 'test'),
|
28 |
-
$structureVisitor->visitFile(vfsStream::newFile('foo.txt')
|
29 |
-
->withContent('test')
|
30 |
-
)
|
31 |
-
->getStructure()
|
32 |
-
);
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* @test
|
37 |
-
*/
|
38 |
-
public function visitFileCreatesStructureForBlock()
|
39 |
-
{
|
40 |
-
$structureVisitor = new vfsStreamStructureVisitor();
|
41 |
-
$this->assertEquals(array('[foo]' => 'test'),
|
42 |
-
$structureVisitor->visitBlockDevice(vfsStream::newBlock('foo')
|
43 |
-
->withContent('test')
|
44 |
-
)
|
45 |
-
->getStructure()
|
46 |
-
);
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* @test
|
51 |
-
*/
|
52 |
-
public function visitDirectoryCreatesStructureForDirectory()
|
53 |
-
{
|
54 |
-
$structureVisitor = new vfsStreamStructureVisitor();
|
55 |
-
$this->assertEquals(array('baz' => array()),
|
56 |
-
$structureVisitor->visitDirectory(vfsStream::newDirectory('baz'))
|
57 |
-
->getStructure()
|
58 |
-
);
|
59 |
-
}
|
60 |
-
|
61 |
-
/**
|
62 |
-
* @test
|
63 |
-
*/
|
64 |
-
public function visitRecursiveDirectoryStructure()
|
65 |
-
{
|
66 |
-
$root = vfsStream::setup('root',
|
67 |
-
null,
|
68 |
-
array('test' => array('foo' => array('test.txt' => 'hello'),
|
69 |
-
'baz.txt' => 'world'
|
70 |
-
),
|
71 |
-
'foo.txt' => ''
|
72 |
-
)
|
73 |
-
);
|
74 |
-
$structureVisitor = new vfsStreamStructureVisitor();
|
75 |
-
$this->assertEquals(array('root' => array('test' => array('foo' => array('test.txt' => 'hello'),
|
76 |
-
'baz.txt' => 'world'
|
77 |
-
),
|
78 |
-
'foo.txt' => ''
|
79 |
-
),
|
80 |
-
),
|
81 |
-
$structureVisitor->visitDirectory($root)
|
82 |
-
->getStructure()
|
83 |
-
);
|
84 |
-
}
|
85 |
-
}
|
86 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/mikey179/vfsStream/src/test/resources/filesystemcopy/withSubfolders/aFile.txt
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
foo
|
|
vendor/mikey179/vfsStream/src/test/resources/filesystemcopy/withSubfolders/subfolder1/file1.txt
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
foobar
|
|
vendor/symfony/finder/Symfony/Component/Finder/Adapter/AbstractFindAdapter.php
CHANGED
@@ -272,7 +272,7 @@ abstract class AbstractFindAdapter extends AbstractAdapter
|
|
272 |
foreach ($dates as $i => $date) {
|
273 |
$command->add($i > 0 ? '-and' : null);
|
274 |
|
275 |
-
$mins = (int) round((time()
|
276 |
|
277 |
if (0 > $mins) {
|
278 |
// mtime is in the future
|
272 |
foreach ($dates as $i => $date) {
|
273 |
$command->add($i > 0 ? '-and' : null);
|
274 |
|
275 |
+
$mins = (int) round((time()-$date->getTarget()) / 60);
|
276 |
|
277 |
if (0 > $mins) {
|
278 |
// mtime is in the future
|
vendor/symfony/finder/Symfony/Component/Finder/Comparator/NumberComparator.php
CHANGED
@@ -64,13 +64,13 @@ class NumberComparator extends Comparator
|
|
64 |
$target *= 1000000;
|
65 |
break;
|
66 |
case 'mi':
|
67 |
-
$target *= 1024
|
68 |
break;
|
69 |
case 'g':
|
70 |
$target *= 1000000000;
|
71 |
break;
|
72 |
case 'gi':
|
73 |
-
$target *= 1024
|
74 |
break;
|
75 |
}
|
76 |
}
|
64 |
$target *= 1000000;
|
65 |
break;
|
66 |
case 'mi':
|
67 |
+
$target *= 1024*1024;
|
68 |
break;
|
69 |
case 'g':
|
70 |
$target *= 1000000000;
|
71 |
break;
|
72 |
case 'gi':
|
73 |
+
$target *= 1024*1024*1024;
|
74 |
break;
|
75 |
}
|
76 |
}
|
vendor/symfony/finder/Symfony/Component/Finder/Finder.php
CHANGED
@@ -234,7 +234,7 @@ class Finder implements \IteratorAggregate, \Countable
|
|
234 |
* $finder->date('> now - 2 hours');
|
235 |
* $finder->date('>= 2005-10-15');
|
236 |
*
|
237 |
-
* @param string $date A date
|
238 |
*
|
239 |
* @return Finder The current Finder instance
|
240 |
*
|
@@ -436,9 +436,9 @@ class Finder implements \IteratorAggregate, \Countable
|
|
436 |
public function ignoreDotFiles($ignoreDotFiles)
|
437 |
{
|
438 |
if ($ignoreDotFiles) {
|
439 |
-
$this->ignore
|
440 |
} else {
|
441 |
-
$this->ignore
|
442 |
}
|
443 |
|
444 |
return $this;
|
@@ -458,9 +458,9 @@ class Finder implements \IteratorAggregate, \Countable
|
|
458 |
public function ignoreVCS($ignoreVCS)
|
459 |
{
|
460 |
if ($ignoreVCS) {
|
461 |
-
$this->ignore
|
462 |
} else {
|
463 |
-
$this->ignore
|
464 |
}
|
465 |
|
466 |
return $this;
|
234 |
* $finder->date('> now - 2 hours');
|
235 |
* $finder->date('>= 2005-10-15');
|
236 |
*
|
237 |
+
* @param string $date A date rage string
|
238 |
*
|
239 |
* @return Finder The current Finder instance
|
240 |
*
|
436 |
public function ignoreDotFiles($ignoreDotFiles)
|
437 |
{
|
438 |
if ($ignoreDotFiles) {
|
439 |
+
$this->ignore = $this->ignore | static::IGNORE_DOT_FILES;
|
440 |
} else {
|
441 |
+
$this->ignore = $this->ignore & ~static::IGNORE_DOT_FILES;
|
442 |
}
|
443 |
|
444 |
return $this;
|
458 |
public function ignoreVCS($ignoreVCS)
|
459 |
{
|
460 |
if ($ignoreVCS) {
|
461 |
+
$this->ignore = $this->ignore | static::IGNORE_VCS_FILES;
|
462 |
} else {
|
463 |
+
$this->ignore = $this->ignore & ~static::IGNORE_VCS_FILES;
|
464 |
}
|
465 |
|
466 |
return $this;
|
vendor/symfony/finder/Symfony/Component/Finder/README.md
CHANGED
@@ -45,7 +45,7 @@ Resources
|
|
45 |
You can run the unit tests with the following command:
|
46 |
|
47 |
$ cd path/to/Symfony/Component/Finder/
|
48 |
-
$ composer install
|
49 |
$ phpunit
|
50 |
|
51 |
[1]: http://api.symfony.com/2.5/Symfony/Component/Finder/SplFileInfo.html
|
45 |
You can run the unit tests with the following command:
|
46 |
|
47 |
$ cd path/to/Symfony/Component/Finder/
|
48 |
+
$ composer.phar install
|
49 |
$ phpunit
|
50 |
|
51 |
[1]: http://api.symfony.com/2.5/Symfony/Component/Finder/SplFileInfo.html
|
vendor/symfony/finder/Symfony/Component/Finder/Shell/Command.php
CHANGED
@@ -168,7 +168,7 @@ class Command
|
|
168 |
}
|
169 |
|
170 |
$this->bits[] = self::create($this);
|
171 |
-
$this->labels[$label] = count($this->bits)
|
172 |
|
173 |
return $this->bits[$this->labels[$label]];
|
174 |
}
|
168 |
}
|
169 |
|
170 |
$this->bits[] = self::create($this);
|
171 |
+
$this->labels[$label] = count($this->bits)-1;
|
172 |
|
173 |
return $this->bits[$this->labels[$label]];
|
174 |
}
|
vendor/symfony/finder/Symfony/Component/Finder/composer.json
CHANGED
@@ -18,9 +18,6 @@
|
|
18 |
"require": {
|
19 |
"php": ">=5.3.3"
|
20 |
},
|
21 |
-
"require-dev": {
|
22 |
-
"symfony/phpunit-bridge": "~2.7"
|
23 |
-
},
|
24 |
"autoload": {
|
25 |
"psr-0": { "Symfony\\Component\\Finder\\": "" }
|
26 |
},
|
18 |
"require": {
|
19 |
"php": ">=5.3.3"
|
20 |
},
|
|
|
|
|
|
|
21 |
"autoload": {
|
22 |
"psr-0": { "Symfony\\Component\\Finder\\": "" }
|
23 |
},
|
vendor/symfony/finder/Symfony/Component/Finder/phpunit.xml.dist
CHANGED
@@ -7,7 +7,8 @@
|
|
7 |
bootstrap="vendor/autoload.php"
|
8 |
>
|
9 |
<php>
|
10 |
-
|
|
|
11 |
</php>
|
12 |
<testsuites>
|
13 |
<testsuite name="Symfony Finder Component Test Suite">
|
7 |
bootstrap="vendor/autoload.php"
|
8 |
>
|
9 |
<php>
|
10 |
+
<!-- Silence E_USER_DEPRECATED (-16385 == -1 & ~E_USER_DEPRECATED) -->
|
11 |
+
<ini name="error_reporting" value="-16385"/>
|
12 |
</php>
|
13 |
<testsuites>
|
14 |
<testsuite name="Symfony Finder Component Test Suite">
|