summaryrefslogtreecommitdiff
path: root/ext/spl/tests/bug80724.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/bug80724.phpt')
-rw-r--r--ext/spl/tests/bug80724.phpt46
1 files changed, 46 insertions, 0 deletions
diff --git a/ext/spl/tests/bug80724.phpt b/ext/spl/tests/bug80724.phpt
new file mode 100644
index 0000000000..7ff118e31b
--- /dev/null
+++ b/ext/spl/tests/bug80724.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Bug #80724 (FOLLOW_SYMLINKS interfering with FilesystemIterator key flags)
+--FILE--
+<?php
+$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::KEY_AS_FILENAME);
+foreach ($iterator as $key => $value) {
+ echo var_dump(hasSeparator($key));
+ break;
+}
+$iterator->rewind();
+echo var_dump(hasSeparator($iterator->key()));
+
+$iterator->setFlags(0);
+echo var_dump(hasSeparator($iterator->key()));
+
+$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
+echo var_dump(hasSeparator($iterator->key()));
+
+$iterator2 = new FilesystemIterator(__DIR__, FilesystemIterator::FOLLOW_SYMLINKS | FilesystemIterator::KEY_AS_FILENAME);
+foreach ($iterator2 as $key => $value) {
+ echo var_dump(hasSeparator($key));
+ break;
+}
+$iterator2->rewind();
+echo var_dump(hasSeparator($iterator2->key()));
+
+$iterator2->setFlags(0);
+echo var_dump(hasSeparator($iterator2->key()));
+
+$iterator2->setFlags(FilesystemIterator::KEY_AS_FILENAME);
+echo var_dump(hasSeparator($iterator2->key()));
+
+function hasSeparator($key) {
+ return str_contains($key, __DIR__ . DIRECTORY_SEPARATOR);
+}
+
+?>
+--EXPECT--
+bool(false)
+bool(false)
+bool(true)
+bool(false)
+bool(false)
+bool(false)
+bool(true)
+bool(false)